yum加快安装速度的优化

一、简介

每次yum安装的时候,都可以发现yum使用了fast-mirrors,但这个过程可能很慢,为了加快速度,对这个过程进行了分析;

[[email protected] ~]$ yum makecache
已加载插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
Determining fastest mirrors       #这里是在判断哪个是最快的源
 * base: mirrors.aliyun.com       #前面包含mirrors的,都是说明有多个yum源
 * extras: mirrors.aliyun.com
 * rpmfusion-free-updates: mirrors.ustc.edu.cn
 * updates: mirrors.aliyun.com
 * webtatic: uk.repo.webtatic.com

二、步骤

1、yum安装软件的时候,刚开始做的是什么

①yum安装软件的时候,必然会弹出下面的这些,这些步骤到底是什么;

[[email protected] ~]$ yum makecache
已加载插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
Determining fastest mirrors       #这里是在判断哪个是最快的源
* base: mirrors.aliyun.com       #前面包含mirrors的,都是说明有多个yum源
* extras: mirrors.aliyun.com
* rpmfusion-free-updates: mirrors.ustc.edu.cn
* updates: mirrors.aliyun.com
* webtatic: uk.repo.webtatic.com

②根据查询得知,这一步是把yum的目标的源内容缓存到本地,缓存的本地目录是/var/cache/yum ;

这一步可以使用yum clean all;yum makecache;检查/var/cache/yum文件下是否有变化;

 

2、为何yum第一步缓存会很慢呢(抓包后,发现没使用最快的源)

①yum配置文件检查
查看下面的配置文件,可以看到yum使用了mirrorlist,这个url里面包含了许多仓库地址
[[email protected] ~]$ cat /etc/yum.repos.d/remi-safe.repo |grep mirrors
mirrorlist=https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/7/safe/mirror
[[email protected] ~]$
打开这个ur(lhttps://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/7/safe/mirror),可以看到内容如下
http://rpms.remirepo.net/enterprise/7/safe/$basearch/
http://fr2.rpmfind.net/linux/remi/enterprise/7/safe/$basearch/
http://mirrors.mediatemple.net/remi/enterprise/7/safe/$basearch/
http://mirror.tuna.tsinghua.edu.cn/enterprise/7/safe/$basearch/
http://remi.schlundtech.de/enterprise/7/safe/$basearch/
...省率了53个
https://mirror.dogado.de/remi/enterprise/7/safe/$basearch/

②哪会如何使用这些仓库其中的哪个呢

根据查询得知,会使用yum-fastestmirror自动判断用哪个,判断的结果文件在/var/cache/yum/timedhosts.txt中;

安装yum-fastestmirror:yum install yum-fastestmirror -y;这个默认安装了;

查看yum-fastestmirror的配置文件;

[[email protected] ~]$ cat /etc/yum/pluginconf.d/fastestmirror.conf 
[main]
enabled=1
verbose=0
always_print_best_host = true
socket_timeout=3
#  Relative paths are relative to the cachedir (and so works for users as well
# as root).
hostfilepath=timedhosts.txt
maxhostfileage=10
maxthreads=15
#exclude=.gov, facebook
#include_only=.nl,.de,.uk,.ie
[[email protected] ~]$ 

查看/var/cache/yum/timedhosts.txt

[[email protected] ~]# cat -n /var/cache/yum/x86_64/7/timedhosts.txt|sort -n -k 3|more    #排序查看
    17  mirrors.aliyun.com 0.0298199653625
    16  mirrors.163.com 0.0301778316498
    11  mirror.tuna.tsinghua.edu.cn 0.0316710472107
     8  ftp.sjtu.edu.cn 0.0334181785583
......省略了其他的
[[email protected] ~]# 

从上面的判断结果看,清华的源mirror.tuna.tsinghua.edu.cn是排在前面的,但真实抓包过程中,发现排在最前面的几个都没有使用,使用的是其他排在后面的源;截图如下:

3、加快下载速度的方法【参考3】

注释mirrorlist的行,使用一个源即可,将源改成国内的源,修改后的配置文件如下:

使用多个源就是给自己找麻烦,特别是判断哪个源的速度快后,却没有使用;

[[email protected] ~]# cat /etc/yum.repos.d/remi-safe.repo
[remi-safe]
baseurl=https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/7/safe//$basearch/
#baseurl=http://rpms.remirepo.net/enterprise/7/safe/$basearch/
#mirrorlist=http://cdn.remirepo.net/enterprise/7/safe/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
[[email protected] ~]#

4、查看yum的配置

[[email protected] ~]$ rpm -ql yum
/etc/logrotate.d/yum
/etc/yum
/etc/yum.conf                  #yum的配置文件,包含是否配置使用最快的源fast-mirrors、最快源的判断文件、缓存的源的位置;
/etc/yum.repos.d
/etc/yum/pluginconf.d
/usr/bin/yum
/usr/lib/yum-plugins
/usr/share/doc/yum-3.4.3
/var/cache/yum                #yum 缓存的文件的位置;
/var/lib/yum
/var/lib/yum/plugins
......
[[email protected] ~]$ 

 

cache的位置)参考1:https://blog.csdn.net/windone0109/article/details/15813353

yum-fastestmirror)参考2:https://www.cnblogs.com/xiaoshi1991/archive/2012/09/18/2690398.html

使用国内的源)参考3:https://www.jianshu.com/p/281ee3db7c15

时间:2020-11-04