====== dnf/yum(とrpm)コマンド ======
{{tag>yum dnf centos6 centos7 rhel8-clone}}
===== yumの使用例 =====
==== パッケージの検索 ====
yum list '*php*'
インストールされているパッケージの検索
yum list installed [glob]
dnf list --installed [glob]
==== パッケージがインストールしたファイルの一覧 ====
=== RHEL8系 ===
インストールされていなくても''dnf list''で表示されるパッケージなら実行可能。
dnf rq -l
=== CentOS 6/CentOS 7 ===
インストールされているかパッケージか、ダウンロードしたrpmファイルが対象。
rpm -ql
==== インストールされるファイルの名前は分かるがパッケージ名がわらかない場合 ====
yum provides '*/php'
CentOS 7以降は ''*/php'' ではなく ''php'' での指定も可。
==== インストールされているリポジトリの一覧 ====
有効なリポジトリの一覧
yum repolist
全てのリポジトリの一覧
yum repolist all
dnf repolist --all
==== リポジトリが提供しているパッケージの一覧 ====
yum repo-pkgs list
''list''の代わりに''install''や''remove''で一括操作が可能。
==== リポジトリの有効化/無効化 ====
RHEL8系から''dnf''で実行可能。
dnf config-manager --set-enabled
dnf config-manager --set-disabled
==== パッケージグループの一覧表示 ====
yum group list
''list''の代わりに''install ''や''remove ''で一括操作が可能。
==== 新しいバージョンがあるはずなのにパッケージが更新されない場合 ====
例えばセキュリティバグがフィックスされたバージョンがあるはずなのに、''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系 ====
[[https://docs.fedoraproject.org/en-US/epel/|EPEL]]
dnf config-manager --set-enabled powertools
dnf install epel-release.noarch
[[http://rpmfusion.org|RPM Fusion (free)]]
dnf install rpmfusion-free-release
[[https://elrepo.org/|ELRepo]]
dnf install elrepo-release.noarch
''centos-release-''系のリポジトリはCentOS 8.xのサポートが終了していることもあり、
インストールするとエラーが発生する場合がある。
==== 追加リポジトリ CentoS 7.x ====
[[https://wiki.centos.org/AdditionalResources/Repositories/SCL|The Software Collections ( SCL ) Repository]]
yum install centos-release-scl
[[https://fedoraproject.org/wiki/EPEL#What_packages_and_versions_are_available_in_EPEL.3F|EPEL]]
yum install epel-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[[https://ius.io/setup|IUS]]
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 ====
[[https://fedoraproject.org/wiki/EPEL#What_packages_and_versions_are_available_in_EPEL.3F|EPEL]]
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''。
[[https://ius.io/setup|IUS]]
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