#counter([total|today|yesterday]); RIGHT:&lastmod;更新 ---- Contents #contents ---- *6.3R p* -> 7.1R [#g6181c86] **まずは、cronでのソースの自動更新を#して停止する。 [#x5093cf9] vi /etc/crontab #30 3 * * * root /root/CVSUP/6_3/cvsup-releng_6_3.sh **freebsd-update -r 7.1-RELEASE upgrade [#de88cb81] #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... **設定ファイルのマージ [#l74a167c] 設定ファイルのマージについて聞いてくるので適当に設定する。手動で差分編集が必要なファイルを最初にいくつか調整する必要がある。>>>>等が残っていると再起動でエラーが出ることがあるので要注意。 **freebsd-update install [#y98d5f88] 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 **reboot [#tbab2c5e] リブートしてカーネルを入れ替え 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 **freebsd-update install [#ld0fbdec] 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 に有るとおり。なので、手動で、 **手動でpkgをいれかえる [#qe522609] /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 **cronで停止したソースの自動更新を再開させる [#qd92a8cb] /root/CVSUP/6_*なファイルを、6_* を 7_1 へ文字列置換してファイルを準備 vi /etc/crontab 30 3 * * * root /root/CVSUP/7_1/cvsup-releng_7_1.sh ---- *失敗例 [#jcd308e5] ''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 して復活してくだされ :) *番外編・リモートメンテの罠 [#k29df914] リモートメンテでメジャーバージョンアップをするとき、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 となっているので、ログインできなくなりますぞ ;) となっているので、リモートログインできなくなりますぞ ;)