FreeBSD update memo

FreeBSDのアップデートをする手順についてのメモ。

基本的な方針は、(1) freebsd-updateでシステムをアップデート、(2) portsnapでportsツリーをアップデート、(3) すべてのpkgを削除して入れなおす、というステップを踏む。すべてのpkgがオプションをデフォルトでインストールされている場合、これが一番簡単。たとえオプション付きでmakeされているものがあっても、一旦削除してmakeしなおすほうが良いのではないかと思う。とりあえず、portsからオプション付きでmakeしたものはないものとして考える。

portsで入ったものの起動は/etc/rc.conf.localにまとめることにしておいて、これを/etc/rc.conf.local.TMPなどにリネームしてリブートする。

# mv /etc/rc.conf.local /etc/rc.conf.local.TMP
# shutdown -r now

最初にfreebsd-updateを使って、システムをアップデートする。

# freebsd-update fetch
# freebsd-update install

この途中で、アップデートするファイルが表示されるが、それが多い場合moreで止まってしまうので注意。

次にportsnapでportsツリーをアップデート。

# portsnap fetch
# portsnap update

portsnapは、最初に用いるときは、fetch extractだが、その後アップデートする場合は、fetch updateとする。

最後に、pkgを入れなおす。

# pkg delete -afy
# pkg
# ./pkgInstaller.sh ports_list.txt

portsからインストールしている、www/linux-f10-flashplugin11とjapanese/acroread9を入れなおす

# make BATCH=yes -C /usr/ports/www/linux-f10-flashplugin11 install clean
# make BATCH=yes -C /usr/ports/japanese/acroread9 install clean

もしvulnerabilities checkでインストール出来ない場合、DISABLE_VULNERABILITIES=yesをつけることで回避できる。必要に応じて。

/etc/rc.conf.localを戻して、リブートすれば、アップデートは完了する。

# mv /etc/rc.conf.local.TMP /etc/rc.conf.local
# shutdown -r now

pkg delete -afyをしても、pkgから入れたソフトウェアの設定ファイルは維持されるようだ。つまり、/usr/local/etc/以下のファイルを変更した状態で、pkg delete -afyをしても設定ファイルは残るし、入れなおしても設定ファイルは上書きされないようだ。入れなおしても設定ファイルを書き直す必要がないという意味で楽だけれども、設定ファイルの文法が大幅に変わったときに、動く設定ファイルがどこにもなくなってしまうのかなと思う。まぁ、そこまで大きな変更は度々あるわけではないとは思うけれども。