パッケージのアップデート

[サーバの実験室 Redhat/Fedora]

作成 : 2003/08/16
修正 : 2003/09/01

"サーバの実験室"の検索


RedHat Network に登録すれば、up2date ユーティリティや rhnsd デーモンを使って、簡単にパッケージをアップデートできる。 登録の方法は、RedHat Network への登録を参照。

注意! up2date で SSL のエラーになる場合

up2date ユーティリティを実行したとき、以下のようなエラーになることがある。

There was an SSL error: [('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')]

errate 情報(RHSA-2003:267-10)のページから RPM パッケージをダウンロードして、インストールすること。 Redhat 9.0 ならば、up2date-3.1.23.2-1.i386.rpm をダウンロードする。

# rpm -Uvh up2date-3.1.23.2-1.i386.rpm
Preparing...                ########################################### [100%]
   1:up2date                ########################################### [100%]

up2date ユーティリティによるアップデート

アップデートできるパッケージがあるか確認するには、-l オプションをつけて up2date を実行する。

# up2date -l

パッケージをアップデートするには、-u オプションをつけて up2date を実行する。 root になって実行すること。

# up2date -u

Fetching package list for channel: redhat-linux-i386-9...
########################################

Fetching Obsoletes list for channel: redhat-linux-i386-9...
########################################

Fetching rpm headers...
########################################

Testing package set / solving RPM inter-dependencies...
########################################
unzip-5.50-33.i386.rpm:     ########################## Done.
Preparing              ########################################### [100%]

Installing...
   1:unzip                  ########################################### [100%]

The following Packages were marked to be skipped by your configuration:

Name                                    Version        Rel  Reason
-------------------------------------------------------------------------------
kernel                                  2.4.20         19.9 Pkg name/pattern

All packages are currently up to date

上の実行例でわかるように、カーネルパッケージはスキップされる。 これは、kernel* という名前のパッケージのアップデートをスキップするよう、Update Agent で設定しているため。 カーネルもアップデートしたい場合は、-u オプションをつけて up2date を実行する。 なお、kernel* という名前のパッケージは、上書きインストールでなく新規インストールされる。 新しいカーネルで起動することを確認した後で、古いカーネルは削除してしまおう。

# up2date -u -f

up2date ユーティリティや rhnsd デーモンで使用する Update Agent の設定を確認するには、--configure オプションをつけて up2date を実行する。

# up2date -configure

注意! パッケージによっては、既存の設定ファイルを *.rpmsave という名前で保存し、新しいバージョンの設定ファイルがいきなり有効になるものがある。 この場合、パッケージのデフォルト設定に戻ってしまう。 逆に、新しいバージョンの設定ファイルを *.rpmnew という名前で作成し、既存の設定ファイルをそのまま有効にするものもある。 この場合、新旧パッケージの設定ファイルに互換性がないと、アプリケーションが起動しないことがある。 出力されるメッセージに注意して、既存の設定ファイルの内容を新しいバージョンの設定ファイルに移し変えること。

参考 アップデート可能なパッケージがあるか確認するには、シェルから up2date --list を実行する。

rhnsd デーモンによるアップデート

rhnsd デーモンによるパッケージアップデートを実施するには、(たぶん)RHN にパッケージ情報を登録しておかなければならない。

RHN の Web サイトにログインすると、インストールしたパッケージに関連する errata 情報が表示される。 アップデートしたいパッケージを選択して、スケジューリングしておく。

コンピュータで rhnsd デーモンを起動しておくと、デフォルトでは 240 分(/etc/sysconfig/rhn/rhnsd ファイルを編集して変更できる)ごとに RHN へ自動的に接続する。 その際、スケジューリングされたパッケージがあれば、ダウンロードしてアップデートしてくれる。

参考 手動でスケジューリングしなくても、自動的にアップデートするサービス(有料)が用意されている。 年間 1 システム $60 だそうな。

crond + up2date による定期的なアップデート

確実にパッケージをアップデートしたいなら、crond を利用して定期的に up2date ユーティリティを起動すればよい。

# crontab -e
0 1 * * * /usr/sbin/up2date --update >>/var/log/auto-update.log 2>&1

上のように設定しておけば、毎日 1 時に up2date ユーティリティを起動し、結果を /var/log/auto-update.log に記録する。


[サーバの実験室 Redhat/Fedora]