yum

基本的な使い方

パッケージをインストールする

yum install package-name

インストール済みのパッケージに更新があるか確認する

yum check-update
yum list updates

パッケージを更新する

yum update package-name

パッケージを削除する

yum remove package-name

基本設定

詳細は man yum.confを参照すること

proxyを設定する

# vi /etc/yum.conf
proxy=http://proxy:8080

タイムアウトしてしまう場合、タイムアウトを追加する

# /etc/yum.conf
timeout=60

情報の表示

インストール済みのパッケージ表示

$ yum list all
$ yum list vim/*
$ yum list installed

アップデート可能なパッケージ表示

$ yum list updates

利用可能なパッケージ表示

$ yum list available
$ yum list available | grep mysql

パッケージ情報表示

$ yum info PACKAGE_NAME

依存関係を確認する

# pythonが依存するパッケージを表示
yum deplist python
# pythonに依存するパッケージを表示 
rpm -q --whatrequires <パッケージA>

パッケージ操作関連

リポジトリ更新の確認

$ yum check-update

パッケージ更新

$ yum update package-name
$ yum update
$ yum upgrade

yum upgradeyum update --obsoletes と同じ 古いパッケージを削除しつつupdateしてくれる

CentOSでは、/etc/yum.confにobsoletes=1と書いてあるため、デフォルトで--obsoletesが有効の状態 よって、yum updateyum upgradeも変わらない

セキュリティ更新のみをアップデート

$ yum --security check-update
$ yum --security update

リポジトリの清掃

$ yum clearn all

パッケージの削除

$ yum remove package-name

エラー対処

AWS のRedhatEnterpriseLinuxでエラーが出てしまう yumを実行すると以下のエラーになる

This system is not registered with an entitlement server

EC2の RHEL AMII には基本サブスクリプションが含まれるため、subscription-managerを有効にする必要はない。エラーが目障りという場合は設定を変更するだけでいい [参考] https://dev.classmethod.jp/articles/tsnote-ec2-dnf-upgrade-error-001/

sudo vi /etc/yum/pluginconf.d/subscription-manager.conf
(変更前)enabled=1
(変更後)enabled=0

リポジトリの管理

登録済みリポジトリ一覧

$ yum repolist [ all | enabled | disabled ] -v

リポジトリの有効/無効を切り替える

vi /etc/yum.repos.d/*.repo

[...]
enabled=1 (無効)
$ yum-config-manager --disable nodesource
$ yum-config-manager --enable nodesource

yum コマンド実行時に一時的にリポジトリを有効化、無効化する

$ yum --enablerepo=リポジトリID search,install,update等のコマンド ・・・
$ yum --disablerepo=リポジトリID search,install,update等のコマンド ・・・

ソフトウェアコレクションのリポジトリ登録

[参考] https://stupiddog.jp/note/archives/1074

$ yum install centos-release-scl-rh

より新しいバージョンをインストールするためのリポジトリ

[参考] https://dev.classmethod.jp/articles/how-to-install-newer-packages-from-rhel-centos-with-appstream-rhscl-epel-ius/

  • AppStream (CentOS8, RedHat8)
  • Red Hat Software Collection (RHEL6以降)
  • EPEL
  • IUS

AppStream RHEL リリース5年目まで最新バージョンが提供され、それ以降は特定のストリームだけがサポート対象になる。

Red Hat Software Collections 同じバージョンが10年間サポートされる

EPEL Fedoraに含まれているパッケージを利用できる RHEL同等のサポート、CVEを受けられるわけではない。

$ sudo yum install epel-release

IUS(Inline with Upstream Stable) 標準パッケージより新しいパッケージが利用できる。

$ sudo yum install https://repo.ius.io/ius-release-el7.rpm \ https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

その他エラー対処

remi GPG 関連のエラー

エラー内容

Failed to download metadata for repo 'remi-modular': repomd.xml GPG signature verification error: gpgme_engine_check_version() error: Invalid crypto engine

remi、epelのパッケージを再インストールしてみる remiのパッケージはインストール対象によってURLが変化するので都度確認すること