FreeBSD 9.1-RELEASE! ただしpackageがそろっていないので注意!

遅れに遅れた9.1-RELEASEがついに。
もともとの進捗が悪いうえに、freebsd.orgに不正アクセスのあったことも遅れをさらに助長した。
加えて後者の要因は、遅れまくった9.1のリリースにあたってもpackageをほとんど揃えられない事態を引き起こしていて、ああやっと出たと思った俺含む一部のユーザを困惑させた訳である。


というのも。
FreeBSDは、apacheやらMySQLやらから、Perlなどの言語系までの、ベースシステムに含まれないソフトウェアを別途インストールする必要がある。
それにはpackage、つまりコンパイル済みバイナリを使うか、portsから自前コンパイルするかのおおよそ二通り。


で、OSメジャーバージョン更新などのイベントでは全ソフトウェアも更新が必要だ。
こういうときにPackageがあるととっても楽なわけだ。
すべて自前コンパイルするとえらく時間がかかるから。
そこで今回の件のように、ごくごく一部のpackageしかありません。欲しけりゃDVDイメージ落としてくださいねと言われるととっても困るわけ。


ただまあ、俺の場合9.0からのアップグレードなので、全更新は必須ではないのだけど、長く使っているうちにぐちゃぐちゃになるportsの依存関係(名前が変わったとか場所が変わったとか)をスッキリさせたいので自発的にやってる。


で、公式ページにある通り、packageのリリース目処は立っていないようなのであきらめて全コンパイルする。
(と思ったけど、一部9-stableのpackageを使った)

以下はそのログ。
公式ページの指示に従って作業。

準備

インストール済みpackageを「更新」するといろいろと面倒な事が起こるので、いったん全削除して再インストールする。
そのためにインストール済みpackageリストを作っておき、全削除。
(全削除するとsudoも使えなくなるから、suしてから)

$ pkg_info > pkg.list.txt
$ su
Password:
# pkg_info | cut -f1 -d" " | xargs -n1 pkg_delete -f


手順1. ファイルダウンロード

必要なファイルをダウンロードする。

# freebsd-update -r 9.1-RELEASE upgrade
Looking up update3.freebsd.org mirrors... none found.
Fetching metadata signature for 9.0-RELEASE from update3.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic src/src world/base world/games world/lib32

The following components of FreeBSD do not seem to be installed:
world/doc

Does this look reasonable (y/n)?y

yと答える。

Fetching metadata signature for 9.1-RELEASE from update3.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Fetching files from 9.0-RELEASE for merging... done.
Preparing to download files... done.
Fetching 37716 patches.....10....20....30....40....50....60....70....80....90....100....110....120....130....140....150....160....170....180....190....200....210....220....230....240....250....260....270....280....290....300....310....320....330....340....350....360....370....380....390....400....410....420....430....440....450....460....470....480....490....500....510....520....530....540....550....560....570....580....590....600....610....620....630....640....650....660....670....680....690....700....710...
<snip>
.37560....37570....37580....37590....37600....37610....37620....37630....37640....37650....37660....37670....37680....37690....37700....37710... done.
Applying patches...Fetching 1758 files... done.
Attempting to automatically merge changes in files... done.

The following changes, which occurred between FreeBSD 9.0-RELEASE and
FreeBSD 9.1-RELEASE have been merged into /etc/defaults/periodic.conf:

/var/yp/Makefile.dist
To install the downloaded upgrades, run "/usr/sbin/freebsd-update install".


手順2. Kernel差し替えと再起動


インストール。
一回目はカーネルの差し替え。ここから緊張するところ。
これがうまく行ったら、次はユーザランドの更新だが、まずは。

# freebsd-update install
Installing updates...
Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.


再起動前。

# shutdown -r now

手順3. ユーザランド更新と再起動

# freebsd-update install
Installing updates...
# shutdown -r now


手順4. unameの確認と...

# uname -a
FreeBSD sylph 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec  4 09:23:10 UTC 2012     root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64

で、ここからpackageの再インストール...

pkg_add -r ftp://ftp2.jp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/shells/bash-4.2.37.tbz
pkg_add -r ftp://ftp2.jp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/security/sudo-1.8.6.p3_1.tbz
pkg_add -r ftp://ftp2.jp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/All/perl-5.12.4_4.tbz

以降はガチコンパイル