SDB:システムアップグレード

移動先: 案内, 検索
このガイドでは、 openSUSE を動作させた状態のままディストリビューション全体を Zypper でアップグレード (ライブアップグレード) するための手順を説明しています。

15.3から15.4へアップグレードする場合は SDB:System_upgrade_to_Leap_15.4 をご覧ください。

openSUSE で確認済み おすすめの記事 関連する記事
Icon-checked.png

Icon-manual.png Icon-help.png

概要

このページでは、ツールやコマンドラインを実行して、お使いのシステムを最新バージョンの openSUSE に「ライブアップデート」するための手順を説明しています。以前のバージョンからのライブアップデートは公式にサポートされています。この事によって再度すべてを設定することなくオペレーティングシステムを適切にアップグレードすることが出来ます。

ライブアップグレードには、インストールメディアを使ったオフラインアップグレードと比べて、様々な利点やそれと同じぐらいの欠点があります。

利点:

  • アップグレード対象のパッケージのみをダウンロードしますので、インターネット接続が遅い環境でも有用です。
  • アップグレードの処理中であっても、コンピュータを使い続けることができます (あまりお勧めはできませんが・・) 。ダウンタイムとして全く使えなくなってしまうのは、アップグレード終了後の再起動の間だけです。
  • DVD や DVD ライターなどを使用する必要がありません。 USB キーを使う必要もありません。これは、既存のシステムを起動して、そこにインターネットからダウンロードしたものをインストールするからです。

欠点:

  • 何らかの理由 (停電やネットワークの切断など) でアップグレードが中断されてしまい、処理を続行することができなくなってしまうと、場合によってはシステムが全く動作しなくなってしまうことがあります (もちろん、どの処理まで完了できたのかによります) 。
  • 複数のシステムをアップグレードする場合、それぞれのシステムで帯域を使用することになります。したがって、複数のシステムをお持ちの場合は、 ISO イメージをダウンロードしたほうが便利です。
  • (オフラインの) DVD アップグレードが実施する、クリーンアップやメンテナンスなどの作業は行なわれません。

従来のアップグレードやDVDを使ったアップグレードなどと呼ばれる、オフラインアップグレードに興味がある場合、 オフラインアップグレード を参照してください。


新しい Leap への移行について

基本的なルール

  • インストールしようとしているバージョンの 厄介なバグの一覧 に目を通してください。 これらの中のいくつかはアップデートに影響する可能性があります。通常、解決策や回避方法がバグの近くに書かれていますので、来たるべき問題に対して確実に対策してください。また、 リリースーノート にも目を通してください。ここには新バージョンの変更点や注意点などが書かれています。
  • アップグレードを開始する前に、必ずすべての重要なデータをバップアップしてください。
  • アップグレードする前に、今使っているシステムを最新状態に更新する必要があります。特に、 15.2 から 15.3 へのアップグレードは、すべて最新状態になった 15.2 からしかサポートされていません。これは、 15.3 から SLES のバイナリが使われ始めたからです。 Leap 15.3 リリースノート を参照してください。
  • アップグレードする時はバージョンを飛ばさないでください! 例えば、 15.1 から 15.4 へのアップグレードは してはなりません。代わりに、まず 15.1 から 15.2 へアップグレードし、それから 15.3 へとアップグレードします。 そして 15.3 から 15.4 へとアップグレードします。 15.3 だけが、15.4 へとアップグレードすることができます。
  • この解説は、主に 15.3 から 15.4 へのアップグレードについて書かれていますが、 15.2 から 15.3 へのアップグレードもコマンドのバージョン番号を変えるだけで同じように適用できます。 もし、もっと早いバージョン ( 15.2 以前) からアップグレードをする場合は、"レガシー マイグレーション" セクションの解説を参照してください。

ポートについて( intel では無いアーキテクチャ)

ppc64le と aarch64 の Leap ユーザーで、 古いバージョン( Closing the Leap Gap つまり 15.3 より前)から 15.3以降へマイグレーションしようとしてるユーザーは、 '/ports/' と URL の一部に付いているリポジトリをすべてシステムから削除することをおすすめします。 Leap のポート用リポジトリはすべてシンボリックリンクです。これをする事で同じデータを二回取得しなくなることを確実にし、結果としてリポジトリのリフレッシュが早くなります。
x86_64 や s390x のユーザー、及び15.3以降の Leap をクリーンインストールするユーザー(すべてのアーキテクチャ)は、影響を受けません。
すべての Leap の rpm は、 メインとなる oss リポジトリからダウンロードされるでしょう。

http://download.opensuse.org/distribution/leap/$releasever/repo/oss/

また、 non-oss リポジトリからもダウンロードされるでしょう。

http://download.opensuse.org/distribution/leap/$releasever/repo/-non-oss/

そして、 リリースノート に書かれているアップデートリポジトリからダウンロードされるでしょう。
これは Tumbleweed ユーザーにはあてはまりません。 Tumbleweed は intelでないアーキテクチャ向けの有効なポートサブプロジェクトがまだあるからです。

バックアップ

影響の少ないロールバックのために、 btrfs をベースにしたインストールと snapper openSUSE:Snapper_Tutorial を使うことをおすすめします。

現在のバージョンの確認

今どのバージョンの openSUSE が動いているかは、次のコマンドでわかります。

lsb_release -d

または

more /etc/os-release

その他のリポジトリについて

サポート範囲となる のは、現在のアップデートがすべて適用された、最新の openSUSE Leap です。しかし、ここには openSUSE Build Service から追加したであろう任意のリポジトリは含まれません。 まずこれらの OBS のリポジトリをすべて無効化し、それからアップグレードを行い、そして有効化することをおすすめします。

zypper dup が今はその他のリポジトリをアップグレードの間より良く扱う一方で、新バージョンに代わりのリポジトリがあるかどうかを手動でチェックする事が望ましい場合もあり、アップグレード前に /etc/zypp/repos.d の URL を書き換えたり、アップグレード後に再度リポジトリを追加したりする事が望ましい場合もあります(手順6を参照してください)。

しかしながら、システムアップグレードは不要なリポジトリを削除する絶好の機会です。大量のリポジトリはメンテナンスを大変にします。例えば、新しいバージョンを取得するためにいくつかの XFce や Plasma のリポジトリを有効化していたとしましょう。 ( 新バージョンでは使いたい機能の実装や問題の解決がされていたとしておきましょう。 ) :今こそ、メインラインに戻す絶好の機会です。これは、もう不要となる HOME リポジトリを削除するのにまたとない機会となるでしょう。

しかし、覚えておいてください。削除したリポジトリは、そこからインストールしたパッケージ全てに置いて起こる問題について、管理者の選択に従って次のいずれかの対処をします。(もし見つかれば)別のリポジトリに変更される、削除される、古いバージョンを残す。もしパッケージのクリーンアップをすぐにしたいのでなければ、リポジトリを有効化のまま残すのが良い方法でしょう。 Packman がよくある例です。

アップデートの最中に、削除したリポジトリごとにそのリポジトリからインストールしたパッケージに対して次の質問をします:そのままにするか、ベンダーを変えてアップグレードをするか。方針としては、もしシステムアップグレード後にリポジトリを追加し直すのであれば「そのままにする」、そうでなければ「アップデートする」となります。"ベンダーの変更を許可"も使えますが、zypperがリポジトリの優先順位を考慮して別のリポジトリからパッケージのバージョンを取得したほうが良いかどうかを評価するので、意図しない結果となる場合があります。

従って、管理者として何がインストールされるべきかを選択する必要があります。


アップグレードの実行

0. 新しい 4096 ビットの RSA 署名鍵について

openSUSE Leap 15.5 では、新たに 4096 ビットの RSA 鍵による署名が開始されています。 openSUSE Leap 15.4 に対しても、メンテナンス更新でこの署名鍵が配信されています。これに加えて、新しい 4096 ビットの RSA バックポート鍵も提供されています。

Leap 15.4 を使用している場合は、 Leap 15.5 にアップグレードする前にお使いのシステムを更新してください。

現時点では、 Leap 15.4 をお使いの場合は下記のコマンドを実行して手動で取り込む必要があります:

 rpm --import /usr/lib/rpm/gnupg/keys/gpg-pubkey-29b700a4-62b07e22.asc

openSUSE バックポート鍵についても同様に新しい 4096 ビット鍵を取り込む必要があります:

 rpm --import /usr/lib/rpm/gnupg/keys/gpg-pubkey-25db7ae0-645bae34.asc

近い将来には、 Leap 15.4 で Leap 15.5 に必要な鍵を自動的に取り込む処理を追加して、円滑なアップグレードができるようにする予定です。

鍵はそれぞれ 2023 gpg-pubkey-25db7ae0-645bae34.asc2023 gpg-pubkey-29b700a4-62b07e22.asc からダウンロードできます。

1. システムを最新のパッケージに更新

zypper refresh
zypper update

詳細は Zypperの使い方 を参照してください。

2. リポジトリの更新

/etc/zypp/repos.d/ に定義されている Leap のリポジトリが、すでに $releasever 変数を使っているかどうか確認してください。もし、まだハードコードされた Leap バージョン番号を使っていた場合、まずそこを修正する必要があります。例えば、もし現在のバージョンが Leap 15.3 だった場合、この方法で修正出来ます。

sed -i 's/15.3/${releasever}/g' /etc/zypp/repos.d/*.repo
Process-stop.png
警告!
Closing the Leap Gap により、 15.3 の "openSUSE_Leap_${releasever}" とあるいくつかのリポジトリは、 15.4 では、ただ "${releasever}" となりました。 (以降、 SLES と Leap は同じになります。そして、 OBS はそれぞれの rpm のバイナリを2つ保持しなくてよくなります。)上記のコマンドはこの変更を適用しないので、 "リポジトリ 'xxxxx' が無効です" のエラーが発生します。

解決策 "openSUSE_Leap_15.3" のひとつ上のURLを訪れてください。そして、そこにあるディレクトリ名を確認してください。もし "15.4" がそこにあれば、手動でURLをそれ(ただの "${releasever}" )に書き換えます。


3. 新しいリポジトリをリフレッシュ

すべてのリポジトリを 15.4 に変更しリフレッシュします。

zypper --releasever=15.4 refresh

4. ディストリビューションの全てをアップグレード

ディストリビューションの全てをアップグレードします。

Process-stop.png
警告!
アップグレードは X-window でない所で実行することを強くおすすめします。これは、ランレベル 3 (テキストとネットワーク)か、バーチャルコンソールでのコマンド実行をおすすめしている事を意味します。残念ながら WiFi 接続は ランレベル 5 でのみ可能な事がたびたびあるため、裏側でグラフィカルコンソールにログインしたまま、バーチャルコンソールを使うことが一番良い方法となるでしょう。 X-window でアップグレードをした時に X セッションが停止したりクラッシュしてしまった場合、アップグレードが中断し、システムが不安定な状態になってしまいます。ランレベル 3 に変更する方法は SDB:Switch_runlevel を参照してください。ランレベル 5 でバーチャルコンソールを使う場合、 control-alt-F1 を押してください。 (そうでない環境もあります。)


zypper --releasever=15.4 dup

このコマンドで zypper はあらかじめ全てのパッケージをダウンロードします。これはインストール中にインターネットが切断されてしまっても確実な方法です。ヒープにダウンロードしてインストールする場合は次のコマンドを使ってください。

zypper --releasever=15.4 dup --download-in-heaps

一度 dup が完了すると、 openSUSE は releasever を新しいバージョンに設定します。

もし公式リリース日( Leap 15.4 の場合、2022年6月8日)以前に上記のアップグレードをした場合、おそらくリリース候補バージョン( RC )か、マイルストーンバージョンがインストールされていると思われます。ですので、公式リリース版(最終版)にするために、最後の zypper dup を再度繰り返してください。

5. リブート

アップグレードが終わったら、リブートしてください。

6. (オプション)その他のリポジトリの追加

以前使っていた - そして、まだ必要な - サードパーティーの Leap 15.4 用のリポジトリを探し出し、追加してください。

Process-stop.png
警告!
注意深く使用してください。サードパーティーのリポジトリはシステムを破壊したり不安定にしたりするおそれがあります。


zypper addrepo --name <name> <url> <alias>
あるいは、 .repo ファイルのURLがわかっている場合:
zypper ar <url.repo>

zypper up を実行してください。それで追加したリポジトリからソフトウェアをアップデートするのに充分でしょう。

最後に

新バージョンから色々と発見したり、楽しんだりしてください。 :)

加えて、 zypper up は有効になっている様々なリポジトリから最新のパッケージを取得するために、時折実行することができます。 YOU (Yast Online Update) は公式リポジトリのセキュリティアップデートのみを通知します。


古いバージョンからのマイグレーション

15.2 より古い Leap からのアップグレード

アップデートリポジトリが存在し、かつ使えることの確認

zypper repos --uri

URI のカラムのどれかに http://download.opensuse.org/update/leap/15.3/oss/ があることと、そのリポジトリの Enabled のカラムが はい(y) になっていることを確認してください。以下のようになるはずです - 15.3 は現在動いているシステムのバージョンに置き換えてください。

#  | Alias           | Name                   | Enabled | Refresh | URI
---+-----------------+------------------------+---------+---------+----------------------------------------------------
1  | repo-update     | メインの更新用リポジトリ   | はい(y) | はい(y)| http://download.opensuse.org/update/leap/15.3/oss/

もし Enabled のカラムが いいえ(n) だった場合、次のコマンドを実行して有効にしてください。

zypper modifyrepo --enable repo-update

: 'repo-update' の所は更新用リポジトリの名前です。

更新用リポジトリの追加

アップグレード前のシステムが 15.0 かそれより古く、更新用リポジトリが存在しない場合に適用してください。
zypper addrepo --check --refresh --name 'openSUSE-Leap-15.0-Update' http://download.opensuse.org/update/leap/15.0/oss/ repo-update
上記の 15.0 を、現在動いているopenSUSEのバージョンに置き換えてください。

注: openSUSE Leap 15.3 は、2つのさらなる更新用リポジトリが加わっています。ひとつは openSUSE バックポート用で、もう一つは SUSE Linux エンタープライズ用です。これらの追加リポジトリはオンラインインストールの間に使われ、 Leap 15.3 GA の openSUSE リリースによるメンテナンスアップデートによって Leap 15.3 に追加されました。このことはリリースノートに詳細に書かれています。

/var/cache の別けられたサブボリュームへの移動

このセクションはルートファイルシステムが Btrfs で、 Leapの 15.0 より古いバージョンからアップグレードする場合に適用してください。

/var/cache は、多くのとても一時的なデータを含んでいます。例えばアップデートごとの違うバージョンの RPM パッケージ の Zypper キャッシュなどです。 ほとんど冗長でしかもとても一時的なデータを保存する結果として、 snapshot が占めるディスク容量がとても早く増えていきます。この問題を解決する方法は、 /var/cache を別けられたサブボリュームに移動することです:

  • ルートファイルシステムのデバイス名を見つけます:
df /
  • 全てのサブボリュームの親となるサブボリュームを見つけます。 openSUSE 15.1 のインストールだと、これは @ と名付けられたサブボリュームになります:
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 と同じディレクトリにするため、データの消失を防ぐたに移動します:

mv /mnt/var/cache /mnt/var/cache.old
  • 新しいサブボリュームを作成します:
btrfs subvol create /mnt/var/cache
  • もし /var/cache.old がすでに存在していたら、それを新しい場所に移動します:
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

アーキテクチャ間での移行について

32 ビットアーキテクチャの openSUSE から Leap への移行はサポートされていません。 Leap は 64 ビットアーキテクチャのみです。もしハードウェアがx86_64 をサポートしているなら、 64ビットアーキテクチャに最初に移行することができます。 32-bit to 64-bit upgrade を参照してください。 - これらの解説は 13.2 でのみ試されていることに注意してください。そして、今後適用可能でなくなるかもしれません。

AArch64 アーキテクチャ( 64 ビット ARM ) の、Leap 15.0 から 15.1 以降へのアップグレードはサポートされていません。それらのシステムへは新規インストールをお願いいたします。

原則的にこのアップグレード手順は "ベストエフォート" であることに注意してください。サードパーティーのパッケージやその他の可能な設定について、あらゆる組み合わせが考えられますが、それらはアップグレードで失敗を引き起こすかもしれません。

その他の移行シナリオ

openSUSE Tumbleweed への移行

注意: factory メーリングリスト によれば、 openSUSE 12.x から Tumbleweed (snapshot 1101 まで ) への直接のアップグレードは openQA でテストされていました。 現在 (2017 年 11 月 ) 、 13.x と 42.x からの直接の Tumbleweed へのアップグレードはテストされています。 しかしながら、これはこのアップグレードをしてもいいということを意味しません!未知の問題に遭遇するでしょう。

SUSE Linux エンタープライズ への移行

もし、 openSUSE Leap から SUSE Linux エンタープライズ への移行に興味があるならば。 ぜひこちら our guide for migrating to SUSE Linux Enterprise を参照してください。