このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
rpmコマンドでのインストールとアップデート
rpmコマンドでのインストールとアップデート(CentOS)
rpmコマンドは、CentOSや他のRed Hat系ディストリビューションで、パッケージをインストール・アップデートするために使用されます。主に以下の3つのモードが利用されます。
モード | 説明 |
---|---|
-i(--install) | 新しいパッケージをインストールするためのモードです。インストールするパッケージのファイル名を指定します。 |
-U(--upgrade) | 既にインストールされているパッケージを新しいバージョンにアップデートするためのモードです。インストールされていない場合、新規にインストールされます。 |
-F(--freshen) | インストール済みのパッケージをアップデートしますが、既にインストールされているパッケージのみを対象とします。 |
【構文】rpmコマンド(インストール)rpm -i [オプション] パッケージファイル名
【構文】rpmコマンド(インストール/アップデート)rpm -U [オプション] パッケージファイル名
【構文】rpmコマンド(アップデート)rpm -F [オプション] パッケージファイル名
rpmコマンドよりyumコマンドでインストールする場合が多い理由
rpmコマンドは、依存関係の解決が自動で行われないため、依存パッケージを手動でインストールする必要があります。一方で、yumコマンドは依存関係を自動的に解決し、関連するすべてのパッケージを一括でインストールできるため、システム管理者にとっては便利です。以下は、rpmコマンドとyumコマンドの主な違いです。
コマンド | 依存関係の解決 | 使いやすさ | 主な用途 |
---|---|---|---|
rpm | 手動 | 中程度 | 単一パッケージの管理 |
yum | 自動 | 高い | パッケージのインストールと管理 |
-i、-U、-Fモードと併用する主なオプション
オプション(ショート) | オプション(ロング) | 引数 | 説明 |
---|---|---|---|
-v | なし | なし | インストールやアップデートの過程を詳細に表示します。 |
-h | --hash | なし | 進行状況をハッシュ記号(#)で表示します。 |
なし | --nodeps | なし | 依存関係を無視してインストールする。このオプションは慎重に使用する必要があります。 |
コマンドの使用例と解説(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コマンドは特定の状況での詳細な制御が可能であり、システム管理者が理解しておくべき重要なツールです。