YUM仓库配置及命令详解

image1

说明:内容来源于网络,并且通过AI工具重新整理归纳。

YUM软件仓库简介

通过源代码编译的方式安装程序在灵活性、可定制性方面具有无可比拟的优势,但也正因为这种特性给管理员带来了额外的维护开销,当应用在大规模的服务器群集时存在一定的局限性。那么就需要使用 YUM软件仓库

借助于YUM软件仓库,可以完成安装、卸载、自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,而无须管理员逐个、手工地安装每个rpm包,使管理员在维护大量Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台源服务器可以大大缓解软件安装、升级等对Internet的依赖。

YUM仓库简单来说就是:

  1. RPM包构建的软件更新机制;
  2. 自动解决依赖关系;
  3. 软件包由集中的YUM软件仓库提供。

要成功使用YUM机制来更新系统和软件,需要有一个包含各种rpm安装包文件及其依赖软件的软件仓库,提供软件仓库的服务器也称为"源"服务器。


部署YUM软件仓库

一、准备网络安装源(服务器端)

YUM软件仓库通常借助于HTTP协议或FTP协议来进行发布,这样可以面向网络中的所有客户机提供软件源服务。为了便于客户机查询软件包,获取依赖关系等信息,在软件仓库中需要提供仓库数据(repodata文件),其中收集了目录下所有的rpm头部信息。

RPM软件包的来源

  1. CentOS发布的RPM包集合;
  2. 第三方组织发布的RPM包集合;
  3. 用户自定义的RPM包集合。

1. 准备软件仓库目录

在CentOS 7系统的安装光盘中,已针对软件目录 Packages 建立好了 repodata 数据。因此只需将整个光盘中的内容通过HTTP或FTP的方式进行发布,就可以作为软件仓库。

[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm
# 通过rpm的方式安装FTP服务

[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7/
# 创建一个目录(必须在可以匿名访问FTP服务的目录中)
# 然后将光盘下的所有内容都复制到该目录下

对于用户搜集的非CentOS 7光盘中的软件包,除了需要准备相应的目录之外,还需要手工创建 repodata 文件,这就需要用到 createrepo 工具。

[root@localhost ~]# mkdir /var/ftp/other
[root@localhost ~]# cd /var/ftp/other/
# 进入到存放rpm包的目录中

[root@localhost other]# createrepo .
# 使用createrepo工具创建repodata文件
# 数据文件存放位置为当前目录

2. 启动FTP服务,并保证匿名用户能正常访问

[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd
# 启动FTP服务并设置为开机自启动

[root@localhost ~]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 3.0.2)
Name (127.0.0.1:root):        # 直接回车
530 Permission denied.
Login failed.
ftp>
# 测试FTP服务可以匿名访问

说明: 出现 530 Permission denied 是匿名登录被拒绝的提示,实际部署时需确保vsftpd配置允许匿名访问(anonymous_enable=YES)。


二、配置软件仓库位置(客户端)

yum工具使用的软件仓库信息存放在 /etc/yum.repos.d/ 目录下,文件扩展名必须是 .repo 结尾(建议将目录下原来的文件移出备份),原本的文件是联网直接可以从互联网下载软件的配置文件。

[root@localhost ~]# mv /etc/yum.repos.d/* /a
# 备份原有repo文件

[root@localhost ~]# vim /etc/yum.repos.d/a.repo
# 创建新的YUM仓库配置文件,内容如下:

仓库配置示例

(1)通过FTP发布的光盘镜像RPM包

[ftp]                          # 仓库ID
name=ftp                       # 仓库名称,自定义
baseurl=ftp://192.168.1.1/centos7   # URL访问路径(须指定到repodata的上级目录)
enabled=1                      # 是否启用软件仓库(1启用,0不启用),默认值为1
gpgcheck=1                     # 是否验证软件包的签名(1启用,0不启用)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7  # 指定公钥文件存放位置

(2)通过FTP发布的非光盘镜像RPM包

[ftp1]
name=ftp1
baseurl=ftp://192.168.1.1/other
enabled=1
gpgcheck=0                     # 一般设为0,不启用签名认证

(3)通过HTTP发布的光盘镜像RPM包

[http]
name=http
baseurl=http://192.168.1.1     # HTTP服务,只需指定IP地址即可
enabled=1
gpgcheck=0

(4)本地光盘挂载方式

[local]
name=local
baseurl=file:///mnt            # 本地指定光盘镜像挂载位置
enabled=1
gpgcheck=0

配置说明:

  • baseurl:指定软件仓库的地址,支持 ftp://http://file:/// 三种协议
  • enabled:是否启用该仓库,1 为启用,0 为禁用
  • gpgcheck:是否进行GPG签名验证,1 为验证,0 为不验证
  • gpgkey:当 gpgcheck=1 时需指定GPG密钥文件路径

使用yum工具管理软件包

在CentOS 7服务器中,yum工具是最常用的YUM客户端工具,由默认安装的 yum-3.4.3-150.el7.centos.noarch 软件包提供。

一、查询软件包

1. yum list —— 查询软件包列表

[root@localhost ~]# yum list
# 获得系统中的软件安装情况,以及软件仓库中可用的软件包列表

[root@localhost ~]# yum list installed
# 只列出系统中已安装的软件包

[root@localhost ~]# yum list available
# 只列出软件仓库中可用(但尚未安装)的软件包

[root@localhost ~]# yum list updates
# 列出可以升级版本的软件包

2. yum info —— 查询软件包的描述信息

[root@localhost ~]# yum info vsftpd
# 查看vsftpd软件包的详细描述信息

执行后输出示例:

已加载插件:fastestmirror, langpacks
源 'a' 在配置文件中未指定名字,使用标识代替
Loading mirror speeds from cached hostfile

已安装的软件包
名称    :vsftpd
架构    :x86_64
版本    :3.0.2
发布    :21.el7
大小    :348 k
源      :installed
简介    :Very Secure Ftp Daemon
网址    :https://security.appspot.com/vsftpd.html
协议    :GPLv2 with exceptions
描述    :vsftpd is a Very Secure FTP daemon. It was written completely
         : from scratch.

3. yum search —— 查询指定的软件包

[root@localhost ~]# yum search vsftpd
# 查询与vsftpd相关的软件包

[root@localhost ~]# yum search all vsftpd
# 加大查询范围,搜索更多相关信息

二、安装、升级、卸载软件包

使用yum命令进行操作时,会自动检查并解决软件包之间的依赖关系,期间会提示用户按 "y" 确认。若希望自动确认,可以在yum命令后添加 -y 选项。

安装软件包

[root@localhost ~]# yum -y install vsftpd
# 安装vsftpd服务(-y 自动确认)

升级软件包

[root@localhost ~]# yum -y update vsftpd
# 更新vsftpd服务到最新版本

卸载软件包

[root@localhost ~]# yum -y remove vsftpd
# 卸载vsftpd服务

清空YUM缓存

如果YUM配置文件编写错误,修改配置文件之后,建议执行以下命令清空缓存:

[root@localhost ~]# yum clean all
# 清空YUM缓存信息,强制重新加载仓库配置

提示: 修改 .repo 配置文件后,除了 yum clean all,也可以使用 yum makecache 重新生成缓存,加快后续查询速度。


常用yum命令速查表

命令 说明
yum list 列出所有已安装及可用的软件包
yum list installed 列出已安装的软件包
yum list available 列出可安装但尚未安装的软件包
yum list updates 列出可升级的软件包
yum info <包名> 查看软件包详细信息
yum search <关键词> 搜索相关软件包
yum -y install <包名> 安装软件包(自动确认)
yum -y update <包名> 升级软件包
yum -y remove <包名> 卸载软件包
yum clean all 清空所有缓存
yum makecache 生成缓存
yum repolist 查看已启用的仓库列表

注意: 本文档基于 CentOS 7 系统编写,部分命令和路径在其他发行版(如 Rocky Linux、AlmaLinux)中同样适用,但路径和包名可能略有差异,请根据实际情况调整。

posted @ 2026-08-10 12:02  睡到自然醒的猪  阅读(14)  评论(0)    收藏  举报