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
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 这个文件是有什么软件包所创建的!
解释下后2个命令 rpm –V initscripts 是校验 安装inittab这个配置文件的软件包。但回执信息告诉我们 它的文件创建时间被改变了。且不管它,第二个 rpm –V sudo 没有任何回执信息,如果确定没有更改过任配置信息。那么rpm –V 就是正常的,如果没做更改就不会有任何回执信息。但是如果回执信息有输出的话。就证明你的计算机被更改过。下面继续看图:
我更改了inittab文件的内容,更改了它的权限,更改了它的所属用户,更改了它的所属组,然后再校验就看到了 SM5..UGT.的回执 表示文件大小改变了,因为内容变了,然后文件的权限改变了,MD5值也改变了,所属用户也改变了,所属组也改变了,文件的创建时间也改变了,如果这不是我们管理员所做的更改,那证明 有其他人动过计算机,可能是黑客,可能是那坑爹的 江南style的男主角 !
呵呵,图上的操作为了验证效果所配置。别乱喷!
MD5值校验。咳咳,什么。我删除了inittab这个文件???….继续往下看吧
MD5校验原理
当安装一个新的rpm包时,会自动生成一个rpm库,在需要的时候会通过这个库来比较得到这些值!
刚才凤姐附体,不小心把inittab删除了,还好我没重启,不用进救援模式。要在线恢复也简单!
软件包文件提取,我们刚才就通过 –qf 参数知道了rpm 包的安装包的名字,现在挂载关盘提取inittab文件,没光盘自己去下载initscripts….
Inittab 就这样修复了。没什么很难的啊!!!
源代码包安装 以proftpd为例 自己搞包解压
./configure –prefix=/usr/local 配置
make编译
make install 安装
就这样 装好了
如果没装C编译器 就装一个
Gcc cc 其他CC都行
反正 有人说yum比rpm好。我觉得都要用。作为一个技术人员。不要追求新,很多东西要都会,都知道,结合使用才强大撒!