dnf/yumにEPELリポジトリを追加する Rocky Linux 8, 9/CentOS 7

Rocky Linux・CentOS標準のdnf/yumリポジトリに加えて豊富なパッケージを利用できるEPELリポジトリを追加する方法を説明します。

Rocky Linux 8の場合

Rocky Linux 8の場合は、EPELパッケージによっては依存するものがあるため、powertoolsリポジトリを有効にしておくことが推奨されています。

# dnf config-manager --set-enabled powertools
# dnf install epel-release

以前のバージョンではリポジトリ名としてPowerToolsを指定する必要があります。

Error: No matching repo to modify: powertools
# dnf config-manager --set-enabled PowerTools

Rocky Linux 9の場合

Rocky Linux 9の場合は、crbリポジトリ(CodeReady Builderリポジトリ)を有効にしておくことが推奨されています。

# dnf config-manager --set-enabled crb
# dnf install epel-release

CentOS 7の場合

# yum install epel-release

yumのアップデートがうまくいかない場合にキャッシュをクリア

途中でyumのアップデートが途中で中断してしまったなどで、リポジトリがおかしくなり再度アップデートしようとしてもうまくいかないときはyumが保存しているキャッシュをyum clean allで削除するとよい。

# yum clean all
# yum update

yumが遅い場合にダウンロードを速くするyum-fastestmirror

CentOSでyum updateを実行すると、100を超えるパッケージをアップデートする場合があります、そんなときに遅いミラーサイトが選択されてしまうと、すごくパッケージのダウンロードだけでかなりの時間がかかってしまいます。

そこで、yumのプラグインをインストールしてダウンロードの速いミラーサイトを自動で選択するように設定します。


追記:

最近のCentOSではデフォルトでyum-fastestmirrorプラグインが有効になっていますが、それでも海外のミラーサイトが選択されてしまって、ダウンロードが遅くなることがあります。そこで、優先したいミラーサイトを設定します。fastestmirror.confpreferパラメータの設定を追加します。

ここでは、JAIST(北陸先端科学技術大学院大学)のミラーを指定しています。

vi /etc/yum/pluginconf.d/fastestmirror.conf
--------------------------------------------
prefer=ftp.jaist.ac.jp
--------------------------------------------

理化学研究所(理研)のミラーを指定する場合は下記の通りです。

prefer=ftp.riken.jp

その他、お気に入りのミラーサイトを設定するとよいです。

設定してもミラーサイトが変わらない場合はyum clean pluginsでキャッシュされている情報の削除してみて下さい。

# yum search wget
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.nus.edu.sg
* extras: mirror.nus.edu.sg
* updates: mirror.nus.edu.sg
# yum clean plugins
Loaded plugins: fastestmirror, security
Cleaning repos: base epel extras updates
Cleaning up list of fastest mirrors
# yum search wget
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: ftp.jaist.ac.jp
* extras: ftp.jaist.ac.jp
* updates: ftp.jaist.ac.jp

また、verboseを1に設定してyumを実行すると各ミラーサーバの接続速度が表示されます。

vi /etc/yum/pluginconf.d/fastestmirror.conf
--------------------------------------------
#verbose=0
verbose=1
--------------------------------------------

参考記事: ftp-adminの憂鬱: yumで速いミラーサーバーを指定する方法


プラグイン自体もyumでインストール
CentOS4.4の場合は

yum -y install yum-plugin-fastestmirror

あとは/etc/yum.confに一行追加します。

plugins=1

CentOS5の場合は

yum -y install yum-fastestmirror

plugins=1はすでに記述されているので必要ありません。

これでyumを利用するときに自動でスピードの速いミラーを利用してくれるようになります。

Determining fastest mirrors
Loading mirror speeds from cached hostfile

yumのダウンロード、更新が遅いときには ダウンロードサイトの変更

yumが遅い場合にダウンロードを速くするyum-fastestmirror
追記:以下の方法では手間がかかるので上記記事をおすすめします。

yumのupdateなどでRPMパッケージをダウンロードする際
CentOSのデフォルトではミラーサイトのリストが指定されていて
必ずしも早いとは限らない。

今は遅かったのに、次のアップデートが一瞬で終わるということがある。

CentOSのサーバを構築した後にはかならずupdateをかけるので100を超える
パッケージをダウンロードするとなるとサーバのレスポンスが重要になってくる。

そこで、デフォルトではなく理研のミラーを利用するようにyumの設定を変更する。

具体的には各リポジトリでmirrorlistをコメントアウトして、理研のサイトをbaseurlに記述していく。
あとは、osのところがupdates,addonsなどに変化するだけ。

これでMB単位のダウンロードもスムーズになります。

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/os/$basearch/
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
vi /etc/yum.repos.d/CentOS-Base.repo
---------------------------------------------------------------------------------
# CentOS-Base.repo
#
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/os/$basearch/
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1
#released updates
[update]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/updates/$basearch/
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1
#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/addons/$basearch/
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/centosplus/$basearch/
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=2
protect=1
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/contrib/$basearch/
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=2
protect=1
[dag]
name=Dag RPM Repository for Redhat EL4
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
---------------------------------------------------------------------------------

yumでkernelを自動更新されるのを防ぐ方法

CentOSでパッケージのアップデートかけようとしてyum updateを実行したところ
カーネルを自動更新されてしまい、次回の起動時にkernel panicが発生するなど不具合が生じる場合。

つまり、自動的にカーネルが更新されては困る場合には/etc/sysconfig/kernelのUPDATEDEFAULTをnoにするとよい。

vi /etc/sysconfig/kernel
------------------------------------------
#UPDATEDEFAULT=yes
UPDATEDEFAULT=no
------------------------------------------