Open1
Arch系Linuxのレポジトリミラー更新方法(Rate Mirrors)
Rate Mirrors[1]
Arch系のOSのミラーリストを取得して、それぞれの速度を簡単に検査して、早い者順に並べ替えてくれているようです。
AURからインストールできます。
yay -S rate-mirrors
yay -S rate-mirrors-bin
Manjaro標準のパッケージマネージャーはAURにも対応しています。
pamac build rate-mirrors
Rate Mirrorsを自分でビルドするとプログラム名がrate_mirrorsになります。
上記パッケージでは、rate-mirrorsに名前が変更されています。
Rate Mirrorsを使った、aliasの例
githubにも記載があるalias例の応用です。
日本から近いサーバーから探すのと、protocolはhttpsを指定しています。
Manjaro
mirror update only
from stdin
日本限定
alias mirror-update='
export TMPFILE="$(mktemp)"; \
export TMPFILE2="$(mktemp)"; \
sudo true; \
curl -SsLo $TMPFILE2 https://repo.manjaro.org/status.json ;
jq -r ".[]|select(.country==\"Japan\")|.url" $TMPFILE2 | sed "s/http:/https:/" | \
rate-mirrors --protocol https --min-bytes-per-mirror 100 --save=$TMPFILE stdin \
--path-to-return="stable/\$repo/\$arch" \
--output-prefix="Server = " \
&& sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-backup \
&& sudo mv $TMPFILE /etc/pacman.d/mirrorlist \
&& sudo rm $TMPFILE2'
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に変更しているだけです。
mirror update only
from stdin
日本限定
alias mirror-update='
export TMPFILE="$(mktemp)"; \
sudo true; \
curl -s "https://archlinux.org/mirrorlist/?country=JP&protocol=https&use_mirror_status=on" | \
sed -e "s/^#Server = //" -e "/^#/d" | sed "s/http:/https:/" | \
rate-mirrors --concurrency=40 --protocol https --min-bytes-per-mirror 100 --save=$TMPFILE stdin \
--comment-prefix="# " \
--path-to-test="extra/os/x86_64/extra.files" \
--output-prefix="Server = " \
&& sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-backup \
&& sudo mv $TMPFILE /etc/pacman.d/mirrorlist \
'
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対応パッケージマネージャーのインストール方法
Manjaroでは、pacmanのバージョンがArchよりも古い場合があるので、ビルドできない場合があります。
yayはManjaroのレポジトリに登録されているのでインストール可能です。
sudo pacman -S yay
paru
paru[2]をAUR[3]のPKGBUILDを用いてビルドします。
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
yay
yay[4]をAUR[5]のPKGBUILDを用いてビルドします。
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
paccacheのインストール
paccacheはpacman-contrib[6]パッケージに含まれています。
sudo pacman -S pacman-contrib