rpm包管理
前言
rpm包命名原则 以httpd-2.2.15-15.el6.centos.1.i686.rpm
httpd | 软件包名 |
---|---|
2.2.15 | 软件版本 |
15 | 软件发布次数 |
e16.centos | 适合的linux平台 |
i686 | 适合的硬件平台,除了x64 基本上都是支持32位机器的 |
rpm | rpm包扩展名 |
软件包名可以称作包名,全部加在一起是包全名,这两耳光名词在rpm的管理介绍中会用到。
安装
[root@bogon ~]# rpm -ivh [包全名(含路径)]
#demo
[root@localhost Packages]# rpm -ivh httpd-2.2.15-15.el6.centos.1.i686.rpm
选项 | 说明 |
---|---|
-i | install 安装 |
-v | verbose 显示安装详情 |
-h | hash 显示安装进度 |
–nodeps | 不检测依赖性,不推荐使用,因为如果不检测依赖性,即使安装成功也是不完整的安装 |
升级和卸载
[root@bogon ~]# rpm -Uvh [包全名(含路径)]
#卸载,卸载无关所在路径
[root@bogon ~]# rpm -e [包命]
选项 | 说明 |
---|---|
-U | upgrade 升级 |
-e | 卸载 |
–nodeps | 不检测依赖性 |
查询
#查询某包是否安装
[root@bogon ~]# rpm -q [包名]
#查询所有已经安装的rpm包
[root@bogon ~]# rpm -qa
#查询软件包详细信息
[root@bogon ~]# rpm -qi [包名]
#查询未安装软件包信息
[root@bogon ~]# rpm -qip [包全名含路径]
#查询包中文件安装位置
[root@bogon ~]# rpm -ql [包名]
#查询未安装软件包会安装位置
[root@bogon ~]# rpm -ql [包全名含路径]
#根据包文件反查安装包
[root@bogon ~]# rpm -qf [文件名含路径]
#查询软件包的依赖性
[root@bogon ~]# rpm -qR [包名]
#查询未安装软件包的依赖性
[root@bogon ~]# rpm -qRp [包全名含路径]
选项 | 详情 |
---|---|
-p | 指定查询对象是未安装软件包 |
-q | 查询 |
-i | 查询软件包信息 |
-l | 查询文件列表 |
-R | 查询软件包的依赖性 |
-a | 查询所有已安装rpm包 |
文件校验和提取
文件校验
[root@bogon ~]# rpm -V [包名]
#演示输出
S.5....T. c /etc/httpd/conf/http.conf
校验结果中出现的字符 | 代表含义 |
---|---|
S | 文件大小是否改变 |
M | 文件的类型或者权限是否被改变 |
5 | 文件的md5校验是否改变 |
D | 设备的中从代码是否改变 |
L | 文件的所有者是否改变 |
G | 文件的所属组是否改变 |
T | 文件的修改时间是否改变 |
c处代表的含义
文件类型 | 代表含义 |
---|---|
c | 配置文件 |
d | 普通文档 |
g | 鬼文件,很少见,就是该文件不应该被这个rpm包含 |
l | 授权文件 license file |
r | 描述文件 |
从rpm文件中提取指定文件()
用途:如误删了文件需要恢复初始化,那么从rpm包中提出相应的文件覆盖到相应位置就好了
说明:rpm包中的文件是不能直接被提取的,需要先把rpm包转换成cpio格式之后,才能提取的,cpio可以是一个标准工具,作用是用于创建软件档案文件和从档案文件中提取文件。
[root@bogon tmp]# echo 查询ls命令所在的包
[root@bogon tmp]# rpm -qf /bin/ls
coreutils-8.4-37.el6.i686
[root@bogon tmp]# rm -rf /bin/ls
[root@bogon tmp]# ls -l
-bash: /bin/ls: 没有那个文件或目录
[root@bogon tmp]# echo 挂载光盘后,去寻找到coreutils-8.4-37.el6.i686包,去提取 文件
[root@bogon tmp]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-37.el6.i686 | cpio -div ./bin/ls
rpm2cpio: /mnt/cdrom/Packages/coreutils-8.4-37.el6.i686: No such file or directory
cpio: 归档非正常终止
[root@bogon tmp]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-37.el6.i686.rpm |\cpio -div ./bin/ls
./bin/ls
24823 块
[root@bogon tmp]# dir
bin d.conf dua testbzip
[root@bogon tmp]# mv bin/ls /bin
[root@bogon tmp]# ls -l
总用量 16
drwxr-xr-x. 2 root root 4096 9月 28 22:43 bin
-rw-r--r--. 1 root root 5 9月 27 21:41 d.conf
drwxr-xr-x. 3 root root 4096 9月 27 21:56 dua
drwxr-xr-x. 2 root root 4096 9月 27 21:41 testbzip
[root@bogon tmp]#
由上述可知提取出一个文件的语法格式如下
rpm2cpio {包路径} | cpio -div .{提取目录}
.可指定,但是最好使用.当前目录,当作固定格式比较好记忆。