Weekly News/28 で紹介されていた Benjamin Weber のブログ記事より。

以下に紹介するアップグレード手順はある程度システムに精通している方を対象とした手順であり、完全に無保証です。実行される場合は自己責任で行ってください。また、必要なデータのバックアップをお忘れなく!

稼働中の openSUSE を新しいバージョンにアップグレードしようと思っても、現状では公式にサポートされた方法はありません。インストールメディアから起動してオプションでアップグレードを選択するという方法のみがサポートされています。とはいえ、稼働中のシステムをアップグレードすることは可能です。RPM のペイロード・フォーマットが bz2 から lzma に変更されたことに伴い 10.3 のシステムへ 11.0 の RPM をインストールすることができなくなったため、10.3 から 11.0 へのアップグレードは、これまでよりも難しくなっています。

以下がその方法の概要です。

  1. RPM を 11.0 で使われているものにアップグレードする

  2. 11.0 のすべてのパッケージマネジメントスタックをインストールする

  3. すべてのパッケージをアップグレードする

手順

アップグレードするための具体的なステップはシステムにより異なってきます。以下はあくまで一例です。

10.3 で使っていたすべてのリポジトリを無効にする。

mv /etc/zypp/repos.d /etc/zypp/repos.d.old

リポジトリのキャッシュを削除する。

rm /var/cache/zypp/zypp.db

openSUSE 11.0 のメインリポジトリを追加する。

zypper ar http://download.opensuse.org/distribution/11.0/repo/oss \
openSUSE110

openSUSE 11.0 の新しい RPM をインストールする。

64bit 版の場合

rpm -Uhv ‘http://download.opensuse.org/distribution/11.0/repo/oss/suse/x86_64/rpm-4.4.2-199.1.x86_64.rpm’

32bit 版の場合

rpm -Uhv ‘http://download.opensuse.org/distribution/11.0/repo/oss/suse/i586/rpm-4.4.2-199.1.i586.rpm’

11.0 のパッケージマネジメントスタックをインストールする。

zypper in zypper

インストールソースとして追加していたリポジトリがあるなら、それらの 11.0 対応リポジトリを追加する。(以下、例として nonoss と packman の 11.0 対応リポジトリを追加する場合)

zypper ar http://download.opensuse.org/distribution/11.0/repo/non-oss \
openSUSE110_NonFree

zypper ar http://packman.iu-bremen.de/suse/11.0/ packman

すべてのパッケージをアップグレード。この段階でいくつかのパッケージでベンダが変更されることや、いくつかの古いパッケージがなくなっていることを確認されます。

zypper ref
zypper dup

再起動します。

問題点

アップグレードの後、いくつか重要な問題が発生するようです。以下に例として紹介する2点については、いずれもアップデートされた設定ファイルが自動では上書きされず、自前で編集した設定ファイルがなくなってしまっていたために起こる問題でした。

Networkmanager が、接続後すぐに切断してしまう。これは、古い dhclient の設定ファイルがなくなっていたことに起因していました。これについては以下の通り対処します。

mv /etc/dhclient.conf.rpmnew /etc/dhclient.conf

openSUSE updater がバックエンドを見つけ出せない。これは、古い zypp の設定ファイルがなくなっていたことに起因していました。これについては以下の通り対処します。

mv /etc/zypp/zypp.conf.rpmnew /etc/zypp/zypp.conf

アップグレードに伴い設定ファイルが欠落すると、予期せぬ箇所での不具合がを引き起こされます。アップグレード後何らかの問題が確認された場合、ど の設定ファイルを見ればいいのか、どう修復すればいいのか見当がつかないようでしたら、上記手順でのアップグレードは止めておいた方が無難かもしれませ ん。その点はどうぞご承知置きください。