Vagrant や Docker のイメージの中には APT のリポジトリが決め打ちになっているものがある。 高速なミラーリポジトリが使えないとアップデートが遅くて作業に難儀することになる。 今回は、そんなときの解決方法について。
使った環境は次の通り。
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS" $ uname -r 4.15.0-60-generic
ミラーリポジトリを使えるようにする
例えば、初期状態だと次のようになっている場合がある。
$ cat /etc/apt/sources.list | sed -e "/^#/d" -e "/^$/d" deb http://archive.ubuntu.com/ubuntu bionic main restricted deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted deb http://archive.ubuntu.com/ubuntu bionic universe deb http://archive.ubuntu.com/ubuntu bionic-updates universe deb http://archive.ubuntu.com/ubuntu bionic multiverse deb http://archive.ubuntu.com/ubuntu bionic-updates multiverse deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu bionic-security main restricted deb http://security.ubuntu.com/ubuntu bionic-security universe deb http://security.ubuntu.com/ubuntu bionic-security multiverse
現行の APT はリポジトリの URL を mirror://mirrors.ubuntu.com/mirrors.txt
に指定することでミラーが使えるようになるらしい。
試しに上記を sed
コマンドで置換してみよう。
$ sudo sed -i.bak -e 's%http://[^ ]\+%mirror://mirrors.ubuntu.com/mirrors.txt%g' /etc/apt/sources.list
実行結果はこんな感じ。
なお、元のファイルも .bak
という名前で残されているので失敗しても元に戻せる。
$ cat /etc/apt/sources.list | sed -e "/^#/d" -e "/^$/d" deb mirror://mirrors.ubuntu.com/mirrors.txt bionic main restricted deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates main restricted deb mirror://mirrors.ubuntu.com/mirrors.txt bionic universe deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates universe deb mirror://mirrors.ubuntu.com/mirrors.txt bionic multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-backports main restricted universe multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-security main restricted deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-security universe deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-security multiverse
更新してみるとネットワーク的に近場のミラーリポジトリが使われるようになるはず。
$ sudo apt update $ sudo apt upgrade -y
ちなみに、上記のテクニックは Ubuntu 18.04 LTS (Bionic) だけでなく Ubuntu 10.04 (Lucid) 以降で使えるらしい。 めでたしめでたし。
- 作者:もみじあめ
- 発売日: 2020/02/29
- メディア: Kindle版