LoginSignup
51
50

More than 5 years have passed since last update.

yumのダウンロードが遅い事象に対処する

Posted at

はじめに

yumのダウンロードが遅いときの対処法を記述します。

環境

  • CentOS 6.5
  • yum 3.2.29
  • yum-plugin-fastestmirror 1.1.30

事前準備

  • リポジトリの設定を確認する
/etc/yum.repos.d/CentOS-Base.repo
# 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の設定を確認する
/etc/yum.conf
[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の設定を確認する
/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

「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プラグインの設定を変更します。

/etc/yum/pluginconf.d/fastestmirror.conf
[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プラグインでは対応できないため、ダウンロード先を直接指定する対応を行います。

  • ダウンロード先を直接指定する
/etc/yum.repos.d/CentOS-Base.repo
[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

参考

51
50
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
50