  RPMによるパッケージ管理
  たなかとしひさ (tosihisa@netfort.gr.jp, LILO/lilo-doc Sub-
  Project <http://lilo.linux.or.jp/lilo-doc/>)
  2001/09/29

  このテキストは、RedHat Linux 系で、パッケージ(アプリケーションプログラ
  ム) のインストールに使われる rpm コマンドの簡単な使い方について説明す
  るものです。このテキストは、LILO(りろ：Linux Install Learning Osaka)
  <http://lilo.linux.or.jp/>主催の、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)
  <http://lilo.linux.or.jp/>のSubProjectで、 LILOのセミナー等で使われた
  各文書群を統一し、一元管理することを目的に活動しています。

  (このセクションの文責:大浦)

  LILO(りろ：Linux Install Learning Osaka) <http://lilo.linux.or.jp/>

  9.1.  ChangeLog

     Sat Sep 29 2001 IWAI, Masaharu
        2001年9月度 LILO Monthly Seminar
        <http://lilo.linux.or.jp/event/lms/200109/> の為に更新

     Sat Dec 25 1999 たなかとしひさ
        初版

