FreeBSD 7.3 から 8.1にバージョンアップ

当サイトはFreeBSD(amd64) 7.3 で運営しているのですが、そろそろFreeBSDの8系にバージョンアップしようかなと思って7.3から8.1にバージョンアップしました。

以前当ブログで書いたのですが、バージョンアップ、大変面倒でした・・・。ただ以下ようにやれば、時間はかかるものの楽にバージョンアップ出来ることはわかったので、そこは収穫かな。

下準備

バージョンアップを行う前に、以下の点を確認および変更します。

  1. /usr/local/bin/bash等のログインシェルを持っているユーザがいるかどうかの確認。存在した場合はvipwコマンドを利用し/bin/tcshに変更しましょう。
  2. portsのmisc/compat7xは事前にダウンロードしましょう。
  3. portsのportupgradeはインストールしておきましょう。

FreeBSD 8系からライブラリの仕様変更が入っていて、↑の対応を行っていないとバージョンアップ作業中にシェルが使えなくなるとか、portsの再構築作業が出来ない等が発生して致命的なダメージを受けます。

なおmisc/compat7xは以下のようにダウンロードしました。

# fetch ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.1-release/misc/compat7x-amd64-7.2.702000.200906.1.tbz

バージョンアップ作業

以下のようにやればOKです。

まず最初に、バージョンアップのためのデータを一式ダウンロードします。

# portsnap fetch update
# freebsd-update upgrade -r 8.1-RELEASE

続いて、Kernelをインストールします。再起動が必要です。なおportsの再構築を行うためサービスは自動再起動しない方がいいでしょう。

# freebsd-update install
# shutdown -r now

さて、ここからが本番。再起動後に8.1系のバイナリ一式をインストールしますが、くれぐれも手順は間違えないように・・。portsの再構築はホント時間かかる・・

# freebsd-update install
# pkg_add compat7x-amd64-7.2.702000.200906.1.tbz
# portupgrade -rf "lang/ruby*"
# portupgrade -raf -x "misc/compat*" -x "lang/ruby*"
# freebsd-update install
# shutdown -r now

1. misc/compat7x -> 2. rubyのrebuild -> 3. misc/compat*, lang/ruby*以外のportsを再構築 -> 7系のライブラリ等を削除(freebsd-update install)という手順を踏まないと再構築に失敗します・・・

最後にcompat7xを削除します。なおゴミが残るのでそこは手動で削除。

# pkg_delete compat7x-amd64-7.2.702000.200906.1
# rm -rf rm -rf /usr/local/lib/compat/pkg

当サイトは上記で対応できました。やれやれ。

This entry was posted in freebsd. Bookmark the permalink.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">