Arch Linux: pacmanの設定
Arch Linuxをインストールした後に行うpacmanの設定で、必要または好ましいと考えられるものをリストアップしていく。全てoptionalな設定なので、内容を見て設定するかどうか決めたら良いと思う。
Mirrorlist
パッケージのダウンロードの際に参照するmirrorは/etc/pacman.d/mirrorlist
ファイルで管理される。(このファイルパスは/etc/pacman.conf
の[core]
, [extra]
, [community]
などのセクションで指定される。) このファイルを見るとわかるが、mirrorサーバーがたくさん列挙されている。このリストの上から優先的に参照される。地理的に近いmirrorを上に配置しておくと良い。
reflector
パッケージは、Arch Linux Mirror Statusから適正なmirrorのリストを取得してダウンロードスピードによってソートし、/etc/pacman.d/mirrorlist
を書き換える。
$ sudo pacman -S reflector
例えば次のコマンドは、24時間以内に同期された日本とオーストラリアのmirrorを速度でソートして/etc/pacman.d/mirrorlist
を更新する。
$ sudo reflector --country Japan,Australia --age 24 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
(これはInstallation guideで推奨されているので、すでに設定済みの場合が多いかもしれない。)
mirrorlistの定期更新
reflector
パッケージにはsystemdのserviceが同梱されている。これを有効化することで起動時に自動的にreflectorが実行されて/etc/pacman.d/mirrorolist
が更新される。(このとき/etc/xdg/reflector/reflector.conf
がオプションとして渡される。)
$ sudo systemctl enable reflector.service
個人的には一旦mirrorlistを設定したら当分放っておいて良いかなと思っているので、定期更新は設定していない。
Comparing versions before updating
パッケージアップデートの前にバージョンの差異やダウンロードサイズなどを表示する。/etc/pacman.conf
の[options]
下のVerbosePkgLists
をアンコメントする。
# /etc/pacman.conf
...
[options]
...
VerbosePkgLists
...
$ sudo pacman -Syu
で次のような出力がされるようになって結構面白い。
Package (6) Old Version New Version Net Change Download Size
extra/libmariadbclient 10.1.9-4 10.1.10-1 0.03 MiB 4.35 MiB
extra/libpng 1.6.19-1 1.6.20-1 0.00 MiB 0.23 MiB
extra/mariadb 10.1.9-4 10.1.10-1 0.26 MiB 13.80 MiB
...
Parallel downloads
並列ダウンロードを有効化する。/etc/pacman.conf
の[options]
下のParallelDownloads
をアンコメントする。
# /etc/pacman.conf
...
[options]
...
ParallelDownloads = 5
...
Cleaning cache
pacmanは/var/cache/pacman/pkg
にダウンロードしたパッケージをキャッシュしておく。そしてこのディレクトリの古いものやインストールしていないバージョンが自動的に削除されることはない。このことは次の利点がある。
- パッケージのダウングレードを簡単に行える。(
$ sudo pacman -U file:///var/cache/pacman/pkg/package-old_version.pkg.tar.zst
) - アンインストールしたパッケージの再インストールを簡単に行える。
しかしキャッシュのディレクトリが無限に膨張していくのを防ぐため、やはり定期的に削除する必要がある。
pacman-contrib
パッケージで提供されるpaccache
コマンドでキャッシュクリーニングが可能である。このpacman-contrib
パッケージはpacman関連のツールを提供するもので、以前はpacmanに同梱されていた。今は別のパッケージなのでインストールする必要がある。
$ sudo pacman -S pacman-contrib
例えば次のようなpaccache
コマンドは、最新のキャッシュを3バージョン分を残して全てのキャッシュを削除する。
$ sudo paccache -r
キャッシュクリーニングの定期実行
こういったキャッシュクリーニングを毎週自動的に行うにはpaccache.timer
を有効化する。(再起動後に有効化される。)
$ sudo systemctl enable paccache.timer
(この記事では関係ないのだが、pacman-contrib
パッケージは面白いコマンドがあるので調べてみると良い。というか私も全然詳しくない。)
Color
pacmanの出力をカラー化する。/etc/pacman.conf
の[options]
下のColor
をアンコメントするとできる。
# /etc/pacman.conf
...
[options]
...
Color
...
ILoveCandy
pacmanの出力にパックマンを登場させる。/etc/pacman.conf
の[options]
下にILoveCandy
を追加する。
# /etc/pacman.conf
...
[options]
...
IloveCandy
...
まあ特に意味はないのだがなんか人気。かわいい。
あとがき
間違った記述や他の良い設定があれば教えてくれると助かります。
Discussion