追加パッケージの導入

〜お好みのまま気の向くまま(笑)〜


パッケージを追加するためには?

 OS インストール時に導入されなかったパッケージは、OS インストール完了後に、手動で導入する必要があります。それでは Vine Linux でパッケージを導入する場合には、どのようにすれば良いのでしょうか?基本的には、apt で始まるコマンド群を使うことになります。しかし、中には、Vine Linux 謹製のパッケージ以外を導入することが必要となる場合があります。そのような場合には rpm コマンドを使うことになります。

 インストール時に、フルインストールしている場合、あまりパッケージの追加導入が必要となる場合は少なく、面倒だからということで、すべてのパッケージを導入してしまうことを選択することがあります。個人的見解ですが、クライアント用のインストールであれば、フルインストールを選択することは、あながち間違いではないと感じます。しかし、サーバー用のインストールであれば、基本パッケージのみをインストールしておき、必要となるパッケージを追加インストールすべきです。これは、サーバーは24時間起動が基本となるため、Security Fix がなされた場合に、速やかに適用する必要があるため、何がインストールされているかを管理者は把握しておく必要があるためです。

apt を知ろう

 Vine Linux では、パッケージ管理システムに rpm を使用しています。元々 Linux においては、ソフトウェアはユーザーがコンパイルを行い、必要なファイルをコピーして行う、ということが一般的となっていました。もちろん、アンインストールにおいては、ユーザーがファイルを削除することで行うこととなります。ソフトウェアが単一のファイルで構成されている時代は、それでも良かったわけですが、アプリケーションの機能拡張により、複数のファイルで構成されていたり、ライブラリのように特別の設定を必要としたり、複数のソフトウェアから構成されているようになると、アンインストールと一口にいっても、なかなか難しくなってきました。ファイルを手動で削除するということは、どこの場所に、何という名前でファイルをコピーしたか、ということが重要になってくるわけですが、インストールから時間が経過してしまうと、記記憶も薄れ、記録も見つからなくなる、ということが散見されるようになり、アンインストールができなくなる、という事態もよく見かけられるようになりました。また、ユーザーがそれぞれファイルをコピーすることから、必ずしも同一の場所に存在している、とはいえない状況が発生し、サポートをしようにも、どこにファイルが存在するかがわからない、という事態まで引き起こしてしまうこととなりました。

 このような状態を察知した Redhat 社は、自社のディストリビューションである Redhat Linux を構築する際に、パッケージ管理システムとして RPM を作成しました。RPM は、以前は Redhat Packeage Manager の略と言われていましたが、Redhat 社がオープンソースとしたことにより、RPM Packeage Manager の略と言われるようになりました。RPM が登場したことにより、ファイルのコピー先が標準化されることはもちろんですが、インストール情報を記録していることから、アンインストールが非常に容易になりました。また、依存関係にあるパッケージを導入使用とする際に、すでにインストールされているかどうかを、RPM のデータベースにアクセスすることで、簡単に調べることが出来る、という副産物まで生まれることになりました。RPM の登場は、非常に活気的でした。

 RPM が登場して、rpm ファイルによるインストール/アンインストールは非常に楽になりました。しかし、それでもユーザーは更なる要求を求めるのでした。それは、必要とするソフトウェアが、一体どこにあるのか、ということでした。RPM は、入手したパッケージをインストールすることには、非常に有益でした。しかし、パッケージそのものの入手については管理していないため、ユーザーがパッケージを探してくることが必要、ということになります。ディストリビューションのように、非常に多くのソフトウェアから構築されるようになると、必要なパッケージを探すだけで一苦労する、ということが、珍しくなくなってきてしまうようになったのです。

 パッケージ管理システムは、RPM だけではありません。世界最大ではないかと感じている debian というディストリビューションでは、RPM とは異なる、dpkg というパッケージ管理システムを搭載しています。この dpkg ですが、ユーザーにとっての負担が小さくなく、debian をインストールする際の障害と言われることさえありました。そこで、dpkg のフロントエンドの作成が行われました。これが元々の apt です。

 apt が登場することにより、debian のパッケージ管理システムは、一つの完成をみました。apt は、パッケージの検索、ダウンロード、インストール、を一括して行ってくれるため、apt コマンドを一度実行するだけで、すべてが完了することになりました。ユーザーがいちいちパッケージをダウンロードしておかなくても、apt に任せてしまうことができるわけです。これは非常に画期的なことでした。正式なパッケージ名がわからなくとも、キーワードにより、パッケージを検索する機能もあるため、完全なパッケージのファイル名がわからなくても、探し出してインストールすることができるわけです。大変便利なものであり、あっという間に debian ユーザーの中に浸透していき、apt があるから debian を選択する、というユーザーさえ現れるほどでした。

 さて、apt の有益性が高まるにつれ、RPM でも apt を使いたい、という声が高まってくるのは必然でした。その結果、RPM のフロントエンドとして動作する apt が生まれました。これこそが Vine Linux でも利用されている apt for RPM なのです。apt を使うことで、パッケージの検索、ダウンロード、インストール、アンインストール、といった一連の行為が、apt コマンド一発で完了してしまうのです。apt は非常に有益なツールです。

apt のコマンド

 apt には、いくつかのコマンドがあります。必ず覚えておくコマンドは、次の五つになります。なお、apt は、システムの変更を行うため、実行にあたっては、管理者権限が必要となります。

apt-get update

 apt では、パッケージの検索を行うことができますが、この検索は、あらかじめ作成してあるパッケージリストを使って行います。当然ながら、パッケージが更新されれば、パッケージリストも更新することが必要になります。apt-get update コマンドは、このパッケージリストを更新するコマンドです。apt を使う場合には、真っ先に実行しておくコマンドとなります。

# apt-get update

apt-get install

 apt-get install は、パッケージをインストールする際に使用するコマンドです。引数には、パッケージ名が入ります。なお、引数としてしているパッケージ名には、バージョン部分は含めないので、注意してください。また、apt-get install では、依存関係のあるパッケージが、事前にインストールされていない場合には、あわせてインストールしてくれますので、非常に有難いコマンドです。

# apt-get install postfix

apt-get upgrade

 更新されたパッケージ群を一括更新するコマンドです。セキュリティフィックスなどが行われることがあるため、定期的に実行することをお勧めします。なお、apt-get upgrade する場合には、必ず apt-get update コマンドで、パッケージリストの更新をしておかないと、更新されたファイルがあるかどうかを調べることができないので、必ず apt-get update を実行してから行いましょう。

# apt-get upgrade

apt-cache search

 apt でパッケージを探すコマンドです。指定したキーワードに該当するパッケージリストが表示されるので、必要とするパッケージをリストから探して、apt-get install しましょう。

# apt-cache search bind 

apt-get dist-upgrade

 ディストリビューションのメジャーバージョンアップする場合に使用します。Vine Linux 3.x から Vine Linux 4.x へ更新する場合に使用しますが、副作用として、コマンドが完了しないと、再起動不能になる場合があるので、実行に当たっては、特に慎重にならざるを得ません。安易に実行すると、OS の再インストールになる場合があります。

# apt-get dist-upgrade

Synaptic 〜 apt の GUI フロントエンド〜

 apt はコマンドラインツールですが、最近では GUI なフロントエンド Synaptic が登場しています。しかし、私自身は使用したことがないので、説明は割愛します。X が起動している環境でも、コマンドラインの apt を使ってしまう人間なので、GUI には疎いところがあります(笑)。

RPM の使い方

 基本的には apt で賄うわけですが、Vine Linux 謹製のパッケージ以外の場合には、rpm ファイルで入手することもありえます。この場合、rpm コマンドでインストールを行うことが必要になってきます。特に、Redhat 用の rpm パッケージを使う場合等に、配布されている rpm ファイルからのインストールが正しく行えない場合はあります。このような場合には、src.rpm ファイルを入手して、コンパイルすることが必要になる場合があります。

rpm コマンドで必ず覚えておくコマンド

rpm -ivh

 rpm ファイルをインストールする際に使用します。引数には rpm ファイル名を指定します。-vh オプションを指定しておくとインストールプロセスが画面表示されるため、 精神的には安定します(笑)。

# rpm -ivh rpm ファイル名

rpm -Uvh

 インストール済みの rpm ファイルを更新する場合に使用します。-ivh との違いは、インストールされていないパッケージの場合には、更新インストールされない、ということです。なお、オプションの U は大文字指定が必要です。小文字の場合には、別のオプションとなりますので、コマンド指定時には、注意してください。

# rpm -Uvh

rpm -qa | grep

 rpm コマンド、と呼ぶことには抵抗を感じずには居られませんが(苦笑)、つながりの中で含めているということで、ご理解下さい。-qa オプションは、インストール済みで RPM が管理しているファイル一覧を表示するもので、これに grep を組み合わせることで、パッケージがインストールされているかどうか、を調べることができます。grep を使うため、パッケージ名が部分的に覚えているものも対象となるので、意外と利用範囲は広いです。-q オプションのサブコマンドには、直接調べる方法も容易されていますが、パッケージ名が一文字でも異なっていると、見つからないため、こちらをあえてあげておきます。

# rpm -qa | grep キーワード

rpm -e

 インストール済みのパッケージを削除します。誤って導入した場合等に使用します。なお、-ivh オプションと異なり、-e コマンドでは、パッケージ名(ファイル名からバージョン部分を除いたもの)を指定することになりますので、使用する場合に注意してください。

# rpm -e パッケージ名

rpm --rebuild

 rebuild とは re-build 、つまり再構築ということになります。rpm ファイルは、すでにコンパイルされているパッケージですが、作成時にオプションの指定がないために、求める機能が使えない、ということがあります。また、別のディストリビューション向けの rpm ファイルを使用する場合に、依存関係にあるライブラリが異なることにより、そのままでは使用できない、ということがあります。このような場合に、rpm ファイルの再構築が必要となります。

 rpm ファイルには、2種類の形式があります。一つは、コンパイル済みの .rpm ファイルで、もう一つがコンパイル前の .src.rpm ファイルです。商用パッケージでは事情が異なりますが、ディストリビューション謹製のパッケージでは、この二つが、セットとなっています。src.rpm を rebuild すると、コンパイル済みの rpm ファイルが作成されてきます。使用しているライブラリのバージョンによって、そのままでは動作しない場合などは、使用する環境で再構築することで、利用可能になることがあります。なお、rebuild コマンドを使用するためには、rpm-rebuild パッケージを導入しておくことが必要です。標準インストールでは含まれていないため、apt-get install rpm-rebuid でインストールしてください。

# rpm --rebuild ソースパッケージ名

Last Update is 2008/01/20. CopyRights Tazoe Kazuya 2008.