rpm包管理


什么是rpm包

RPM全称 RPM Package Manager 缩写,由红帽开发用于软件包的安装,升级卸载与查询


为什么要学rpm

就像在windows系统中一样,如果你想要安装一个 QQ ,安装一个 微信 ,安装一款 游戏 ,首先要去该软件的官网上去下载相关的软件包,通常都是 .exe 的安装包。还有那种绿色软件包,一下载下来,解压开就能使用无需安装。那么Linux中也有很多种类的安装包,我们在Linux上也需要安装软件,软件包的种类也有很多,但是最方便,最简单,最简易,速度最快的,也就是 rpm 包了。RPM包长啥样呢?

image-20240421160234174


Liunx中的软件包类型

分类 安装 版本
rpm包(需要安装) 预先编译打包,安装简单 软件版本偏低
源码包(需要编译、安装) 手动编译打包,安装繁琐 软件版本较新
二进制包(绿色免安装) 解压即可用 版本跟官方保持一致,不能修改源码

!! --- 注意: 不管是源码包,还是rpm包,安装时都可能会有依赖关系!


如何获取rpm包

1.RedHat光盘或官方网站 (通过挂载的方式访问)
[root@moban ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
 /mnt/Packages/下存放都是系统带的安装包

image-20240421161135592

2.RPM包官网 http://rpmfind.net/
以后报错中,libCHARSET3-samba4.so .so结尾的文件不存在,需要安装,不知道输入哪个RPM包,去RPM
官网查询即可

image-20240421161431812

image-20240421161554956

# 各大镜像站(yum仓库,yum源):
阿里云:https://developer.aliyun.com/mirror/
网易镜像站:https://mirrors.163.com/
华为源:https://mirrors.huaweicloud.com/
清华源:https://mirrors.tuna.tsinghua.edu.cn/
中科大:https://mirrors.ustc.edu.cn/

RPM包管理

选项i 作业
i 安装
v 显示过程
h 显示进度条
q 查询安装
qa 查询系统内所有安装过的包
ql 查询软件安装后,配置文件、帮助文档、程序....的所在目录
qc 查询软件安装后配置文件
qi 查看详细信息
qf 逆向查询根据文件名去查找是哪一个软件创建的文件
qd 查看帮助文档所在位置
qip 可以查看未安装的包详细信息
qlp 可以查看未安装的包详细信息,安装后会产生哪些文件
e 卸载
-U 升级(老版本不在就全新安装)
--test 测试能否安装
--force 强制安装
--nodeps 忽略依赖关系
-f 升级(老版本必须在)
# 安装
[root@ldcentos7 Packages]# rpm -ivh zip-3.0-11.el7.x86_64.rpm
Preparing...                          ################################# [100%]
        package zip-3.0-11.el7.x86_64 is already install
#  查询已安装
[root@ldcentos7 Packages]# rpm -qa|grep tree
tree-1.6.0-10.el7.x86_64
# 查询软件安装后,配置文件、帮助文档、程序....的所在目录
[root@ldcentos7 Packages]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
# 查询软件安装后配置文件
[root@ldcentos7 Packages]# rpm -qc tree
## 查看详细信息
[root@ldcentos7 Packages]# rpm -qi tree
Name        : tree
Version     : 1.6.0
Release     : 10.el7
Architecture: x86_64
Install Date: Sun 21 Apr 2024 04:27:59 AM EDT
Group       : Applications/File
Size        : 89505
License     : GPLv2+
Signature   : RSA/SHA256, Fri 04 Jul 2014 01:36:46 AM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM  : tree-1.6.0-10.el7.src.rpm
Build Date  : Mon 09 Jun 2014 03:28:53 PM EDT
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://mama.indstate.edu/users/ice/tree/
Summary     : File system tree viewer
Description :
The tree utility recursively displays the contents of directories in a
tree-like format.  Tree is basically a UNIX port of the DOS tree
utility.
## 逆向查询根据文件名去查找是哪一个软件创建的文件
[root@ldcentos7 Packages]# rpm -qf /bin/vim
vim-enhanced-7.4.629-8.el7_9.x86_64
## 查看帮助文档所在位置
[root@ldcentos7 Packages]# rpm -qd tree
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
## 查看未安装的包详细信息  -
[root@ldcentos7 Packages]# rpm -qip net-tools-2.0-0.25.20131004git.el7.x86_64.rpm 
Name        : net-tools
Version     : 2.0
Release     : 0.25.20131004git.el7
Architecture: x86_64
Install Date: (not installed)
Group       : System Environment/Base
Size        : 938978
License     : GPLv2+
Signature   : RSA/SHA256, Thu 22 Aug 2019 05:36:04 PM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM  : net-tools-2.0-0.25.20131004git.el7.src.rpm
Build Date  : Thu 08 Aug 2019 09:10:26 PM EDT
Build Host  : x86-02.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://sourceforge.net/projects/net-tools/
Summary     : Basic networking tools
Description :
The net-tools package contains basic networking tools,
including ifconfig, netstat, route, and others.
Most of them are obsolete. For replacement check iproute package.
## 查看未安装的包详细信息,安装后会产生哪些文件
[root@ldcentos7 Packages]# rpm -qlp net-tools-2.0-0.25.20131004git.el7.x86_64.rpm 
/bin/netstat
/sbin/arp
/sbin/ether-wake
/sbin/ifconfig
/sbin/ipmaddr
/sbin/iptunnel
/sbin/mii-diag
/sbin/mii-tool
/sbin/nameif
/sbin/plipconfig
/sbin/route
/sbin/slattach
/usr/lib/systemd/system/arp-ethers.service
## 卸载 
rpm -e tree
## 升级
rpm -U rpm包