Linux 笔记分享十三:RPM 命令管理

一、RPM包命令规则

1、关于光盘中rpm包的位置

Linux安装光盘基本以rpm包进行系统安装

  • 位置
/mnt/cdrom/Packages

2、命令规则

httpd-2.2.15-15.el6.centos.i686.rpm

httpd: 软件包名

2.2.15: 软件版本

15: 软件发布次数

el6.centos: 适合的Linux平台

i686: 适合的硬件平台

rpm: rpm扩展名

3、RPM包的依赖性

  • 树形依赖: a->b->c

安装顺序,c->b->a

  • 环形依赖:a->b->c->a

安装方法,把a、b、c全部放到一个shell命令中安装

  • 模块依赖

就是一个rpm包依赖另一个rpm包里面的某个文件

不知道另一个rpm包叫什么哦

想知道另一个rpm包叫什么,查下面的网站

www.rpmfind.net

二、RPM安装命令

1、包全名和包名

  • 包全名

操作的包是没有安装的软件包时,使用包全名。而且要注意路径

  • 包名

操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库

2、安装

rpm -ivh 包全名
  • 选项

-i: 安装

-v: 显示详细信息

-h: 显示进度

  • 操蛋

rpm安装真尼玛扯,打死也不用

虽然用yum代替rpm安装挺好,但是没有查询和校验命令,所以rpm还是有存在理由的

yum是rpm的在线安装,解决了依赖问题

三、升级与卸载

1、升级

rpm -Uvh 包全名
  • 选项

-U: 升级

其实和安装没什么区别

2、卸载

rpm -e 包名
  • 选项

-e: 卸载

  • 注意

这时候打包名,就不需要路径了

卸载也需要依赖性

四、RPM包查询

1、查询包是否安装

rpm -q 包名

2、查询所有已经安装的rpm包

rpm -qa

例如:

rpm -qa | grep httpd

3、查询安装包的详细信息

rpm -qi 包名

4、查询未安装包的详细信息

rpm -qip 包全名

5、查询包中文件的位置

rpm -ql 包名

6、RPM包默认安装位置

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

7、查询未安装包将要安装的位置

rpm -qlp 包全名

8、查询系统某个文件属于哪个rpm包

rpm -qf 系统文件名

9、查询安装包的依赖

rpm -qR 包名

10、查询未安装包的依赖

rpm -qRp 包全名

五、RPM包校验

1、校验

rpm -V 包名

例如:

rpm -V httpd
  • 关于返回格式

httpd的配置文件被修改时的返回格式

S.5....T.  c  /etc/httpd/conf/httpd.conf
  • S.5....T.的含义

S: 文件大小是否被改变

M: 文件类型或文件的权限是否被改变

5: 文件MD5校验是否有改变(可以看成文件内容是否改变)

D: 设备主从代码是否改变

L: 文件路径是否改变

U: 文件的属主(所有者)是否改变

G: 文件的属组是否被改变

T: 文件的修改时间是否改变

  • c的含义

c: 配置文件

d: 普通文件

g: 鬼文件,很少见,就是该文件不应该被包含在rpm包中

L: 授权文件

r: 描述文件

2、RPM包中文件提取

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

rpm2cpio: 将rpm包转换为cpio格式的命令

cpio: 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件

3、cpio

cpio 选项 < [文件|设备]
  • 选项

-i: copy-in模式,还原

-d: 还原时自动建立目录

-v: 显示还原过程

4、一个场景,假设ls命令不小心删掉了

  • 第一、在其它系统中,查ls属于哪个包
rpm -qf /bin/ls
  • 第二、提取文件(在家目录中提取)
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls
  • 第三步、在家目录下把文件放入原位置
cp /root/bin/ls /bin/
本作品采用《CC 协议》,转载必须注明作者和本文链接
时空扭曲, 到底长啥样.
讨论数量: 1

:+1: :grin:

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!