首页 > 其他分享 >rpm

rpm

时间:2023-01-06 17:35:45浏览次数:48  
标签:依赖 rpm 软件包 卸载 软件 安装

一、说明

    RMPLINUX 下的一种软件的可执行程序,你只要安装它就可以了。这种软件安装包通常是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器)。RPM是一种数据库记录的方式来将你所需要的套件安装到你的linux主机的一套管理程序。它记录了安装的包以及包与包之间依赖相关性。RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷。
但是也有缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在着相互依赖的情况;卸载时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。

二、包命名规则

appname-VERSION-RELEASE.ARCH.rpm
  • appname:包名称
  • VERSION
    • major:主版本号
    • minio:次版本号
    • release:发行号
  • RELEASE:包自身的修订号,有时候还会包含适用于os信息:比如bash-4.3.2-2.centos.x86_64.rpm
  • ARCH:适用的平台
    • x86:i386,i486,i586,i686
    • x86_64,adm64:x86 64bits
    • powerpc:ppc
    • noarch:跟平台无关
每个 rpm 包的名称都由 "-" 和 "." 分成了若干部分。就拿 a2ps-4.13b-57.2.el5.i386.rpm 这个包来解释一下,a2ps为包名;4.13b则为版本信息;57.2.el5为发布版本号;i386为运行平台。其中运行平台常见的有 i386,i586,i686,x86_64,需要注意的是CPU是分为32位和64位的,i386,i586和i686都为32位平台,x86_64则代表为64位的平台。另外有些rpm包并没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制。
例如:alacarte-0.10.0-1.fc6.noarch.rpm。

三、常见命令

1、查询

   q:query 的简写

(1)查询已安装的软件信息

  • rpm -q 准确软件名称:查询某一个已安装软件

   可以看到:<软件名称> 这里只要填写到 rpm 包的报名即可,版本啥的可以不用精确到。

  • rpm -qa:显示已安装的所有软件列表

  • rpm -qi 准确软件名称:查询指定安装软件的详细信息

 

  • rpm -ql 准确软件名称:查看指定的软件包在系统中对应的目录和文件列表

 

  • rpm -qf 目录或文件夹:查看当前指定的文件或目录对应的软件包

 

  • 不确定具体名称时可以使用管道和筛选功能:rpm -qa|grep vim
  • 统计已安装的软件包总数:rpm -qa|wc -l

(2)查询未安装的软件信息该操作主要是在软件包安装之前进行详细信息的查询,所以传入的参数是一个存在的软件包的路径。

  • rpm -qpi 软件包完整路径:查询待安装软件的详细信息

 

  • rpm -qpl 软件包完整路径:查询待安装软件的安装路径

 

 2、验证

    V:verify 的简写

(1) 常用命令

  • rpm -V 准确软件名称:只有校验失败时才会出现信息

 

  • rpm -Va:扫描验证所有软件包(推荐使用root用户,不会出现权限问题),列出产生变更的项目、欠佳的依赖关系、缺失的关键配置文件等

3、安装

  • i: install 的简写

在进行软件安装时,可能系统当中缺少某个依赖,导致无法正常安装,可以使用--force选项进行强制安装,但无法保证安装后能够正常使用。常规的解决办法是先安装需要的依赖软件包,再安装该软件,或者使用yum工具。

  • rpm -i [--force] 软件包完整路径:安装一个软件,强制安装为可选项
  • rpm -ivh 软件包完整路径:常用命令,安装一个软件,显示详细信息和进度(用#表示)
    • v:可视化
    • h:显示安装进度
#安装
#rpm ivh /root/test.rpm
这里以 expect-5.45-14.el7_1.x86_64.rpm 为例子
(1) 从网上下载 这个 rpm包
(2) 上传到 linux 服务器 /opt/wf 路径下
(3) 打开连接到 linux服务器的远程 shell上
(4) cd /opt/wf
(5) rpm -ivh expect-5.45-14.el7_1.x86_64.rpm

 

expect 包依赖 tcl 包,在tcl包没有安装的情况下安装expect 会直接提示检测失败,并告知缺失的依赖包,此时需要先安装依赖的 tcl包。

 上图显示安装成功。

 通过命令可以看到 expect 的确是安装成功了。

4、升级

   -U : 升级

由于在升级时,旧版本的软件可能已经安装,也可能从未安装,针对这种情况,提供了两个参数。

  • U表示:如果对应的软件包原来未安装,则直接安装,和i的效果相同
  • F表示:如果对应的软件包原来未安装,则放弃安装
  • rpm -U/F 软件包完整路径:升级一个软件
  • rpm -U|Fvh  软件包完整路径:可视化并展现升级进度

5、卸载

软件包的卸载需要使用root用户来执行,必须完整提供卸载软件包的名称,可以先通过筛选查询获取。

  • e:erase的简写(擦除)

在进行卸载操作时,可能有其他软件依赖于此软件,卸载后可能会导致其他软件不可用,如果存在依赖关系,则会显示依赖信息,如果执意要删除,可以使用忽略依赖的选项:--nodeps。

  • rpm -e [--nodeps] 准确软件名称:卸载一个已安装软件,忽略依赖为可选项
  • rpm -evh 软件包名称:可视化并展示卸载进度

 

 

 6、维护

 (1)RPM数据库维护如果本机的RPM数据库损坏,可能会导致无法正确的读取依赖关系,致使无法正常执行rpm相关功能,此时可以使用-‌-initdb选项。

rpm --initdb

 

 

 

 

 

参考:

https://www.cnblogs.com/yhoralce/p/8325110.html

http://www.manongjc.com/detail/16-ncbycuuleqczfnm.html

https://www.oh100.com/kaoshi/caozuoxitong/554541.html

 

标签:依赖,rpm,软件包,卸载,软件,安装
From: https://www.cnblogs.com/sandyflower/p/13861193.html

相关文章

  • rpm使用教程
    rpm选项住选择-i安装-e卸载-U升级-q查找辅助选项-v显示过程-h--bash查询-a--all查询所有安装的包-f--file查询拥有<--file>的包-p查询......
  • Linux下rpm安装MySQL及配置
    Linux下rpm安装MySQL及配置xupeng1644已于2022-03-2211:38:47修改2747收藏15分类专栏:Linux文章标签:rpmMySQLLinux版权Linux专栏收录该内容55篇文章1订阅订......
  • Rpmbuild原码打包成rpm包
    RPM有五种基本的操作功能:安装、卸载、升级、查询和验证。linux软件包分为两大类:(1)二进制类包,包括rpm安装包(一般分为i386和x86等几种)(2)源码类包,源码包和开发包应该归位此类......
  • Centos7离线安装Mysql8(rpm安装)
    1.下载:        官网下载: MySQL::DownloadMySQLCommunityServer2.解压将下载好的tar文件放到centos中,目录文件夹名称自定义,解压后得到:[root@localhost......
  • rpmbuild使用
    1.安装rpmbuild命令用于创建软件的二进制包和源代码包。yuminstallrpmbuildrpmdevtools-y生成rpm工作目录:rpmdev-setuptree命令默认将在当前用户主目录下创建一个RPM构......
  • yum下载及获取下载的服务的rpm包
    [[email protected]]#yumupdatersyslog  获取[root@db2packages]#yumdownloader--resolvelibestrlibfastjson4rsyslog ......
  • Linux中rpm安装软件包
    1.RPM包命名规则:httpd-2.2.15-53.el6.centos.x86_64.rpm httpd软件包名 2.2.15软件版本 53软件发布次数 el6.centos适合的Linux平台 x86_64适合的硬......
  • python2项目打包rpm笔记
    python2项目打包成rpm包项目目录结构和说明#其中demo的是项目的根目录#pkg是代码逻辑目录#config是配置文件目录#main.py是项目的开始目录#Makefile是打包文件......
  • yum命令提示error: rpmdb: BDB0113 Thread/process,解决方法
    最近在做RHCE的题目,yum命令装vdo时,使用yuminstall命令的时候,提示error:rpmdb:BDB0113Thread/process,具体错误如下:[root@node2~]#yuminstallvdo-yerror:rpmdb......
  • 艾美捷RPMI-1640培养基L-谷氨酰胺化学性质说明
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......