はじめに
ArchLinuxを使っていると公式リポジトリではない、AURパッケージのお世話になることが多いと思います。デフォルト設定はAURパッケージのインストールが非常に遅いのでこれを高速化する方法について説明します。
AURの仕組み
AURは有志が登録したパッケージで、自前でArchLinuxの形式でパッケージを作成して、それを自前のPCにインストールするためだけに使うことができる仕組みです。多くの場合ソフトウェアをビルドしてバイナリを生成しています。(バイナリをダウンロードしてるだけのものもあります)
私がよくつかっている、AURのインストーラであるtrizenも、結局のところ上記を自動化しているだけで、仕組みは変わりません。AURのリポジトリからビルド設定ファイルをダウンロードし、ビルドし、パッケージして、インストールします。
makepkgの問題点
このパッケージ処理に使われるのがmakepkgなのですが、これのデフォルト設定はパッケージの大量配布を前提としたものになっており、超高圧縮な代わりに処理が非常に低速なオプションが設定されており、AURの処理を著しく遅くしています。/etc/makepkg.conf
を変更することによって自前ビルドに最適化することが可能です。
変更点
makepkgが使用する圧縮形式はPKGEXT
に指定される拡張子が使用されます。デフォルトでは.zst
になっているため、zstdで圧縮します。zstdの圧縮に使われるコマンドはCOMPRESSZST
で分かります。デフォルトではzstd -c -T0 --ultra -20 -
となっています。ultraは超高圧縮設定を有効にするもので、圧縮率は20が設定されています。だいぶキツい設定なので例えば次のようにします。
COMPRESSZST=(zstd -c -T0 -)
また、makeに並列数を設定できて、一部のパッケージのビルドが高速化されます
#MAKEFLAGS="-j2"
のコメントアウトを外し、jの後ろに好きな並列数を設定するといいです。
おわり
これだけでAURのパッケージインストールがだいぶ早くなるはずです。単に早くしたいだけならこれぐらいの知識で十分だとおもいますが、もう少しmakepkgの気持ちを知りたい場合は公式をどうぞ。
みなさんもよいArchLinuxライフを!