パッケージのアップデート
作成 : 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 に記録する。