rpm命令手册

共 4134字,需浏览 9分钟

 ·

2021-09-27 19:22

rpm:软件包的管理工具

功能选项

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

命令语法

rpm [选项] [参数]

选项含义

选项含义
-i安装软件包
-v输出详细信息
-h安装软件包时打哈希标记 (和 -v 一起使用效果更好)
-c查询rpm包的配置文件
-e卸载软件包
-U升级软件包
-a查询所有的软件包
-f查询文件或命令属于哪个软件包
-l显示软件包的文件列表
-s显示文件状态,本参数需配合”-l”参数使用
-p查询指定的rpm软件包
-q查询软件包
-R显示软件包的依赖关系
--force忽略软件包和文件的冲突
--percent以百分比的形式输出安装进度
--nodeps不验证软件包的依赖关系
--excludedocs不安装软件包中的文档文件
--test只对安装进行测试,并不实际安装

参数含义

参数指软件包,即 指定要操纵的rpm软件包。

参考实例

实例1  安装rpm软件包

// (1)安装rpm 软件包:
rpm -ivh your-package.rpm

安装过程中可能出现下面的警告或者提示:
... conflict with ...

// (2)要安装的软件包有一些文件可能会覆盖现有文件,可使用 --force 强制安装
rpm --force -ivh your-package.rpm

若出现以下提示:
... is needed by ...
... is not installed ...

// (3)使用 --force --nodeps 忽略依赖关系和文件问题,什么包都能安装上(这种强制安装的软件包不能保证完全发挥功能)
rpm --force --nodeps -ivh your-package.rpm

实例2 安装 .src.rpm软件包

有些软件包是以.src.rpm 结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译。这类软件包有两种安装方法:

方法一:

rpm -i your-package.src.rpm
cd /usr/src/redhat/SPECS
rpmbuild -bp your-package.specs             #一个和你的软件包同名的specs文件
cd /usr/src/redhat/BUILD/your-package/      #一个和你的软件包同名的目录
./configure                                 #这一步和编译普通的源码软件一样,可以加上参数
make
make install

方法二:

rpm -i you-package.src.rpm
cd /usr/src/redhat/SPECS

前两步和方法一相同

rpmbuild -bb your-package.specs       #一个和你的软件包同名的specs文件

这时在 /usr/src/redhat/RPM/i386(根据具体包的不同,也可能是i686,noarch等等)在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。执行rpm -i new-package.rpm即可安装完成。

实例3 卸载rpm软件包

// (1)卸载rpm包
rpm -e  you-package.rpm 

有时会出现一些错误或者警告:
... is needed by ...

// (2)这说明这个软件被其他软件需要,不能随便卸载,可以用rpm -e --nodeps强制卸载
rpm -e --nodeps  you-package

实例4 查看与rpm包相关的文件和其他信息

// (1)列出所有安装过的rpm包
[root@cnLinuxer ~]# rpm -qa

// (2)查找所有安装过的包中含字符串ftp的软件包
[root@cnLinuxer ~]# rpm -qa | grep ftp
ftp-0.17-67.el7.x86_64

// (3)获取某个软件包的文件全名
[root@cnLinuxer ~]# rpm -q ftp
ftp-0.17-67.el7.x86_64

// (4)确认rpm包中的文件安装到哪里去了
[root@cnLinuxer ~]# rpm -ql ftp
/usr/bin/ftp
/usr/bin/pftp
/usr/share/man/man1/ftp.1.gz
/usr/share/man/man1/pftp.1.gz
/usr/share/man/man5/netrc.5.gz

// (5)确认未安装的rpm包中包含哪些文件
[root@cnLinuxer ~]# rpm -qlp ***.rpm

// (6)获取已安装过的软件包的版本、用途等相关信息
[root@cnLinuxer ~]# rpm -qi ftp
Name        : ftp
Version     : 0.17
Release     : 67.el7
Architecture: x86_64
Install Date: 2021年09月24日 星期五 23时58分48秒
Group       : Applications/Internet
Size        : 98723
License     : BSD with advertising
Signature   : RSA/SHA256, 2016年11月21日 星期一 01时45分48秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : ftp-0.17-67.el7.src.rpm

// (7)获取未安装过的软件包的版本、用途等相关信息
[root@cnLinuxer ~]# rpm -qip ***.rpm

// (8)确认某个程序是由哪个软件包安装的,或者哪个软件包包含这个程序。
rpm -qf `which 程序名`    #返回软件包的全名
rpm -qif `which 程序名`   #返回软件包的有关信息
rpm -qlf `which 程序名`   #返回软件包的文件列表

// (9)查询ftp软件包的依赖关系
[root@cnLinuxer ~]# rpm -qR ftp
libc.so.6()(64bit)
libc.so.6(GLIBC_2.11)(64bit)
...

// (10)查询crontabs软件包的配置文件
[root@cnLinuxer ~]# rpm -qc crontabs
/etc/crontab


Linux命令查询工具

有收获,点个在看 

浏览 33
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报