⌚
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
Discussion