day7.3
day7.3
RPM包管理
rpm概述
# 什么是rpm包?
由红帽开发的升级、安装、卸载、查询工具
# 为什么要使用RPM?
我们在linux上需要安装软件,软件包的种类也有很多,但是最方便,最简单,最简易,速度最快的,也就是RPM包了
RPM命名规则
# [root@28technicians ~]# rpm -q tree
tree-1.6.0-10.el7.x86_64.rpm
tree:软件名称
1.6.0:版本号
10:该版本的发布次数
e17:适用于系统版本(centos7)向下兼容
x86_64:系统平台
rpm:后缀名
linux中软件的安装方式
分类 | 安装 | 版本 |
---|---|---|
rmp包 | 已经编译好的源码包,下载下来后,直接使用rpm命令安装即可 | 版本会低于官方版本 |
源码包 | 先编译,将源代码翻译成系统认识的软件,在安装 | 步骤复杂繁琐 |
二进制包 | 绿色软件(免安装) | 不会所有程序都会有二进制包 |
rpm包获取途径
# 挂载语法
mount 原设备文件 目标路径
# 举例1.
[root@28technicians ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mou
# 查看磁盘信息
df -h:查看磁盘分区情况,磁盘使用情况,也能看到挂载设备及目录
# 举例2
[root@28technicians ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.7G 17G 9% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 119M 355M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
# 卸载语法
umout 目标路径
# 卸载报错
[root@28technicians mnt]# umount /mnt
umount: /mnt: target is busy.
(In some cases useful info about processes that use the device is found by lsof(8)
原因:设备繁忙
# 查看挂载语法
先挂载
[root@28technicians ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
查看
[root@28technicians ~]# 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
rpm命令使用-安装
# 语法
rpm [选项] rpm包名
rpm包名:
-本地包名:在系统中某个目录下的rpm包
-远程包名:不用下载,直接使用网站上的rpm包
# 选项
-i:安装
-v:显示安装过程
-h:显示安装进度条
--test:仅测试,不安装
--force:强制安装
--nodepsL:忽略依赖关系
# 举例
# -i
删除tree程序包
[root@28technicians ~]# yum remove tree -y
[root@28technicians ~]# rpm -i /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
# -v
[root@28technicians ~]# 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@28technicians ~]# 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@28technicians ~]# rpm -ivh --test /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
Preparing... ################################# [100%]
# --force --nodeps
[root@28technicians ~]# rpm -ivh --force --nodeps /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:tree-1.6.0-10.el7 ################################# [100%]
# 注意
'rmp包的缺点,无法解决依赖关系'
rpm命令使用-查询
# 语法
rpm [选项] rpm包名
# 选项
-q:查看指定的安装包是否安装
'以下选项皆要配合-q使用'
-a:全部安装过的包
-i:详细信息
-l:列出rpm包先关的配置文件和目录
-c:只查看该软件包相关的配置文件
-d:只查看该软件的帮助文档文件
-r:方向查找,根据配置文件,目录,帮助文档,查找该文件属于哪个包
--scripts:查看安装包,安装之前之后,和卸载之前之后要执行的脚本
# 举例
-q
已安装
[root@28technicians ~]# rpm -q vim-common
vim-common-7.4.629-8.el7_9.x86_64
未安装
[root@28technicians ~]# rpm -q tree
package tree is not installed
-q -a
查找安装过包有net的包名
[root@28technicians ~]# rpm -qa|grep 'net'
net-tools-2.0-0.25.20131004git.el7.x86_64
libnfnetlink-1.0.1-4.el7.x86_64
libnetfilter_conntrack-1.0.6-1.el7_3.x86_64
libdnet-1.12-13.1.el7.x86_64
dracut-network-033-554.el7.x86_64
-q -i (命令组合使用)
[root@28technicians ~]# rpm -qi `rpm -qa|grep 'net'`
-q -l
[root@28technicians ~]# rpm -ql zip
/usr/bin/zip
/usr/bin/zipcloak
/usr/bin/zipnote
/usr/bin/zipsplit
/usr/share/doc/zip-3.0
/usr/share/doc/zip-3.0/CHANGES
/usr/share/doc/zip-3.0/LICENSE
/usr/share/doc/zip-3.0/README
/usr/share/doc/zip-3.0/README.CR
/usr/share/doc/zip-3.0/TODO
/usr/share/doc/zip-3.0/WHATSNEW
/usr/share/doc/zip-3.0/WHERE
/usr/share/doc/zip-3.0/algorith.txt
/usr/share/man/man1/zip.1.gz
/usr/share/man/man1/zipcloak.1.gz
/usr/share/man/man1/zipnote.1.gz
/usr/share/man/man1/zipsplit.1.gz
-q -c
查看软件包相关配置文件
[root@28technicians ~]# rpm -qc mariadb
/etc/my.cnf.d/client.cnf
-q -d
只查看该软件的帮助文档文件
[root@28technicians ~]# rpm -qd mariadb
/usr/share/doc/mariadb-5.5.68/COPYING
/usr/share/doc/mariadb-5.5.68/COPYING.Google
/usr/share/doc/mariadb-5.5.68/COPYING.Percona
-q -f
方向查找,查找文件属于哪个包
[root@28technicians ~]# rpm -qf /etc/hostname
systemd-219-62.el7.x86_64
--scritpts:
[root@28technicians ~]# rpm -q --scripts mariadb-server
【推荐】国内首个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代理技术深度解析与实战指南