Linux rpm管理

rpm管理

什么是rpm

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

为什么要学rpm

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

img

# 用tree的rpm包举例
tree-1.6.0-10.e17.x86_64.rpm
tree     # 软件名
1.6.0    # 版本名
10       # 发布次数
e17      # 使用系统版本 (CentOS7,RedHalt7) 向下兼容
x86_64   # 系统平台 64位 32位
rpm      # 包后缀名

Linux中软件的安装方式

分类 安装 版本
rpm包 已经编译好的源码包,下载好了之后,直接使用rpm命令管理 软件版本偏低
源码包 先手动编译,将源代码编译成系统能认识的软件,再去安装 软件版本随意
二进制包 解压即可使用, 安装简单(绿色软件:免安装) 不能修改源码

注意:不管是源码包还是二进制包,安装都有可能会有依赖包

RPM软件包的获取途径

1.RedHat光盘或官方网站 (通过挂载的方式访问)

2.RPM查询官网网站

3.Nginx软件官方网站

4.MySQL软件官方网站

光盘获取

img

光驱绿灯代表加载了本地光驱

# 挂载语法
mount 查看路径 目标路径(可以自己设定)
mount /dev/cdrom /mnt

# 查看挂载信息
df -h
/dev/sr0        4.3G  4.3G     0 100% /mnt

# 卸载挂载
umount 目标路径(挂载时的路径)
umount /mnt

# 卸载挂载的报错
[root@localhost /mnt/Packages]# 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))
# 报错原因:目前身处目标路径,会导致卸载不掉,目标正忙,离开目录即可

# 挂载光驱报错二:
mount:no medium found on /dev/sr0
# 报错原因:没有加载本地光驱,加载光驱就不会报错了

# 查看rpm包
ll /mnt/Packages
ll 挂载路径下的Packages

rpm命令的使用——安装

rpm [选项] rpm包名

rpm包名
    -本地包名 在系统的某个目录下
    -远程包名 不用下载,直接使用网站上的rpm包
    
# 选项
-i 安装
-v 显示过程
-h 显示安装的进度条
--test 仅测试,不安装
--force 强制安装
--nodeps 忽略依赖关系(忽略依赖包)
# --force --nodeps 正常得一起用

# 常用组合
rpm -ivh rpm包名

# 忽略依赖并强制安装
rpm -i --force --nodeps rpm包名

# iv
[root@localhost /mnt/Packages]# rpm -iv
tree-1.6.0-10.el7.x86_64.rpm
Preparing packages...
tree-1.6.0-10.el7.x86_64

# ivh
[root@localhost /mnt/Packages]# rpm -ivh
tree-1.6.0-10.el7.x86_64.rpm
Preparing...
################################# [100%]
Updating / installing...
1:tree-1.6.0-10.el7
################################# [100%]

# --test
rpm -ivh --test wget-1.14-18.el7.x86_64.rpm

# 依赖
[root@localhost /mnt/Packages]# rpm -i gcc-
4.8.5-36.el7.x86_64.rpm
error: Failed dependencies:
cpp = 4.8.5-36.el7 is needed by gcc-
4.8.5-36.el7.x86_64
glibc-devel >= 2.2.90-12 is needed by
gcc-4.8.5-36.el7.x86_64
libmpc.so.3()(64bit) is needed by gcc-
4.8.5-36.el7.x86_64
libmpfr.so.4()(64bit) is needed by gcc-
4.8.5-36.el7.x86_64

# 网上下载
rpm -ivh
https://mirrors.aliyun.com/zabbix/zabbix/5.
0/rhel/7/x86_64/zabbix-agent-5.0.1-
1.el7.x86_64.rpm

rpm命令使用——查询

# 语法
rpm 选项 rpm包名

# 选项
-q 查看指定的安装包是否安装
---------------------------# 分割线以下内容都要配合q使用
-a 全部安装过的包
-i 详细信息
-l 列出rpm包相关的配置文件和目录
-c 只查看该软件的包相关的配置文件
-d 只查看该软件的帮助文档文件
-f 反向查找,根据配置文件反向查找安装包
-----------------------------# 以下都需要配合上面选项使用
-p 查询未安装的包的相关信息

#查询vsftpd这个rpm包是否安装
[root@zls ~]# rpm -q vsftpd
 
#模糊查找系统已安装的rpm包
[root@zls ~]# rpm -qa |grep ftp
 
#查询vsftpd软件包的相关信息
[root@zls ~]# rpm -qi vsftpd
 
#查询rpm包所安装的文件
[root@zls ~]# rpm -ql vsftpd
 
#查询rpm包相关的配置文件
[root@zls ~]# rpm -qc vsftpd
 
#查询配置文件或命令来自于哪个rpm包
[root@zls ~]# rpm -qf /etc/vsftpd/vsftpd.conf
[root@zls ~]# rpm -qf /usr/sbin/vsftpd

rpm -qc grub2-pc-2.02-0.76.el7.centos.x86_64
rpm -ql grub2-pc-2.02-0.76.el7.centos.x86_64
rpm -qd grub2-pc-2.02-0.76.el7.centos.x86_64
rpm -qf /etc/grub2.cfg

-qip 查询没有安装过包的详细信息
[root@zls ~]# rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm

-qlp 查询没有安装的包会产生哪些文件
[root@zls ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
-qcp 查询没有安装的包会产生哪些配置文件
-qdp 查询没有安装的包会产生哪些帮助文件

#以上查询只能查询已存在 已安装的包,如果没有安装,需要联网查询
[root@db04 ~]# yum provides zip
[root@db04 ~]# yum provides */ifconfig
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base/filelists_db                                                                                                                                                                                                      | 6.4 MB     00:00
epel/filelists_db                                                                                                                                                                                                      | 7.9 MB     00:00
extras/filelists_db                                                                                                                                                                                                    |  24 kB     00:00
updates/filelists_db                                                                                                                                                                                                   | 3.6 MB     00:00
net-tools-1.60-114.el6.x86_64 : Basic networking tools
Repo        : base
Matched from:
Filename    : /sbin/ifconfig

rpm命令使用——升级

# 选项
-U update 升级,如果老版本不存在,则会安装新版本,如果老版本存在,会直接升级
-f 老版本必须存在

升级版本:
rpm -Uvh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

rpm命令使用——卸载

卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。

# 选项
-e 后面接需要卸载包名

# 操作流程
先查询, 然后卸载
[root@zls ~]# rpm -qa |grep sh
[root@zls ~]# rpm -e zsh

阿里源

网易镜像站

清华源

AWS 亚马逊

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇