私の Thinkpad X60 は openSUSE 11.2 と Windows Vista のデュアルブートにしてある(Vista はほとんど使わないけども)。先日、openSUSE 11.3 がリリースされた。今回は、インストールディスクを作成しないライブ・ディストリビューション・アップグレードを行うことにした。細工は粒々、うまくいった訳なので、忘れないうちに手順を書いておくことにする。

手順の確認

大雑把にまとめると、zypper を使ったライブアップグレードの手順は以下のようになる。

  1. 11.2 のシステムを最新の状態にする。
  2. リポジトリを 11.3 を対象にしたものに差し替える
  3. zypper を 11.3 のものにアップデートする
  4. zypper dup でシステムを 11.3 にする

実行前の注意

ライブアップグレードは失敗することもあり得るので、重要なデータは外付けハードディスクなどにバックアップを取っておくこと。不要だったりアヤシいリポジトリがある場合は、そこからインストールしたパッケージはアンインストールした上、無効または削除しておいた方がいいかも。それ以外にもインストールはしたものの使っていないアプリケーションなどは、あらかじめアンインストールしておくと時間の節約になるだろうねえ。

実際にしたこと

例によって一つのことを実現するにも幾通りかの手順があり得るわけで、これが一番いい方法って訳でもないが、実際にしたことを記しておく。

  1. 現在のシステムを最新の状態にする
    1. # zypper ref でリポジトリの情報を更新する。
    2. # zypper up で更新を適用する。
  2. リポジトリの差し替え
    1. # zypper lr -e repositories で現在のリポジトリの設定をファイルに書き出す。カレントディレクトリに repositories.repo というファイルができる。
    2. # sed -e "s/11\.2/11\.3/g" < repositories.repo > repositories-11.3.repo で対象を 11.3 にした新しい設定ファイルを作る。
    3. 次に、 zypper rr で現在のリポジトリを削除していく。削除するリポジトリの指定は、リポジトリのエイリアスか URL、または番号を使って行う。打つのは番号が一番楽。なのだが、この番号は固有のものではなく、順番に割り振られているだけで、一つ削除するとその分ずれていくみたい(?)。現在の番号は、zypper lr で確認できる。
    4. # zypper ar -r repositories-11.3.repo で新しいリポジトリの設定をインポートする。
  3. zypper の更新
    1. # zypper ref でリポジトリの情報を更新する。
    2. # zypper in --no-force-resolution zypper で zypper を 11.3 のものに更新する。この段階で zypper 以外にも結構多くのパッケージが更新される。
  4. zypper dup
    1. # zypper dup -d で、必要なパッケージのダウンロードだけを行う。ここでいきなり zypper dup してしまってもいいのだが、その場合は途中でネットワークが落ちてしまったりすると、中途半端にアップグレードされた壊れたシステムになってしまうおそれがある。ダウンロードだけを先に行った方が確実。ダウンロードが済むにはそれなりに時間がかかるので、アイスでも食ってまったりするといいよ!
    2. ここで念のため KDE からログアウトして、Ctrl+Alt+F1 でテキストコンソールへ。なお念のためシングルユーザモードに切り替えた方が良いかと思ったが、うっかりそのまま次へ進む。
    3. # zypper dup でいよいよアップグレードを行う。少し待つ…(眠くなる)。
    4. プロンプトが帰ってきたら(目を覚ませ)、速やかに # reboot

おめでとう、私の openSUSE は無事 11.3 になりました。ATOK X3 や VirtualBox(OSE じゃない方)などリポジトリ外からインストールしたものもそのまま、今のところ快調です。どうも。

参考文献