rpm

338 阅读3分钟

什么是rpm

rpm全称是“redhat package manager”,是一种包管理器。
它所管理的包也是以.rpm作为后缀的。
最早是red hat公司开发的,后来在centos、fedora、suse都用它。
.rpm文件是软件源码编译完成后,然后按照rpm机制打包起来的一个文件,
可以用rpm命令安装的一个软件安装包。

它省去了linux软件安装过程中编译的步骤,安装成功后软件就可以用了。
.rpm文件在Linux系统中的安装最为简便。

.rpm包的特点

1:事先已经编译好
2:安装方便
3:安装过程中要求环境一致
4:反安装时要从最上层开始

rpm包管理器的主要功能

安装、卸载、升级和管理软件
组件查询功能
验证功能
软件包GPG和MD5数字签名的导入、验证和发布
软件包依赖处理
选择安装
网络远程安装功能

.rpm文件的解释

例如 httpd-manual-2.0.40-21.i386.rpm
httpd-manual:软件包名称
2 :主版本号
0 :次版本号
40 :次版本号
21 :编译的次数
i386 :适合的平台
.rpm ----- 说明这是一个RPM包

以著名的图像处理软件XV为例,其RPM包是xv-3.10a-13.i386.rpm
在Terminal终端的命令行中,基本的安装指令是:
rpm -i xv-3.10a-13.i386.rpm    # -i参数是安装,install

如何安装.rpm文件

RPM包的安装非常简单,只需要执行以下命令:
rpm -ivh xxx.rpm
参数说明:
-i 安装.rpm包
-v 显示安装信息
-h 显示安装进度

rpm的常用命令

--help 帮助

-e 卸载rpm包
-q 查询已安装的软件信息
-i 安装rpm包
-u 升级rpm包
--replacepkgs 重新安装rpm包
--justdb 升级数据库,不修改文件系统
--percent 在软件包安装时输出百分比
--help 帮助
--version 显示版本信息
-c 显示所有配置文件
-d 显示所有文档文件
-h 显示安装进度
-l 列出软件包中的文件
-a 显示出文件状态
-p 查询/校验一个软件包文件
-v 显示详细的安装信息
--dump 显示基本文件信息
--nomd5 不验证文件的md5支持
--nofiles 不验证软件包中的文件
--nodeps 不验证软件包的依赖关系
--whatrequires 查询/验证需要一个依赖性的软件包
--whatprovides 查询/验证提供一个依赖性的软件包

一些常用命令的组合

1、查询系统已安装的rpm包
#rpm -qa 

示例:
NTP-slave:/etc/zypp # rpm -qa | grep zypp
zypper-log-1.6.307-0.7.12
zypper-1.6.307-0.7.12
libzypp-9.34.0-0.7.15

2、查询系统中一个已知的文件属于哪个rpm包
# rpm -qf /绝对路径/file_name

示例:
NTP-slave:/etc/zypp # rpm -qf /etc/zypp/zypp.conf 
libzypp-9.34.0-0.7.15

3、 查询已安装的软件包的相关文件的安装路径
# rpm -ql 软件名

示例:
NTP-slave:/etc/zypp # rpm -ql libzypp-9.34.0-0.7.15
/etc/logrotate.d/zypp-history.lr
/etc/zypp
/etc/zypp/repos.d
/etc/zypp/services.d
/etc/zypp/systemCheck
/etc/zypp/zypp.conf
/usr/bin/package-manager
/usr/bin/package-manager-su
...省略...

4、查询一个已安装软件包的信息
#rpm -qi 软件名

示例:
NTP-slave:/etc/zypp # rpm -qi libzypp-9.34.0-0.7.15
Name        : libzypp                      Relocations: (not relocatable)
Version     : 9.34.0                            Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany
Release     : 0.7.15                        Build Date: Wed May 29 23:20:00 2013
Install Date: Mon Dec 19 20:00:23 2016         Build Host: crick2
...省略...
NTP-slave:/etc/zypp # rpm -qc libzypp-9.34.0-0.7.15
/etc/logrotate.d/zypp-history.lr
/etc/zypp/systemCheck
/etc/zypp/zypp.conf

5、查看已安装软件的配置文件
#rpm -qc 软件名

示例:
NTP-slave:/etc/zypp # rpm -qc libzypp-9.34.0-0.7.15
/etc/logrotate.d/zypp-history.lr
/etc/zypp/systemCheck
/etc/zypp/zypp.conf

6、查看已安装软件的文档的安装位置
#rpm -qd 软件名

示例:
NTP-slave:/etc/zypp # rpm -qd libzypp-9.34.0-0.7.15
/usr/share/man/man5/locks.5.gz

7、查看已安装软件所依赖的软件包及文件
#rpm -qR 软件名

示例:
NTP-slave:/etc/zypp # rpm -qR gcc43-4.3.4_20091019-0.37.30
binutils  
glibc-devel  
cpp43 = 4.3.4_20091019-0.37.30
libgcc1 >= 4.3.4_20091019-0.37.30
libgomp1 >= 4.3.4_20091019-0.37.30
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
libc.so.6()(64bit)  
libc.so.6(GLIBC_2.11)(64bit)  
libc.so.6(GLIBC_2.2.5)(64bit)  
libc.so.6(GLIBC_2.3)(64bit)  
libc.so.6(GLIBC_2.7)(64bit)  
rpmlib(PayloadIsLzma) <= 4.4.6-1