Counter: 1380, today: 1, yesterday: 0
2009-02-12 (木) 04:58:15更新

Contents


6.3R p* -> 7.1R

まずは、cronでのソースの自動更新を#して停止する。

vi /etc/crontab

#30	3	*	*	*	root	/root/CVSUP/6_3/cvsup-releng_6_3.sh

freebsd-update -r 7.1-RELEASE upgrade

#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...

設定ファイルのマージ

設定ファイルのマージについて聞いてくるので適当に設定する。手動で差分編集が必要なファイルを最初にいくつか調整する必要がある。>>>>等が残っていると再起動でエラーが出ることがあるので要注意。

freebsd-update install

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

リブートしてカーネルを入れ替え

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

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をいれかえる

/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で停止したソースの自動更新を再開させる

/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

となっているので、リモートログインできなくなりますぞ ;)


トップ   編集 凍結解除 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-02-12 (木) 04:58:15