Red Hat Enterprise Linux(RHEL)やそのクローンディストリビューション(AlmaLinux、Rocky Linux、CentOS Streamなど)を使っていると、「ソフトウェアをインストールするにはどうすればいいの?」という疑問にぶつかることがあります。
そんなときに欠かせないのがdnfコマンドです。中でも最も使用頻度が高いのが dnf install。
この記事では、dnf installの基本的な使い方から、便利なオプション、よくあるエラーとその対処法まで、丁寧に解説します。
Linux初心者の方でも分かりやすいように、実例を交えてご紹介します。
dnfは、Red Hat系Linuxで使用される次世代のパッケージマネージャーです。以前はyum(Yellowdog Updater, Modified)が標準でしたが、今ではその後継としてRHEL 8以降ではdnfが主流です。
主な違い:
dnfはPython3で書かれており、より高速で安定yumとほぼ同じなので、yumユーザーもすぐに慣れます基本的なコマンドは以下の通りです:
sudo dnf install [パッケージ名]
たとえば、vimというテキストエディタをインストールしたい場合:
sudo dnf install vim
このコマンドで、vim本体とその依存パッケージが自動的にインストールされます。
多くの場合、パッケージのインストールはシステム全体に関わる操作なので、root権限が必要です。
そのため、一般ユーザーがコマンドを実行する場合にはsudoをつけるのが一般的です。
例:
sudo dnf install httpd
rootユーザーとしてログインしている場合はsudoは不要です。
dnf installでは、スペース区切りで複数のパッケージを一度に指定することも可能です。
sudo dnf install git curl wget
この例では、git、curl、wgetをまとめてインストールします。
「このパッケージを入れると何がインストールされるか確認してから実行したい」場合は、--assumenoオプションが便利です。
sudo dnf install vim --assumeno
これによりインストール処理は行われず、何が起こるかの確認だけが表示されます。
dnf installには多くの便利なオプションがあります。
| オプション | 内容 |
|---|---|
-y | すべての質問に「yes」と自動回答(無人インストール) |
--nogpgcheck | GPGチェックをスキップしてインストール |
--best | 利用可能な中で最も新しいバージョンをインストール |
--allowerasing | 競合するパッケージを削除してインストールを許可 |
例:
sudo dnf install nginx -y --allowerasing
Error: Unable to find a match: package_name
これは指定したパッケージがリポジトリに存在しない場合に発生します。対処法としては以下を確認しましょう。
sudo dnf repolist
で有効なリポジトリを確認できます。
Public key for package_name.rpm is not installed
GPG署名の検証に失敗した場合です。リスクを理解したうえで以下のようにインストールを続行することができます:
sudo dnf install package_name --nogpgcheck
パッケージ名が分からないときは、dnf searchコマンドで探すことができます。
dnf search [キーワード]
例:
dnf search editor
このコマンドで「editor」というキーワードに関連するすべてのパッケージが表示されます。
RHEL系では、.rpmファイルを直接インストールするrpm -ivhコマンドもありますが、dnf installのほうが以下の点で優れています。
一方で、ローカルにあるrpmファイルを使いたい場合は以下のようにdnfでもインストール可能です:
sudo dnf install ./package_name.rpm
インストールしたパッケージを削除したい場合は、dnf removeを使います。
sudo dnf remove パッケージ名
例:
sudo dnf remove httpd
依存関係も自動で確認して、不要なパッケージが一緒に削除されます。
dnf installは、RHEL系ディストリビューションでのソフトウェア管理において欠かせないコマンドです。
基本的な使い方を覚えておくだけで、さまざまなパッケージを簡単にインストール・管理することができます。
ポイントをおさらいしましょう:
sudo dnf install パッケージ名 でインストール-y や --best などのオプションを活用repolistやsearchで確認dnf remove日々のサーバー管理や開発環境構築において、dnfの知識があるととてもスムーズに作業が進みます。ぜひこの機会に使いこなせるようになってください。