はじめに
yumのダウンロードが遅いときの対処法を記述します。
環境
- CentOS 6.5
- yum 3.2.29
- yum-plugin-fastestmirror 1.1.30
事前準備
- リポジトリの設定を確認する
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
...(省略)...
「mirrorlist」行が有効になっていていることを確認しておきます。
- yumの設定を確認する
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
「plugins=1」(プラグインが有効)となっていることを確認します。
- yum-plugin-fastestmirrorの設定を確認する
[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
「enabled=1」(有効)となっていることを確認します。
対処
- yumのキャッシュをクリアして状況が改善するか確認します。
$ sudo yum clean all
$ yum repolist
- 選択されているダウンロード先を確認します。
$ yum repolist
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
上記の場合は、「www.ftp.ne.jp」が選択されています。
海外のサイトが選択されている場合は、fastestmirrorプラグインの設定を変更します。
[main]
enabled=1
verbose=1
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=.jp
#prefer=ftp.iij.ad.jp
「include_only」でjpドメインのみ選択の対象となるように設定します。
また、「verbose=1」を指定して、サイトごとの速度を表示するようにします。
$ sudo yum clean all
$ yum repolist
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
www.ftp.ne.jp already timed: 0.00651001930237
* www.ftp.ne.jp : 0.006510 secs
ftp.jaist.ac.jp already timed: 0.0173878669739
* ftp.jaist.ac.jp : 0.017388 secs
ftp.tsukuba.wide.ad.jp already timed: 0.0187709331512
* ftp.tsukuba.wide.ad.jp : 0.018771 secs
ftp.riken.jp already timed: 0.0195229053497
* ftp.riken.jp : 0.019523 secs
ftp.iij.ad.jp already timed: 0.01784491539
* ftp.iij.ad.jp : 0.017845 secs
...(省略)...
Including mirror: www.ftp.ne.jp
Including mirror: ftp.jaist.ac.jp
Including mirror: ftp.nara.wide.ad.jp
Including mirror: ftp.iij.ad.jp
Including mirror: ftp.tsukuba.wide.ad.jp
Including mirror: ftp.riken.jp
Including mirror: mirror.fairway.ne.jp
* base: www.ftp.ne.jp
ftp.jaist.ac.jp already timed: 0.0173878669739
* ftp.jaist.ac.jp : 0.017388 secs
www.ftp.ne.jp already timed: 0.00651001930237
* www.ftp.ne.jp : 0.006510 secs
ftp.tsukuba.wide.ad.jp already timed: 0.0187709331512
* ftp.tsukuba.wide.ad.jp : 0.018771 secs
ftp.iij.ad.jp already timed: 0.01784491539
* ftp.iij.ad.jp : 0.017845 secs
ftp.nara.wide.ad.jp already timed: 0.0176429748535
* ftp.nara.wide.ad.jp : 0.017643 secs
ftp.riken.jp already timed: 0.0195229053497
* ftp.riken.jp : 0.019523 secs
...(省略)...
Including mirror: www.ftp.ne.jp
Including mirror: ftp.jaist.ac.jp
Including mirror: ftp.nara.wide.ad.jp
Including mirror: ftp.iij.ad.jp
Including mirror: ftp.tsukuba.wide.ad.jp
Including mirror: ftp.riken.jp
Including mirror: mirror.fairway.ne.jp
* extras: www.ftp.ne.jp
複数の候補のなかから、jpドメインのみを対象として、一番速度の速いサイトが選択されます。
上記の場合は、「www.ftp.ne.jp」が選択されています。
jpドメインのうち特定のサイトが常に選択されるようにする場合は、「prefer」で指定します。
- 海外のサイトが選択されてしまう場合
ミラーリストを確認します。
ミラーリストのURLは、以下の通りに指定されているため、
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
「$releasever」を「6」、「$basearch」を「x86_64」を指定してリストされるURLを確認します。
$ curl 'http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os'
http://www.ftp.ne.jp/Linux/packages/CentOS/6.5/os/x86_64/
http://ftp.iij.ad.jp/pub/linux/centos/6.5/os/x86_64/
http://ftp.tsukuba.wide.ad.jp/Linux/centos/6.5/os/x86_64/
http://ftp.riken.jp/Linux/centos/6.5/os/x86_64/
http://ftp.nara.wide.ad.jp/pub/Linux/centos/6.5/os/x86_64/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/6.5/os/x86_64/
http://mirror.fairway.ne.jp/centos/6.5/os/x86_64/
http://centos.mirror.secureax.com/6.5/os/x86_64/
http://mirror.vodien.com/centos/6.5/os/x86_64/
http://mirrors.hust.edu.cn/centos/6.5/os/x86_64/
上記の場合は、国内のサイト(.jpドメインなど)が含まれているため、国内のサイトが選択対象となります。
海外サイトのURLのみがリストされる場合は、fastestmirrorプラグインでは対応できないため、ダウンロード先を直接指定する対応を行います。
- ダウンロード先を直接指定する
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://www.ftp.ne.jp/Linux/packages/CentOS/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
...(省略)...
「mirrorlist」行をコメントアウトし、「baseurl」行のコメントをはずします。
そして、「baseurl」にダウンロード先を直接指定することでダウンロードが遅い事象に対処します。
$ sudo yum clean all
$ yum repolist