このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

rpmコマンドでのインストールとアップデート

rpmコマンドでのインストールとアップデート(CentOS)

 rpmコマンドは、CentOSや他のRed Hat系ディストリビューションで、パッケージをインストール・アップデートするために使用されます。主に以下の3つのモードが利用されます。

モード説明
-i(--install)新しいパッケージをインストールするためのモードです。インストールするパッケージのファイル名を指定します。
-U(--upgrade)既にインストールされているパッケージを新しいバージョンにアップデートするためのモードです。インストールされていない場合、新規にインストールされます。
-F(--freshen)インストール済みのパッケージをアップデートしますが、既にインストールされているパッケージのみを対象とします。
RPMコマンドのモード

【構文】rpmコマンド(インストール)
rpm -i [オプション] パッケージファイル名

【構文】rpmコマンド(インストール/アップデート)
rpm -U [オプション] パッケージファイル名

【構文】rpmコマンド(アップデート)
rpm -F [オプション] パッケージファイル名

rpmコマンドよりyumコマンドでインストールする場合が多い理由

 rpmコマンドは、依存関係の解決が自動で行われないため、依存パッケージを手動でインストールする必要があります。一方で、yumコマンドは依存関係を自動的に解決し、関連するすべてのパッケージを一括でインストールできるため、システム管理者にとっては便利です。以下は、rpmコマンドとyumコマンドの主な違いです。

コマンド依存関係の解決使いやすさ主な用途
rpm手動中程度単一パッケージの管理
yum自動高いパッケージのインストールと管理
rpmコマンドよりyumコマンドでインストールする場合が多い理由

-i、-U、-Fモードと併用する主なオプション

オプション(ショート)オプション(ロング)引数説明
-vなしなしインストールやアップデートの過程を詳細に表示します。
-h--hashなし進行状況をハッシュ記号(#)で表示します。
なし--nodepsなし依存関係を無視してインストールする。このオプションは慎重に使用する必要があります。
-i、-U、-Fモードと併用する主なオプション

コマンドの使用例と解説(CentOSの場合)

ここでは、rpmコマンドを使ったパッケージのインストールについて詳しく解説します。

1.rootユーザーでログインします。

・rootユーザーでシステムにログインします。

 rootユーザーはシステム管理に必要な全ての権限を持っているため、パッケージのインストールやアップデートを実行できます。

2.httpdパッケージのインストール

 ・「httpd-2.4.6-99.el7.centos.1.x86_64.rpm」をインターネットからダウンロードします。

 ・ダウンロードした「httpd-2.4.6-99.el7.centos.1.x86_64.rpm」ファイルをrootユーザーのホームディレクトリに保存します。

・「ls」コマンドを実行してrootユーザーのホームディレクトリの中身を確認します。

[root@localhost ~]# ls
anaconda-ks.cfg                         ダウンロード  ドキュメント  画像
httpd-2.4.6-99.el7.centos.1.x86_64.rpm  テンプレート  ビデオ        公開
initial-setup-ks.cfg                    デスクトップ  音楽

・「rpm -ivh httpd-2.4.6-99.el7.centos.1.x86_64.rpm」コマンドを実行します。

 このコマンドを実行すると、httpdパッケージがインストールされます。しかし、httpdパッケージが依存している他のパッケージがインストールされていない場合、エラーメッセージが表示され、インストールは失敗します。この場合、依存関係を満たすために必要なパッケージを手動でダウンロードし、インストールする必要があります。

[root@localhost ~]# rpm -ivh httpd-2.4.6-99.el7.centos.1.x86_64.rpm
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:httpd-2.4.6-99.el7.centos.1      ################################# [100%]
3.httpdパッケージの依存関係を無視してインストールする。

 ここでは、httpdパッケージをrpmコマンドで、すんなりとインストールできましたが、rpmコマンドでインストールする場合、依存関係の問題で、エラーとなるケースの方が多いです。

そこで、依存関係を無視して強制インストールする方法を解説します。

まず、インストールしたhttpdパッケージをrpmコマンドを使って削除しておきます。

・「rpm -evh httpd」コマンドを実行します。

[root@localhost ~]# rpm -evh httpd
準備しています...              ################################# [100%]
整理中 / 削除中...
   1:httpd-2.4.6-99.el7.centos.1      ################################# [100%]

・「rpm -ivh --nodeps httpd-2.4.6-99.el7.centos.1.x86_64.rpm」コマンドを実行します。

 このコマンドを使用すると、依存関係を無視してパッケージをインストールできます。しかし、依存関係を無視すると、パッケージが正常に動作しない可能性が高いため、この方法は推奨されません。

[root@localhost ~]# rpm -ivh --nodeps httpd-2.4.6-99.el7.centos.1.x86_64.rpm
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:httpd-2.4.6-99.el7.centos.1      ################################# [100%]

まとめ

 rpmコマンドを使用したパッケージのインストールやアップデートは、依存関係の管理に注意が必要です。yumコマンドを使用することで、依存関係の解決が自動化され、より簡単かつ安全にパッケージ管理を行うことができます。しかし、rpmコマンドは特定の状況での詳細な制御が可能であり、システム管理者が理解しておくべき重要なツールです。