Linux - 共通事項 - パッケージ管理 - yum・dnf

 クラウディア
1. 概要
2. 使い方
3. DVD をリポジトリとしてインストールする
4. 使用しているリポジトリを一覧表示
5. リポジトリの有効化・無効化
6. yum list

1. 概要

 「yum」は、パッケージをインストールするコマンドです。  もともと「Yellow Linux」というディストリビューションに実装されて、その後、Fedora と CentOS に実装されたそうです。  「Ubuntu」系では、パッケージの操作は、「Debian」標準の「apt(Advanced Packaging Tool)」が標準です。  「Red Hat」系のパッケージは「rpm」という形式で作成されており「yum」の他に「rpm」というインストール用のコマンドも用意されていますが「yum」の方がパッケージの依存関係を先に解決してくれるので使い勝手がよいようです。  わたしの印象では「yum」は「FreeBSD」の「pkg」コマンドに近いものであるという認識です。(というよりは「pkg」の方が「yum」を真似っこしているのかな?)  本ページは、下記のサイトを参考にさせていただきました。
[CentOS] 追加した yum リポジトリを一覧で確認するコマンド « Codaholic」
「dnf (yum) でリポジトリの有効無効を切り替える」
「Yum リポジトリを有効/設定/無効にする方法 Red Hat Enterprise Linux 6 | Red Hat Customer Portal」
「【yum list】パッケージ一覧を表示・確認する | UX MILK
 どうも、「yum」は徐々に「dnf」へ置き換わっているようです。  「Dandified Yum - Wikipedia」に書いてあります。  もし、「dnf」が使えるのであれば、「yum」を「dnf」に置きかえて使うべきでしょう。

2. 使い方

 基本的には

dnf install パッケージ名
 でインストールを行います。  わたしが知っているオプションは、以下のものくらいです。
 コマンドライン    意味     備考  
yum search パッケージ名 検索 パッケージ名は部分文字列でも可
yum install パッケージ名 インストール
yum remove パッケージ名 パッケージをアンインストール
yum list オプション パッケージをリスト 6. yum list」参照

3. DVD をリポジトリとしてインストールする

 いささか事情があって「CentOS 6.8」を使用しているのですがインターネットに接続できない環境なのです。  なのでリポジトリをインストール用の「DVD」のみとしたいのですが、依存しているパッケージをどうしてもネットワークからとってこようとするので以下の設定を行いました。  「DVD」は挿入すると自動的にマウントされるようになっていて 2 をつっこむと

/media/CentOS_6.8_Final/
 がマウントされている状態です。  下記のファイルを編集します。

/etc/yum.repos.d/CentOS-Media.repo

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
 を下記のように書き換えます。

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
        file:///media/CentOS_6.8_Final/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
 これで、インターネットに接続していない状態で「yum」コマンドを使用しても DVD を使用してくれるようになります。  DVD2 でもうまくいくかと思っていたのですが DVD2 には

/media/CentOS_6.8_Final/repodata/repomd.xml
 が存在しないためうまく動作できないようです。

4. 使用しているリポジトリを一覧表示

 リポジトリを追加しているうちに、どれだけリポジトリを追加したのかわからなくなっちゃました。  調べる方法があります。  コマンドは

dnf repolist all
 実際に、「CentOS 8」でやってみました(このときは、まだ「yum」を使用)。

$ yum repolist all
メタデータの期限切れの最終確認: 0:29:47 時間前の 2019年10月31日 16時04分55秒 に実施しました。
repo id                      repo の名前                                                          状態
AppStream                    CentOS-8 - AppStream                                                 有効化: 4,679
AppStream-source             CentOS-8 - AppStream Sources                                         無効化
BaseOS                       CentOS-8 - Base                                                      有効化: 1,655
BaseOS-source                CentOS-8 - BaseOS Sources                                            無効化

・・・	以下略	・・・

 実際には、「無効化」の部分は、赤く表示されるので、分かりやすいです。

5. リポジトリの有効化・無効化

 リポジトリの有効化・無効化に関しては、各所に「yum-config-manager」を使うと書いているのですが・・・。  少なくとも、現在(2019年11月2日)の「CentOS 8.0」では、「yum-config-manager」が使えなかったので、「dnf」で代替します。  有効化。

dnf config-manager --enable リポジトリ名
 無効化。

dnf config-manager --disaable リポジトリ名
 けどまぁ、これって実際のところは、コマンドは「dnf」ですわな。  つまり、「dnf」と「yum」は、同じリポジトリを使用しているってことです。  リポジトリの追加。

yum-config-manager --add-repo リポジトリURL
 有効化。

yum-config-manager --enable リポジトリ名
 無効化。

yum-config-manager --disable リポジトリ名

6. yum list

 下記のコマンドで

yum list オプション
 パッケージの一覧を表示します。  オプションにより、表示する内容を制御します。
オプション    表示内容     備考 
なし インストール可能なパッケージとインストール済みのパッケージ
installed インストール済のパッケージ
updates アップデート可能なパッケージ
available 利用可能なパッケージ
extras 利用できないパッケージ

ハイスピードプラン損保との違い