前言
RPM
包管理员是在Linux下广泛使用的软件包管理器。
数据源
RPM
包一般在系统光盘里就有。不同系统的RPM
包在不同的路径下。
CentOS5
在CentOS
目录下。
1 2 3 4 5 6 7 8
| [ahao@locathost /]$ su -
[root@locathost /]
[root@locathost /]
[root@locathost /]
|
RPM包命名规则
这里以Apache
的httpd
包为例
1 2
| [root@localhost /] -rw-r--r-- 2 root root 1280858 2009-03-17 httpd-2.2.3-22.el5.centos.x86_64.rpm
|
httpd |
2.2.3 |
22 |
el5.centos |
x86_64 |
rpm |
软件包名 |
软件版本 |
软件发布次数 |
适合的Linux平台 |
适合的硬件平台 |
rpm包扩展名 |
RPM查询
包和包之间可能存在依赖关系, 比如软件A
需要调用软件B
, 那么安装软件A
之前就必须安装软件B
, 否则可能会出现找不到软件B
的某个函数的问题。
这叫做树形依赖, 其他还有其他依赖。
- 树形依赖: a -> b -> c, 安装c需要先安装b, 安装b需要先安装a, 卸载的时候要先卸载a, 再卸载b, 最后卸载c
- 环形依赖: a -> b -> c -> a, 用一条命令同时安装,
rpm -ivh a b c
- 模块依赖: 依赖另一个包的某个so库文件模块, 查询模块对应的软件: www.rpmfind.net
以httpd
包为例, 已安装的软件包在/var/lib/rpm/
数据库中, 只用输入包名即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
[root@localhost /]
[root@localhost /]
[root@localhost /] [root@localhost /]
[root@localhost /] [root@localhost /]
[root@localhost /] httpd-2.2.3-22.el5.centos
[root@localhost /]
[root@localhost /]
|
RPM验证
有时候网络波动或网络攻击会导致文件缺失或者文件被植入木马等问题, 就需要验证下载下来的文件和RPM包的文件是否一致。
1 2 3 4 5
| [root@localhost ~]
[root@localhost ~] S.5....T c /etc/httpd/conf/httpd.conf
|
S(Size) |
M(Mode) |
5(MD5) |
D(Device) |
L(Link) |
U(User) |
G(Group ) |
T(mTime) |
文件大小 |
文件类型或文件权限 |
MD5校验 |
设备主从代码 |
文件路径 |
文件所有者 |
文件所属组 |
文件修改时间 |
c(config) |
d(documentation) |
g(ghost) |
L(license) |
r(readme) |
配置文件 |
普通文件 |
不在RPM包的幽灵文件 |
授权文件 |
描述文件 |
1 2 3 4 5 6 7 8 9
|
[root@localhost ~] [root@localhost /tmp]
[root@localhost /tmp]
[root@localhost tmp] .......T c /etc/httpd/conf/httpd.conf
|