Contents
vi /etc/crontab
#30 3 * * * root /root/CVSUP/6_3/cvsup-releng_6_3.sh
#freebsd-update -r 7.1-RELEASE upgrade : : : : Does this look reasonable (y/n)? y
で取ってきて、
Fetching metadata signature for 7.1-RELEASE from update2.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 6.3-RELEASE for merging... done. Preparing to download files... done. Fetching 34455 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.... : : : Applying patches... done. Fetching 9255 files... Attempting to automatically merge changes in files... done. The following file could not be merged automatically: /etc/hosts.allow Press Enter to edit this file in /usr/bin/vi and resolve the conflicts manually...
設定ファイルのマージについて聞いてくるので適当に設定する。手動で差分編集が必要なファイルを最初にいくつか調整する必要がある。>>>>等が残っていると再起動でエラーが出ることがあるので要注意。
prime# freebsd-update install
でインストール。
Installing updates... Kernel updates have been installed. Please reboot and run "/usr/sbin/freebsd-update install" again to finish installing updates. prime#reboot
リブートしてカーネルを入れ替え
FreeBSD prime.smb.net 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan 1 14:37:25 UTC 2009 root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
prime# freebsd-update install Installing updates...
で、ユーザランドのライブラリなどがインストールされる。
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.
6.x から 7.x へのアップグレードでは、バージョン間のシステムライブラリの違いに対応するために、ここでサードパーティのアプリケーション(ports ツリーからインストールしたアプリケーション)をすべて再構築するように求められる。
がそのまま portupgrade -fa してはいけない。理由は http://gihyo.jp/admin/feature/02/freebsd-7/0003?page=3 に有るとおり。なので、手動で、
/var/db/pkg でportupgrade、ruby-1.8.*、ruby18-bdb のバージョンを調べ、手動でアップグレードしておく。ただし、portupgrade portupgrade-2.3.1,2 等とすると同様にエラーになるので、
cd /usr/ports/lang/ruby18 make install make reinstall cd /usr/ports/databases/ruby-bdb make install cd /usr/ports/ports-mgmt/portupgrade make isntall make reinstall
などとして入れ替えた後
prime# mv /var/db/pkg/portupgrade-2.4.6,2 /root/ prime# mv /var/db/pkg/ruby18-bdb-0.6.4 /root/ prime# mv /var/db/pkg/ruby18-bdb-0.6.2 /root/ prime# mv /var/db/pkg/ruby-1.8.6.287,1 /root/
と待避してから、
prime# pkgdb -u
で、
prime# portupgrade -afp
で長々とアップグレード・・・ 時々見ていないとオプションの指定画面(例の青い画面)で入力待ちになっていたりするので、screen を使うとどこからでも見張れるので良いかも
で、今度は書き戻し
prime# mv /root/portupgrade-2.4.6,2 /root/ruby-1.8.6.287,1 /root/ruby18-bdb-0.6.4 /var/db/pkg/ prime# pkgdb -u
したあと、
# freebsd-update install Installing updates... # reboot
これでようやく FreeBSD 7.1-RELEASE への移行が完了。
# uname -a FreeBSD server.maita.cc 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan 1 14:37:25 UTC 2009 root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
/root/CVSUP/6_*なファイルを、6_* を 7_1 へ文字列置換してファイルを準備
vi /etc/crontab
30 3 * * * root /root/CVSUP/7_1/cvsup-releng_7_1.sh
portupgrade自身を portupgrade portupgrade--2.3.1,2 などとアップグレードしようとするとハマル!!
依存関係で、ruby18 ruby18-bdb もupgradeしようとするが、結局red zoneとか言いながらエラーになってportupgradeコマンドが飛んでしまう。
まぁ、慌てずに、古典的に、
# cd /usr/ports/lang/ruby18 # make install # cd /usr/ports/databases/ruby-bdb # make install # cd /usr/ports/ports-mgmt/portupgrade # make isntall
して復活してくだされ
リモートメンテでメジャーバージョンアップをするとき、NICが
nve # nVidia nForce MCP on-board Ethernet Networking
だと、リブートするまえに、rc.conf で、nve を nfe へ変更すること。なぜなら、
/usr/src/sys/i386/conf/GENERIC device nfe # nVidia nForce MCP on-board Ethernet device nge # NatSemi DP83820 gigabit Ethernet #device nve # nVidia nForce MCP on-board Ethernet Networking
となっているので、リモートログインできなくなりますぞ