Yum
YUM 外掛 yum-fastestmirror 是如何工作的?
我注意到,當我執行
yum update
命令時,YUM 似乎會一遍又一遍地選擇特定的伺服器,但偶爾它會切換並使用替代伺服器。在四處尋找時,我注意到它使用了一個名為
yum-fastestmirror
.YUM 和這個外掛是如何做到這一點的?
背景
外掛yum-fastestmirror在概念上非常簡單。它只是維護一個文本文件,其中包含 YUM 關於每個鏡像的累積次數,然後當要求 YUM 下載軟體包時,它使用在下載期間顯示為最快的伺服器。
時間儲存在此位置:
$ locate timedhosts.txt /var/cache/yum/x86_64/7/timedhosts.txt
如果我們檢查這個文件,我們會發現它只是主機名,每個主機名旁邊都有時間。在這裡,我們將其從最快到最慢排序:
$ sort -k2,2 /var/cache/yum/x86_64/7/timedhosts.txt mirror.atlanticmetro.net 0.00165295600891 mirror.cc.columbia.edu 0.00172901153564 ewr.edge.kernel.org 0.00207901000977 mirror.es.its.nyu.edu 0.00217700004578 mirror.siena.edu 0.00543117523193 mirror.pit.teraswitch.com 0.0140120983124 mirrors.rit.edu 0.0208911895752 mirror.clarkson.edu 0.0243170261383 mirror.linux.duke.edu 0.0244128704071 mirror.mia11.us.leaseweb.net 0.0328259468079 mirror.hackingand.coffee 0.0435431003571 ftp.ussg.iu.edu 0.0479228496552 mirror.genesishosting.com 0.0481269359589 repo1.ash.innoscale.net 0.050274848938 mirror.den1.denvercolo.net 0.0838551521301 mirror.keystealth.org 0.134334802628 centos.mirror.ndchost.com 0.140916824341
現在,當我們查詢特定包的位置時,是否要使用以下命令下載它
repoquery
:$ $ repoquery --location java-1.8.0-openjdk http://mirror.atlanticmetro.net/centos/7.7.1908/updates/x86_64/Packages/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.i686.rpm http://mirror.atlanticmetro.net/centos/7.7.1908/updates/x86_64/Packages/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64.rpm
配置
yum-fastestmirror 外掛也有自己的配置文件:
$ more /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
通過這個文件,我們可以指示外掛將特定鏡像列入白名單和黑名單,這些鏡像要麼在過去向我們提出問題,要麼出於任何原因我們認為不可接受。
參考