【linux】循序渐进学运维-基础篇-rpm管理

本文是循序渐进学运维-基础篇的第41篇文章

今天我们来聊聊软件包的管理,软件包我们这里只说两种:

  • RPM包
  • yum包

###1. RPM包

1) RPM安装常用参数:

参数 作用
i 安装(Install)软件。
U 升级(Upgrade)旧版本的软件。
e 移除/删除(Erase)软件。
v 显示详细的处理信息。
h 显示安装进度。卸载不能用
a (all) 查询所有已安装的软件包
f (file)系统文件名(查询系统文件所属哪个软件包),反向查询
i 显示已经安装的rpm软件包信息,后面直接跟包名
l (list) 查询软件包中文件安装的位置
p 查询未安装软件包的相关信息,后面要跟软件的命名
R 查询软件包的依赖性

2) rpm获取方式:

  1. 系统镜像光盘
  2. 网站(阿里云分享的源)
  3. 相应软件的官网。

3) rpm格式:

[root@xinsz08-1 ~]# ls /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm 
/mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm

名称 作用
lrzsz 软件名字
-0 主版本号
12 次版本号
20 修订版本号
27 release 第几次发布版本
el6 操作系统
x86_64.rpm 软件包是64位的包

举例:

a. 从本地安装软件包
[root@xinsz08-1 ~]# rpm -ivh /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm 
warning: /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
        package lrzsz-0.12.20-27.1.el6.x86_64 is already installed
[root@xinsz08-1 ~]# 

b. 查询lrzsz的包有没有安装
[root@xinsz08-1 ~]# rpm -q lrzsz
lrzsz-0.12.20-27.1.el6.x86_64
c. 查看所有已经安装的包
[root@xinsz08-1 ~]# rpm -qa |wc -l
1135

d. 查询一个命令是哪个包安装的
[root@xinsz08-1 ~]# which rz
/usr/bin/rz
[root@xinsz08-1 ~]# rpm -qf /usr/bin/rz
lrzsz-0.12.20-27.1.el6.x86_64

e. 删除一个包使用-e参数
[root@xinsz08-1 ~]# rpm -e lrzsz
[root@xinsz08-1 ~]# rpm -ql lrzsz
[root@xinsz08-1 ~]# 

f. 如果有依赖加参数 --nodeps

[root@xinsz08-1 ~]# rpm -e lrzsz --nodeps

g. 升级软件包

rpm -Uvh /mnt/Packages/lrzsz-XXXX

rpm包校验

作用: 查看rpm是否被修改

参数:

选项 说明
-V 校验指定RPM包中的文件,若该软件所含的文件被改动过,才会列出来;
-Va 校验本机已经安装的所有软件包
-Vf 校验某个系统文件是否被修改

我们以httpd为例子,看看是否被改动过

[root@zmgaosh gaosh]# yum install httpd   安装httpd
[root@zmgaosh gaosh]# rpm -V httpd
[root@xinsz08-1 ~]# vim /etc/init.d/httpd  #6的系统
[root@xinsz08-1 ~]# vim /etc/init.d/httpd   #修改httpd文件
[root@xinsz08-1 ~]# rpm -V httpd
S.5....T.    /etc/rc.d/init.d/httpd

可以看到如果没有改动过,rpm -V没有任何的输出。如果改动了之后,就输出了内容

这里对输出的内容做一下解释:

字符 信息提示
S 文件大小已改变;
M 文件的类型或文件的权限(rwx)已改变;
5 文件 MD5 校验和是否改变(可以看成文件内容已改变);
D 设备的主从代码已改变;
L 文件路径已改变;
U 文件的属主(所有者)已改变;
G 文件的属组已改变;
T 文件的修改时间已改变;
P (caPabilities differ) 功能已被改变;

我们也可以修改httpd.conf 来看一下输出结果

[root@xinsz08-1 ~]# rpm -Vf /etc/httpd/conf/httpd.conf
S.5…T. c /etc/httpd/conf/httpd.conf

这里出现了个c, c在这里表示的是文件类型

其他类型如图:

字符 表示内容
c 配置文件
d 普通文档
l 授权文件
r 描述文件

总结:

rpm包的使用在日常工作中用到的也比较多,比如安装ELK,可以直接下载相应的RPM来安装,方便快捷。

我是高胜寒,一个在教培行业不忘初心的人. 欢迎点赞收藏,我们下篇文章再见!

猜你喜欢

转载自blog.csdn.net/xinshuzhan/article/details/106899800