私の Arch Linux の運用方法 - システムアップデート編

Arch Linux をメイン機として使いはじめて 2 年ほど経った。敬けんな Arch Linux ユーザーよろしく最新追従生活を送っているが、今のところ大きなトラブルなく運用できている。

ここいらでひとつ、私が日常的に行っている Arch Linux の運用について書いて残しておきたい。今回はシステムアップデート編ということで、システムアップデートにまつわる事柄を書く。システムアップデート編以外を書くかどうかは分からない。

基本的には Arch Wiki に従っている。

システムアップデート前にやること

archlinux.jp を見て、手動での操作が必要にならないかを確認する。事後に確認することもできるのだけど、前もって知っておくと驚きが減るので、事前に確認するようにしている。たまに jp が落ちていることもあるので、そういうときは落ち着いて org を見に行く。

システムアップデート中にやること

pacman (私はそのラッパーの yay を使っている) はそれ自体が /var/log 配下にログを残すようになっているが、念には念を入れて、自前でログを残すようにしている。具体的には以下のようなラッパースクリプトを実行するようにしている。

#!/bin/sh

mkdir -p $HOME/sysupd
logfile=$HOME/sysupd/`date "+%Y%m%d%H%M%S"`.log
script $logfile -c 'yay'
xmonad --recompile

yayscript コマンドでラップして、実行時の出力を $HOME/sysupd 配下にログとして残すようにしている。

システムアップデート後にやること

上記のラッパースクリプトの末尾で行っている通り、xmonad の再コンパイルをやる。Haskell 系パッケージに更新が入るときなど、xmonad の再コンパイルが必要になるケースがあるから。再コンパイル自体には特にデメリットがないので、要不要に関わらず、常に実行するようにしている。

pacdiff を確認する。これは前述の Arch Wiki にある通り。まずは pacdiff で実行し、サッと差分を眺める。pacnew で上書きしたいものがあれば、sudo pacdiff して、差分を見ながら編集し、overwrite している。

たまに一般ユーザーには read permission すらついていないファイルの pacnew が作られ、pacdiff では差分が出ない(というか何も出ない)場合がある。/etc/shadow に pacnew ができたときにそうなった(そして事故った)。なんかおかしいと思ったら sudo pacdiff してみるといいかもしれない。

/etc/pacman.d/mirrorslist に更新がある場合は、pacnew で上書きして、rankmirrors をかけ直している。Worldwide, Japan, South Korea のミラーをコメントアウトして実行するようにしている。

xmonad を再起動する。標準のキーバインドと同じく Mod-q で再起動できるようにしている。xmonad が起動しなくなるのは困るので、このタイミングで確認する。

xmonad を終了してログインし直す。これも標準のキーバインドと同じく Mod-Shift-q でやる。理由は同じ。問題があると困るところは、先に小さく動作確認していく。このタイミングで、ブラウザや rxvt などの重要なアプリケーションが動作することをかんたんに確認する。

最後にマシンを再起動する。なんとなく DM (lightdm) のメニューから実行している。カーネルや systemd が更新されている場合は、これで新しいバージョンが動作するようになる(と理解している)。

再起動後にやること

uname -r して悦に浸る。

まとめ

大きな方針としては、

という感じ。

ただ色々書いたけど大事なことはだいたい Arch Wiki に書いてあるので、Arch Wiki を読みましょう。