一、说明
RMP 是 LINUX 下的一种软件的可执行程序,你只要安装它就可以了。这种软件安装包通常是一个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