<!doctype linuxdoc system>

<article>
<title>RPMによるパッケージ管理
<author>たなかとしひさ (<htmlurl url="mailto:tosihisa@netfort.gr.jp" 
name="tosihisa@netfort.gr.jp">, 
LILO/<url url="http://lilo.linux.or.jp/lilo-doc/" name="lilo-doc SubProject">)
<date>2001/09/29


<abstract>
このテキストは、RedHat Linux 系で、パッケージ(アプリケーションプログラム)
のインストールに使われる rpm コマンドの簡単な使い方について説明するものです。
このテキストは、<url url="http://lilo.linux.or.jp/"
name="LILO(りろ：Linux Install Learning Osaka)">主催の、Linux 
インストールセミナー向けに作成したものです。
</abstract>

<sect>はじめに
<p>
RedHat 系 Linux では、RPM(Redhat Package Manager) により、パッケージ
(アプリケーションプログラム)管理を行います。
rpm コマンドを使うことで、
バイナリプログラムのインストールや、アンインストール、
RPM パッケージの詳細の確認、RPMパッケージの作成などできます。

<p>
ここでは、RPM によるパッケージ管理のために知っておいた方が良いと思われることを説明します。

<sect>パッケージ管理について
<p>Unix系のシステムでは、ソフトウェアをソースで配布し、
各自が自分のシステム上でコンパイルを行うという運用が行われています。
このような方法と比べて、パッケージによって管理を行う利点がいくつかあります。
(もちろん、ソースからコンパイル、インストールを行うことを否定しているわけではありません。:-)

<itemize>
  <item>ソフトウェアのもつ依存関係に関する情報の把握
  <item>ソフトウェアのインストールの記録
  <item>不要になったソフトウェアのアンインストール
</itemize>

<sect1>ソフトウェアのもつ依存関係に関する情報の把握
<p>ソフトウェアの中には、
別のソフトウェアがインストールされていることを前堤としているものもあります。
このような場合は、そのソフトウェアのドキュメントに記載されているはずですが、
パッケージ管理を行うことで、その情報を同一の手段で取得することが可能になります。

<sect1>ソフトウェアのインストールの記録
<p>パッケージ管理を行うことにより、
システム内のファイルがどのソフトウェアのために存在するのかを把握することが容易になります。
また、パッケージの情報として、ソフトウェアのバージョンや、
システムにインストールされた日付などを記録しておくことにより、
システムにインストールされたソフトウェアの情報を得ることが容易になります。

<sect1>不要になったソフトウェアのアンインストール
<p>ソースからコンパイルしてインストールしたソフトウェアは、
システムからのアンインストールが困難な場合もあります。
そこで、パッケージとして管理することにより、
ソフトウェアのアンインストールが容易になります。

<sect>インストールされているパッケージの確認
<p>パッケージ管理されているパッケージの情報を確認することができます。
パッケージ情報の問い合わせには、`-q'(--query)オプションを用います。


<sect1>インストールされているパッケージの一覧
<p>インストールされているパッケージの一覧を取得するには、
`-a'(--all)オプションを用います。
<tscreen>
<verb>
$ rpm -qa
</verb>
</tscreen>

<p>`--last'オプションを追加することにより最近インストールされたパッケージから順に表示することができます。
<tscreen>
<verb>
$ rpm -qa --last
</verb>
</tscreen>

<sect1>システム内のファイルの所属するパッケージの情報
<p>`-f'(--file)オプションを用いると、
システム内のファイルなどがどのパッケージによって提供されているのかを調べることができます。
<tscreen>
<verb>
$ rpm -qf ファイル名(ディレクトリ名)
</verb>
</tscreen>


<sect>パッケージの情報の表示
<p>rpmコマンドでは、
インストール済のパッケージの情報やインストールされていないパッケージファイルの情報を表示することができます。

<sect1>パッケージの情報の表示
<p>`-i'(--info)オプションを用いるとパッケージの情報を表示することができます。
また、`-p'(--package)オプションを用いると、
パッケージファイルについての情報が表示できます。
<tscreen>
<verb>
$ rpm -qi パッケージ名
</verb>
<verb>
$ rpm -qip パッケージファイル名
</verb>
</tscreen>

<sect1>パッケージ内のファイルなどの一覧
<p>`-l'(--list)オプションを用いるとパッケージに所属するファイルなどの一覧を表示することができます。
<tscreen>
<verb>
$ rpm -ql パッケージ名
</verb>
<verb>
$ rpm -qlp パッケージファイル名
</verb>
</tscreen>

<sect1>パッケージ自体の更新履歴
<p>`--changelog'オプションを用いるとパッケージ自体の更新履歴を表示できます。
<tscreen>
<verb>
$ rpm -q --changelog パッケージ名
</verb>
<verb>
$ rpm -qp --changelog パッケージファイル名
</verb>
</tscreen>

<sect>インストール
<sect1>インストール前の確認
<p>RPM によるパッケージ管理を採用しているディストリビューションは沢山あります。
しかし、rpmのバージョンやそのRPMパッケージがコンパイルされた環境などの
様々な要因が原因で不具合を生じることもあります。
ですから、
「このパッケージは自分が使っているシステムにインストールしても大丈夫。」
という判断ができない場合は、自分がつかっているディストリビューションが提供しているパッケージのみを使っていた方が無難だと思われます。

<p>
また、RPM パッケージをダウンロードしたら、
一度、そのパッケージにどの様なファイルが所属しているのかなどを確認するのが良いでしょう。


<sect1>インストール
<p>
RPM パッケージをインストールしたい場合は、
`-i'(--install)オプションでインストールします。
しかし、`-i'(--install)オプションだけですと、
経過を何も表示せずにインストールされます。
そこで、`-ivh' とオプションを付けると、
インストール時に `&num;' でインストール状態を表示することができます。

<tscreen>
<verb>
# rpm -ivh パッケージファイル名
パッケージ名	 ##############################
#
</verb>
</tscreen>


<sect>アップグレード
<p>
過去に、古いバージョンの RPM パッケージをインストールしていたとします。
このパッケージの新しいバージョンが出たので、アップグレードしたい場合には、
`-F'(--freshen)オプションを指定して、アップグレードします。
これも、インストールのときと同様に `-Fvh' とする事で、
アップグレード時に `&num;' でアップグレード状況を表示します。

<tscreen>
<verb>
# rpm -Fvh パッケージファイル名
パッケージ名      ###############################
#
</verb>
</tscreen>

<p>また、`-F'オプションの変わりに `-U'(--upgrade)オプションを用いることもできます。
この場合は、まだシステムにインストールされていない場合にも、
そのパッケージをインストールすることが可能です。

<tscreen>
<verb>
# rpm -Uvh パッケージファイル名
</verb>
</tscreen>

<sect>ダウングレード
<p>
アップグレードしたパッケージに不具合があった場合、
もう一度、同じパッケージをインストールしたいことや、
バージョンが古いパッケージをインストールしたいことがあります。
このような場合には、`-U'オプションとともに
`--replacepkga'オプションや `--oldpackage'オプションを用います。

<sect1>同じパッケージを再インストール
<p>
<tscreen>
<verb>
# rpm -Uvh --replacepkgs パッケージファイル名
</verb>
</tscreen>

<sect1>古いバージョンのパッケージをインストール
<p>
<tscreen>
<verb>
# rpm -Uvh --oldpackage パッケージファイル名
</verb>
</tscreen>


<sect>アンインストール
<p>
インストールしたパッケージを、アンインストールする場合には、
`-e'(--erase) オプションを用います。アンインストール時に注意することは、
指定するのはファイル名ではなく、既にインストール済みである「パッケージ名」で
なければならないということです。「パッケージ名」とは、
前述した `-qa' オプションで表示される名前のことです。

<tscreen>
<verb>
# rpm -e パッケージ名
</verb>
</tscreen>

<sect>この文章について
<p>
この文章は、<htmlurl url="mailto:tosihisa@netfort.gr.jp" name="たなかとしひさ">
(LILO/LILO-doc SubProject)さんが作成したrpm.htmlを、
早川仁さんがSGML文書化したものです。
さらに、<htmlurl url="mailto:Makoto.Ohura@mb4.seikyou.ne.jp" name="大浦真">
(LILO/LILO-doc SubProject)がJF-MLでの意見を参考にして校正しました。

<p>
また、この文章のライセンスはGPL2に準じるものとします。
GPL2に基づいて変更・再配布できます。

<p>
LILO-docは<url url="http://lilo.linux.or.jp/"
name="LILO(りろ：Linux Install Learning Osaka)">のSubProjectで、
LILOのセミナー等で使われた各文書群を統一し、一元管理することを
目的に活動しています。

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

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


<sect1>ChangeLog
<p>
<descrip>
     <tag/Sat Sep 29 2001 <htmlurl url="iwaim@geocities.co.jp" name="IWAI, Masaharu">/<url url="http://lilo.linux.or.jp/event/lms/200109/" name="2001年9月度 LILO Monthly Seminar"> の為に更新
     <tag/Sat Dec 25 1999 <htmlurl url="tosihisa@netfort.gr.jp" name="たなかとしひさ">/初版
</descrip>


<!-- 
&dollar;Id: rpm.sgml,v 1.3 2001/11/29 16:29:35 iwai Exp $
-->


</article>
