[LHR]: package を管理する (rpm)

<Home> → <LHR> → <[LHR]: package を管理する (rpm)>

はじめに

RPM (Red Hat Package Manager) は Red Hat 社が開発したパッケージ管理の一つです。

RPM を使用することで、簡単に直接 Binary (or source) から Install/Uninstall/Upgrade が可能になります。ソフトウェアをパッケージと言う単位で管理し、それらが依存している他のソフトウェアの確認等の管理も行っています。Red Hat 系の Distributor の殆どはこの RPM を使用してシステムを構築しています。ただし、Distributor 毎にシステム構成が異なることより、Distributor による RPM の互換は取れていないことが多いので注意が必要です。

rpm ファイルは、以下の規則に習って命名されています。

<package 名>-<version 番号>-<Release 番号>.<architecture>.rpm

例えば「bash-2.05b-20.1.i386.rpm」と言うファイル名の場合は以下の通りになります。


使用例1

Red Hat Linux 9(RHL9) 上で kon2 を例に取り上げています。kon2 は 03.06.03 に Security hole が報告されており update が推奨されています [kon2パッケージのアップデート(レッドハット)]。

使用している package を表示します (-qf)

-qf パラメータを使用します。

# rpm -qf /usr/bin/kon
kon2-0.3.9b-16

package の詳細情報を表示します (-qi)

-qi パラメータを使用します。

# rpm -qi kon2
Name        : kon2                         Relocations: (not relocateable)
Version     : 0.3.9b                            Vendor: Red Hat, Inc.
Release     : 16                            Build Date: 2003年01月25日 12時39分47秒
Install Date: 2003年08月02日 18時11分48秒      Build Host: porky.devel.redhat.com
Group       : アプリケーション/システム     Source RPM: kon2-0.3.9b-16.src.rpm
Size        : 202516                           License: distributable
Signature   : DSA/SHA1, 2003年02月24日 15時20分02秒, Key ID 219180cddb42a60e
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary     : コンソール用の漢字エミュレータ
Description :
kon2 パッケージには、コンソール用エミュレータ KON2 (Kanji On Linux) Kanji
(日本語の文字セット) が含まれています。コンソール上に漢字を表示
する場合は、このパッケージをインストールしてください。kon2-fonts も
インストールする必要があります。

package ファイルを確認します (-qip)

Download してきた rpm ファイルの情報を表示させます。-qi に -f パラメータを付加し package ファイルを指定します。今回は [Ring Project の RHL9 update directry] より kon2-0.3.9b-16.9.i386.rpm を利用します。

# rpm -qip kon2-0.3.9b-16.9.i386.rpm
警告: kon2-0.3.9b-16.9.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Name        : kon2                         Relocations: (not relocateable)
Version     : 0.3.9b                            Vendor: Red Hat, Inc.
Release     : 16.9                          Build Date: 2003年04月10日 17時49分12秒
Install Date: (not installed)               Build Host: porky.devel.redhat.com
Group       : アプリケーション/システム     Source RPM: kon2-0.3.9b-16.9.src.rpm
Size        : 207640                           License: distributable
Signature   : DSA/SHA1, 2003年05月31日 06時57分46秒, Key ID 219180cddb42a60e
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary     : コンソール用の漢字エミュレータ
Description :
kon2 パッケージには、コンソール用エミュレータ KON2 (Kanji On Linux) Kanji
(日本語の文字セット) が含まれています。コンソール上に漢字を表示
する場合は、このパッケージをインストールしてください。kon2-fonts も
インストールする必要があります。

Release が 16.9 であることが確認できます。警告は package に signature が見つけられなかったからのようです。特に気にする必要は無いと思います。

package を Upgrade します (-Uvh)

Upgrade (-Uvh) ではなく Install (-ivh) で試した所、既に Install されている「kon2-0.3.9b-16」とコンフリクトするとのエラーメッセージが表示され、Install 出来ません。ここは素直に Upgrade で Install します。

# rpm -Uvh kon2-0.3.9b-16.9.i386.rpm
警告: kon2-0.3.9b-16.9.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing...
########################################### [100%]
   1:kon2
########################################### [100%]

使用例2

Red Hat Linux 9 等で RPM package を Install した場合に「警告: foobar.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e」等の警告メッセージが表示されることがあります。これは GnuPG を使った署名が確認できなかった、という警告です。signature を登録するか、--nosignature で出力を抑えることが出来ます。

以下の page を参照しました。

bzip2-devel-1.0.2-8.i386.rpm を例に signature の登録を行います。

package が破損していないか md5 チェックをします (-K --nosignature)

--nosignature で pgp による署名確認を行わないようにしています。

# rpm -K --nosignature bzip2-devel-1.0.2-8.i386.rpm
bzip2-devel-1.0.2-8.i386.rpm: sha1 md5 OK

公開鍵を登録します (--import)

Red Hat Linux 9 には公開鍵が Install されています。この鍵を登録することで、Red Hat 社が正式に公開した package かどうか確認することが出来ます。Install 時の警告メッセージも Red Hat 社からのものであれば出力されなくなります。

(1) 公開鍵を登録していない状態で署名確認をします

未登録の鍵ですので警告が出力されます。

# rpm -K bzip2-devel-1.0.2-8.i386.rpm
bzip2-devel-1.0.2-8.i386.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#db42a60e)

(2) 登録されている鍵を確認します

何も登録されていないので何も出力されていません。

# rpm -qa gpg-pubkey*

(3) Red Hat Linux 9 の公開鍵 (/usr/share/rhn/RPM-GPG-KEY) を登録します

# rpm --import /usr/share/rhn/RPM-GPG-KEY

(4) 再度、登録されている鍵を確認します

うまく登録できたようです。

# rpm -qa gpg-pubkey*
gpg-pubkey-db42a60e-37ea5438

(5) 再度、署名確認をします

問題ないようです。

# rpm -K bzip2-devel-1.0.2-8.i386.rpm
bzip2-devel-1.0.2-8.i386.rpm: (sha1) dsa sha1 md5 gpg OK

Resource

お勧め

使用例

参考情報

<man>


<Home> → <LHR> → <[LHR]: package を管理する (rpm)>
Copyright (c) 2003 Makoto NARA (Mc.N), All rights reserved.
<Terms of Use>

Valid CSS! Valid HTML 4.01!