FrontPage 差分 一覧 ソース 検索 ヘルプ ログイン

freebsd-update

freebsd-update

[カテゴリ:FreeBSD]

AWSに移行したFreeBSDはアップデート時にsourceからbuildするのではなく freebsd-update に頼ることにしたのでメモ。

いまのバージョン

 # freebsd-version -kur

する。上から「インストールされてるkernel」「動いてるkernel」「ユーザランド」のバージョン(らしい)。kernelのバージョンアップを伴わないパッチを当てたあとは一番下だけ数字が増えたりする模様

セキュリティパッチ

パッチレベルをあげるときは

 # freebsd-update fetch
 # freebsd-update install

して再起動すればおしまい。

マイナーバージョンアップ

12.XのXのところのバージョンアップはこうする

 # freebsd-update upgrade -r 12.4-RELEASE

このタイミングでmergemaster的なやつが動くのだけど、全然動きが違う。なぜ変更した……。1画面に収まってdiffが表示されてるときは(Y/n)に答えればいいのだけど、ときどき「おまえがviつかって編集するんだよ」みたいなことを言われることがあって、そのときには

 <<<<<<<<<< 12.X-RELEASE

とか

 ========

とか、コメントですらないゴミが差分とともに挿入されているので、手動で消す。sshd_config に挿入されてて構文不正でsshd起動しなかったときは詰んだ。

ここまで終われば

 # freebsd-update install

して再起動。ただこの1回目のinstallは install kernel 相当なので、kernelのバージョンアップのみ。「再起動したらもっかい叩けよ」って警告が出るので、再起動後もっかい

 # freebsd-update install

を叩く。この2回目のやつが install world 相当。叩いたら再起動して、バージョン確認しておしまい。さっきのmergemaster的なやつ、自信がなければこの2回目の install のあとに /etc の下を確認して直接編集すると間に合う。

メジャーバージョンアップ

基本的にはマイナーバージョンアップと同じ

 # freebsd-update upgrade -r 13.2-RELEASE

して、mergemasterの亜種を行って、

 # freebsd-update install

して再起動して

 # freebsd-update install

する。

で、メジャーバージョンアップのときにはpackagesもバージョンアップしないといけない&そのあともっかい install を叩かないといけない。

 Completing this upgrade requires removing old shared object files.
 Please rebuild all installed 3rd party software (e.g., programs
 installed from the ports tree) and then run "/usr/sbin/freebsd-update install"
 again to finish installing updates.

不親切。

 # pkg-static install -fy pkg
 # pkg update -f
 # pkg upgrade -y
 # freebsd-update install

でいい。正常に終わったら最後の再起動。おつかれさまでした。

postfix(SMTP認証対応)とかmod_phpとかがpkgでupdateされると壊れるので、pkg lock しておくといいらしい