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 内の rsyncservers の項目を

"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

上を実行して設定を変更しておくと便利だろう.

参考文献


  1. https://github.com/Jguer/yay/issues/685 ↩︎

  2. https://wiki.archlinux.jp/index.php/Powerpill#.E3.83.88.E3.83.A9.E3.83.96.E3.83.AB.E3.82.B7.E3.83.A5.E3.83.BC.E3.83.86.E3.82.A3.E3.83.B3.E3.82.B0 ↩︎