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
以降はガチコンパイル。