SDB:オフラインアップグレード

移動先: 案内, 検索
このガイドでは、 openSUSE ディストリビューションをオフラインでアップグレードするための手順を説明しています。
openSUSE で確認済み おすすめの記事 関連する記事
Icon-checked.png

Icon-manual.png Icon-help.png

概要

このページでは、従来から用意されているシステムアップグレード方式である オフラインアップグレード を説明しています。基本的には、インストール DVD からシステムを起動して、 "インストール" の代わりに "アップグレード" を選択するだけです。この方法はシステムをオフラインにしたあと、 DVD 内の小さなライブシステムを利用してアップグレードを実施するため、 ライブアップグレード (zypper dup) よりはずっと安全で、かつ様々な用途に応用することができる方法です。サービスを停止させたり開始させたりする必要はありませんし、用途や重要度、ライブラリなどが変わっても手順に影響はありません。ただし、オフラインである以上、ライブアップグレードに比べると長い時間システムが停止してしまいます。

また、このアップグレード手順はずっと昔のバージョン、具体的には少なくともバージョン 5.2 から実施可能な手順です。そのため、 "従来方式のアップグレード" としても知られています。

唯一存在する欠点としては、 DVD にはすべてのパッケージが収録されているわけではない という点があります。インストールされているパッケージのうち、 DVD に収録されていないパッケージについては、本手順ではアップグレードが行なわれず、あとから実施する必要があります。


なぜシステムアップグレードを行なうのか

新規インストールではなく、なぜシステムアップグレードを行なうのでしょうか?新規インストールを支持する人の中には、アップグレードではシステムライブラリが失われてしまったり、設定ファイルがおかしくなってしまったりすることがある、と言う人がいます。確かに新規インストールを実施しても、多くのデータファイルが存在する '/home' をフォーマットせずに維持していれば、データは失われませんし、通常は高速で問題も発生しにくい方法ではあります。

その通りです。

しかしながら、 mysql のデータベースファイルや imap の電子メールストレージ、 postfix, samba, hylafax などのシステム関連の設定や apache のようなサーバファイルは、新規インストールで初期値に戻ってしまいます。このような環境では、ライブアップグレードのほうがより現実的で、かかる時間も少なくて済みます。一般的に、サーバマシンを新規にインストールしてしまうと、元に戻すには数週間単位の時間が必要になってしまいます。

サポート範囲について

システムアップグレード と同様に、オフラインアップグレードも "ベストエフォート" (最善努力) であることにご注意ください。ほとんどの場合においてうまく動作するはずですが、失敗する可能性もあります。そのため、アップグレーとの実施にあたっては、事前にフルバックアップを採取しておいてください。フルバックアップを採取できていれば、アップグレードが失敗してもリストアして、問題となる箇所を回避するなどしてやり直すか、新規インストールやライブアップグレードの方法に変えることができるためです。

  • 公式サポート: 13.1 から 42.1 などのように、双方がサポートが提供されているバージョンであれば、任意のバージョン間でアップグレードを実施できるようです。ただし、これは公式に実施可能であることを示すものではありません。ずっと古いバージョンからの移行もおそらくは動作するはずですが、保証できるものではありません。実施にあたっては、フルバックアップを採取してからお試しください。
  • 32 --> 64: この手順を実施することで、 32 ビットアーキテクチャから 64 ビットアーキテクチャに移行することができた、という報告もあります。確かにオンラインの更新に比べて、オフラインの更新にはずっと大きなチャンスがあるのは確かです。ですが、このようなアップグレード方法は サポート対象外 です。知識のあるユーザ以外には避けておいたほうが賢明です。

アップグレードの準備

アップグレードを実施するにあたって、 サポート範囲内となる アップグレード元の環境は、 openSUSE のリリース版にその時点での最新の更新を適用してある状態です。最新の更新の適用方法について、詳しくは ライブアップグレード のページなどをお読みください。

また、事前にアップグレード先のバージョンに対する リリースノート をお読みになることをお勧めします。13.1 から 42.1 などのように、バージョンを 飛ばす 場合は、飛ばしたバージョンのリリースノートについてもお読みください。

このほか、 openSUSE:最も厄介なバグ (日本語), en:openSUSE:Most_annoying_bugs (英語) についても、アップグレード先のバージョンおよび途中のバージョンのものをお読みになることをお勧めします。

また、アップグレード先のバージョンの インストール DVD をダウンロードしておき、チェックサムの検証と書き込み、書き込み確認までを行なっておいてください。こちらの作業は、現在インストールされているバージョンで実施したものと同じです。なお、アップグレードにあたっては、ライブ CD を使用することはできません。オンラインのリポジトリを利用することもできますが、確実に動作する保証はありません。

アップグレードにあたっては、すべてのシステムパーティションに 十分な空き容量 があることを確認しておいてください。ディスク容量が不足していると、アップグレード処理が途中で止まってしまい、システムが動作しなくなってしまうことがあります。そうなってしまうと、古いバージョンに戻ることもできなくなってしまいます。

ヒント: 小さなパーティションを作成して、そこに新規インストールして新しいバージョンを試す方法もあります。この方法をとることで、実際にアップグレードしたあと発生する問題を事前にチェックしたり解決もしくは回避したりすることができますし、設定の問題であれば設定を比較することもできます。また、そこにインストールしたものはレスキューシステムとしても活用することができるほか、 Factory のような実験的なバージョンを試すこともできます。様々な可能性があるというわけです。

フルバックアップの採取: どのようなアップグレード方式であっても、失敗する可能性は常に存在します。アップグレードが失敗すると、システムを起動することができなくなってしまったり、正しく動作しなくなってしまったりします。このような場合、修復ができるとも限りません。フルバックアップは、このような問題へのセーフティネットとなります。アップグレードが失敗した場合でも、原因を分析してやり直すことができますし、どうしても無理なようであればアップグレードをあきらめるか、新規インストールで回避することもできます。もちろんフルバックアップであれば、データの損失もありません。

データベースのダンプの採取: アップグレードが失敗してもデータベースを復元することができるようにするため、ダンプを採取しておくことをお勧めします。

メールサービスの停止: postfix などのメールサーバが動作している場合は、送信待ちのメールが存在していないかどうかをご確認ください。

アップグレード先のバージョン: 既にサポート範囲から外れてしまっている古いバージョンから、新しいバージョンへの移行も行なうことができます。アップグレード先は、サポート範囲内であっても、範囲外であってもかまいません。ただし、可能であればアップグレードはバージョンを飛ばすことなく、 1 つずつアップグレードしておくことを 強くお勧めします 。たとえば現在お使いのバージョンが 12.3 で、 13.2 にアップグレードしたい場合、 12.3 から 13.1 に、 13.1 から 13.2 にそれぞれアップグレードするとよいでしょう。バージョンを飛ばすことも可能ではありますが、飛ばす数によってアップグレードの失敗確率も顕著に上がってしまうことにご注意ください。また、サポート対象外のバージョンの openSUSE や、アップグレード時にバージョンを飛ばしてしまったような場合は、バグ報告を行なうことができないことにも注意してください。


アップグレードの実行

このページの文末にあるスクリーンショットも併せてご覧ください (スクリーンショットは 13.2 から Leap 42.1 へのアップグレード時の例です) 。

  • openSUSE 13.1 またはそれ以前のバージョンへのアップグレードの場合:
    • DVD から起動し、 F2 を押して言語を選択してから、 インストール を選択します。すると ようこそ 画面が表示されますので、ここで言語とキーボードを選択して 次へ を押します。
    • 次の画面 (インストールモード) では、 既存のシステムをアップグレード を選択します。
  • openSUSE 13.2 (Leap 含む) またはそれ以降のバージョンへのアップグレードの場合:
    • DVD から起動し、 F2 を押して言語を選択してから、 アップグレード を選択します。するとライセンス同意が表示されますので、言語とキーボードを選択して 次へ を押します (図 1) 。
  • 既存のルートパーティションの検索が行なわれます。しばらくすると アップデートの選択 画面が表示されます。ここではアップグレードを行ないたいパーティションを選択します (図 2) 。
    • 既存の環境が 32 ビット版のシステムで、 64 ビット版の DVD を利用して起動している場合は、パーティションが表示されません。 すべてのパーティションの表示 にチェックを入れると表示することができます。この場合、アーキテクチャが異なる旨の警告が表示されます。また、問題が発生しやすく、サポート対象からも外れることにご注意ください。
  • 次に、 直前に利用したリポジトリ 画面が表示されます。以前に利用していたリポジトリは、古いディストリビューションに対応するものであるため、すべてが 削除済み になります。ここでは、必要であれば URL や有効化の有無を変更することができます (図 3) 。
  • 上記の画面でいずれかのリポジトリを有効化した場合、 ネットワークは設定されていません というダイアログメッセージが表示されます。ここで はい と答えると、 ネットワーク設定 の画面になります (図 4) 。
  • そのまま進めていくと、 インストールの設定 画面になります。ここはアップグレードに関する設定の中枢となる場所で、下記のセクションなどから構成されています (図 5):
    • システム
    • アップデートオプション
    • パッケージ
    • バックアップ
    • 言語
    • キーボード配列
    • ブート

ここでは様々な設定を変更することができます。何らかの設定が間違っているとお考えの場合は、対象のセクションを押して設定を変更してください。すべての設定が完了したら、 アップデート を押します。

システム

ここでは特に何もする必要はありません。ハードウエアを検出することができますので、必要であれば設定を変更してください。

アップデートオプション

既にインストールされているパターンをベースにして更新を行なう (変更することもできます) か、もしくはインストールされているパッケージのみを更新するかを選択することができます。後者を選択すると、アップグレード前後でほぼ同じ機能になりますが、前者を選択した場合は、新規にインストールした場合とほぼ同じ環境にすることができます。パターンをベースにして更新しておくことをお勧めします (既定値でもあります) 。

パッケージ

ここでは、インストール済みのパッケージからインストールする予定のパッケージに移行するにあたって、発生しうる矛盾を解決することができます。インストールシステムはできる限り自動的に解決しようとしますが、すべての矛盾が自動的に解決できるとは限りません。特に追加の (サードパーティ製の) リポジトリを追加しているような場合や、バージョン間を遷移するにあたって提供するものが変わったりしているような場合に発生します。矛盾が発生した場合は、よくお確かめください。 多数の矛盾が発生していたり、複雑な依存関係に親並みの場合は、それらの矛盾したパッケージをアンインストールしてしまってもかまいません。そこから再度やり直してもよいでしょう。 矛盾を解決することができたら、あとは必要に応じてパッケージを選択または選択解除します。ただし、必要なパッケージをすべてここでインストールしようとしても、ダウンロードにはしばらくの時間を要するため、かえって時間のかかる結果になってしまうこともあります。

バックアップ

可能であればそのままの設定にしておくことをお勧めします。

  • 変更されたファイルのバックアップの作成: これらは /var/adm/backup/* 以下に保存されますが、バックアップとしてはごく少数のファイルしか役に立ちません。
  • /etc/sysconfig/ の完全なバックアップの作成: こちらは非常に有用なものです。上記と同じ場所に保存されます。

言語

異なる言語や追加の言語を選択することができるほか、キーボード配列も選択することができます。

キーボード配列

キーボード配列を変更することができます。

ブート

何も変更しないほうがよいでしょう。


アップグレードの開始

最後にアップグレードの開始確認が表示されます。 アップデート開始 を押すと、新規インストールの場合と同様にスライドショーが表示されるか、詳細な表示を行なうことができます。 アップグレード処理にはしばらくの時間がかかります。パワフルなマシンをお使いの場合を除き、新規インストールの場合に比べて、時間がかかります。

環境によってはパッケージの更新が失敗する場合がありますが、これはサードパーティ製のリポジトリを利用していて、 URL が間違っているような場合に発生します。ここでは特に何もできませんので、あとから修正を実施します。

アップグレードが終了すると、マシンは再起動します。


アップグレード後

アップグレードの処理が終了しても、いくつかの作業を実施する必要があります。

更新されていないパッケージがある場合

これは Bug #693230 (openSUSE 11.4 およびそれ以前のみ) のバグで発生する問題です: DVD を利用してオフラインアップグレードを実施しても、 DVD 内に収録されていないパッケージを自動的にダウンロードすることができます。

システムにはインストールされているものの、 DVD 内には収録されていないパッケージの場合、それらは OSS リポジトリもしくは nonOSS リポジトリからダウンロードしなければなりません。オフラインアップグレードの場合、残りのパッケージはオンライン更新でインストールすることになります。

このような問題が発生した場合、まずはアップグレード後のシステムで必要なリポジトリが設定されているかどうかをご確認ください。その後、下記のいずれかを実施してください:

  • zypper dup の実行: 必要なパッケージをダウンロードします。場合によっては依存関係の問題を起こしてしまうかもしれません。
  • zypper up の実行: zypper dup よりは安全な方法です。オンラインにある新しいバージョンをインストールします。
  • rpm での問い合わせ: 下記のように実行して手動でインストールすることもできます:
rpm -q -a --queryformat "%{INSTALLTIME};%{INSTALLTIME:day}; \
 %{BUILDTIME:day}; %{NAME};%{VERSION}-%-7{RELEASE};%{arch}; \
 %{VENDOR};%{PACKAGER};%{DISTRIBUTION};%{DISTTAG}\n" \
| sort | cut --fields="2-" --delimiter=\; \
| tee rpmlist.csv | less -S

もしくは、下記のように実行します:

rpm -q -a --queryformat "%{INSTALLTIME}\t%{INSTALLTIME:day} \
 %{BUILDTIME:day} %-30{NAME}\t%15{VERSION}-%-7{RELEASE}\t%{arch} \
 %25{VENDOR}%25{PACKAGER} == %{DISTRIBUTION} %{DISTTAG}\n" \
| sort | cut --fields="2-" | tee rpmlist | less -S

前者のコマンドラインは、セミコロン (;) で区切った一覧を出力するもので、表計算ソフトウエアなどに取り込んで調べることができるようになっています。後者のコマンドラインはタブで区切った一覧を出力するもので、主にテキストエディタなどでそのまま表示するためのものです。

いずれのコマンドラインとも、システムにインストールされた時刻をもとにパッケージを並べ替えるようになっています。また、パッケージが古いシステムと新しいシステムのどちらに属しているものなのか (および 32 ビット環境から 64 ビット環境へのアップグレードの場合、アーキテクチャの差異も含まれます) を表示することができます。アップグレードが必要なパッケージが見つかったら、 zypper in パッケージ名 もしくは YaST のパッケージマネージャで 1 つずつアップグレードすることができます。

あとはシステムを再起動して、すべてが問題なく動作していることを確認してください。もしも何かうまく動作していないものがあれば、さらに次のセクションをお読みください。

設定ファイルの調整

アップグレードが完了すると、多数の設定ファイルが自動的に変更されたりする場合があります。これらの設定ファイルは、手作業で確認して必要があれば変更する必要があります。 rcrpmconfigcheck というスクリプトを実行することで、変更する必要があると思われる設定ファイルを表示することができます。たとえば下記のようになります:

# rcrpmconfigcheck
Searching for unresolved configuration files            done
Please check the following files (see /var/adm/rpmconfigcheck):
  /etc/apparmor.d/usr.lib.dovecot.imap.rpmnew
  /etc/checkinstallrc.rpmsave


これらのファイルに対してやるべきことは退屈なものです。下記のいずれかのファイルが表示されます:

  • 古い設定ファイルがいまだ有効になっていて、 rpm が提供する新しい設定ファイルが存在しているもの (*rpmnew.)
  • 古い設定ファイルが *rpmsave として保存されていて、新しい設定ファイルが有効化されているもの

古い設定ファイルを編集して新しい設定ファイルに合わせるか、もしくは新しい設定ファイルを編集して古い設定ファイルの内容を移行してください。どちらを選択した場合でも、それはシステム管理者の作業です ;-)

このような作業を行なうにあたっては、 meld (視覚的な差分の表示と編集のためのツール) というツールをお使いになるとよいでしょう。このツールは 2 つ (もしくは 3 つ) のファイルを同時に編集することができるほか、それらの差分を表示したり、一方から他方にセクションをコピーしたりすることができます。

何らかの問題が発生した場合は、上記の ヒント セクションで説明している、小さな新規インストールパーティションを用意する方法があります。たとえば 11.4 から 11.4 のアップグレードでは、 X が劇的に変わってしまっていて、設定ファイルではなく自動検出を使用するようになっていることから、ビデオ関連の問題に引っかかりやすくなっています。そのため、アップグレード直後の起動では、 X が動作しない場合があります。小さな新規インストールパーティションが存在すれば、アップグレード後のものと設定ファイルを比較して、設定を調整することができるようになります。

最後に...

そして最後に、 zypper patch もしくは YOU (YaST オンライン更新) を実行しておいてください。これでアップグレードは完了となります。


さらなる情報へのリンク


スクリーンショット

下記は VirtualBox 内のゲストを 13.2 から 42.1 にアップグレードした際のスクリーンショットです。