天天看点

RPM软件包管理

   RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。

RPM文件在Linux系统中的安装最为简便。以著名的图像处理软件XV为例,其RPM包xv-3.10a-13.i386.rpm可以在该程序的主页中下载取得。

Linux软件包 大概分为了一下几种

①   二进制软件包管理<RPM.YUM>

②   源代码包管理

③   脚本安装<shell或java脚本>

④   Debian系列linux软件包 <不后续介绍>

以sudo-1.7.4p5-11.el6.i686.rpm这个软件版为例

解释下linux命名格式sudu=软件名1.7.4p5=版本号 11.el6=发行号 i686=硬件平台

安装sudo  挂载光盘什么的不做介绍了

[root@chenyi Packages]# rpm -ivh sudo-1.7.4p5-11.el6.i686.rpm

<a href="http://itchenyi.com/wp-content/uploads/2012/10/rpm1.png"></a>

RPM软件包参数

--exludedocs

不安装软件包中的文档文件

--prefix=

指定路径进行安装

--test

测试安装,不实际安装

--replacepkgs

覆盖安装

--replacefiles

忽略错误继续安装

--nodeps

忽略依赖关系安装

-a

查询所有已经安装的软件包

-f

查询文件所属的软件包

-p

查询软件包

-i

显示软件包信息

-l

显示软件包中的文件列表

-c

显示被标注为配置文件的文件列表

-d

显示被标注为文档的文件列表

-e

卸载软件包

-qf

查询文件隶属的软件包

–qi、–qip

查询软件包信息

-ql –qlp

查询软件包的安装文件

-qd

查询软件包的帮助文件

-qc

查询软件包配置文件

软件包校验: rpm –V [软件名称]

对应的参数

5

文件的md5校验值

S

文件大小

L

连接文件

T

文件的创建时间

D

设备文件

U

文件的用户

G

文件的用户组

M

文件的权限

这里演示下 –V 这个参数。因为他对于某种环境来说是很不错的!

以 /etc/inittab 配置文件为示例,这文件有啥用  我就不做解释了。

首先 rpm –qf 查看/etc/inittab 这个文件是有什么软件包所创建的!

我更改了inittab文件的内容,更改了它的权限,更改了它的所属用户,更改了它的所属组,然后再校验就看到了 SM5..UGT.的回执 表示文件大小改变了,因为内容变了,然后文件的权限改变了,MD5值也改变了,所属用户也改变了,所属组也改变了,文件的创建时间也改变了,如果这不是我们管理员所做的更改,那证明 有其他人动过计算机,可能是黑客,可能是那坑爹的 江南style的男主角 !

呵呵,图上的操作为了验证效果所配置。别乱喷!

MD5值校验。咳咳,什么。我删除了inittab这个文件???….继续往下看吧

<a href="http://itchenyi.com/wp-content/uploads/2012/10/rpm4.png"></a>

MD5校验原理

当安装一个新的rpm包时,会自动生成一个rpm库,在需要的时候会通过这个库来比较得到这些值!

刚才凤姐附体,不小心把inittab删除了,还好我没重启,不用进救援模式。要在线恢复也简单!

软件包文件提取,我们刚才就通过 –qf 参数知道了rpm 包的安装包的名字,现在挂载关盘提取inittab文件,没光盘自己去下载initscripts….

Inittab 就这样修复了。没什么很难的啊!!!

源代码包安装 以proftpd为例 自己搞包解压

./configure –prefix=/usr/local 配置

make编译

make install 安装

 就这样 装好了

如果没装C编译器 就装一个

Gcc cc 其他CC都行

反正 有人说yum比rpm好。我觉得都要用。作为一个技术人员。不要追求新,很多东西要都会,都知道,结合使用才强大撒!

本文转自 lgpqdwjh 51CTO博客,原文链接:http://blog.51cto.com/itchenyi/1038649,如需转载请自行联系原作者