linux基本功系列之-rpm命令实战

简介: linux基本功系列之-rpm命令实战

@[toc]

前言🚀🚀🚀

想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 知识最重要的是记忆
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

一. rpm命令介绍

1.1 RPM包介绍

RPM 全名 RedHat Package Managerment,是由Red Hat公司提出,被众多Linux发行版本所采用,是一种数据库记录的方式来将所需要的软件安装到到Linux系统的一套软件管理机制。

它会建立统一的数据库文件,详细记录软件包安装 、卸载等变化信息,能够自动分析软件包依赖关系。

最大的特点就是将你要安装的软件先编译过,并且打包成为 RPM 机制的文件,通过打包好的软件里面默认的数据库,记录这个软件要安装的时候必须具备的依赖属性软件

当在你的 Linux 主机安装时,RPM 会先依照软件里面的数据查询Linux 主机的依赖属性软件是否满足,若满足则子以安装,若不满足则不子安装。

1.2 rpm包的优缺点

优点:

  • 由于已经编译完成井且打包完华,所以软件传输与安装上很方便(不需要再重新编译);
  • RPM 在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装;
  • RPM 本身提供软件版本信息、依赖属性检查、软件用途说明、软件所含文件等信息,便于了解软件;
  • RPM 管理使用数据库记录RPM文件的相关参数,便于查询、删除、升级与反安装。

    缺点:

    由于 RPM 文件是已经打包好的数据,也就是说,里面的数据已经都编译完成了,所以,该软件安装文件几乎只能安装在原本默认的硬件与操作系统版本中。

这意味着你的主机系统环境必须要与当初建立这个软件安装文件的主机环境相同才行。

1.3 rpm包获取方式

有三种常用的rpm包获取渠道:

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

比如阿里的镜像站,如图

在这里插入图片描述

再比如zabbix提供的zabbix源,如下图:
在这里插入图片描述

二. 语法格式及常用选项

2.1 RPM安装常用参数

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

2.2 rpm格式介绍

[root@mufeng ~]# 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

rpm包,每一段所包含的意思如下:

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

三. 应用案例

3.1 从本地安装软件包

案例一: 安装上传下载命令rz

rz命令我们在上传和下载中用的最为广泛。

这里使用的是 -ivh,其中v是详细详细信息, h是查看安装进度。如果我们不使用vh也一样可以安装。

[root@mufeng ~]# 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 ~]# 

案例二: 只使用i进行安装

[root@mufenggrow ~]# rpm -i /mnt/Packages/http-parser-2.7.1-5.el7_4.x86_64.rpm 
警告:/mnt/Packages/http-parser-2.7.1-5.el7_4.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY

案例三: 使用ih能够查看到进度

[root@mufenggrow ~]# rpm -ih /mnt/Packages/zsh-5.0.2-31.el7.x86_64.rpm 
警告:/mnt/Packages/zsh-5.0.2-31.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
################################# [100%]
正在升级/安装...
################################# [100%]
[root@mufenggrow ~]# 

3.2 查询lrzsz的包有没有安装

-q xxx 列出xxx的安装信息
-qa xxx 列出包含 xxx 字段的软件信息

一个是完全匹配,一个是不完全匹配。

[root@mufeng ~]# rpm -q lrzsz
lrzsz-0.12.20-27.1.el6.x86_64

[root@mufenggrow ~]# rpm -qa |grep httpd
httpd-tools-2.4.6-97.el7.centos.5.x86_64
httpd-2.4.6-97.el7.centos.5.x86_64
[root@mufenggrow ~]# 

查看所有已经安装的包

[root@mufeng ~]# rpm -qa |wc -l
1135

3.3 查询命令是哪个包安装的

查询一个命令是哪个软件包安装的,需要用到-qf参数

[root@mufeng ~]# which rz
/usr/bin/rz
[root@mufeng ~]# rpm -qf /usr/bin/rz
lrzsz-0.12.20-27.1.el6.x86_64

3.4 查询一个软件包的详细信息

这时候可以使用pqi的参数
-i,--info:查询程序包相关的信息,包含版本、信息、时间等等

[root@mufenggrow ~]# rpm -qpi /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm 
Name        : lrzsz
Version     : 0.12.20
Release     : 36.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Communications
Size        : 184846
License     : GPLv2+
Signature   : RSA/SHA256, 2014年07月04日 星期五 11时35分32秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : lrzsz-0.12.20-36.el7.src.rpm
Build Date  : 2014年06月10日 星期二 07时29分11秒
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.ohse.de/uwe/software/lrzsz.html
Summary     : The lrz and lsz modem communications programs
Description :
Lrzsz (consisting of lrz and lsz) is a cosmetically modified
zmodem/ymodem/xmodem package built from the public-domain version of
the rzsz package. Lrzsz was created to provide a working GNU
copylefted Zmodem solution for Linux systems.

可以看到与软件包所有相关的参数,比如软件包名字,版本号,大小等等

3.4 删除软件包

删除软件包使用-e参数

[root@mufeng ~]# rpm -e lrzsz
[root@mufeng ~]# rpm -ql lrzsz

如果有依赖加参数 --nodeps
加上 --nodeps相当于强制删除

[root@mufeng ~]# rpm -e lrzsz --nodeps

3.5 升级软件包

rpm -Uvh zsh-5.0.2-14.el7.x86_64.rpm
参数 描述
-U 升级或者安装
-F 单纯的升级,如果之前没有rpm包将无法升级
--test 测试安装,检查并报告完成 --> rpm -Uvh --test PACKAGE_FILE
--force 强制升级(不建议使用)

注意:
(1)不要对内核做升级操作,Liunx支持多内核并存,直接安装新版本

(2) 如果源程序包的配置文件安装后曾修改过,升级时,新版本的程序提供的同一配置文件不会覆盖原有版本文件,而重命名为(FILENAME,rpmnew)

3.6 rpm包校验

作用: 查看rpm是否被修改

参数:

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

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

[root@mufeng]# yum install httpd   
#安装httpd
[root@mufeng]# rpm -V httpd
[root@mufeng ~]# vim /etc/init.d/httpd  
#6的系统
[root@mufeng ~]# vim /etc/init.d/httpd  
 #修改httpd文件
[root@mufeng~]# 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@mufeng ~]# rpm -Vf /etc/httpd/conf/httpd.conf
S.5....T. c /etc/httpd/conf/httpd.conf

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

其他类型如图:

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

总结

rpm安装和卸载十分简单,但查询所用的参数比较多,容易混乱,这里再总结下关于查询的命令:

  • rpm -qpi httpd 查询未安装包的详细信息
  • rpm -qi httpd 查看程序包的相关信息
  • rpm -ql httpd 查看程序包安装产生的文件列表
  • rpm -qc zsh 查看程序包的配置文件
  • rpm -qd zsh 查看程序包提供的文档信息
  • rpm -qR zsh 查询程序包依赖的包
  • rpm -Vf 查看命令是否被改动过

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述

相关文章
|
10天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
93 6
|
11天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
47 3
|
11天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
37 2
|
6天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
34 3
|
11天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
44 3
|
14天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
49 6
|
15天前
|
缓存 网络协议 Linux
Linux ip命令常用操作
Linux的 `ip`命令是一个强大且灵活的网络管理工具,能够执行从基本的网络接口配置到高级的路由和VLAN管理等多种操作。通过熟练掌握这些常用操作,用户可以更加高效地管理和配置Linux系统的网络环境。无论是在日常管理还是故障排除中,`ip`命令都是必不可少的工具。
16 2
|
12天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
79 0
|
Linux 开发工具 数据安全/隐私保护
阿里云linux实战体验报告
通过阿里云 linux 实战教学体验提升自我
145 1
|
19天前
|
缓存 监控 Linux
下一篇
无影云桌面