RPM软件程序管理

RPM 全名:Redhat Package Manager   是以一种数据库记录的方式来将你所需要的软件安装到你的Linux系统的一套管理机制。

优点:

1.由于已经编译完成并且打包完毕,所以软件传输与与安装上不需要重新编译;

2.由于软件的信息都已经记录在Linux主机的数据库上,方便查询升级和反安装。

缺点:

1.软件安装的环境必须与打包时的环境需求一致或相当;

2.需要满足软件的依赖属性需求;

3.反安装时需要特别小心,最底层的软件不可先删除,否则可能造成整个系统的问题。

RPM 的安装

我们需要root的权限才能够操作rpm命令。以安装一个rp-pppoe包为例:


也可以一口气安装2个以上的软件,eg:rpm -ivh a.i386.rpm  b.i386.rpm

倘若在安装的过程中发现问题,而还是执意要安装这个软件,可以用如下的参数;

--test                                         测试安装,但不真正执行安装,即dry run模式

--nodeps:                                忽略依赖关系

--replacepkgs| replacefiles        重新安装某个安装过的软件

--nosignature:                            不检查来源合法性

--nodigest:                               不检查包完整性

--noscripts:                               不执行程序包脚本

%pre: 安装前脚本;--nopre

%post: 安装后脚本;--nopost

%preun: 卸载前脚本;--nopreun

%postun: 卸载后脚本;--nopostun

注:尽量不要不要使用这种暴力安装的方法,会发生很多不可预期的问题。

RPM的升级与更新

-Uvh  若后面的软件没有安装过,则予以直接安装;若该软件已安装过且为旧版,则系统自动更新至最新版。

-Fvh  只有已安装到你的系统内的软件会被升级。

若想大量的升级系统旧版本时,使用-Fvh,不会将没有安装过的软件安装到系统中。

!!注:(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此,直接安装新版本内核

(2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留。

RPM查询

rpm查询的其实就是/var/lib/rpm/目录下的数据库文件。



!!注:在查询本机上的rpm软件相关信息时,不需要加上版本的名称,只要加上软件名即可,因为它会由/var/lib/rpm这个数据库里面去查询;但是查询某个rpm文件就不同了,必须列出整个文件的完整文件名称才行。


RPM验证

rpm {-V|--verify} [select-options] [verify-options]

S file Size differs     文件的容量大小是否被改变

M Mode differs (includes permissions and file type)    文件的类型或文件的属性是否被改变

5 digest (formerly MD5 sum) differs   MD5这一种指纹码的内容已经不同

D Device major/minor number mismatch  设备的主次代码已经改变

L readLink(2) path mismatch    Link路径已经改变

U User ownership differs     文件的所有者已经改变

G Group ownership differs    文件的所属用户组已经改变

T mTimediffers      文件的创建时间已经改变  

数字证书:

软件验证完之后发现验证的只是软件内与数据库的信息而已,倘若该文件所提供的数据本身就有问题,就不能找到方法了,因此,我们需要通过数字证书来验证软件的来源。


你可能感兴趣的:(RPM软件程序管理)