Studio ilia

Wordpress、ゲームコンテンツ開発ブログ

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 のパッケージ名の行のみを表示しています。

 

▼パッケージの詳細
下記の例では bind-utils と呼ばれるパッケージの詳細を表示。

 

▼指定したパッケージと関連パッケージをインストール
「-y」指定で「これでよろしいですか? [y/N]: n?」など全ての質問にYesとします。

 

▼指定したパッケージと関連パッケージを削除

 

▼パッケージの追加削除履歴

 

▼インストールされたパッケージの確認
下記の例ではインストールされた一覧より、 httpd パッケージの検索結果のみを表示しています。

 

 

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リポジトリ一覧

 

▼EPELのインストール

 

▼設定ファイルでEPELを利用可能に設定

▼#1=有効、0=無効

enabled=1

 

▼優先度を追記。[1-99]で指定
1は最優先でデフォルトは99

priority=10

gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8

 

▼リポジトリ一覧の有効/無効確認

 

 

▼有効リポジトリ内のパッケージ数の確認

 

▼「enabled=0」で無効の場合に一時的に有効化してパッケージをインストール

 

▼EPELのリスト確認

 

Home
Profile
Menu
Search