RPM包管理
RPM包管理
RPM包概述
什么是RPM包
是由红帽开发的软件升级,安装卸载查询工具
为什么要使用rpm
就像在windows系统中一样,如果你想要安装一个QQ,安装一个微信,安装一款游戏,首先要去该软件的官网上去
下载相关的软件包,通常都是.exe的安装包。还有那种绿色软件包,一下载下来,解压开就能使用无需安装。
那么Linux中也有很多种类的安装包,我们在Linux上也需要安装软件,软件包的种类也有很多,但是最方便,最简
单,最简易,速度最快的,也就是rpm包了。
rpm包命名规则
# tree-1.6.0-10.el7.x86_64.rpm
tree:软件名称
1.6.0:版本号
10:该版本发布的次数
el7:适用系统版本(RedHat7,CentOS7)向下兼容
x86_64:系统平台 64 x86:32位 i386
rpm:包后缀名
Linux中软件的安装方式
rpm安装:已经编译好的源码包,下载下来后,直接用rpm命令安装即可 版本会低于官方版本
源码安装:先编译,将源代码翻译成系统认识的软件,在安装 步骤复杂繁琐
二进制安装:绿色软件(免安装) 不是所以程序都有二进制包
rpm包获取途径
- 系统光盘镜像/CentOS官网:[TP](CentOS Mirror)
1.检查光盘是否放入光驱
# 挂载语法
mount 源设备文件 目标路径
✓ 10:51:45 root@localhost.localdomain,10.0.0.167:~ # mount /dev/cdrom /mnt
# 查看磁盘信息
df -h 查看磁盘分区情况,磁盘使用情况,也能查看到挂载设备及目录
15:48:21 root@localhost.localdomain,10.0.0.167:~ # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.4G 18G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt
# 卸载语法
umount 目标路径
15:48:24 root@localhost.localdomain,10.0.0.167:~ # umount /mnt
# 挂载报错
15:48:24 root@localhost.localdomain,10.0.0.167:~ # mount /dev/cdrom /mnt
mount: no medium found on /dev/sr0
原因:设备文件是空的,里面没有任何内容,光驱没有连接
# 卸载报错
15:51:06 root@localhost.localdomain,10.0.0.167:~ # cd /mnt/
0 ✓ 15:51:16 root@localhost.localdomain,10.0.0.167:/mnt # umount /mnt/
umount: /mnt: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
原因:设备繁忙
# 查看挂载结果
15:49:33 root@localhost.localdomain,10.0.0.167:~ # mount /dev/cdrom /mnt
15:52:25 root@localhost.localdomain,10.0.0.167:~ # ll /mnt/
total 686
-rw-rw-r--. 1 root root 14 Nov 26 2018 CentOS_BuildTag
drwxr-xr-x. 3 root root 2048 Nov 26 2018 EFI
-rw-rw-r--. 1 root root 227 Aug 30 2017 EULA
-rw-rw-r--. 1 root root 18009 Dec 10 2015 GPL
drwxr-xr-x. 3 root root 2048 Nov 26 2018 images
drwxr-xr-x. 2 root root 2048 Nov 26 2018 isolinux
drwxr-xr-x. 2 root root 2048 Nov 26 2018 LiveOS
drwxrwxr-x. 2 root root 663552 Nov 26 2018 Packages
drwxrwxr-x. 2 root root 4096 Nov 26 2018 repodata
-rw-rw-r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root 2883 Nov 26 2018 TRANS.TBL
root@localhost.localdomain,10.0.0.167:~ # ll /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
-rw-rw-r--. 1 root root 47508 Jul 4 2014 /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
- rpm包查询官方网站:[TP](Rpmfind mirror)
- 其他软件官方网站
rpm命令使用安装
# 语法
rpm [选项] rpm包名
rpm包名:
-本地包名:在系统中某个目录的rpm包
-远程包名:不用下载,直接使用网站上的rpm包
# 卸载命令
yum remove y tree -y
# 选项
-i:安装
-v:显示安装过程
-h:显示安装进度
--test:仅测试不安装
--force:强制安装
--nodeps:忽略依赖关系
# 举例
-i
root@localhost.localdomain,10.0.0.167:~ # rpm -i /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
-v
root@localhost.localdomain,10.0.0.167:~ # rpm -iv /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
Preparing packages...
tree-1.6.0-10.el7.x86_64
-h
root@localhost.localdomain,10.0.0.167:~ # rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:tree-1.6.0-10.el7 ################################# [100%]
--test
root@localhost.localdomain,10.0.0.167:~ # rpm -ivh --test /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
Preparing... ################################# [100%]
--force --nodeps
[root@localhost Packages]# rpm -ivh --force --nodeps samba-4.8.3-4.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:samba-0:4.8.3-4.el7 ################################# [100%]
# 注意:rpm命令管理rpm包的缺点,无法解决依赖关系
https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/Packages/zip-3.0-11.el7.x86_64.rpm
rpm命令使用-查询
# 语法
rpm [选项] rpm包名
# 选项
-q:查看指定的安装包是否安装
--- 以下选项皆要配合-q使用 ---
-a:全部安装过的包
-i:详细信息
-l:列出rpm包相关的配置文件和目录
-c:只查看该软件包相关的配置文件
-d:只查看该软件的帮助文档文件
-f:反向查找,根据配置文件,目录,帮助文档,查找该文件属于哪个包
--scripts:查看安装包,安装之前之后,和卸载之前之后要执行的脚本
# 举例
-q
16:18:16 root@localhost.localdomain,10.0.0.167:~ # rpm -q tree
tree-1.6.0-10.el7.x86_64
16:22:06 root@localhost.localdomain,10.0.0.167:~ # rpm -q vim-common
package vim-common is not installed
-q -a
root@localhost.localdomain,10.0.0.167:~ # rpm -qa|grep 'tree'
-q -i
16:22:36 root@localhost.localdomain,10.0.0.167:~ # rpm -qi `rpm -qa|grep 'tree'`
-q -l
16:25:05 root@localhost.localdomain,10.0.0.167:~ # 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
镜像站地址
1.阿里云镜像站:[tp](阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com))
2.网易镜像站:[tp](欢迎访问网易开源镜像站 (163.com))
3.清华源:[tp](清华大学开源软件镜像站 | Tsinghua Open Source Mirror)
4.中科大源:[tp](USTC Open Source Software Mirror)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南