Yay
YayはGo言語で書かれたAURヘルパ.
yaourtは現在メンテナンスされていないため, 代わりのAURヘルパとしてYayがよく用いられているように思う.
インストール
GitHubのリポジトリに記載されている README.md
の通り以下を実行すれば良い.
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
設定保存
Yayが内部で呼び出すpacmanやgitなどの実行コマンドを変更することができる.
例えば, gitコマンドをgit-dev
としてYayを実行する場合は
yay -Syu --git git-dev
となる.
この設定は保存することができ, 標準では$HOME/.config/yay/config.json
に保存される.
設定を変更して保存するには--save
オプションを使う.
上の設定を保存する場合には
yay --save --git git-dev
とする.
高速化
Yayを使っているときのボトルネックは, 公式リポジトリのソフトウェアをダウンロードする際に1つずつ順番に行っていくところだろう.
Yay自体はそこに関する並列化は行わないため, pacmanの代わりにpowerpillを使うようにする必要がある.1
インストール
powerpillや他に必要なreflectorとrsyncをインストールする. powerpillのみAURパッケージ.
yay -S reflector rsync powerpill
reflector設定
まずreflectorを用いて高速なサーバをいくつか取得する. 日本, 韓国, 香港, 台湾サーバから最新の20個のリストを取得して早い順に6個を表示させている.
sudo reflector -p rsync -f 6 -l 20 -c JP -c KR -c HK -c TW
私の環境では
Server = rsync://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = rsync://ftp.tsukuba.wide.ad.jp/archlinux/$repo/os/$arch
Server = rsync://jpn.mirror.pkgbuild.com/packages/$repo/os/$arch
Server = rsync://archlinux.cs.nctu.edu.tw/archlinux/$repo/os/$arch
Server = rsync://ftp.tku.edu.tw/archlinux/$repo/os/$arch
Server = rsync://hkg.mirror.rackspace.com/archlinux/$repo/os/$arch
以上のような結果が得られた.
これらのサーバをパッケージの更新の際に利用するために, /etc/powerpill/powerpill.json
内の rsync
の servers
の項目を
"servers": ["rsync://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch",
"rsync://ftp.tsukuba.wide.ad.jp/archlinux/$repo/os/$arch",
"rsync://jpn.mirror.pkgbuild.com/packages/$repo/os/$arch",
"rsync://archlinux.cs.nctu.edu.tw/archlinux/$repo/os/$arch",
"rsync://ftp.tku.edu.tw/archlinux/$repo/os/$arch",
"rsync://hkg.mirror.rackspace.com/archlinux/$repo/os/$arch"]
上のように書き換える.
pacman設定
このままではpowerpill実行のたびにエラーメッセージが表示されてしまう.2
脚注のサイトの通り, /etc/pacman.conf
の SigLevel
の設定を
SigLevel = PackageRequired
に変更する.
yay設定
pacmanの代わりにpowerpillを実行する場合は, コマンド引数として --pacman powerpill
を与える必要がある.
毎度入力するのは面倒くさいため, yayの設定ファイルに保存させておくといいだろう
yay --save --pacman powerpill
上を実行すると, いつも通りのコマンドで並列にダウンロードがなされる.
色付きの出力
リポジトリのREADME.md
に書かれている通り, /etc/pacman.conf
内にある
#Color
のコメントアウトを外し
Color
とする.
sudoループ
AURリポジトリにあるソフトウェアをインストールする場合, sudo権限がタイムアウトして再度パスワードを入力する必要が生じることがある.
これを回避するために, Yayがバックグラウンドでsudoを呼び出し続けるオプション--sudoloop
がある.
yay --save --sudoloop
上を実行して設定を変更しておくと便利だろう.
参考文献
- Reflector - ArchWiki
- Powerpill - ArchWiki
- AUR ヘルパー - ArchWiki
- Jguer/yay: Yet another Yogurt - An AUR Helper written in Go