| « No more dlsym(3) hack | FreeBSD版Firefox2でYouTubeのサウンドを鳴らす2 » |
FreeBSD 6.2-RELEASEにアップグレード
FreeBSD 6.2-RELEASEが出てきたようなので、今まで使っていたFreeBSD 6.1Rからアップグレードしてみた。
ソースの同期
6.2Rからは、csup(1)なるコマンドがベースシステムに組み込まれたけど、6.1Rではまだ導入されていないので、従来から導入しているcvsupのportを使ってソースを同期することにする。
/usr/share/examples/cvsup/standard-supfile
のファイル内
*default host=CHANGE_THIS.FreeBSD.org
の行を手近なホストに書き換え、
*default release=cvs tag=RELENG_6_1*default release=cvs tag=RELENG_6_2
とRELENG_6_2のタグを選択。
この後、
# cvsup -g -L 2 /usr/share/examples/cvsup/standard-supfile
を実行すると、上記で指定したホストに接続し、ソースの同期が行われる。
ビルド前の準備
実際にビルドを行う前に、
# mergemaster -p
を行って、ビルドに必要な環境が整っているか確認。
また、RELENG_6では、標準のCFLAGSが
CFLAGS = -O2 -fno-strict-aliasing -pipe
のように設定されているので、もし、独自に/etc/make.confに設定してあるものがある場合*1、見直した方が良いかも知れない(コメントアウトする)。
- *1 古い時期の情報では、
CFLAGS = -O -pipeを推奨しているものが多かった。
必要なファイルのバックアップ等
この間に、/etcの内容などは、万が一に備えてバックアップしておいた方が安全だと思う。
# cd /var/tmp # touch backup-etc.tar.gz # chmod 600 backup-etc.tar.gz # tar zcf ./backup-etc.tar.gz /etc
カーネルのコンフィギュレーション ファイルの変更点も何かと参考になる。
ビルド
同期したソースは、通常、/usr/srcのディレクトリ以下に置かれる。
その中に入り、
# cd /usr/src # make buildworld # make buildkernel
を実行。
インストール
ビルド終了後、同じディレクトリ内で、
# make installkernel
を実行し、新しいカーネルで起動するかどうかのテストを兼ねて再起動。
# shutdown -r now
再起動時のブートメニューで、single user mode
を選択。
シェル(/bin/sh)選択後、定型の
# fsck -p # mount -u / # mount -a -t ufs # swapon -a # adjkerntz -i
を実行した後、ソースディレクトリに戻り、残りの部分をインストール。
# cd /usr/src # make installworld
/etcの内容を更新
上記だけでは、/etcの内容は更新されないので、mergemaster(8)を実行。
# mergemaster
もし、マージする場合、その画面では、古いファイルの内容は左(l)、新しいのは右(r)に表示される。hのキーを押せばヘルプが表示される。
jail環境等の更新
jail環境等があれば、次のようにしてホスト側から更新できる。
# make installworld DESTDIR=${JAIL_ROOT}
# mergemaster -D ${JAIL_ROOT}
ただし、jail環境には、installkernelは不要。
インストール後の処理
FreeBSD 6.1Rからは、ソースディレクトリ内で
# make check-old
を実行することにより、古いファイルやディレクトリ、そして、古いライブラリの存在の確認が行えるようになった。
6.2Rに更新した環境で、おこなって見たところ、
# make check-old >>> Checking for old files /usr/share/man/man4/uhidev.4.gz /etc/periodic/weekly/120.clean-kvmdb /usr/include/c++/3.4/ext/demangle.h >>> Checking for old libraries >>> Checking for old directories To remove old files and directories run 'make delete-old'. To remove old libraries run 'make delete-old-libs'.
のように表示された。
それぞれ、make delete-old、もしくは、make delete-old-libsを使用して削除できる(古いライブラリは見付からなかったが)。
ただし、古いライブラリを削除した場合、それに依存していたports等が起動できなくなる場合もあるかも知れない。
その他
以上の結果、
# uname -r 6.2-RELEASE
となった。
前回、FreeBSD 6.0RからFreeBSD 6.1-RELEASEにアップグレードした場合に比べて、移行自体はスムーズに行ったと思う。
後は、必要に応じて微調整して行く程度。
Trackback address for this post
Trackback URL (right click and copy shortcut/link location)
1 comment, 1 trackback
FreeBSD 6.3-RELEASEが出てきたようなので、今まで使っていたFreeBSD 6.2Rから更新してみました。
行った手順は、
FreeBSD 6.2-RELEASEにアップグレード
の時とほぼ同じ。
こちらの環境では、特
This post has 1 feedback awaiting moderation...