CentOS 8 Linux Linuxノウハウ

dnfコマンドのパッケージ管理とEPELリポジトリの追加

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等が動かせるレンタルサーバーをいくつか紹介します!

 

▼WordPress特化型レンタルサーバー


 

 

▼国内最大級の『ロリポップ!』の新プラン
面倒なインストールやセットアップ作業を行う必要なく、PHP、WordPress、Ruby on Rails、 Node.jsのアプリケーション実行環境を簡単に構築することができます。

 

 

▼国内最速!初期費用無料の高性能レンタルサーバー【ConoHa WING】

 

 

▼Just-Size.Networks レンタルサーバー
安価であっても決して妥協を許さない、こだわりのレンタルサーバー!




 

 

▼カラフルボックス
マルチドメイン・データベース・メールアドレス、すべて無制限。
最新のスペックと技術でWordPressをより高速・安全に表示!
ドメイン取得可能!
初期費用無料(*1)で月額480円から利用可能な、高速・高機能・高コストパフォーマンスのクラウド型レンタル サーバーです。


 

当ブログのドメインや、ウチが管理しているドメインは、全てムームードメインで取得しています。
管理画面が使いやすくて、料金もかなり安めなので、オススメです!

 

-CentOS 8 Linux, Linuxノウハウ

© 2022 Studio ilia - スタジオ イリア