在CentOS系统中,YUM(Yellowdog Updater Modified)是一个至关重要的软件包管理器,它能够自动处理软件包之间的依赖关系,极大地简化了系统的安装、更新和维护工作,在某些最小化安装或系统出现问题的场景下,YUM工具可能并未被预装或已损坏,通过在线方式重新安装YUM便成为了一项必备的技能,本文将详细介绍如何在CentOS系统中在线安装YUM,并提供相关问题的解答。
准备工作:确保系统环境
在开始安装之前,请务必确认以下两个基本条件:
- 网络连接:在线安装的核心是从网络仓库下载软件包,因此您的CentOS服务器必须能够连接到互联网。
- 管理员权限:安装和配置系统软件需要root用户权限,或具备sudo权限的普通用户。
可以通过以下命令检查系统中是否已经安装了YUM,如果没有任何输出,则表示YUM未安装。
rpm -qa | grep yum
核心步骤:下载与安装YUM软件包
针对不同版本的CentOS,其软件仓库和依赖关系有所差异,特别是对于已经停止维护(EOL)的CentOS 7和CentOS 8,我们需要从官方的 vault 存档仓库中获取软件包。
针对 CentOS 7 系统
CentOS 7已于2025年6月30日停止维护,安装YUM需要从其vault源下载。
创建临时目录并进入:
mkdir /tmp/yum_install && cd /tmp/yum_install
下载必要的RPM包:我们需要下载YUM本体及其核心依赖包,如Python相关的库,以下是一组常用的包,您可以根据实际情况调整。
wget http://vault.centos.org/7.9.2009/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm wget http://vault.centos.org/7.9.2009/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm wget http://vault.centos.org/7.9.2009/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm wget http://vault.centos.org/7.9.2009/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm wget http://vault.centos.org/7.9.2009/os/x86_64/Packages/python-urlgrabber-3.10-10.el7.noarch.rpm
本地安装所有RPM包:
使用rpm
命令强制安装所有下载的包,忽略依赖关系(因为我们已经将主要依赖都下载下来了)。rpm -ivh --nodeps *.rpm
针对 CentOS 8 系统
CentOS 8也已停止维护,其软件包管理器是DNF,但YUM是DNF的符号链接,因此安装DNF即可恢复YUM功能。
创建临时目录并进入:
mkdir /tmp/dnf_install && cd /tmp/dnf_install
下载DNF及相关包:
wget http://vault.centos.org/8.5.2111/BaseOS/x86_64/os/Packages/dnf-4.7.0-4.el8.noarch.rpm wget http://vault.centos.org/8.5.2111/BaseOS/x86_64/os/Packages/dnf-data-4.7.0-4.el8.noarch.rpm wget http://vault.centos.org/8.5.2111/BaseOS/x86_64/os/Packages/libdnf-0.63.0-3.el8.x86_64.rpm # 以及其他 libdnf 依赖,如 libmodulemd 等,根据提示下载
本地安装:
rpm -Uvh --nodeps *.rpm
为了更清晰地展示不同版本的核心包差异,下表进行了简要对比:
版本 | 核心包 | 主要依赖示例 | 注意事项 |
---|---|---|---|
CentOS 7 | yum | yum-metadata-parser , python-urlgrabber | 依赖Python 2环境 |
CentOS 8 | dnf | libdnf , dnf-data | YUM是DNF的别名,依赖Python 3环境 |
配置YUM仓库源
安装完YUM/DNF软件包后,其配置文件可能仍然指向已失效的官方源,我们需要将其修改为指向vault源。
备份原有配置文件:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
创建新的仓库配置文件:
对于CentOS 7,可以创建/etc/yum.repos.d/CentOS-Vault.repo
如下:[base] name=CentOS-7 - Base baseurl=http://vault.centos.org/7.9.2009/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-7 - Updates baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
(CentOS 8的配置类似,只需将URL中的版本号和路径相应修改即可。)
验证与清理
执行以下命令来验证YUM是否安装并配置成功。
# 清理所有缓存 yum clean all # 生成新的缓存 yum makecache # 列出可用的仓库,如果能看到刚刚配置的vault源,则表示成功 yum repolist
如果以上命令都能正常执行,并且yum repolist
列出了仓库信息,那么恭喜您,YUM已经成功安装并可以正常使用了。
相关问答FAQs
问题1:如果我的服务器完全无法连接互联网,该如何安装YUM?
解答:在离线环境中,需要采用“U盘拷贝”的方式,在一台可以上网的、且系统架构(如x86_64)相同的CentOS机器上,使用yumdownloader
工具或直接访问vault网站,下载YUM及其所有依赖的RPM包(包括递归依赖),然后将所有下载好的.rpm
文件通过U盘等介质拷贝到目标服务器的某个目录下,在目标服务器上进入该目录,执行rpm -ivh *.rpm
命令进行本地安装,这个过程的关键在于确保所有依赖包都已下载完整,否则安装会失败。
问题2:安装YUM后,执行yum update
时提示“GPG密钥验证失败”怎么办?
解答:这个错误表示YUM无法验证从仓库下载的软件包的签名,这是一个安全机制,通常是因为系统缺少或GPG密钥文件路径不正确,解决方法是导入正确的CentOS GPG密钥,确认密钥文件是否存在,通常位于/etc/pki/rpm-gpg/
目录下,如果不存在,需要从vault源下载对应的密钥文件,使用以下命令导入密钥(以CentOS 7为例):
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
导入成功后,再次执行yum update
命令即可正常进行。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复