首页 > 技术文章 > Linux-软件管理

zhangzk2021 2021-07-21 22:34 原文

1.RPM基本概述

1.1 什么是rpm

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

包格式:xxx.rpm 

命令: rpm

1.2 rpm包名组成部分

1.3 如何获取rpm包

本地镜像(学习);

联网方式获取(生产);

搭建私有包管理平台(生产);

1.4 其他类型的安装包

分类 安装 版本
/rpm 预先编译打包,安装简单。 软件(k8s开源应用)版本偏低。
源码包 手动编译打包,安装繁琐。 软件版本随意(rpm包版本低,源码)。
二进制包 解压即可使用,安装简单。 不能修改源码 (小工具,解压即用)。

 

 

 

 

 

 

2.RPM包管理命令

2.1 rpm安装软件包
-i:安装软件包
-v:显示安装过程
-h:显示安装进度条

1.使用  rpm 命令安装本地路径下软件包

1 [root@node ~]# mount /dev/cdrom /mnt/
2 [root@oldxu ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

2.使用  rpm 命令安装互联网上的软件包

1 #1.wget下载>本地>安装2 #2.直接安装>rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm

 

2.2 rpm依赖包安装

包依赖:A-->依赖-->B,B-->依赖-->C ,而C-->依赖-->A ,首先需要先安装依赖包,再安装主程序。

PS: 由于rpm工具安装rpm包依赖关系太强,所以通常我们都是使用  yum 来解决。

 

2.3 rpm升级软件包

1.先安装xxx3.0低版本软件包,再安装xxx4.0高版本,会报错;

2.使用rpm -Uvh=升级至4版本;

 

2.4 rpm卸载软件包

1.rpm -q #查询软件包是否存在系统。

2.rpm -e #卸载软件包。

 

2.5 rpm查询软件包

选项 描述
rpm -q 查看指定软件包是否安装;
rpm -qa 查看系统中所有rpm软件包列表,可结合grep使用;
rpm -qi 查看指定软件包的详细信息;
rpm -ql 查询指定软件包安装后,在系统中生成的文件路径;
rpm -qc 查询指定软件包的配置文件;
rpm -qf 查询配置文件或系统命令是由哪个rpm包提供;
rpm -qlp 查询未安装的rpm包会产生哪些文件

 

 

 

 

 

 

 

 

 

 

 

 

2.6 rpm包管理小结

范例:

如何查询  mkdir 命令是由哪个  RPM 软件包安装的?

[root@node ~]# rpm -qf /usr/bin/mkdir coreutils-8.22-21.el7.x86_64
[root@node ~]# rpm -qf $(which mkdir) coreutils-8.22-21.el7.x86_64

 

3.YUM基本介绍

3.1 什么是YUM

yum/dnf 是RedHat及CentOS 系统中的软件包管理器。它能够通过互联网下载 .rpm 格式包进行安装,并能自动处理其依赖间关系,无须繁琐地一次次下载安装。

3.2 什么是[YUM源|yum仓库

yum源概念:使用yum命令工具安装更新软件,需要有一个包含各种rpm软件包的仓库,这个仓库称为yum源。

yum源形式:本地仓库;网络仓库;

工作原理:client-->ftp/http/+yum地址-->yum仓库=(rpm包集合)

    server-->yum源地址(aliyun)-->仓库repo文件(baseurl地址--->互联网上的一个仓库--->有非常多的rpm软件)

3.3 YUM配置文件

#1 CentOS8 的配置文件

cat /etc/yum.conf
[main]
gpgcheck=1                  # 检查来源是否合法,需要有制作者的公钥信息
installonly_limit=3         # 同时可以安装3个软件包、最小为2,设置为0或者1则不限制
clean_requirements_on_remove=True  # 删除包时,是否将不再使用的包删除
best=True                   # 升级时,自动选择安装最新版,即使缺少包的依赖
skip_if_unavailable=False

#2 CentOS7 的配置文件

vim /etc/yum.cnf 
cachedir
=/var/cache/yum/$basearch/$releasever  # 缓存目录 keepcache=0          # 缓存软件包,1启动 0 关闭 debuglevel=2         # 调试级别 logfile=/var/log/yum.log   # 日志记录位置 exactarch=1         # 检查平台是否兼容 obsoletes=1         # 检查包是否废弃 gpgcheck=1          # 检查来源是否合法,需要有制作者的公钥信息 plugins=1 installonly_limit=5     # 同时可以安装5个软件包、最小为2,设置为0或者1则不限制 # metadata_expire=90m   #每小时手动检查元数据 # in /etc/yum.repos.d   #包含repos.d目录中的.repo文件

 

3.4 配置YUM源示例

系统默认的源是国外提供,需要替换为国内的源。

#1 配置阿里yum源

[root@oldxu ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

#2 配置第三方yum源(EPEL)

[root@oldxu ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

 

4.YUM日常操作

4.1 yum查询软件包

#1.dnf/yum list   #查询所有仓库中的所有软件包;

#2.dnf/yum list installed   #查询所有已安装至系统中的软件包;

#3.dnf/yum provides   #查询系统命令来自于哪个软件包(命令可以在当前系统,也可以不在);

rpm -qf $(which cd) 
PS:需要知道命令的绝对路径, 如果不存在该命令是无法查找到该命令所属的软件包.

4.2 yum安装软件包

#1.dnf/yum install   #通过仓库获取软件包进行安装

yum install xx   #交互,麻烦

yum install xx -y   #非交互,常用

 

#2.dnf/yum localinstall   #安装本地的rpm包,如果存在依赖,会通过当前已有的仓库获取解决依赖关系;

4.3 yum重装软件包

误删除配置文件,可以通过重装的方式修复;

#1.dnf/yum reinstall   #对软件进行重新安装;

#2.rpm -qc   #检查服务配置文件是否恢复,以及软件是否能正常使用;

4.4 yum更新软件包
#1.yum check-update   #检查更新

#2.yum update xx -y   #更新软件

#3.yum update -y   #更新系统中的所有软件,适用于安装完系统;

4.5 yum删除软件包

yum remove xx -y   #删除软件包

4.6 yum管理组包

#1.dnf/yum groups install "xx"   #安装组包(组包用双引号括起来,否则系统会认为是多个组包。)

#2.dnf/yum groups remove xx -y   #删除包组

4.7 yum管理仓库

#1.dnf/yum repolist   #查看源可用的软件仓库

#2.yum/dnf repolist all   #查看所有的仓库

#3.dnf/yum-config-manager --disable/enable   #启用和禁用仓库(本质都是在修改repo文件中参数 0关 1开)

4.8 yum管理历史记录

#1.dnf/yum history undo Number   #删除撤销某个操作;

#2.dnf/yum history info Number   #查看某个操作的具体信息;

#3.dnf/yum history redo Number   #重新执行某个操作;

推荐阅读