要約はこちらをどうぞFreeBSD 6.3 to 7.0 (Sum)
2008-10-09 (木) 11:24:46
FreeBSD 7.0が発表された当初に書かれた記事では、いとも簡単にアップグレードできそう感じ
が多かったので、
http://freebsd.g.hatena.ne.jp/Cress/20080228/1204169122
# freebsd-update -r 7.0-RELEASE upgrade install # mergemaster -svia # mergemaster -svir
すりゃ良いだけかと思ったら、その後の記事では、
http://d.hatena.ne.jp/hirakiuc/20080302/1204440581
ちょっとだけ罠の予感^^が有ったり?と、いうわけで、とりあえず
# freebsd-update -r 7.0-RELEASE upgrade
してみることにしました。
まずはカーネルオプションをカスタマイズした機体の
FreeBSD 6.3-RELEASE-p5 (TFC) #0: Sat Oct 4 08:32:07 JST 2008
な状態で
# freebsd-update -r 7.0-RELEASE upgrade WARNING: This system is running a "tfc" kernel, which is not a kernel configuration distributed as part of FreeBSD 6.3-RELEASE. This kernel will not be updated: you MUST update the kernel manually before running "/usr/sbin/freebsd-update install".
と、いうことなので、プロンプトが戻ってきた段階で、手動で再構築する。 が、6.3-RELEASE-p5 のままなので、一旦GENERICカーネルに戻す。
# chflags -R noschg /usr/obj/usr && rm -rf /usr/obj/usr # cd /usr/src && make -j16 buildworld && make -j16 buildkernel && make installkernel # shutdown -r now # cd /usr/src && time make installworld # rm -R /etc.old1 && mv /etc.old /etc.old1 && cp -Rp /etc /etc.old # mergemaster -siv
して、もう一回
# freebsd-update -r 7.0-RELEASE upgrade
今度は、WARNINGなし。
# freebsd-update -r 7.0-RELEASE install Installing updates... Kernel updates have been installed. Please reboot and run "/usr/sbin/freebsd-update install" again to finish installing updates. # reboot
FreeBSD 7.0-RELEASE-p5 (GENERIC) #0: Wed Oct 1 07:51:58 UTC 2008 # /usr/sbin/freebsd-update install Installing updates... ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat4/hptrr.4.gz: No such file or directory ln: ///usr/share/man/cat4/SW_WATCHDOG.4.gz: No such file or directory ln: ///usr/share/man/cat7/securelevel.7.gz: No such file or directory Completing this upgrade requires removing old shared object files. Please rebuild all installed 3rd party software (e.g., programs installed from the ports tree) and then run "/usr/sbin/freebsd-update install" again to finish installing updates.
と言うことなので、port をアップデートする。
# portupgrade -afp
この作業中途中で動作が停止?するため、^c するも受け付けず。
ssh越しの作業であったため、別ターミナルを起ち上げ、再度別窓から
# portupgrade -afp
等をしつつ、だましだまし?作業続行(あとで、理由が判明^^)
で、プロンプトがとりあえず帰ってきたが、なんかいろいろエラーが・・・
OQ (CommandFailedError) from /usr/local/lib/ruby/site_ruby/1.8/pkgtools.rb:521:in `__sudo' from /usr/local/lib/ruby/site_ruby/1.8/pkgtools.rb:527:in `xsystem!' from /usr/local/lib/ruby/site_ruby/1.8/pkgdb.rb:871:in `autofix!' from /usr/local/lib/ruby/site_ruby/1.8/pkgdb.rb:867:in `autofix' from /usr/local/sbin/portupgrade:508:in `main' from /usr/local/sbin/portupgrade:789:in `call' from /usr/local/sbin/portupgrade:789:in `main' from /usr/local/lib/ruby/1.8/optparse.rb:785:in `initialize' from /usr/local/sbin/portupgrade:221:in `new' from /usr/local/sbin/portupgrade:221:in `main' from /usr/local/sbin/portupgrade:2175
ま、とりあえず
# /usr/sbin/freebsd-update install Installing updates... done.
して、
# mergemaster -siv
して、
# reboot
するも、
/usr/lib/libpthread.a: could not read symbols: Bad value *** Error code 1 Stop in /usr/ports/lang/ruby18/work/ruby-1.8.6-p287. *** Error code 1 Stop in /usr/ports/lang/ruby18. *** Error code 1 Stop in /usr/ports/lang/ruby18. *** Error code 1 Stop in /usr/ports/lang/ruby18.
という具合になんだか妙な挙動。で、自動起動プロセスが何割か起動していない!
起動ログを確認するも、なんとなく、いやぁ~な雰囲気^^
Oct 5 15:58:41 QC kernel: Sun Oct 5 15:58:41 JST 2008 Oct 5 15:59:04 QC sshd[1176]: in openpam_dispatch(): pam_nologin.so: no pam_sm_authenticate() Oct 5 15:59:04 QC kernel: Oct 5 15:59:04 QC sshd[1176]: in openpam_dispatch(): pam_nologin.so: no pam_sm_authenticate() Oct 5 15:59:04 QC sshd[1174]: Accepted keyboard-interactive/pam for root from 219.117.246.208 port 4962 ssh2 Oct 5 15:59:04 QC sshd[1174]: subsystem request for sftp Oct 5 15:59:05 QC sshd[1174]: in openpam_dispatch(): pam_nologin.so: no pam_sm_setcred() Oct 5 15:59:05 QC kernel: Oct 5 15:59:05 QC sshd[1174]: in openpam_dispatch(): pam_nologin.so: no pa Oct 5 16:00:00 QC postfix/smtp[1066]: connect to 127.0.0.1[127.0.0.1]:10024: Connection refused Oct 5 16:00:00 QC postfix/smtp[1066]: 9FBD95C68: to=<mailman@QC.example.com>, orig_to=<mailman>, relay=none, delay=0.01, delays=0.01/0/0/0, dsn=4.4.1, status=deferred (connect to 127.0.0.1[127.0.0.1]:10024: Connection refused) Oct 5 15:20:33 QC postfix/smtp[31433]: warning: deliver_request_get: error receiving common attributes Oct 5 15:21:25 QC kernel: pid 32231 (ruby18), uid 0: exited on signal 11 (core dumped) Oct 5 15:21:25 QC kernel: pid 32229 (ruby18), uid 0: exited on signal 11 (core dumped) Oct 5 15:21:44 QC kernel: pid 37080 (ruby18), uid 0: exited on signal 11 (core dumped) Oct 5 15:21:44 QC kernel: pid 37082 (ruby18), uid 0: exited on signal 11 (core dumped) Oct 5 15:22:00 QC /usr/sbin/cron[43066]: (operator) CMD (/usr/libexec/save-entropy) Oct 5 15:22:06 QC kernel: pid 44065 (ruby18), uid 0: exited on signal 11 (core dumped) Oct 5 15:22:06 QC kernel: pid 44063 (ruby18), uid 0: exited on signal 11 (core dumped) Oct 5 15:22:47 QC kernel: pid 61490 (ruby18), uid 0: exited on signal 11 (core dumped) /libexec/ld-elf.so.1: Shared object "libutil.so.5" not found, required by "python2.5"
等という感じで、port 10024などを使うウイルスフィルタが起動していない、ruby18まわりも腐っている!?
で、pkgdb コマンドが使えなかったり、アプリを再インストールしようとすると、やれライブラリが無い、とか、戻り値が変、とか・・・・
これって、 http://d.hatena.ne.jp/hirakiuc/20080302/1204440581 に似ている・・
しばし、呆然としつつも、こりゃ、クリーンインストールし直した方が早いかも、とも考えたり・・・
が、まぁ、まずは、もう一度、何とかcvsをつかって、cvsup-releng_7_0 の最新ソースを取ってきて、システムの再構築
# chflags -R noschg /usr/obj/usr && rm -rf /usr/obj/usr # cd /usr/src && make -j16 buildworld && make -j16 buildkernel && make installkernel # shutdown -r now # cd /usr/src && make installworld # rm -R /etc.old1 && mv /etc.old /etc.old1 && cp -Rp /etc /etc.old # mergemaster -siv # reboot
する。
一応起動ログを確認。続いてport tree を最新版に更新
# portsnap fetch && portsnap extract
する。
このportupgrade -afp の時に途中で止まる現象については、
http://gihyo.jp/admin/feature/02/freebsd-7/0003
に有るように、途中でデータベースファイル(/var/db/pkg/pkgdb.db)が壊れるためだそうです。
/var/db/pkg/pkgdb.db: unexpected file type or format -- Invalid argument
というエラーで、エラーのログを読むと「ruby18-bdb-0.6.x」パッケージを更新した直後からデータベースが更新できなくなっているようだ。そういえば,標記パッケージはpkgdb.dbを作るために使っているのだから実はあたり前だとも言える。
回避方法としては,まず,
portupgrade-2.4.6,2 ruby-1.8.6.287,1 ruby18-bdb-0.6.4
(コレをかいた時点では上記バージョンが最新) だけを手動でインストールしなおした後,
# mv /var/db/pkg/portupgrade-2.4.6,2 /root/ # mv /var/db/pkg/ruby-1.8.6.287,1 /root/ # mv /var/db/pkg/ruby18-bdb-0.6.4 /root/ # mv /var/db/pkg/portupgrade-2.4.6,2 /root/ && mv /var/db/pkg/ruby-1.8.6.287,1 /root/&& mv /var/db/pkg/ruby18-bdb-0.6.4 /root/ # pkgdb -u portupgrade -afp ** Listing the failed packages (-:ignored / *:skipped / !:failed) - (xorg-manpages-6.9.0) * devel/autoconf262 (autoconf-2.62) * x11-fonts/encodings (encodings-1.0.2,1) * x11-fonts/fontconfig (fontconfig-2.3.2_6,1) ! x11/xorg-libraries (xorg-libraries-6.9.0) (unknown build error) * x11-servers/xorg-nestserver (xorg-nestserver-6.9.0_1) * x11-fonts/bitstream-vera (bitstream-vera-1.10_2) * x11-servers/xorg-vfbserver (xorg-vfbserver-6.9.0_2) * x11-fonts/xfs (xorg-fontserver-6.9.0_1) * x11-fonts/libXft (libXft-2.1.7_1) * x11/xterm (xterm-220) - (xorg-printserver-6.9.0_2) * x11/xorg-apps (xorg-clients-6.9.0_3) * security/p5-IO-Socket-SSL (p5-IO-Socket-SSL-1.09) * x11-fonts/xorg-fonts-truetype (xorg-fonts-truetype-7.3) * x11-fonts/libXft (libXft-2.1.13) * x11-toolkits/pango (pango-1.20.5) * archivers/p5-IO-Zlib (p5-IO-Zlib-1.07) * archivers/p5-Archive-Tar (p5-Archive-Tar-1.36) * archivers/p5-Archive-Zip (p5-Archive-Zip-1.20) * devel/p5-Module-Build (p5-Module-Build-0.28.08) * x11-toolkits/gtk20 (gtk-2.12.11) * devel/libnotify (libnotify-0.4.4_2) * net/p5-Net (p5-Net-1.22,1) * www/p5-libwww (p5-libwww-5.805) * devel/gconf2 (gconf2-2.22.0_1) * x11-toolkits/wxgtk26-common (wxgtk2-common-2.6.3_4) * x11-toolkits/wxgtk26-unicode (wxgtk2-unicode-2.6.3_5) * devel/gnome-vfs (gnome-vfs-2.22.0_2) * mail/p5-Mail-DKIM (p5-Mail-DKIM-0.32) * multimedia/vlc (vlc-0.8.6.i,2) * mail/p5-Mail-SpamAssassin (p5-Mail-SpamAssassin-3.2.3) * security/amavisd-new (amavisd-new-2.6.1_1,1) # mv /root/portupgrade-2.4.6,2 /root/ruby-1.8.6.287,1 /root/ruby18-bdb-0.6.4 /var/db/pkg/ # pkgdb -u ---> Updating the pkgdb [Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 346 packages found (-0 +3) ... done] #
[手順5]旧ライブラリファイルの削除 パッケージのアップデートが終了したら,旧いライブラリファイルを削除して差し支えない。
# freebsd-update install
これでめでたく移行は終了である。
FreeBSD 6.3-RELEASE-p4 (GENERIC) #0: Sun Sep 14 20:58:06 JST 2008 vaio# freebsd-update -r 7.0-RELEASE upgrade The following components of FreeBSD seem to be installed: kernel/generic src/base src/bin src/contrib src/crypto src/etc src/games src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin world/base world/catpages world/dict world/doc world/games world/info world/manpages world/proflibs The following components of FreeBSD do not seem to be installed: kernel/smp Does this look reasonable (y/n)? y Fetching metadata signature for 7.0-RELEASE from update1.FreeBSD.org... done. Fetching metadata index... done. Fetching 1 metadata patches. done. Applying metadata patches... done. Fetching 1 metadata files... done. Inspecting system... Fetching files from 6.3-RELEASE for merging... done. Preparing to download files... done. Fetching 21117 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.... vaio# freebsd-update -r 7.0-RELEASE install Installing updates... Kernel updates have been installed. Please reboot and run "/usr/sbin/freebsd-update install" again to finish installing updates. vaio# reboot
FreeBSD 7.0-RELEASE-p5 (GENERIC) #0: Wed Oct 1 10:10:12 UTC 2008 Welcome to FreeBSD! vaio# /usr/sbin/freebsd-update install Installing updates... ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat3/archive_clear_error.3.gz: No such file or directory ln: ///usr/share/man/cat4/hptrr.4.gz: No such file or directory ln: ///usr/share/man/cat4/SW_WATCHDOG.4.gz: No such file or directory ln: ///usr/share/man/cat7/securelevel.7.gz: No such file or directory Completing this upgrade requires removing old shared object files. Please rebuild all installed 3rd party software (e.g., programs installed from the ports tree) and then run "/usr/sbin/freebsd-update install" again to finish installing updates. vaio# portupgrade -a /usr/local/lib/ruby/site_ruby/1.8/pkgtools.rb:498:in `__system': Command failed [exit code 0]: /usr/local/sbin/pkgdb -aFOQ (CommandFailedError) from /usr/local/lib/ruby/site_ruby/1.8/pkgtools.rb:521:in `__sudo' from /usr/local/lib/ruby/site_ruby/1.8/pkgtools.rb:527:in `xsystem!' from /usr/local/lib/ruby/site_ruby/1.8/pkgdb.rb:871:in `autofix!' from /usr/local/lib/ruby/site_ruby/1.8/pkgdb.rb:867:in `autofix' from /usr/local/sbin/portupgrade:508:in `main' from /usr/local/sbin/portupgrade:789:in `call' from /usr/local/sbin/portupgrade:789:in `main' from /usr/local/lib/ruby/1.8/optparse.rb:785:in `initialize' from /usr/local/sbin/portupgrade:221:in `new' from /usr/local/sbin/portupgrade:221:in `main' from /usr/local/sbin/portupgrade:2175 vaio# reboot
vaio# freebsd-update -r 7.0-RELEASE install Installing updates... Installing updates... done. vaio# mergemaster -siv
# chflags -R noschg /usr/obj/usr && rm -rf /usr/obj/usr # cd /usr/src && make -j4 buildworld && make -j4 buildkernel && make installkernel # shutdown -r now # cd /usr/src && make installworld && rm -r /etc.old1 && mv /etc.old /etc.old1 && cp -Rp /etc /etc.old # mergemaster -siv
2008-10-09 (木) 11:24:46