RPM 全名是“RedHatPackage Manager”简称 RPM ,这个软件管理的机制是由 Red Hat公司发展出来的。 RPM 是以一种数据库记录的方式来将所需要的软件安装到 Linux 系统的一套管理机制。
由于 RPM 是透过预先编译并打包成为 RPM 文件格式后,再加以安装的一种方式,并且还能进行数据库的记载。所以 RPM 有以下的优点:
1、RPM 内含已经编译过的程序和配置文件等数据,可以让用户免除重新编译的困扰;
2、RPM 在被安装前,会先检查系统的硬盘容量、操作系统版本等,可避免程序被错误安装;
3、RPM 文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件等信息,便于了解软件;
4、RPM 管理的方式使用数据库记录 RPM 文件的相关参数,便于升级、删除、查询和验证。
RPM 安装 (install)
选项与参数:
-i :install 的意思
-v :查看更详细的安装信息
-h :以安装信息栏显示安装进度
另外,如果安装过程中出现问题却要强制安装时,可以用到以下的一些参数(摘自《鸟哥的Linux 私房菜基础学习篇》):
例:rpm -ivh httpd-2.2.3-31.el5.i386.rpm安装http
RPM 升级与更新 (upgrade/freshen)
选项与参数:
-U 后面跟的软件即使没有安装过,则系统将直接安装;若后面跟的软件安装过,则系统自动更新至新版本;
-F 如果后面跟的软件没有安装到Linux 系统上,则该软件不会被安装;也就是只有已经安装至 Linux 系统内的软件会被升级。
例:rpm -Uvh httpd*
rpm -Fvh httpd*
RPM 查询 (query)
选项与参数:
-q:仅查询,后面跟的软件名称是否安装
-qa :列出所有的安装在本机Linux 系统上面的软件名称
-qi :列出该软件的详细信息(information),包括开发商、版本和说明等
-ql :列出该软件所有的文件与目录所在的完整文件名 (list)
-qc :列出该软件的所有配置文件
-qd :列出该软件的所有说明文件
-qR :列出与该软件有关的相依赖软件所含的文件
-qf :由后面跟的文件名,找出该文件属于哪一个已安装的软件
例:rpm -qa 查询所有安装的软件包
rpm -qa | grep httpd查询是否安装了http的软件包
rpm -qi httpd 查询安装的http包的具体信息
rpm -ql httpd 查询http安装在了哪些目录
rpm -qip httpd 查询未安装的http包的具体信息
rpm -qlp httpd 查询未安装的http包若是安装,将安装在哪些目录下
rpm -qf ls 查询ls文件属于哪个安装包
RPM 校验与数字签名 (Verify/signature)
在/var/lib/rpm/中存放有所安装rpm的记录,当rpm包改变时就与该库中的记录进行比对
选项与参数:
-V:后面跟的是软件名称,若该软件所含的档案被更改过,才会列出来;
-Va :列出目前系统上面所有可能被更改过的档案;
-Vp :后面跟的是文件名,列出该软件内可能被更改过的档案;
-Vf :列出某个文件是否被更改过
该命令回馈的信息参数意义:
S :(file Sizediffers) 文件的容量大小是否被改变
M :(Modediffers) 文件的类型或文件的属性(rwx) 是否被改变?如是否可执行等参数已被改变
5 :(MD5 sumdiffers) MD5 这一种摘要的内容已经不同
D :(Devicemajor/minor number mis-match) 装置的主/次代码已经改变
L :(readLink(2)path mis-match) Link 路径已被改变
U :(Userownership differs) 文件的所属人已被改变
G :(Groupownership differs) 文件的所属群组已被改变
T :(mTime differs)文件的建立时间已被改变
该命令回馈的信息参数所代表的文件类型:
c :配置文件 (config file)
d :数据文件 (documentation)
g :通常是该文件不被某个软件所包含
l :授权文件 (license file)
r :自述文件 (read me)
检测rpm包的签名:rpm -K /mnt/cdrom/Server/httpd-2.2.3.31.e15.i386.rpm
倒入公钥:rpm --import /mnt/cdrom/Server/RPM-GPG-KEY-redhat-*
公钥一般放在存放在镜像的Server目录中或是/etc/pki/rpm-gpg/目录下
RPM 卸载
选项与参数:
-e:后面跟要卸载的软件名称
RPM其他命令:
重建数据库:rpm --rebuilddb
例:以rpm方式安装httpd软件包
1、挂载光驱
2、安装
3、查询软件包是否安装
4、将http的配置文件所属者更改后进行校验
U代表文件所属人被改变
c代表文件的类型是个配置文件
5、倒入公钥并检验http包的签名
6、卸载软件包(卸载前可以查询到,卸载后查询不到)