软件包管理

本文详细介绍了Linux系统中的软件包管理,重点讨论了RPM包和YUM管理工具的使用。内容包括RPM包的定义、功能和类型,RPM命令的查询、安装与升级操作,以及YUM的依赖关系解决和源的配置。此外,还涵盖了如何创建本地YUM源、使用开源网络源,以及源码包的编译安装流程。
摘要由CSDN通过智能技术生成

一.软件包介绍

与windows类似,在linux系统上也可以安装各种应用程序,或称软件包,linux下软件包分为三类
在这里插入图片描述

二.rpm包管理

1.什么是rpm包

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

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

rpm包格式
RPM包格式举例

# 例1
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
# 例2
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@localhost ~]# uname -m
x86_64
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

管理rpm包有两种命令

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

RPM包获取

# 1.本地的ISO镜像光盘(软件包可能存在版本偏低情况): 挂载镜像有以下三种方式
方式1:
[root@localhost ~]# mount /dev/cdrom /opt/
#将光驱内的镜像文件挂在到/opt目录下
方式2:
[root@localhost ~]# mount /dev/sr0 /opt/  #将光驱内的镜像文件挂在到/opt目录下
方式3
[root@localhost ~]# mount -o loop /xxx.iso/opt  #将光驱内的镜像文件挂在到/opt目录下
查看光盘里的rpm包
[root@localhost ~]# ls /opt/Packages/
# 2.自己去网上下载rpm包进行安装
# 3.联网从yum仓库里获取rpm包
# yum的时候

三.rpm命令

选项
在这里插入图片描述
如何查询已经安装好的rpm包
在这里插入图片描述

#1、安装:rpm -ivh <RPM包名全称>
#2、卸载:rpm -e <RPM包名>
#3、升级:rpm -Uvh <RPM包名>
#4、查询:
rpm -qa #查询系统中安装的所有RPM软件包
[root@egon ~]#rpm -qa|grep ssh
#检索系统中已经安装的有关ssh的软件包
rpm -qa | grep php

#检索系统中已经安装有关php的软件包
rpm -q <RPM包名> #查询指定软件包是否已安装
[root@egon ~]# rpm -q zip
zip-3.0-11.el7.x86_64
[root@egon ~]#rpm -q openssh-7.4p1-
21.el7.x86_64
rpm -qi <RPM包名> #查询系统中已安装包的描述信息
[root@egon ~]#rpm -qi rpm -q openssh-7.4p1-21.el7.x86_64
rpm -ql <RPM包名> #查询系统中已安装包里所包含的文件
[root@egon ~]#rpm -ql openssh-7.4p1-
21.el7.x86_64
rpm -qc <RPM包名> #查询指定软件包的所有配置文件
[root@egon ~]# rpm -qc mariadb
/etc/my.cnf.d/client.cnf
[root@egon ~]#rpm -qc openssh-7.4p1-
21.el7.x86_64
rpm -qd <RPM包名> # 查询某个包安装的帮助文档
[root@egon ~]# rpm -qd zlib
rpm -qf 文件路径 #查询系统中指定文件所属的软件包
[root@egon ~]# rpm -qf /usr/sbin/iptables
iptables-1.4.21-35.el7.x86_64
-p # 在上述选项的基础上加选项-p,就可以查看尚未安装的rpm包信息
[root@localhost ~]# rpm -qip /opt/Packages/iptables-1.4.21-35.el7.x86_64.rpm
[root@localhost ~]# rpm -qlp /opt/Packages/iptables-1.4.21-35.el7.x86_64.rpm
[root@localhost ~]# rpm -qcp /opt/Packages/iptables-1.4.21-35.el7.x86_64.rpm
[root@localhost ~]# rpm -qdp /opt/Packages/iptables-1.4.21-35.el7.x86_64.rpm
额外选项
--nomd5 # 不检验软件包的签名
--nodeps # 忽略依赖性安装软件,安装后软件有可能无法使用,最好是解决依赖性后再安装
[root@localhost ~]# rpm -e dos2unix --
nodeps # 忽略依赖关系
--force # 强制安装软件包,只有安装和升级可以强制执行

安装

#1、rpm包在本地
[root@egon ~]# mount /dev/sr0 /opt #将光驱镜像挂在到/opt目录下
[root@egon ~]# rpm -ivh /opt/Packages/iptables-1.4.21-35.el7.x86_64.rpm
#rpm方式安装iptables-1.4.21-35.el7.x86_64.rpm 软件包
#2、rpm来自于网络,如果安装过程中报错:curl: (60)Peer's Certificate has expired,请先将系统时间修改正确,然后再安装即可
[root@egon ~]# rpm -ivh 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@egon ~]# rpm -ivh /opt/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm
#rpm方式安装本地镜像中的httpd软件包
错误:依赖检测失败:
/etc/mime.types 被 httpd-2.4.6-
88.el7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值