15.2.4. アップグレード
パッケージのアップグレードは、パッケージのインストールに似ています。シェルプロンプトで以下のコマンドを入力します。
rpm -Uvh foo-2.0-1.i386.rpm
パッケージのアップグレードの一環として、RPM は古いバージョンの
foo
パッケージを自動的にアンインストールします。実際、以前のバージョンがインストールされていない場合でも、-U
を使用して、機能するパッケージをインストールしたい場合があります。
ヒント
RPM は以前のカーネルパッケージに置き換わるため、カーネルパッケージのインストールに
-U
オプションを使用したくありません。これは実行中のシステムには影響しませんが、次回の再起動時に新しいカーネルが起動できない場合は、代わりに他のカーネルが起動できません。
-i
オプションを使用すると、カーネルを GRUB 起動メニュー(/etc/grub.conf
)に追加します。同様に、不要な古いカーネルを削除すると、GRUB からカーネルが削除されます。
RPM は設定ファイルを使ってパッケージのインテリジェントなアップグレードを実行するので、以下のようなメッセージが表示されることがあります。
saving /etc/foo.conf as /etc/foo.conf.rpmsave
このメッセージは、設定ファイルへの変更が、パッケージ内の新しい設定ファイルと後方 互換性 がない可能性があります。そのため、RPM は元のファイルを保存し、新しいファイルをインストールしてください。システムが適切に機能し続けるようにするには、2 つの設定ファイル間の違いを調べ、できるだけ早く解決する必要があります。
アップグレードはアンインストールとインストールの組み合わせであるため、RPM のアップグレード時に、アンインストールおよびインストールエラーが発生し、さらにエラーが 1 つ以上発生する可能性があります。RPM が 古い バージョン番号のパッケージにアップグレードしようとしていると考える場合、出力は以下のようになります。
package foo-2.0-1 (which is newer than foo-1.0-1) is already installed
RPM を強制的にアップグレードするには、--oldpackage オプションを使用します。
rpm -Uvh --oldpackage foo-1.0-1.i386.rpm