Reflector

提供: ArchWiki
2018年2月6日 (火) 23:43時点におけるKusakata.bot (トーク | 投稿記録)による版 (文字列「http://xyne.archlinux.ca/」を「https://xyne.archlinux.ca/」に置換)
ナビゲーションに移動 検索に移動

関連記事

ReflectorMirrorStatus ページから最新のミラーリストを取得して、ミラーを速度でソートし、/etc/pacman.d/mirrorlist ファイルを上書きするスクリプトです。

インストール

公式リポジトリから reflectorインストールしてください。

使用方法

警告:
  • 最初に /etc/pacman.d/mirrorlist ファイルをバックアップしておいてください:
# cp -vf /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
  • Pacman で同期とアップデートをする前に /etc/pacman.d/mirrorlist には信頼できないエントリが含まれていないようにしてください。

利用できるコマンドを表示するには、次のコマンドを実行:

# reflector --help

サンプル

例 1

以下のコマンドは最初の5つのミラーを取り出して、速度でソートし、/etc/pacman.d/mirrorlist ファイルを上書きします:

# reflector --verbose -l 5 --sort rate --save /etc/pacman.d/mirrorlist

例 2

次のコマンドは、最近同期が行われた HTTP サーバー200個を細かく評価して、ダウンロード速度でソートし、/etc/pacman.d/mirrorlist ファイルを上書きします:

# reflector --verbose -l 200 -p http --sort rate --save /etc/pacman.d/mirrorlist

例 3

次のコマンドはアメリカに存在する、最近同期が行われた HTTP サーバー200個を細かく評価して、、ダウンロード速度でソートし、/etc/pacman.d/mirrorlist ファイルを上書きします:

# reflector --verbose --country 'United States' -l 200 -p http --sort rate --save /etc/pacman.d/mirrorlist

Systemd サービス

/etc/systemd/system/reflector.service
[Unit]
Description=Pacman mirrorlist update

[Service]
Type=oneshot
ExecStart=/usr/bin/reflector --protocol http --latest 30 --number 20 --sort rate --save /etc/pacman.d/mirrorlist

# systemctl start reflector を実行すればミラーリストが更新されます。

コンピュータが起動するたびにミラーリストを更新するには以下のサービスを有効にしてください。

/etc/systemd/system/reflector.service
[Unit]
Description=Pacman mirrorlist update
Requires=network.target
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/bin/reflector --protocol http --latest 30 --number 20 --sort rate --save /etc/pacman.d/mirrorlist

[Install]
RequiredBy=network.target

network.target がネットワーク状態を正確に反映するように 適当なサービスを有効化 してください。

Systemd タイマー

reflector.service を一週間ごとに実行したい場合:

/etc/systemd/system/reflector.timer
[Unit]
Description=Run reflector weekly

[Timer]
OnCalendar=weekly
AccuracySec=12h
Persistent=true

[Install]
WantedBy=timers.target

タイマーを起動:

# systemctl enable reflector.timer