====== 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