第16章 システムのアップグレードとシステム変更

目次

16.1. システムのアップグレード
16.2. さらなる情報

概要

既存のシステムをアップグレードするのに、再インストールを行なう必要は ありません。 2 種類の方法でシステム全体や一部分を更新することができます。 1 つは 個別のソフトウエアパッケージを更新する方法 、 もう 1 つは システム全体のアップグレード です。 個別のパッケージの更新方法については 第5章 ソフトウエアのインストールと削除第6章 YaST オンライン更新 で説明しています。 また、システムをアップグレードするための 2 つの方法については、 16.1.3項 「YaST を利用したアップグレード」16.1.4項 「zypper を利用したディストリビューションアップグレード」 で説明していますので、そちらをお読みください。

16.1. システムのアップグレード

ソフトウエアはバージョンからバージョンに上がることでサイズが 成長 していきます。そのため、更新処理を行なう前には df コマンドを利用し、空き容量を確認してください。 ディスク容量が足りなそうな場合は、更新処理の前にお使いのデータを別の 場所に保存し、お使いのシステムのパーティション設定を修正してください。 各パーティションにどれだけのディスク容量が必要となるかは、パーティション 設定や選択したソフトウエア、システムのバージョンに大きく依存するため、 一般的に「これ」といった値はありません。

16.1.1. 準備

アップグレード処理の前に、まずはお使いの環境を保持しておくため、古い設定 ファイルを別途のメディア (リムーバブルハードディスクや USB フラッシュメモリなど) にコピーしてください。主に /etc/var 内に存在するファイルと、いくつかの サブディレクトリをコピーしてください。また、 /home ディレクトリ (ホーム ディレクトリ) 以下にあるユーザデータに ついても、バックアップメディアに書き込んでおくことをお勧めします。 なお、バックアップ作業は root で実施してください。全てのローカルファイルを読み込むには、 root の権限が必要です。

さらに更新処理を開始する前に、ルートパーティションについても確認を 行なってください。 df / コマンドを実行すると、 ルートパーティションのデバイス名が表示されます。 例16.1「df -h コマンドでの出力例」 にある例では、ルートパーティションは /dev/sda3 (/ にマウントされて いるものです) 。

例16.1 df -h コマンドでの出力例

Filesystem     Size  Used Avail Use% Mounted on
/dev/sda3       74G   22G   53G  29% /
udev           252M  124K  252M   1% /dev
/dev/sda5      116G  5.8G  111G   5% /home
/dev/sda1       39G  1.6G   37G   4% /windows/C
/dev/sda2      4.6G  2.6G  2.1G  57% /windows/D

16.1.2. 発生しうる問題

既定の手順でインストールを行なったシステムを従来のバージョンから 新しいバージョンにアップグレードする場合、 YaST は特に問題を起こす ことなく、必要な変更を見積もって実施します。お使いのシステムをどれだけ カスタマイズしたのかによって、いくつかの手順 (またはアップグレード処理 の全体) が失敗することがあるため、場合によっては事前に採取しておいた バックアップデータを書き戻さなければならないかもしれません。 システムのアップグレードを始める前に、下記の問題点をご確認ください。

16.1.2.1. /etc 内の passwd ファイルと group ファイルの確認

システムをアップグレードする前に、 /etc/passwd ファイルや /etc/group ファイルに文法エラーがない ことを確認しておいてください。 root から pwckgrpck などの検証 ツールを実行することで、問題点を調査することができます。

16.1.2.2. 仮想マシンのシャットダウン

お使いのマシンで KVM や Xen を利用した VM ホストサーバ を動作させている場合は、 更新の前に全ての VM ゲスト をシャットダウンしてください。これを実行しないと、 更新作業後にゲストにアクセスできなくなってしまう場合があります。

16.1.2.3. PostgreSQL

PostgreSQL ( postgres パッケージ) を更新する前に、データベースの ダンプを採取してください。具体的な手順については、 pg_dump のマニュアルページをお読みください。この作業は、お使いの環境を更新する 際に、データを引き継ぐ必要がある場合にのみ必要です。

16.1.3. YaST を利用したアップグレード

16.1.1項 「準備」 で示した準備手順を実施し終えると、 ようやくお使いのシステムをアップグレードすることができます:

  1. まずは 項 「インストール向けのシステムスタートアップ」 (第1章 YaST を利用したインストール, ↑リファレンス) に書かれている手順に 従い、インストール用のシステムを起動します。 YaST が起動したら 言語を選択し、 インストールモード のダイアログで 更新 を選択します。 新規インストール は選択しないでください。また、全ての利用可能なソフトウエアを更新する ため、追加のリポジトリについても設定を行なってください。 インストールを行なう際のリポジトリについて、詳しくは 項 「アドオン製品」 (第1章 YaST を利用したインストール, ↑リファレンス) をお読みください。

  2. 次に YaST は、複数のルートパーティションが存在しないかどうかを確認します。 1 つだけしか存在しなかった場合は、そのまま次の手順に進みます。 複数のパーティションが見つかった場合は、アップグレードしたいルート パーティションを選択し、 次へ を押します (16.1.1項 「準備」 の例では、 /dev/sda3 を選択しています) 。 YaST は、そのパーティション内にある fstab ファイルを読み込んで分析し、記載されている パーティションをマウントします。

    [Warning]永続性のあるデバイス名

    /etc/fstab 内でカーネルデバイス名を利用してパーティション をマウントするように設定している場合、アップグレードを行なう前に対応する他の 指定方法に変更しておかなければなりません。カーネルデバイス名は永続するものでは ないため、アップグレード処理時に問題が発生する場合があるためです。このような 場合は YaST パーティション設定モジュールを利用し、マウント方法を変更して ください。

  3. 何らかのリポジトリが設定されていた場合、それらの存在を確認します。 それぞれアップグレード後も使用し続けたいリポジトリや、サードパーティ 製ソフトウエアの更新元を選択します。必要に応じて 状態の切り替え を押して切り替えてください。

  4. 上述のとおりにアップグレード処理時にリポジトリを追加した場合は、 ここで実際に有効にするかどうかを設定することができます。

  5. インストール設定 ダイアログでは、ご希望の要件に あわせて設定を変更することができます。通常は既定の設定のままで何も 変更する必要はありませんが、お使いのシステムを拡張させたい場合は、 パッケージ更新オプション のサブメニュー内からパッケージを選択するか、追加の言語向けの対応を 追加することができます。

    また、お使いのシステムをバックアップすることもできます。バックアップを 選択すると、アップグレード処理に時間がかかるようになりますので、この オプションは直近にシステムバックアップを採取していない場合にのみ、 選択してください。

  6. アップグレード内容を確認したら、 更新開始 を押すと アップグレード処理が始まります。

システムの基礎部分についてアップグレード処理が完了すると、 YaST はシステムを 再起動します。その後 YaST は残りのソフトウエアについて更新を行ないます。 必要であれば リリース ノートを表示させることもできます。

16.1.4. zypper を利用したディストリビューションアップグレード

zypper コマンドラインユーティリティを利用することで、 お使いの環境を次のバージョンにアップグレードすることができます。このアップグレード で最も重要な点としては、システムを稼働中の状態からアップグレード作業を行なうことが できるという点があります。

この機能は、遠隔からのアップグレードを行なったり、もしくは多数の似通ったシステムを 一括でアップグレードしたりすることを希望する知識のあるユーザにとっては、魅力的な 仕組みです。

16.1.4.1. zypper によるアップグレードを開始する前に

zypper を利用してアップグレード作業を行なうにあたり、 予期しないエラーを回避するには、リスク配置を最小化する必要があります。

直前のバージョン (たとえば 11.3) から本バージョン (たとえば 11.4) に アップグレードを行なうこととし、マイナーバージョンを飛ばす (たとえば 11.2 またはそれ以前から 11.4 に一括アップグレードする) ことは避けて ください。また、アップグレード元のバージョンでは、利用可能なすべてのオンライン 更新を正しく適用しておいてください。

できる限り多くのアプリケーションと不要なサービスについてはできる限り停止し、 一般ユーザについてもログアウトしてください。

アップグレードにあたっては、サードパーティや openSUSE ビルドサーバ が提供する リポジトリを無効化するか、もしくは優先度を下げて既定のシステムリポジトリからの パッケージが優先的にインストールされるように設定してください。アップグレード後は これらのリポジトリを再度有効化し、アップグレード先のバージョン番号に適合する バージョン文字列に変更してください。

詳しくは http://en.opensuse.org/SDB:System_upgrade (日本語) または http://en.opensuse.org/SDB:System_upgrade (英語) をお読みください。

16.1.4.2. アップグレード手順

[Warning]システムのバックアップ採取

実際にアップグレード作業を行なう前に、お使いのシステムに対する最新の バックアップが採取されていて、かつ復元可能であることをご確認ください。 これは特に下記の手順のうちの多くを手作業で実施しなければならないため、 特に重要です。

  1. オンライン更新を実行し、ソフトウエア管理スタックが最新の状態であることを 確認します。詳しくは 第6章 YaST オンライン更新 を お読みください。

  2. 更新ソースとして利用したいリポジトリを設定します。ここで正しい設定を行なって おくことが重要です。 YaST を利用して設定する (5.4項 「ソフトウエアリポジトリとサービスの管理」 をお読みください) か、 zypper を利用して設定 (9.1項 「zypper の使用」 をお読みください) します。 下記に示す手順内で使用されるリポジトリの名前は、お使いのシステムの設定に 依存して少しずつ異なることにご注意ください。

    なお、現在設定されているリポジトリについて一覧を確認するには、下記のように入力します:

    zypper lr -u
    
    [Tip]zypper のコマンド名

    zypper では長い形式と短い形式の両方のコマンド名に対応しています。 たとえば zypper installzypper in のように省略することができます。下記の説明では、短い形式で記述しています。

    1. アップグレード先のバージョンにあわせてリポジトリを追加します。 たとえば下記のように実行します:

      server=http://download.opensuse.org
      new_ver=11.4
      zypper ar $server/distribution/$new_ver/repo/oss/ openSUSE-$new_ver-Oss
      zypper ar $server/update/$new_ver/ openSUSE-$new_ver-Update
      

      続いて古いリポジトリを削除します:

      old_ver=11.3
      zypper rr openSUSE-$old_ver-Oss
      zypper rr openSUSE-$old_ver-Update
      
    2. zypper dup コマンドは既定のリポジトリに対してのみ 正しく動作することが保証されている仕組みであるため、まずはサードパーティ 製のリポジトリやその他の openSUSE ビルドサーバ のリポジトリを無効に設定 します (ここで、 repo-alias は無効に設定 したいリポジトリの名前を指定します):

      zypper mr -d repo-alias

      これらのリポジトリを無効化する代わりに、優先順位を下げてもかまいません。

      [Note]未解決の依存関係に関する処理について

      zypper dup コマンドでは未解決の依存関係を持つ パッケージはすべて削除するようになっていますが、依存関係が満たされて いる限り、無効化されたリポジトリのパッケージについてはそのまま保持 されます。

      zypper dup コマンドにより、すべてのインストール済み パッケージが利用可能なリポジトリのいずれかを利用して更新されます。この 場合はインストール済みのパッケージのバージョン番号やアーキテクチャ、 製造元については考慮されません。そのため、何もない状態からインストールする 場合と同じ結果になります。また、リポジトリ内にもはや存在していない パッケージは孤立したものと判断され、そのようなパッケージは依存関係が 満たされない場合は削除されます。依存関係に問題がない場合は、そのような パッケージはインストールされたままになります。

    3. 完了したら、下記のコマンドでリポジトリの設定を確認します:

      zypper lr -d
      
  3. 続いてローカルのメタデータとリポジトリの内容を更新するため、 zypper ref コマンドを実行します。

  4. メタデータを更新したら、まずは zypper up zypper と入力し、 zypper 自身のアップグレードを行ないます。

  5. zypper を更新したら、 zypper dup と入力し、 ディストリビューション本体のアップグレードを行ないます。 このとき、ライセンスの確認が求められます。

  6. アップグレードが完了したら SuSEconfig と入力し、 基本的なシステム設定を実施します。

  7. shutdown -r now と入力し、システムを再起動します。

16.1.5. 個別のパッケージ更新

システム全体をアップグレードするかどうかとは別に、個別のパッケージに ついてもアップグレードを行なうことができます。ただし、このように個別の アップグレードを行なう場合、システムの安定性や安全性については、 ご自身の責任の下で管理してください。

パッケージ単位での更新の際は、 第5章 ソフトウエアのインストールと削除 で示しているとおりの 手順で YaST ソフトウエア管理をお使いください。 YaST で更新したいパッケージを 選択すれば、パッケージ単位での更新を実現できます。特定のパッケージに対して 今よりも新しいバージョンが存在する場合は、 インストール済み (利用可能) の欄に、インストール済みのバージョンと利用可能なバージョンが青色で表示されます。 なお、選択したパッケージがシステム全体の動作に影響を与えるような更新である場合は、 その旨の警告メッセージが表示されます。これらのパッケージは、更新モードでのみ インストールすべきものです。たとえば 共有ライブラリ を含む ような多数のパッケージが、それに該当します。これらのプログラムやアプリケーションを 稼働中のシステムで更新してしまうと、システムの動作を不安定にしてしまう場合があります。

16.2. さらなる情報

様々なバージョンにおける特別な問題については、それらが判明次第オンラインで お知らせする仕組みになっています。個別のパッケージに関する重要な更新に ついては、 YaST オンライン更新を利用してアクセスすることができます。 また、さらなる情報は 第6章 YaST オンライン更新 に書かれています。

また、 Procuct highlights (http://ja.opensuse.org/Product_highlights) と openSUSE wiki 内の Bugs 記事 (http://ja.opensuse.org/openSUSE:Most_annoying_bugs) をお読みください。こちらに直近の変更点と問題点が記されています。


openSUSE スタートアップ 13.1