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 版本,对于一些特定软件,可能还需要添加其官方提供的第三方仓库。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复