dnf/yum(とrpm)コマンド
yumの使用例
パッケージの検索
yum list '*php*'
インストールされているパッケージの検索
yum list installed [glob]
dnf list --installed [glob]
パッケージがインストールしたファイルの一覧
RHEL8系
インストールされていなくてもdnf list
で表示されるパッケージなら実行可能。
dnf rq -l <package>
CentOS 6/CentOS 7
インストールされているかパッケージか、ダウンロードしたrpmファイルが対象。
rpm -ql <package>
インストールされるファイルの名前は分かるがパッケージ名がわらかない場合
yum provides '*/php'
CentOS 7以降は */php
ではなく php
での指定も可。
インストールされているリポジトリの一覧
有効なリポジトリの一覧
yum repolist
全てのリポジトリの一覧
yum repolist all
dnf repolist --all
リポジトリが提供しているパッケージの一覧
yum repo-pkgs <repoid> list
list
の代わりにinstall
やremove
で一括操作が可能。
リポジトリの有効化/無効化
RHEL8系からdnf
で実行可能。
dnf config-manager --set-enabled <repoid>
dnf config-manager --set-disabled <repoid>
パッケージグループの一覧表示
yum group list
list
の代わりにinstall <group>
やremove <group>
で一括操作が可能。
新しいバージョンがあるはずなのにパッケージが更新されない場合
例えばセキュリティバグがフィックスされたバージョンがあるはずなのに、yum update
をしても更新されずyum list
の一覧にも出てこない場合。
yum clean
でyum
のキャッシュをクリアしてから更新すると成功する場合がある。
yum clean all yum update
yumの設定
プロキシ設定
/etc/yum.conf
に以下を追加する。
proxy=http://proxy.example.com:8080 proxy_username=username_for_auth proxy_password=password_for_auth
追加リポジトリ RHEL8系
dnf config-manager --set-enabled powertools dnf install epel-release.noarch
dnf install rpmfusion-free-release
dnf install elrepo-release.noarch
centos-release-
系のリポジトリはCentOS 8.xのサポートが終了していることもあり、
インストールするとエラーが発生する場合がある。
追加リポジトリ CentoS 7.x
The Software Collections ( SCL ) Repository
yum install centos-release-scl
yum install epel-release rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
yum install https://repo.ius.io/ius-release-el7.rpm rpm --import /etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY
Ansible
yum install centos-release-ansible-29.noarch
QEMU/KVMの新しい版
yum install centos-release-qemu-ev
Open Stack/Open vSwitch
yum install centos-release-openstack-train.noarch
追加リポジトリ CentOS 6.x
yum install epel-release rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
extrasにepel-releaseがある。
epel-releaseがない場合はyum intall https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
。
yum install https://repo.ius.io/ius-release-el6.rpm rpm --import /etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY
fastestmirrorの接続先を限定する
国外のミラーに接続しに行ってしまう場合などに設定すると便利。
/etc/yum/pluginconf.d/fastestmirror.conf
に以下を追加する。
include_only=.jp
または特定のミラーサイトを指定する。
prefer=ftp.somewhere.com
プラグインの無効化
例として、 fastestmirror
を無効化したい場合。
実行時に無効化する
yum --disableplugin=fastestmirror ...
設定で無効化する
/etc/yum/pluginconf.d/fastestmirror.conf
を編集し無効化する。
enabled=0
プラグインを削除する
yum erase yum-fastestmirror
DVDのイメージファイルから読み込む
インターネット接続が無い環境でDVDイメージファイルのリポジトリでyumを使用する方法。
一時的に利用する場合
mkdir /media/CentOS mount -t iso9660 -o loop CentOS-6.7-x86_64-bin-DVD1.iso /media/CentOS yum --disablerepo=\* --enablerepo=c6-media
常に利用する場合
DVDメディアの中身をディレクトリにコピーして、そのディレクトリをリポジトリにする。
ファイルのコピー。
mkdir /media/CentOS mount -t iso9660 -o loop CentOS-6.7-x86_64-bin-DVD1.iso /mnt tar cf - -C /mnt . | tar xf - -C /media/CentOS/ umount /mnt mount -t iso9660 -o loop CentOS-6.7-x86_64-bin-DVD1.iso /mnt tar cf - -C /mnt . | tar xf - -C /media/CentOS/ umount /mnt
/etc/yum.repos.d/CentOS-Base.repo
を編集して、インターネットのリポジトリを無効化。
enabled=0
/etc/yum.repos.d/CentOS-Media.repo
を編集して、ローカルのリポジトリを有効化。
enabled=1
DVDのイメージファイルから読み込む(RedHatの場合)
DVDのイメージファイルをマウントする。
# mkdir -p /mnt/rhel-6.4 # mount -o loop rhel-server-6.4-x86_64-dvd.iso /mnt/rhel-6.4
RedHatにはメディア用のリポジトリ定義ファイルが無いので、
定義ファイル /etc/yum.repos.d/rhel6.4-dvd.repo
を作成する。
[rhel6.4-dvd] name=Red Hat Enterprise Linux 6.4 - x86_64 - DVD baseurl=file:///mnt/rhel-6.4 enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
yum の使用方法。
# yum --disablerepo=\* --enablerepo=rhel6.4-dvd