Linux软件包管理rpm使用,超详细的例子

软件包管理

一 软件包介绍

与windows类似,在linux系统上也可以安装各种应用程 序,或称软件包,linux下软件包分为三类

分类安装特点
rpm包预先编译打包, 安装简单通常软件的稳定版会被官方做成rpm, 所以软件版本偏低
源码包手动编译打包, 安装繁琐软件版本丰富, 可选性强
二进制包解压即可使用, 安装简单不能修改源代码

二 rpm包管理

什么是rpm包

在主流的linux系统上,多数软件的安装、升级、移除以 及维护工作都是使用RPM软件包管理程序来完成的,那 什么是RPM软件包呢?

RPM 是Red-Hat Package Manager(RPM软件包管理 器)的缩写,这一文件格式名称虽然打上了RedHat的标 志,但是其原始设计理念是开放式的,通常软件的稳定版会 被官方做成rpm,所以软件版本偏低。

RPM包格式举例

mysql-connector-odbc-5.2.5-8.el7.x86_64.rpm


软件包名:mysql-connector-odbc
版本号Version:5.2.5
发布版本Release:8.el7
平台:el7.x86_64
后缀:.rpm


abrt-python-doc-2.1.11-57.el7.centos.noarch.rpm
abrt-python-doc #软件包的名称
2.1.11 #软件的版本
57     #软件编译之后的发布的次数
el7    #适合的操作系统的版本
noarch #适用于不同版本的CPU
.rpm   #后缀名

RPM闭包使用的平台

redhat/centos/redora/suse

查看自己当前平台

[root@laser ~]# uname -m
x86_64   # 平台
[root@laser ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)   # 版本

管理rpm包有两种命令

1、rpm命令:
	需要自己找到rpm包,并且手动解决包的依赖性关系
	ps:实际情况下,很难分辨缺少什么依赖包
	
2、yum命令:
	相关rpm包事先都被存放于一个仓库里,仓库包含了所有的依赖包,所以yum安装可以帮我们解决依赖性问题

RPM包获取

1.本地的ISO镜像光盘(软件包可能存在版本偏低情况)

获取镜像前需要先挂载硬盘

挂载镜像有以下三种方式

将光驱内的镜像文件挂在到/opt目录下
[root@laser ~]# mount /dev/sr0 /opt/
mount: /dev/sr0 写保护,将以只读方式挂载

[root@laser ~]# mount /dev/cdrom /opt/
mount: /dev/sr0 写保护,将以只读方式挂载

[root@laser ~]# mount -o loop /xxx.iso /opt

查看是否挂载成功 df -Th|grep opt

[root@laser ~]# df -Th|grep opt
/dev/sr0                iso9660   4.5G  4.5G     0  100% /opt
查询有证明挂载成功

查看光盘里的rpm包

[root@laser ~]# ls /opt/Packages/
很多系统提供的包, 可以进行安装也可以

2.自己去网上下载rpm包进行安装

3.联网从yum仓库里获取rpm包

三 rpm命令

选项

1、安装:rpm -ivh <RPM包名全称>
2、卸载:rpm -e <RPM包名>
3、升级:rpm -Uvh <RPM包名>
4、查询:
	rpm -qa #查询系统中安装的所有RPM软件包

检索系统中已经安装的有关ssh的软件包
[root@laser ~]# rpm -qa|grep ssh
openssh-server-7.4p1-21.el7.x86_64
libssh2-1.8.0-4.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64


rpm -q <RPM包名> #查询指定软件包是否已安装

可以是全名, 也可以是前面几个字符
[root@laser ~]# rpm -q tar
tar-1.26-35.el7.x86_64

rpm -qi <RPM包名> #查询系统中已安装包的描述信息, 不使用匹配方式
[root@laser ~]# rpm -qi openssh-7.4p1-21.el7.x86_64


rpm -ql <RPM包名> #查询系统中已安装包里所包含的文件, 显示路径
[root@laser ~]# rpm -ql openssh-7.4p1-21.el7.x86_64
/etc/ssh
/etc/ssh/moduli
/usr/bin/ssh-keygen
/usr/libexec/openssh


rpm -qc <RPM包名> #查询指定软件包的所有配置文件
[root@laser ~]# rpm -qc openssh-7.4p1-21.el7.x86_64
/etc/ssh/moduli

[root@laser ~]# rpm -qc httpd
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf

rpm -qd <RPM包名> # 查询某个包安装的帮助文档
[root@laser ~]# rpm -qd httpd
/usr/share/doc/httpd-2.4.6/ABOUT_APACHE
/usr/share/doc/httpd-2.4.6/CHANGES


rpm -qf 文件路径 #查询系统中指定文件所属的软件包
[root@laser ~]# rpm -qf httpd    没有给定目录, 需要给绝对路径
错误:文件 /root/httpd:没有那个文件或目录
[root@laser ~]# rpm -qf /bin/yum
yum-3.4.3-168.el7.centos.noarch


在上述选项的基础上加选项-p,就可以查看尚未安装的rpm包信息
[root@laser ~]# rpm -qip /opt/Packages/iptables-1.4.21-34.el7.x86_64.rpm 
Name        : iptables
Version     : 1.4.21
Release     : 34.el7
Architecture: x86_64
...

显示路径
[root@laser ~]# rpm -qlp /opt/Packages/iptables-1.4.21-34.el7.x86_64.rpm 
所有配置文件
[root@laser ~]# rpm -qcp /opt/Packages/iptables-1.4.21-34.el7.x86_64.rpm 
帮助文档
[root@laser ~]# rpm -qdp /opt/Packages/iptables-1.4.21-34.el7.x86_64.rpm 


额外选项
--nomd5 # 不检验软件包的签名,也就是下载完成后不检验md5值
--nodeps # 忽略依赖性安装软件,安装后软件有可能无法使用,最好是解决依赖性后再安装
[root@laser ~]# rpm -e dosfstools 
错误:依赖检测失败:
	dosfstools 被 (已安裝) udisks2-2.8.4-1.el7.x86_64 需要
	dosfstools 被 (已安裝) python-blivet-1:0.61.15.76-1.el7_9.noarch 需要
[root@laser ~]# rpm -e dosfstools --nodeps


--force # 强制安装软件包,只有安装和升级可以强制执行
安装
1. 镜像挂载
2. 安装需要的rpm包
			   命令  执行方式  执行安装文件
[root@laser ~]# rpm -ivh /opt/Packages/iptables-1.4.21-34.el7.x86_64.rpm 
	rpm方式安装iptables-1.4.21-34.el7.x86_64.rpm 软件包
	
	
rpm来自于网络,如果安装过程中报错:curl: (60)Peer's Certificate has expired,请先将系统时间修改正确,然后再安装即可
rpm -ivh
[root@laser ~]# https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm

rpm方式安装网络zabbix-agent软件包

安装与依赖性

[root@laser ~]# rpm -ivh /opt/Packages/httpd-2.4.6-93.el7.centos.x86_64.rpm 
错误:依赖检测失败:
	httpd-tools = 2.4.6-93.el7.centos 被 httpd-2.4.6-93.el7.centos.x86_64 需要

根据提示一个个安装即可


[root@laser ~]# yum search mime.types
查看匹配, 查看mime.types有匹配对象
后再进行安装即可

升级rpm包

1、下载一个低版本、一个高版本
先安装低版本, 然后使用rpm迭代方式进行升级
版本1: 3.0.9
wget https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm

版本2: 4.2.0
wget https://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.0-1.el7.x86_64.rpm


2、先安装低版本
[root@laser ~]# rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm

3、再安装高版本,会报错
[root@laser ~]# rpm -ivh zabbix-agent-4.2.0-1.el7.x86_64.rpm

4、如果采用--force选项,那就是强制安装,会同时存在两个版本,该方案不可取
[root@laser ~]# rpm -qa |grep zabbix # 同时两个版本共存
zabbix-agent-3.0.9-1.el7.x86_64
zabbix-agent-4.2.0-1.el7.x86_64

5、重来,采用升级方式安装
	将之前安装的全部删除, 删除需要使用yum删除, 否则不会删除依赖包
	
查询卸载是否成功
[root@laser ~]# rpm -qa |grep zabbix

6. 进行安装低版本包
[root@laser ~]# rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm

7 使用升级方式安装下载好的高版本软件包
[root@egon ~]# rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm

只留下一个新版本,。清理老版本,安装新版本。。再次查询安装的rpm软件包信息,留下最新版本
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值