Skip to content

Latest commit

 

History

History
209 lines (162 loc) · 5.98 KB

rpm.md

File metadata and controls

209 lines (162 loc) · 5.98 KB

RPM 包的来源

mkdir /mnt/cdrom/
mount /dev/sr0 /mnt/cdrom/
cd /mnt/cdrom/Packages
ls

RPM 包命名原则

httpd-2.2.15-15.el6.centos.1.i686.rpm
字段 备注
httpd 软件包名
2.2.15 软件版本
15 软件发布的次数
el6.centos 适合的 linux 平台
i686 适合的硬件平台
rpm rpm 包扩展名

RPM 包依赖性

依赖性 备注
树形依赖 a->b->c
环形依赖 a->b->c->a
模块依赖 查询网站 www.rpmfind.net
rpm -ivh httpd-2.2.15-15.el6.centos.1.i686.rpm

包全名与包名

包全名 操作的包是没有安装的软件包时,使用包全名。而且要注意路径
包名 操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库

RPM 安装

rpm -ivh 包全名
ls /var/lib/rpm/

选项

选项 备注
-i install 安装
-v verbose 显示详细信息
-h hash 显示进度
--nodeps 不检测依赖性(不允许使用)

RPM 包升级

rpm -Uvh 包全名
ls /var/lib/rpm/

选项

选项 备注
-U upgrade 升级

RPM 卸载

rpm -e 包名
ls /var/lib/rpm/

选项

选项 备注
-e erase 卸载
--nodeps 不检测依赖性(不允许使用)

RPM 查询是否安装

rpm -q 包名
# 查询包是否安装
rpm -qa
rpm -qa | grep httpd
rpm -qa | grep gcc
# 查询所有已经安装的 RPM 包
rpm -qi 包名
# 查询所有已经安装的 RPM 包

选项

选项 备注
-q 查询包是否安装
-qa 查询所有已经安装的 RPM 包

RPM 查询软件包详细信息

rpm -qi 包名
rpm -qip 包全名
rpm -ql 包名
rpm -qf 系统文件名
# 查询系统文件属于哪个软件包(file)
rpm -qR 包名
# 查询软件包的依赖性(requires)

选项

选项 备注
-i 查询软件信息(information)
-p 查询未安装包信息(package)
-l 列表(list)
-f 查询系统文件属于哪个软件包(file)
-R 查询软件包的依赖性(requires)

RPM 包默认安装位置

路径 备注
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 程序所使用的函数库保存位置
/usr/share/doc/ 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置

RPM 包校验

rpm -V 已安装的包名
# 输出s.5....T. c /etc/httpd/conf/https.conf

选项

选项 备注
-V 校验指定 RPM 包中的文件(verify)

验证内容中的 8 个信息的具体内容如下

路径 备注
S 文件大小是否改变
M 文件的类型或文件的权限(rwx)是否改变
5 文件 MD5 校验和是否改变(可以看成文件内容是否改变)
D 设备的主从代码是否改变
L 文件路径是否改变
U 文件的属主(所有者)是否改变
G 文件的属组是否改变
T 文件的修改时间是否改变

文件类型

文件类型 备注
c 配置文件(config file)
d 普通文件(documentation)
g "鬼"文件(ghost file),很少见,就是该文件不应该被这个 RPM 包包含
L 授权文件(license file)
r 描述文件(read me)

RPM 包中文件提取

rpm2cpio 包全名 | cpio -idv .文件绝对路径

提取命令

命令 备注
rpm2cpio 将 rpm 包转换为 cpio 格式的命令
cpio 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
cpio 选项 < [文件|设备]

选项

选项 备注
-i copy-in 模式,还原
-d 还原时自动新建目录
-v 显示还原过程
rpm -qf /bin/ls
# 查询ls命令属于哪个软件包
mv /bin/ls /tmp/
# 造成ls命令误删除假象
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls
# 提取RPM包中ls命令到当前目录的/bin/ls下
cp /root/bin/ls /bin/
# 把ls命令复制到/bin/目录,修复文件丢失