FreeBSD 6.2-RELEASE から8.1-RELEASE に一気にアップグレード
一旦7を挟まないでも大丈夫かなーと思ったけどイけた
環境
- cpu:pentium3 1Ghz
- mem:384Mb
作業フォルダ作成
以降のコマンドは全部ここで
mkdir /usr/local/src/freebsdupdate/ cd /usr/local/src/freebsdupdate/
アップデートツール入手
fetch http://people.freebsd.org/~cperciva/freebsd-update-upgrade.tgz fetch http://people.freebsd.org/~cperciva/freebsd-update-upgrade.tgz.asc gpg --verify freebsd-update-upgrade.tgz.asc freebsd-update-upgrade.tgz tar -xf freebsd-update-upgrade.tgz
スクリプトを動かす
sh freebsd-update.sh -f freebsd-update.conf -r 8.1-RELEASE upgrade sh freebsd-update.sh -f freebsd-update.conf install
freebsd-update.sh が各種コンフィグファイルに(/etc/ssh/sshd.conf など)に以下のようなdiff情報を入れる。
>>>>>>>>>>>>>>>>>>>Current Version ... <<<<<<<<<<<<<<<<<<<8.1 Release ...
いじられたコンフィグファイルは手動でマージしましょう。
再起動してもっかいスクリプト
shutdown -r now sh freebsd-update.sh -f freebsd-update.conf install
この時点で uname -a すると8.1になってる
perlのアップグレード 5.8.8 → 5.12
perlのアップグレードのためにいろいろ、なお、アップグレードしない場合でも、 portupgrade -fyr perl だけ先にやっといた方が良さそうだ。
portupgrade perl5.12 perl-after-upgrade -f cpan -r portsdb -F setenv DISABLE_CONFLICTS 1 portupgrade -o lang/perl5.12 -f perl-5.10.\* portupgrade -fyr perl unsetenv DISABLE_CONFLICTS
締め
portupgrade -fyaP sh freebsd-update.sh -f freebsd-update.conf install shutdown -r now
- 本当は全然すんなり行ってない
- perlは5.10に結びついてるモジュールが多かった。あと、5.12を5.10の上位互換だと自動認識しないので参った、時期が悪かったのだろう
- portupgrade は何故かうまく行かないことが多い。その都度pkgdb -F したり、この際ついでだからpkg_deleteしたり
- pkgdb -F がおかしくなってきたら /var/db/pkgdb.db を一度消すこと
- 役に立ったコマンド
ついでに、apache22いれたときのポート用config設定
vi /usr/local/etc/pkgtools.conf
MAKE_ARGS = { に足す
'www/apache22'>'WITH_SUEXEC=yes SUEXEC_DOCROOT=/home SUEXEC_USERDIR=www/docs',
追記:いいページがあった。
http://www.daemonology.net/blog/2007-11-11-freebsd-major-version-upgrade.html
portupgrade する前に以下の手順は挟んだ方が良さそうだ。
portsnap -I update portupgrade -f ruby ... rm /var/db/pkg/pkgdb.db portupgrade -f ruby18-bdb ... rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db portupgrade -af