FreeBSD 6.2-RELEASE から8.1-RELEASE に一気にアップグレード

一旦7を挟まないでも大丈夫かなーと思ったけどイけた

環境

作業フォルダ作成

以降のコマンドは全部ここで

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 を一度消すこと
  • 役に立ったコマンド
    • yes | cpan -i [modulename]
    • cpan -r
    • pkginfo | grep [modulename]
    • pkg_delete -f [modulename]
    • pkgdb -F

ついでに、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