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
yay
を script
コマンドでラップして、実行時の出力を $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 を読みましょう。