RPMによるパッケージ管理 たなかとしひさ (tosihisa@netfort.gr.jp, LILO/lilo-doc Sub- Project ) 2001/09/29 このテキストは、RedHat Linux 系で、パッケージ(アプリケーションプログラ ム) のインストールに使われる rpm コマンドの簡単な使い方について説明す るものです。このテキストは、LILO(りろ:Linux Install Learning Osaka) 主催の、Linux インストールセミナー向けに作成 したものです。 1. はじめに RedHat 系 Linux では、RPM(Redhat Package Manager) により、パッケージ (アプリケーションプログラム)管理を行います。 rpm コマンドを使うこと で、バイナリプログラムのインストールや、アンインストール、 RPM パッケ ージの詳細の確認、RPMパッケージの作成などできます。 ここでは、RPM によるパッケージ管理のために知っておいた方が良いと思われ ることを説明します。 2. パッケージ管理について Unix系のシステムでは、ソフトウェアをソースで配布し、各自が自分のシステ ム上でコンパイルを行うという運用が行われています。このような方法と比べ て、パッケージによって管理を行う利点がいくつかあります。 (もちろん、ソ ースからコンパイル、インストールを行うことを否定しているわけではありま せん。:-) o ソフトウェアのもつ依存関係に関する情報の把握 o ソフトウェアのインストールの記録 o 不要になったソフトウェアのアンインストール 2.1. ソフトウェアのもつ依存関係に関する情報の把握 ソフトウェアの中には、別のソフトウェアがインストールされていることを前 堤としているものもあります。このような場合は、そのソフトウェアのドキュ メントに記載されているはずですが、パッケージ管理を行うことで、その情報 を同一の手段で取得することが可能になります。 2.2. ソフトウェアのインストールの記録 パッケージ管理を行うことにより、システム内のファイルがどのソフトウェア のために存在するのかを把握することが容易になります。また、パッケージの 情報として、ソフトウェアのバージョンや、システムにインストールされた日 付などを記録しておくことにより、システムにインストールされたソフトウェ アの情報を得ることが容易になります。 2.3. 不要になったソフトウェアのアンインストール ソースからコンパイルしてインストールしたソフトウェアは、システムからの アンインストールが困難な場合もあります。そこで、パッケージとして管理す ることにより、ソフトウェアのアンインストールが容易になります。 3. インストールされているパッケージの確認 パッケージ管理されているパッケージの情報を確認することができます。パッ ケージ情報の問い合わせには、`-q'(--query)オプションを用います。 3.1. インストールされているパッケージの一覧 インストールされているパッケージの一覧を取得するには、 `-a'(--all)オプ ションを用います。 $ rpm -qa `--last'オプションを追加することにより最近インストールされたパッケージ から順に表示することができます。 $ rpm -qa --last 3.2. システム内のファイルの所属するパッケージの情報 `-f'(--file)オプションを用いると、システム内のファイルなどがどのパッケ ージによって提供されているのかを調べることができます。 $ rpm -qf ファイル名(ディレクトリ名) 4. パッケージの情報の表示 rpmコマンドでは、インストール済のパッケージの情報やインストールされて いないパッケージファイルの情報を表示することができます。 4.1. パッケージの情報の表示 `-i'(--info)オプションを用いるとパッケージの情報を表示することができま す。また、`-p'(--package)オプションを用いると、パッケージファイルにつ いての情報が表示できます。 $ rpm -qi パッケージ名 $ rpm -qip パッケージファイル名 4.2. パッケージ内のファイルなどの一覧 `-l'(--list)オプションを用いるとパッケージに所属するファイルなどの一覧 を表示することができます。 $ rpm -ql パッケージ名 $ rpm -qlp パッケージファイル名 4.3. パッケージ自体の更新履歴 `--changelog'オプションを用いるとパッケージ自体の更新履歴を表示できま す。 $ rpm -q --changelog パッケージ名 $ rpm -qp --changelog パッケージファイル名 5. インストール 5.1. インストール前の確認 RPM によるパッケージ管理を採用しているディストリビューションは沢山あり ます。しかし、rpmのバージョンやそのRPMパッケージがコンパイルされた環境 などの様々な要因が原因で不具合を生じることもあります。ですから、「この パッケージは自分が使っているシステムにインストールしても大丈夫。」とい う判断ができない場合は、自分がつかっているディストリビューションが提供 しているパッケージのみを使っていた方が無難だと思われます。 また、RPM パッケージをダウンロードしたら、一度、そのパッケージにどの様 なファイルが所属しているのかなどを確認するのが良いでしょう。 5.2. インストール RPM パッケージをインストールしたい場合は、 `-i'(--install)オプションで インストールします。しかし、`-i'(--install)オプションだけですと、経過 を何も表示せずにインストールされます。そこで、`-ivh' とオプションを付 けると、インストール時に `#' でインストール状態を表示することができま す。 # rpm -ivh パッケージファイル名 パッケージ名 ############################## # 6. アップグレード 過去に、古いバージョンの RPM パッケージをインストールしていたとしま す。このパッケージの新しいバージョンが出たので、アップグレードしたい場 合には、 `-F'(--freshen)オプションを指定して、アップグレードします。こ れも、インストールのときと同様に `-Fvh' とする事で、アップグレード時に `#' でアップグレード状況を表示します。 # rpm -Fvh パッケージファイル名 パッケージ名 ############################### # また、`-F'オプションの変わりに `-U'(--upgrade)オプションを用いることも できます。この場合は、まだシステムにインストールされていない場合にも、 そのパッケージをインストールすることが可能です。 # rpm -Uvh パッケージファイル名 7. ダウングレード アップグレードしたパッケージに不具合があった場合、もう一度、同じパッケ ージをインストールしたいことや、バージョンが古いパッケージをインストー ルしたいことがあります。このような場合には、`-U'オプションとともに `--replacepkga'オプションや `--oldpackage'オプションを用います。 7.1. 同じパッケージを再インストール # rpm -Uvh --replacepkgs パッケージファイル名 7.2. 古いバージョンのパッケージをインストール # rpm -Uvh --oldpackage パッケージファイル名 8. アンインストール インストールしたパッケージを、アンインストールする場合には、 `-e'(--erase) オプションを用います。アンインストール時に注意すること は、指定するのはファイル名ではなく、既にインストール済みである「パッケ ージ名」でなければならないということです。「パッケージ名」とは、前述し た `-qa' オプションで表示される名前のことです。 # rpm -e パッケージ名 9. この文章について この文章は、たなかとしひさ (LILO/LILO-doc SubProject)さんが作成し たrpm.htmlを、早川仁さんがSGML文書化したものです。さらに、大浦真 (LILO/LILO-doc SubProject)がJF-MLでの意見を参考にして校正しました。 また、この文章のライセンスはGPL2に準じるものとします。 GPL2に基づいて 変更・再配布できます。 LILO-docはLILO(りろ:Linux Install Learning Osaka) のSubProjectで、 LILOのセミナー等で使われた 各文書群を統一し、一元管理することを目的に活動しています。 (このセクションの文責:大浦) LILO(りろ:Linux Install Learning Osaka) 9.1. ChangeLog Sat Sep 29 2001 IWAI, Masaharu 2001年9月度 LILO Monthly Seminar の為に更新 Sat Dec 25 1999 たなかとしひさ 初版