Arch系Linuxのレポジトリミラー更新方法(Shiny Mirrors & Rate Mirrors)

に公開

Archにはreflectorなどがあると思いますし、Manjaroにはpacman-mirrorsもあります。それ以外の紹介です。

Shiny Mirrors

https://gitlab.com/Arisa_Snowbell/shiny-mirrors [1]

Arch Linux

AUR

paru -S shiny-mirrors
sudo shiny-mirrors setup

標準では1週間に一回自動更新。

sudo systemctl enable shiny-mirrors.timer --now
sudo shiny-mirrors refresh
sudo shiny-mirrors status

Manjaro

AUR版はArch向けなので、Manjaroユーザーはextraにあるパッケージを使いましょう。

sudo pacman -S extra/shiny-mirrors
sudo shiny-mirrors setup

標準では1週間に一回自動更新。

sudo systemctl enable shiny-mirrors.timer --now
sudo shiny-mirrors refresh
sudo shiny-mirrors status

Rate Mirrors

https://github.com/westandskif/rate-mirrors [2]

Arch系のOSのミラーリストを取得して、それぞれの速度を簡単に検査して、早い者順に並べ替えてくれているようです。
AURからインストールできます。

paru -S rate-mirrors
paru -S rate-mirrors-bin

Rate Mirrorsを自分でビルドするとプログラム名がrate_mirrorsになります。
上記パッケージでは、rate-mirrorsに名前が変更されています。

Rate Mirrorsを使った、aliasの例

githubにも記載があるalias例の応用です。
日本から近いサーバーから探すのと、protocolはhttpsを指定しています。

Manjaro

paru

alias ua-drop-caches='sudo paccache -rk3; paru -Sc --aur --noconfirm'
alias ua-update-all='export TMPFILE="$(mktemp)"; \
    sudo true; \
    rate-mirrors --protocol https \
      --entry-country=JP --max-jumps=1 --country-neighbors-per-country=2 \
      --save=$TMPFILE manjaro --max-delay=21600 \
      && sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-backup \
      && sudo mv $TMPFILE /etc/pacman.d/mirrorlist \
      && ua-drop-caches \
      && paru -Syyu --noconfirm'

yay

paruの部分をyayに変更しているだけです。

alias ua-drop-caches='sudo paccache -rk3; yay -Sc --aur --noconfirm'
alias ua-update-all='export TMPFILE="$(mktemp)"; \
    sudo true; \
    rate-mirrors --protocol https \
      --entry-country=JP --max-jumps=1 --country-neighbors-per-country=2 \
      --save=$TMPFILE manjaro --max-delay=21600 \
      && sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-backup \
      && sudo mv $TMPFILE /etc/pacman.d/mirrorlist \
      && ua-drop-caches \
      && yay -Syyu --noconfirm'

AURを使わない場合

paruの部分をpacmanに変更しているだけです。

alias ua-drop-caches='sudo paccache -rk3; sudo pacman -Sc --noconfirm'
alias ua-update-all='export TMPFILE="$(mktemp)"; \
    sudo true; \
    rate-mirrors --protocol https \
      --entry-country=JP --max-jumps=1 --country-neighbors-per-country=2 \
      --save=$TMPFILE manjaro --max-delay=21600 \
      && sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-backup \
      && sudo mv $TMPFILE /etc/pacman.d/mirrorlist \
      && ua-drop-caches \
      && sudo pacman -Syyu --noconfirm'

Arch

manjaroの部分をarchに変更しているだけです。

paru

alias ua-drop-caches='sudo paccache -rk3; paru -Sc --aur --noconfirm'
alias ua-update-all='export TMPFILE="$(mktemp)"; \
    sudo true; \
    rate-mirrors --protocol https \
      --entry-country=JP --max-jumps=1 --country-neighbors-per-country=2 \
      --save=$TMPFILE arch --max-delay=21600 \
      && sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-backup \
      && sudo mv $TMPFILE /etc/pacman.d/mirrorlist \
      && ua-drop-caches \
      && paru -Syyu --noconfirm'

yay

alias ua-drop-caches='sudo paccache -rk3; yay -Sc --aur --noconfirm'
alias ua-update-all='export TMPFILE="$(mktemp)"; \
    sudo true; \
    rate-mirrors --protocol https \
      --entry-country=JP --max-jumps=1 --country-neighbors-per-country=2 \
      --save=$TMPFILE arch --max-delay=21600 \
      && sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-backup \
      && sudo mv $TMPFILE /etc/pacman.d/mirrorlist \
      && ua-drop-caches \
      && yay -Syyu --noconfirm'

AURを使わない場合

alias ua-drop-caches='sudo paccache -rk3; sudo pacman -Sc --noconfirm'
alias ua-update-all='export TMPFILE="$(mktemp)"; \
    sudo true; \
    rate-mirrors --protocol https \
      --entry-country=JP --max-jumps=1 --country-neighbors-per-country=2 \
      --save=$TMPFILE arch --max-delay=21600 \
      && sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-backup \
      && sudo mv $TMPFILE /etc/pacman.d/mirrorlist \
      && ua-drop-caches \
      && sudo pacman -Syyu --noconfirm'

補足

AUR対応パッケージマネージャーのインストール方法

paru

paru[3]をAUR[4]のPKGBUILDを用いてビルドします。

sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si

yay

yay[5]をAUR[6]のPKGBUILDを用いてビルドします。

sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

paccacheのインストール

paccacheはpacman-contrib[7]パッケージに含まれています。

paru -S pacman-contrib
脚注
  1. https://gitlab.com/Arisa_Snowbell/shiny-mirrors ↩︎

  2. https://github.com/westandskif/rate-mirrors ↩︎

  3. https://github.com/Morganamilo/paru ↩︎

  4. https://aur.archlinux.org/paru.git ↩︎

  5. https://github.com/Jguer/yay ↩︎

  6. https://aur.archlinux.org/yay.git ↩︎

  7. https://gitlab.archlinux.org/pacman/pacman-contrib ↩︎

Discussion