dnfコマンドについて
CentOS8 ではサーバーサービスやライブラリなどのパッケージを管理するために dnf と呼ばれるコマンドを主に利用します。
dfnコマンドはRed Hat系のLinuxディストリビューションで使われている『RPMパッケージ』と呼ばれるパッケージファイルを扱うコマンドで、install、update、removeのオプションを指定して実行することで、パッケージのインストールや削除等を行うことができます。
該当パッケージと依存関係にある必要なパッケージはコマンド実行時に自動で識別され、インストールする際に同時に追加されるため、非常に少ないオペレーションでパッケージのインストールや削除が可能な便利なコマンドなのです。
DL可能なパッケージが管理されているデータベースをリポジトリと呼びます。
リポジトリはデフォルトで設定されている場所の他、任意で追加することで、インストールすることができるパッケージを増やすことが可能です。
構築環境
- CentOS Linux release 8.2.2004 (Core)
dnf コマンドの使い方
▼パッケージのリストより検索
list オプションのズラズラと表示される結果を「|(パイプ)」で送って、bind-utils のパッケージ名の行のみを表示しています。
command # dnf list | grep bind-utils bind-utils.x86_64
▼パッケージの詳細
下記の例では bind-utils と呼ばれるパッケージの詳細を表示。
command # dnf info bind-utils メタデータの期限切れの最終確認: 2:19:25 時間前の 2020年09月30日 10時05分59秒 に実施しました。 利用可能なパッケージ 名前 : bind-utils エポック : 32 バージョン : 9.11.13 リリース : 6.el8_2.1 Arch : x86_64 サイズ : 443 k ソース : bind-9.11.13-6.el8_2.1.src.rpm リポジトリー : AppStream 概要 : Utilities for querying DNS name servers URL : http://www.isc.org/products/BIND/ ライセンス : MPLv2.0 : :
▼指定したパッケージと関連パッケージをインストール
「-y」指定で「これでよろしいですか? [y/N]: n?」など全ての質問にYesとします。
command # dnf install -y bind-utils
▼指定したパッケージと関連パッケージを削除
command # dnf remove bind-utils
▼パッケージの追加削除履歴
command # dnf history
▼インストールされたパッケージの確認
下記の例ではインストールされた一覧より、 httpd パッケージの検索結果のみを表示しています。
command # dnf list installed | grep httpd centos-logos-httpd.noarch 80.5-2.el8 @BaseOS httpd.x86_64 2.4.37-21.module_el8.2.0+494+1df74eae @AppStream httpd-devel.x86_64 2.4.37-21.module_el8.2.0+494+1df74eae @AppStream httpd-filesystem.noarch 2.4.37-21.module_el8.2.0+494+1df74eae @AppStream httpd-manual.noarch 2.4.37-21.module_el8.2.0+494+1df74eae @AppStream httpd-tools.x86_64 2.4.37-21.module_el8.2.0+494+1df74eae @AppStream
dnfコマンドのオプション
▼オプション一覧
-y --assumeyes |
全ての問い合わせに対して「yes」を選択したと見なして実行する。 |
--assumeno | 全ての問い合わせに対して「no」を選択したと見なして実行する。 |
-C --cacheonly |
パッケージの情報を全くダウンロードせずに、キャッシュだけを使用する。 |
--refresh | コマンド実行前にパッケージ情報のキャッシュを強制的に更新する。 |
-R 分 --randomwait=分 |
最大待ち時間(分)を指定する。 |
-c 構成ファイル名 --config=構成ファイル名 |
構成ファイルを指定する。 |
--enablerepo | リポジトリID 指定したリポジトリを有効にする。 |
--disablerepo | リポジトリID 指定したリポジトリを無効にする。 |
--repo リポジトリID | 指定したリポジトリ内のみ有効にする。 複数ある場合は「--repo」を複数回使用する。 |
--repoid リポジトリID | --repoと同様のコマンド。 |
--nodocs | ドキュメントをインストールしない。 |
--allowerasing | 依存関係を解決するためにインストール済みパッケージの削除を許可する。 |
--installroot=場所 | インストール先を指定する。 |
--downloaddir=場所 | ダウンロード先を指定する。 |
--downloadonly | ファイルのダウンロードだけを行う。 |
-x パッケージ名 --exclude=パッケージ名 | 除外するパッケージを指定する。 |
--showduplicates | 「info」「search」のオプション結果で重複しているものも表示する。 |
--color=指定 | 出力メッセージを色付きにするかどうかを「always」「auto」「never」のいずれかで指定する。 |
-q --quiet | 実行時にメッセージを出力しない。 |
-v --verbose | 詳しいメッセージを出力する。 |
▼パッケージ操作
install | 指定したパッケージに加え、依存関係があるパッケージもインストールする。 |
reinstall | パッケージを再インストールする。 |
downgrade | パッケージを以前のバージョンのものにダウングレードする。 |
remove | パッケージを依存関係のあるパッケージとともに削除する。 |
autoremove | 依存関係のためにインストールされていた不要なパッケージを削除する。 |
upgrade | パッケージを更新する。 |
upgrade-minimal | 不具合の修正や機能追加、セキュリティ対応など「重要な更新」だけを更新する。 |
distro-sync | 最新の利用可能なバージョンへインストール済みパッケージを同期する。 |
mark install | 指定パッケージをソースから個別でインストールした時と同様の状態でインストールする。 「dnf mark remove パッケージ名」で個別で削除する。 |
▼パッケージ情報確認コマンド
info | パッケージの情報を表示する。 |
list | パッケージを一覧表示する。 |
deplist | パッケージの依存性の一覧を表示する。 |
group | パッケージグループのサマリーを表示する。 |
search | 指定した文字列でパッケージの詳細を検索する。 |
repoquery | キーワードに一致するパッケージを検索する。 |
provides | ファイル名などを指定して、該当するファイルを提供するパッケージを検索する。 |
repolist | ソフトウェアリポジトリの構成を表示する。 |
▼メンテナンス、その他コマンド
makecache | リポジトリの内容をDLして、キャッシュを作成・更新する。 |
check | ローカルのパッケージデータベースに問題がないかどうか確認する。 |
check-update | 更新に利用できるパッケージを確認する。 |
clean | キャッシュデータを削除する。 |
shell | 対話型のシェル(DNFシェル)を実行する。 |
updateinfo | リポジトリの更新情報を表示する。 |
history | パッケージのインストールや削除の履歴を表示する。 |
EPELリポジトリを追加
DL可能なパッケージが管理されているデータベースをリポジトリと呼びます。
リポジトリはデフォルトで設定されている場所の他、任意で追加することで、インストールすることができるパッケージを増やすことが可能です。
下記の例では EPEL リポジトリを追加する手順です。
▼EPELとは
EPEL:Extra Packages for Enterprise Linuxの略で、エンタープライズLinux用のスペシャルパッケージが提供されている。
▼CentOSリポジトリ一覧
https://wiki.centos.org/AdditionalResources/Repositories
▼EPELのインストール
command # dnf -y install epel-release
▼設定ファイルでEPELを利用可能に設定
command # vi /etc/yum.repos.d/epel.repo
epel.repo
[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir
▼#1=有効、0=無効
enabled=1
▼優先度を追記。[1-99]で指定
1は最優先でデフォルトは99
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
▼リポジトリ一覧の有効/無効確認
command # dnf repolist all repo id repo の名前 状態 AppStream CentOS-8 - AppStream 有効化 AppStream-source CentOS-8 - AppStream Sources 無効化 BaseOS CentOS-8 - Base 有効化 BaseOS-source CentOS-8 - BaseOS Sources 無効化 Devel CentOS-8 - Devel WARNING! FOR BUILDROOT USE ONLY! 無効化 HighAvailability CentOS-8 - HA 無効化 PowerTools CentOS-8 - PowerTools 有効化 base-debuginfo CentOS-8 - Debuginfo 無効化 c8-media-AppStream CentOS-AppStream-8 - Media 無効化 c8-media-BaseOS CentOS-BaseOS-8 - Media 無効化 centosplus CentOS-8 - Plus 無効化 centosplus-source CentOS-8 - Plus Sources 無効化 cr CentOS-8 - cr 無効化 elrepo ELRepo.org Community Enterprise Linux Repository - el8 有効化 elrepo-extras ELRepo.org Community Enterprise Linux Extras Repository - el8 無効化 elrepo-kernel ELRepo.org Community Enterprise Linux Kernel Repository - el8 無効化 elrepo-testing ELRepo.org Community Enterprise Linux Testing Repository - el8 無効化 epel Extra Packages for Enterprise Linux 8 - x86_64 有効化 epel-debuginfo Extra Packages for Enterprise Linux 8 - x86_64 - Debug 無効化 epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64 有効化 epel-modular-debuginfo Extra Packages for Enterprise Linux Modular 8 - x86_64 - Debug 無効化 epel-modular-source Extra Packages for Enterprise Linux Modular 8 - x86_64 - Source 無効化 epel-playground Extra Packages for Enterprise Linux 8 - Playground - x86_64 無効化 epel-playground-debuginfo Extra Packages for Enterprise Linux 8 - Playground - x86_64 - Debug 無効化 epel-playground-source Extra Packages for Enterprise Linux 8 - Playground - x86_64 - Source 無効化 epel-source Extra Packages for Enterprise Linux 8 - x86_64 - Source 無効化 epel-testing Extra Packages for Enterprise Linux 8 - Testing - x86_64 無効化 epel-testing-debuginfo Extra Packages for Enterprise Linux 8 - Testing - x86_64 - Debug 無効化 epel-testing-modular Extra Packages for Enterprise Linux Modular 8 - Testing - x86_64 無効化 epel-testing-modular-debuginfo Extra Packages for Enterprise Linux Modular 8 - Testing - x86_64 - Debug 無効化 epel-testing-modular-source Extra Packages for Enterprise Linux Modular 8 - Testing - x86_64 - Source 無効化 epel-testing-source Extra Packages for Enterprise Linux 8 - Testing - x86_64 - Source 無効化 extras CentOS-8 - Extras 有効化 extras-source CentOS-8 - Extras Sources 無効化 fasttrack CentOS-8 - fasttrack 無効化 remi Remi's RPM repository for Enterprise Linux 8 - x86_64 無効化 remi-debuginfo Remi's RPM repository for Enterprise Linux 8 - x86_64 - debuginfo 無効化 remi-modular Remi's Modular repository for Enterprise Linux 8 - x86_64 有効化 remi-modular-test Remi's Modular testing repository for Enterprise Linux 8 - x86_64 無効化 remi-safe Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 有効化 remi-safe-debuginfo Remi's RPM repository for Enterprise Linux 8 - x86_64 - debuginfo 無効化 remi-test Remi's test RPM repository for Enterprise Linux 8 - x86_64 無効化 remi-test-debuginfo Remi's test RPM repository for Enterprise Linux 8 - x86_64 - debuginfo 無効化
▼有効リポジトリ内のパッケージ数の確認
command # dnf list available | wc -l 15600
▼「enabled=0」で無効の場合に一時的に有効化してパッケージをインストール
command # dnf --enablerepo=elrepo install パッケージ名
▼EPELのリスト確認
command # dnf list --enablerepo=epel
簡単にサーバーを用意したい人はこちら
アクセス数が多く個人運営では厳しくなってきたら、レンタルサーバーも選択肢の一つですね。
もっと簡単にサーバーを準備して、WordPress等が動かせるレンタルサーバーをいくつか紹介します!
▼国内最大級の『ロリポップ!』の新プラン
面倒なインストールやセットアップ作業を行う必要なく、PHP、WordPress、Ruby on Rails、 Node.jsのアプリケーション実行環境を簡単に構築することができます。
▼国内最速!初期費用無料の高性能レンタルサーバー【ConoHa WING】
▼Just-Size.Networks レンタルサーバー
安価であっても決して妥協を許さない、こだわりのレンタルサーバー!
▼カラフルボックス
マルチドメイン・データベース・メールアドレス、すべて無制限。
最新のスペックと技術でWordPressをより高速・安全に表示!
ドメイン取得可能!
初期費用無料(*1)で月額480円から利用可能な、高速・高機能・高コストパフォーマンスのクラウド型レンタル サーバーです。
当ブログのドメインや、ウチが管理しているドメインは、全てムームードメインで取得しています。
管理画面が使いやすくて、料金もかなり安めなので、オススメです!