以下では、rpm コマンドを使用して RPM バイナリ パッケージをインストール、アンインストール、アップグレードする方法を説明します。Apache プログラムのインストールを例に挙げてみましょう。
RPM パッケージのデフォルトのインストール パス
通常、RPM パッケージはシステムのデフォルトのインストール パスを使用し、すべてのインストール ファイルはカテゴリに応じて次の表に示されているディレクトリにインストールされます。
インストールパス | 意味 |
---|---|
/等/ | 設定ファイルのインストールディレクトリ |
/usr/bin/ | 実行コマンドのインストールディレクトリ |
/usr/lib/ | プログラムが使用する関数ライブラリの格納場所 |
/usr/share/doc/ | 基本ソフトウェアマニュアルの保管場所 |
/usr/共有/男/ | ヘルプファイルの保存場所 |
RPM パッケージのデフォルトのインストール パスは、コマンドを通じて照会できます。
さらに、RPM パッケージではインストール パスの手動指定もサポートされていますが、この方法はお勧めできません。インストール パスを手動で指定すると、すべてのインストール ファイルが指定された場所にインストールされ、システム内のインストール パスを照会するために使用されるコマンドは使用できなくなるため (システムに認識させるには手動構成が必要です)、利益が損失を上回ります。
RPM パッケージとは異なり、ソース パッケージは通常、インストール パスを手動で指定してインストールされます (/usr/local/ にインストールするのが一般的です)。インストール パスが異なるため、同じ Apache プログラムのソース コード パッケージと RPM パッケージを Linux サーバーにインストールできます (ただし、同じポート 80 を占有する必要があるため、同時に開くことができるのは 1 つだけです)。
実際の状況では、サーバーに 2 つの Apache プログラムが同時に含まれることはほとんどありません。これは管理者にとって管理が難しく、サーバーのディスク領域を大量に消費します。
RPMパッケージのインストール
RPM をインストールするためのコマンド形式は次のとおりです。
[root@localhost ~]# rpm -ivh 包全名
フルネームを含める必要があることに注意してください。パッケージの完全名を含むコマンドの場合は、パスに注意してください ソフトウェア パッケージが CD に含まれている場合があるため、事前にデバイスをマウントする必要があります。
このコマンドの各オプション パラメータの意味は次のとおりです。
- -i: インストール (インストール);
- -v: より詳細な情報を表示します (冗長)。
- -h: # を出力して、インストールの進行状況 (ハッシュ) を表示します。
たとえば、次のようにこのコマンドを使用して Apache パッケージをインストールします。
[root@localhost ~]# rpm -ivh \
/mnt/cdrom/Packages/httpd-2.2.15-15.el6.centos.1.i686.rpm
Preparing...
####################
[100%]
1:httpd
####################
[100%]
2 つの 100% が表示されるまで、インストールは実際に成功したわけではないことに注意してください。最初の 100% は、インストールの準備が完了したことを示すだけです。
このコマンドは、以下に示すように、パッケージの完全名をスペースで区切るだけで、複数のパッケージを一度にインストールすることもできます。
[root@localhost ~]# rpm -ivh a.rpm b.rpm c.rpm
他のインストール要件がある場合 (依存関係に関係なくソフトウェアを強制的にインストールするなど)、これらは次のオプションで調整できます。
- -nodeps: 依存関係のあるインストールを検出しません。ソフトウェアがインストールされると、依存関係が検出され、必要な基盤ソフトウェアがインストールされているかどうかが判断されます。インストールされていない場合は、エラーが報告されます。依存関係に関係なくインストールを強制したい場合は、このオプションを使用できます。なお、依存関係を検出せずにインストールしたソフトウェアは基本的に使用できないため、推奨されません。
- -replacefiles: ファイルのインストールを置き換えます。ソフトウェア パッケージをインストールしたいが、パッケージ内の一部のファイルがすでに存在している場合、通常のインストール中に「ファイルはすでに存在します」というエラーが報告され、ソフトウェアのインストールに失敗します。このエラーを無視してインストールを上書きするには、このオプションを使用します。
- -replacepkgs: パッケージのインストールを置き換えます。ソフトウェア パッケージがすでにインストールされている場合、このオプションによりソフトウェア パッケージを再度インストールできます。
- -force: インストールを強制します。すでにインストールされているかどうかに関係なく、再インストールしてください。つまり、-replacefiles と -replacepkgs の組み合わせです。
- -test: インストールをテストします。実際にインストールするわけではなく、依存関係を確認するだけです。
- -prefix: インストールパスを指定します。デフォルトのインストール パスを使用する代わりに、インストール ソフトウェアのインストール パスを指定します。
Apache サービスがインストールされたら、それを開始してみることができます。
[root@localhost ~]# service 服务名 start|stop|restart|status
各パラメータの意味:
- start: サービスを開始します。
- stop: サービスを停止します。
- 再起動: サービスを再起動します。
- status: サービスのステータスを表示します。
例えば:
[root@localhost ~]# service httpd start #启动apache服务
サービスが開始されたら、ポート番号 80 が表示されるかどうかを確認できます。コマンドは次のとおりです。
[root@localhost ~]# netstat -tlun | grep 80
tcp 0 0 :::80:::* LISTEN
ブラウザに Linux サーバーの IP アドレスを入力して、Apache サーバーにアクセスすることもできます。現在、Apache では Web ページが作成されていないため、次の図に示すように、表示されるのはテスト ページのみです。
RPM パッケージのアップグレード
次のコマンドを使用して、RPM パッケージをアップグレードします。
[root@localhost ~]# rpm -Uvh 包全名
-U (大文字) オプションの意味は、ソフトウェアがインストールされていない場合は直接インストールし、インストールされている場合は最新バージョンにアップグレードすることです。
[root@localhost ~]# rpm -Fvh 包全名
-F (大文字) オプションの意味は、ソフトウェアがインストールされていない場合はインストールされず、アップグレードするには下位バージョンをインストールする必要があることです。
RPM パッケージのアンインストール
RPM パッケージのアンインストールでは、パッケージ間の依存関係が考慮されます。たとえば、最初に httpd ソフトウェア パッケージをインストールし、次に httpd 機能モジュール mod_ssl パッケージをインストールする場合、アンインストールするときに、最初に mod_ssl をアンインストールしてから httpd をアンインストールする必要があります。そうしないと、エラーが報告されます。
ソフトウェアパッケージのアンインストールは建物を取り壊すのと同じで、元々は2階が先に建てられ、後から3階が建てられるため、建物を取り壊す場合は3階を先に取り壊さなければなりません。
依存関係を考慮せずに RPM ソフトウェアをアンインストールすると、アンインストール コマンドを実行すると、次のようなパッケージ依存関係エラーが発生します。
[root@localhost ~]# rpm -e httpd
error: Failed dependencies:
httpd-mmn = 20051115 is needed by (installed) mod_wsgi-3.2-1.el6.i686
httpd-mmn = 20051115 is needed by (installed) php-5.3.3-3.el6_2.8.i686
httpd-mmn = 20051115 is needed by (installed) mod_ssl-1:2.2.15-15.el6.
centos.1.i686
httpd-mmn = 20051115 is needed by (installed) mod_perl-2.0.4-10.el6.i686
httpd = 2.2.15-15.el6.centos.1 is needed by (installed) httpd-manual-2.2.
15-15.el6.centos.1 .noarch
httpd is needed by (installed) webalizer-2.21_02-3.3.el6.i686
httpd is needed by (installed) mod_ssl-1:2.2.15-15.el6.centos.1.i686
httpd=0:2.2.15-15.el6.centos.1 is needed by(installed)mod_ssl-1:2.2.15-15.el6.centos.1.i686
RPM ソフトウェア パッケージのアンインストールは非常に簡単で、次のコマンドを使用するだけです。
[root@localhost ~]# rpm -e 包名
-e オプションはアンインストールを意味し、erase の最初の文字です。
RPM ソフトウェア パッケージのアンインストール コマンドでは、「-nocteps」オプションの使用がサポートされており、依存関係を検出せずに直接アンインストールできますが、他のソフトウェアが使用できなくなる可能性があるため、この方法は推奨されません。