嘿,各位技术小伙伴们,大家好!
今天我们来聊一个在 CentOS 上老生常谈的话题:yum 安装软件为什么那么慢?以及,如何让它快到飞起!相信我,通过这篇文章,你将彻底告别 yum 安装时的漫长等待。
为什么你的 yum 像“老爷车”?
在解决问题之前,我们得先搞清楚问题出在哪儿。yum 安装慢,主要有两大“元凶”:
- “身在曹营心在汉”的镜像源:CentOS 默认的
yum源服务器都在国外,咱们在国内访问,那速度就像跨洋电话,延迟高,速度慢,体验自然好不了。 - “单线程”的耿直 Boy:
yum在下载软件包的时候,默认是单线程下载,一个一个来,效率自然不高。
知道了问题所在,咱们就可以“对症下药”了。下面我给大家介绍几种立竿见影的提速方法,总有一款适合你!
方案一:换个“国内镜像”,快人一步!
这是最常用,也是最有效的方法。简单来说,就是把 yum 的下载地址换成国内的服务器,比如阿里云、网易、清华大学等都提供了免费的镜像服务。这里我们以阿里云为例,手把手教你操作。
操作步骤
1. 备份你当前的 yum 源配置文件
不怕一万,就怕万一。我们先给当前的配置文件做个备份,方便“反悔”。
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2. 下载阿里云的 yum 源配置文件
这里需要注意,不同的 CentOS 版本,配置文件的下载地址是不一样的。你可以根据自己的系统版本选择对应的命令。
对于 CentOS 7:
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo对于 CentOS 8:
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo注意: CentOS 8 已经停止了官方支持,但你仍然可以使用归档的镜像源。
3. 清理并生成新的缓存
换了源之后,需要清理一下旧的缓存,然后生成新的缓存,让新源生效。
sudo yum clean all
sudo yum makecache
案例解析
假设你现在需要安装一个 nginx,在换源之前,yum install nginx 可能需要好几分钟,甚至更久。而换成国内的阿里云镜像后,你会发现下载速度有了质的飞跃,可能几十秒就搞定了。这就是离家近的好处啊!
方案二:让 fastestmirror 插件帮你“优中选优”
fastestmirror 是一个 yum 的插件,它的作用是自动帮你选择最快的镜像服务器。有时候,即使我们换了国内的源,国内的镜像服务器也有很多台,速度也不尽相同。这时候,fastestmirror 就能派上用场了。
操作步骤
1. 安装 fastestmirror 插件
这个插件一般系统会自带,如果没有的话,可以用下面的命令安装:
sudo yum install yum-plugin-fastestmirror
2. 确认插件是否启用
安装完成后,需要确保插件是启用状态。可以查看配置文件 /etc/yum.conf,确保有下面这行配置:
plugins=1
同时,检查 /etc/yum/pluginconf.d/fastestmirror.conf 文件,确保 enabled=1。
案例解析
启用 fastestmirror 插件后,每次运行 yum 命令,它都会先测试各个镜像服务器的连接速度,然后选择最快的一个来下载软件包。 这就好比你点外卖,平台会自动给你匹配一个距离最近、出餐最快的外卖小哥,大大缩短了你的等待时间。
方案三:开启“并行下载”,火力全开!
如果你觉得上面的方法还不够快,那么可以试试开启并行下载。yum 本身并不直接支持并行下载,但我们可以通过安装一个名为 axel 的多线程下载工具,并让 yum 通过它来下载。
操作步骤
1. 安装 axel
首先,你需要安装 epel-release,然后才能安装 axel。
sudo yum install -y epel-release
sudo yum install -y axel
2. 修改 yum 配置文件,启用并行下载
要让 yum 使用 axel 进行下载,你需要修改 yum 的配置文件。不过,直接修改 yum 的行为来调用 axel 相对复杂。一个更简单的思路是,在安装大文件或者大量依赖时,可以先使用 yumdownloader 结合 axel 下载,然后再进行本地安装。
一个更直接提升 yum 自身下载能力的方法是在 /etc/yum.conf 文件中添加以下配置,来增加 yum 的并行下载数(此功能在较新版本的 DNF/YUM 中支持):
max_parallel_downloads=10
这行配置告诉 yum 最多可以同时下载10个软件包。
案例解析
想象一下,你现在要下载一个很大的软件包,比如一个数据库。如果用单线程下载,速度可能会很慢。而开启并行下载后,yum 会同时启动多个线程去下载这个文件的不同部分,最后再拼接起来,下载速度自然就快了好几倍。
总结
好了,以上就是解决 CentOS yum 安装慢的几种最佳方法。我们来简单总结一下:
| 方法 | 优点 | 缺点 |
|---|---|---|
| 更换国内镜像 | 效果最明显,操作简单 | 需要根据系统版本选择合适的源 |
使用 fastestmirror 插件 |
自动选择最快镜像,智能化 | 提速效果不如直接换源明显 |
| 开启并行下载 | 下载大文件时效果显著 | 配置相对复杂一些 |
在实际使用中,我个人最推荐 “更换国内镜像” + “开启并行下载” 的组合拳,基本上可以解决绝大部分 yum 慢的问题。希望这篇文章能对你有所帮助,让你彻底摆脱 yum 的龟速困扰!