CentOS 6.8 作为一款曾经非常流行且备受赞誉的企业级 Linux 发行版,以其稳定性和与 Red Hat Enterprise Linux (RHEL) 的兼容性而闻名,尽管它已进入生命周期结束(EOL)阶段,但在许多遗留系统和特定环境中仍在运行,管理这样一个系统的核心工具便是 yum(Yellowdog Updater, Modified)。yum 是一个基于 RPM 的软件包管理器,它极大地简化了在 Linux 系统上安装、更新和删除软件的过程,能够自动处理软件包之间的依赖关系,是系统管理员不可或缺的得力助手。

Yum 的核心工作原理
要高效使用 yum,首先需要理解其基本工作模式。yum 并不直接处理单个的 RPM 文件,而是通过访问预先配置好的“仓库”来工作,这些仓库是存储了大量 RPM 软件包及其元数据(如版本信息、依赖关系等)的服务器。
当您执行一个 yum 命令时,yum install httpd,它会执行以下步骤:
- 下载元数据:从所有启用的仓库下载最新的软件包列表和依赖信息。
- 解析依赖:分析您要安装的
httpd包需要哪些其他软件包才能正常运行。 - 计算事务:生成一个完整的“事务”列表,包括所有需要安装、更新或删除的软件包。
- 用户确认:向您展示这个事务列表,并请求您的确认。
- 执行下载与安装:在您确认后,下载所有必需的软件包,并按正确的顺序进行安装。
这种智能化的依赖关系解析机制,正是 yum 相比于手动使用 rpm 命令的最大优势。
常用 Yum 命令详解
掌握 yum 的关键在于熟悉其常用命令,以下是一些在日常系统管理中最频繁使用的 yum 命令,通过表格形式呈现,以便查阅和对比。
| 功能分类 | 命令 | 示例与说明 |
|---|---|---|
| 安装软件 | yum install <package_name> |
yum install httpd:安装 Apache Web 服务器。 |
| 更新软件 | yum update |
更新系统中所有已安装的软件包至最新版本。 |
yum update <package_name> |
yum update bash:仅更新 bash 软件包。 |
|
| 检查更新 | yum check-update |
检查有哪些可用的软件包更新,但不执行安装。 |
| 删除软件 | yum remove <package_name> |
yum remove httpd:卸载 Apache Web 服务器及其依赖。 |
| 搜索软件 | yum search <keyword> |
yum search mysql:在所有仓库中搜索包含 “mysql” 关键字的软件包。 |
| 查询信息 | yum info <package_name> |
yum info httpd:显示 httpd 软件包的详细信息,如版本、大小、描述等。 |
| 列出软件 | yum list <package_name> |
yum list installed|grep httpd:列出所有已安装的并过滤出 httpd 相关的包。 |
| 清理缓存 | yum clean all |
清理所有缓存的软件包和头文件,有助于解决一些缓存导致的奇怪问题。 |
| 查看历史 | yum history |
查看 yum 事务的历史记录,包括安装、更新和删除操作。 |
yum history undo <transaction_id> |
撤销指定 ID 的事务,非常实用的回滚功能。 |
解决 CentOS 6.8 的 Yum 仓库问题
由于 CentOS 6.8 已正式 EOL,其官方的软件源(mirror.centos.org)已不再维护,直接使用 yum 命令会遇到 “404 Not Found” 的错误,为了继续使用 yum,我们需要将其仓库指向 CentOS 的归档站点或使用第三方镜像源。
使用 CentOS Vault 官方归档源

这是最官方的解决方案,我们需要修改 /etc/yum.repos.d/CentOS-Base.repo 文件,将其指向 vault.centos.org。
可以使用 sed 命令一键完成修改:
sed -i "s/mirrorlist/#mirrorlist/g" /etc/yum.repos.d/CentOS-Base.repo sed -i "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-Base.repo sed -i "s|$releasever|6.8|g" /etc/yum.repos.d/CentOS-Base.repo
这三条命令的作用分别是:
- 注释掉所有
mirrorlist行。 - 启用
baseurl行,并将其指向vault.centos.org。 - 将
$releasever变量替换为具体的版本号8。
修改完成后,运行 yum clean all 清理缓存,yum makecache 重新生成缓存,即可正常使用。
使用国内第三方镜像源(如阿里云)
对于国内用户,使用阿里云等镜像源通常能获得更快的下载速度,同样需要修改 /etc/yum.repos.d/CentOS-Base.repo 文件,将其内容替换为阿里云提供的 CentOS 6 的配置,其配置文件会将地址指向 mirrors.aliyun.com/centos-vault/6.8/。

相关问答 FAQs
问1:为什么我的 CentOS 6.8 系统在执行 yum update 时提示 “Could not resolve host: mirrorlist.centos.org” 或 “404 Not Found” 错误?
答: 这个错误的核心原因是 CentOS 6 系列已于 2020 年 11 月 30 日停止维护(EOL),官方的软件源服务器 mirrorlist.centos.org 和 mirror.centos.org 已不再提供软件包服务。yum 无法从这些地址获取到更新,要解决这个问题,您必须修改 /etc/yum.repos.d/CentOS-Base.repo 文件,将软件源地址更换为仍然可用的 CentOS Vault 归档源(vault.centos.org)或第三方镜像源(如阿里云、网易等提供的 CentOS 6 归档镜像),修改后清理缓存并重新生成缓存即可恢复正常使用。
问2:我想在 CentOS 6.8 上安装一个官方仓库里没有的软件,比如最新版的 Nginx,该怎么办?
答: 官方 CentOS 6 仓库中的软件版本通常比较陈旧,要安装官方仓库之外的软件,最常用的方法是添加 EPEL (Extra Packages for Enterprise Linux) 仓库,EPEL 是由 Fedora 社区维护的,为 RHEL 及其衍生版(如 CentOS)提供高质量附加软件包的仓库,您可以首先安装 EPEL 的 RPM 包来启用该仓库:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
安装完成后,EPEL 仓库就会被自动配置,之后,您就可以像安装官方软件一样,通过 yum install nginx 来安装 EPEL 仓库中提供的 Nginx 版本,对于一些特定软件,可能还需要添加其官方提供的第三方仓库。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!