If you did not migrate your account yet, visit https://idp-portal-info.suse.com/
SDB:システムアップグレード
openSUSE で確認済み | おすすめの記事 | 関連する記事 | |||
![]() |
|
![]() |
![]() |
以前のバージョンを動作させた状態のままアップグレードする方法を 公式にサポートしています 。これにより、何もない状態からパッケージをインストールしなおしたりすることなく、その場でオペレーティングシステムをアップグレードすることができるようになっています。
目次
概要
このページでは、ツールやコマンドラインを実行して、お使いのシステムを最新バージョンの openSUSE にするための手順を説明しています。
ライブアップグレードには、様々な利点や欠点があります。
利点:
- アップグレード対象のパッケージのみをダウンロードしますので、インターネット接続が遅い環境でも有用です。
- アップグレードの処理中であっても、コンピュータを使い続けることができます (あまりお勧めはできませんが・・) 。ダウンタイムとして全く使えなくなってしまうのは、アップグレード終了後の再起動の間だけです。
- DVD や DVD ライターなどを使用する必要がありません (net メディアや USB メモリから起動して、残りをインターネットからダウンロードする方法もあります) 。
欠点:
- 何らかの理由 (停電やネットワークの切断など) でアップグレードが中断されてしまい、処理を続行することができなくなってしまうと、場合によってはシステムが全く動作しなくなってしまうことがあります (もちろん、どの処理まで完了できたのかによります) 。
- 複数のシステムをアップグレードする場合、それぞれのシステムで帯域を使用することになります。したがって、複数のシステムをお持ちの場合は、 ISO イメージをダウンロードしたほうが便利です。
- (オフラインの) DVD アップグレードが実施する、クリーンアップやメンテナンスなどの作業は行なわれません。
警告: アップグレードに際しては、バージョンを飛ばしたりしないでください。たとえば 42.2 から 15.0 などへのアップグレードは してはなりません 。 42.2 から 15.0 にアップグレードする際には、 42.2 から 42.3 に、 42.3 から 15.0 にアップグレードしてください。
その他の選択肢: 従来から提供されているアップグレード方式である、 オフラインアップグレード もご検討ください。このアップグレード方式は、より安全で様々な用途に適用することができます。特に理由がなければ、 オフラインアップグレード のほうをお勧めします。
サポート範囲について
32 ビット版の openSUSE から Leap へのアップグレードはサポートされていません。Leap は 64 ビット版のみ提供しています。ハードウェアが x86_64 をサポートしている場合は、まず 13.2 を 64 ビット版にアップグレードしてください。参考:32bit to 64-bit upgrade
AArch64 アーキテクチャ(64 ビット ARM)では、Leap 42.1 から Leap 42.2 へのアップグレードはサポートされていません。これらのシステムでは新規インストールを行ってください。
ここで説明しているアップグレードは、あくまでも "ベストエフォート" (最善努力) であり、確実に実現できる保証があるわけではないことにご注意ください。サードパーティ製のソフトウエアが存在していたりするほか、各ソフトウエアでは様々な設定を行なうことができるため、場合によってはアップグレードが失敗することがありえます。
また、下記の点についてもご注意ください:
- アップグレードを開始する前に、すべての重要なデータをバックアップしなければなりません。
- zypper dup を実行する前に、現在実行中のリリースに対して提供されている、すべての更新を適用しなければなりません。
- zypper dup ではバージョン間を飛ばすような更新をしてはなりません。例えば 13.1 から 42.1 などへの更新については、サポート範囲外となります。
最新の状態であることの確認
アップグレードを実施するにあたって、 サポート範囲内となる アップグレード元の環境は、その時点で提供されているすべての更新をインストールしている環境です。なお、 openSUSE Build Service (OBS) で提供されているリポジトリをお使いの場合は、アップグレードの際にそれらを利用しないようにしてください。具体的には、アップグレード作業の前にすべての OBS リポジトリを無効化し、アップグレード完了後に有効に戻してください。下記の手順では、アップグレードを行なう前に、現在の openSUSE ディストリビューション向けに提供されているすべての更新をインストールする方法を説明しています。
リリースノート
アップグレードの重要な手順と更新されたパッケージに関する情報は リリースノートにリストしています。
コマンドライン
1. 更新リポジトリが設定されていて、かつ有効化されていることの確認
zypper repos --uri
URI の列に http://download.opensuse.org/update/13.2/ (openSUSE 13.2 およびそれ以前の場合。 13.2 には既存の openSUSE バージョン番号が入ります) や http://download.opensuse.org/update/leap/42.1/ (openSUSE Leap 42.1 およびそれ以降の場合。 42.1 には既存の openSUSE バージョン番号が入ります) と書かれている行があるかどうかを確認します。また、その行の 有効 の列が はい になっていることも、合わせて確認します。例えば下記のようになります:
# | 別名 | 名前 | 有効 | 更新 | URI ---+-----------------+-----------------+---------+---------+--------------------------------------- 1 | repo-update | repo-update | はい | はい | http://download.opensuse.org/update/13.2/
有効 の列が いいえ になっている場合は、下記のコマンドを実行することで有効化することができます:
zypper modifyrepo --enable repo-update
- ここで、 repo-update には 別名 欄に書かれている更新リポジトリの別名を指定してください。
上記のような行が存在していて有効化されている場合は、 4. システムを最新の状態に更新 に飛んでください。
2. 更新リポジトリの追加
上記のような行が存在していない場合は、下記のコマンドを実行してリポジトリを追加してください:
(openSUSE Leap 42.1 およびそれ以降の場合):
zypper addrepo --check --refresh --name 'openSUSE-Leap-42.3-Update' http://download.opensuse.org/update/leap/42.3/oss/ repo-update
- ここで、 42.3 には既存の openSUSE のバージョン番号を指定します。
(openSUSE 13.2 およびそれ以前の場合):
zypper addrepo --check --refresh --name 'openSUSE-13.2-Update' http://download.opensuse.org/update/13.2/ repo-update
- ここで、 13.2 には既存の openSUSE のバージョン番号を指定します。
3. /var/cache を別のサブボリュームに移動
注意:root ファイルシステムが Btrfs でないか、42.2 以降のバージョンからのアップグレードの場合は、このセクションをスキップしてステップ 4 に進んでください。
/var/cache にはアップデートごとの異なるバージョンの RPM パッケージを含む Zypper キャッシュのようなよく更新されるデータが多く収められています。ほとんどが冗長ながら頻繁に変更されるデータを保存している結果、スナップショットが占めるディスク容量が非常に速く増加することがあります。この問題を解決するには、 /var/cache を別のサブボリュームに移してください。
- root ファイルシステムのデバイス名を検索します:
df /
- 全ての他のサブボリュームの親サブボリュームを識別します。openSUSE 13.2 をインストールしたシステムでは、これは名前が @ のサブボリュームになります:
btrfs subvolume list / | grep '@'
- コマンドの出力結果が空だった場合、@ と名前の付いたサブボリュームが無いことを示します。この場合、より古いバージョンの openSUSE で使われていた、ID 5 のサブリュームで続けることができるかも知れません。
- そのサブボリュームを一時的なマウントポイントにマウントします:
mount /dev/<root-device> -o subvol=@ /mnt
- もし名前が @ のサブボリュームが無ければ、ID 5 のサブボリュームを代わりに使います:
mount /dev/<root-device> -o subvolid=5 /mnt
- /mnt/var/cache が既に存在し、/var/cache と同じディレクトリになっているかも知れません。データの損失を防ぐために、move します:
mv /mnt/var/cache /mnt/var/cache.old
- 新たなサブボリュームを作ります:
btrfs subvol create /mnt/var/cache
- /var/cache.old ディレクトリがある場合、その内容を新しい場所に move します:
mv /var/cache.old/* /mnt/var/cache
- 無い場合は代わりに次のようにします:
mv /var/cache/* /mnt/var/cache/
- (オプション)ファイルを移動したら、/mnt/var/cache.old を削除します:
rm -rf /mnt/var/cache.old
- 一時マウントポイントからサブボリュームをアンマウントします:
umount /mnt
- /etc/fstab に新しい /var/cache サブボリュームのエントリを追加します。既存のサブボリュームのエントリをテンプレートとしてコピーして使います。UUID は触らないよう注意し(これは root ファイルシステムの UUID です)、サブボリューム名を変更してマウントポイントが /var/cache であることを確認してください。
- /etc/fstab で指定した新しいサブボリュームをマウントします:
mount /var/cache
4. システムを最新の状態に更新
zypper refresh
zypper update
詳しくは Zypper_の使い方 をお読みください。
グラフィカルツール
YaST オンライン更新 をご覧ください。
アップグレードの実行
下記に示す手順は、お使いの openSUSE ディストリビューションを次のリリース (例えば 42.3 から 15.0 など) にアップグレードする方法を説明しています。すでに説明しているとおり、サードパーティ製や OBS リポジトリが存在していると問題になる場合がありますので、下記の手順を実施する前にそれらのリポジトリを無効化するか、削除しておいてください。
アップグレードを始める前に
まずはアップグレード後のバージョンに対して、 厄介なバグの一覧 を確認します。バグの種類によってはアップグレードに影響があるためです。また、バグによっては解決方法や回避方法が存在するものもありますので、あらかじめ知識を得ておくことをお勧めします。
このほか、 リリースノート でも、新しいバージョンでの変更点や問題点を説明しています。
コマンドライン
例として、 42.3 から 15.0 へのアップグレード手順を示します:
- まずは設定されているリポジトリの一覧を確認します: 一覧の中に、サードパーティ製もしくは OBS のリポジトリが存在している場合は、それらを下記のコマンドで削除します:
zypper lr
# zypper rr <別名>
- 残りの全てのリポジトリの URL を新しいバージョンのものに書き換えます(root で実行する必要があります): (上記はバックアップコピーを作成するためのコマンドライン), 続けて (必用に応じてバージョン番号を書き換える):
# cp -Rv /etc/zypp/repos.d /etc/zypp/repos.d.Old
# sed -i 's/42.3/15.0/g' /etc/zypp/repos.d/*
- 新しいリポジトリを更新 (refresh) します (新しい GPG 鍵を受け入れる旨のメッセージが表示されるはずです) っこまでの作業でサードパーティ製や OBS のリポジトリを削除していなかった場合は、それらのリポジトリが存在していない旨のメッセージや、推測不可能な URL であるとしてエラーメッセージが表示される場合があります。これらはいったん削除ないしは無効化しておき、アップグレード完了後に追加しなおし、もしくは有効化しなおしてください。
# zypper ref
- あとは、下記のようにしてディストリビューションのアップグレードを実行するだけです:
![]() |
警告!
|
アップグレードの実行は X-window グラフィカルモード以外で実行することを強くお勧めします。したがって、ランレベル 3 (テキスト + ネットワーク) か仮想コンソールでコマンドを実行することをお勧めします。残念ながら、WIFI コネクションはランレベル 5 でのみ管理/利用可能なため、裏でグラフィカルコンソールにログインしたまま仮想コンソールを使うのが良い方法です。アップグレード中に X セッションが停止したりクラッシュしたりしてしまった場合、アップグレード処理もまた中断されることになってしまい、システムが不安定な状態になってしまう場合がありえます。ランレベル 3 に切り替えるには SDB:ランレベルの切り替え を参照してください。ランレベル 5 のままで "仮想コンソール" を使う場合は、例えば Ctrl-Alt-F1 をタイプします。 |
# zypper dup
# zypper dup --download-in-advance
zypper dup
を実行して最終バージョンをインストールし直すことになります。- あとは、必要であれば従来利用していたサードパーティ製、もしくは OBS リポジトリを追加しなおします。もちろん新しいバージョンに対応したリポジトリであることを確認のうえ、追加してください:
![]() |
警告!
|
サードパーティ製もしくは OBS リポジトリの使用にあたっては、よく注意して作業を行なってください。これらのリポジトリは、場合にょってはシステム自身を壊してしまう場合がありうるほか、安定性を失ってしまうこともあります。 |
zypper addrepo --name <名前> <URL> <別名>
# zypper ar <url.repo>
- アップグレードが完了したら、あとは新しいバージョンのカーネルとその他のソフトウエアを動作させるため、システムを再起動してください。
zypper up
を定期的に実行することをお勧めします。 YOU (YaST オンライン更新) では公式のリポジトリが提供するセキュリティ更新のみを実施するためです。