このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】yumコマンドを使用可能にする(CentOS7)

 CentOS 7が2024年7月1日をもってEOL(End of Life)を迎えました。EOLとは、製品やソフトウェアの公式なサポートとメンテナンスが終了する時点を指します。これにより、CentOSコミュニティは、CentOS 7に関する一部のサービスを終了しました。具体的には、mirrorlist.centos.org のリポジトリが利用できなくなり、これに伴い、yum updateyum installといったコマンドが正常に動作しない状況となっています。

yumコマンドを使用可能にする作業(CentOS7)

以下の手順で、CentOS7におけるyumコマンドを再び使用可能にする方法を解説します。

1.rootユーザーに切り替えます。

・「su -」コマンドを実行します。

 このコマンドを使用してrootユーザーに切り替えます。yumコマンドはシステムのパッケージ管理を行うため、root権限が必要です。

[user01@localhost ~]$ su -
パスワード:
最終ログイン: 2024/02/24 (土) 14:46:46 JST日時 pts/0
[root@localhost ~]#

2.httpdパッケージをインストールしようと試みます。

・「yum install httpd」コマンドを実行します。

 このコマンドを実行すると、リポジトリにアクセスできないためエラーが発生し、httpdパッケージがインストールできません。これは、CentOS 7のEOLに伴い、リポジトリが利用不可となったためです。

「Is this ok [y/d/N]:」の問いには「y」と入力します。

[root@localhost ~]# yum install httpd
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
http://ftp.tsukuba.wide.ad.jp/Linux/centos/7.9.2009/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found

(省略)
================================================================================
 Package      アーキテクチャー
                            バージョン                     リポジトリー    容量
================================================================================
インストール中:
 httpd        x86_64        2.4.6-99.el7.centos.1          updates        2.7 M

トランザクションの要約
================================================================================
インストール  1 パッケージ

総ダウンロード容量: 2.7 M
インストール容量: 9.4 M
Is this ok [y/d/N]: y
Downloading packages:
(省略)

http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/7.9.2009/updates/x86_64/Packages/httpd-2.4.6-99.el7.centos.1.x86_64.rpm: [Errno 14] HTTP Error 404 - Not Found
他のミラーを試します。

Error downloading packages:
  httpd-2.4.6-99.el7.centos.1.x86_64: [Errno 256] No more mirrors to try

3.リポジトリ設定をバックアップします。

・「cp -ip /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak」コマンドを実行します。

 まず、現在のリポジトリ設定をバックアップしておきます。これにより、リポジトリ設定を書き換える際に元に戻すことができるようになります。

[root@localhost ~]# cp -ip /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

4.リポジトリ設定を書き換えます。

 インストールれれているエディタを用いてリポジトリ設定を書き換えます。ここでは、nanoエディタを使用します。viエディタを用いて書き換えてもよいでしょう。

nanoエディタを使用して、/etc/yum.repos.d/CentOS-Base.repoファイルを開きます。以下の内容にリポジトリ設定を書き換えます。

・「nano /etc/yum.repos.d/CentOS-Base.repo」コマンドを実行します。

[root@localhost ~]# nano /etc/yum.repos.d/CentOS-Base.repo

書き換える内容

nanoエディタの場合「Ctrl」+「k」キーでテキスト削除すると便利です。

# CentOS-Base.repo
#
# 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
baseurl=http://vault.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://vault.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://vault.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://vault.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

編集が完了したら、内容を保存してエディタを終了します。

 「Ctrl」+「x」キーで終了させる際に「Y(Yes)」で保存します。保存するファイル名が表示されますが、ここでは、Enterキーを押して終了させます。

5.yumのキャッシュをクリアします。

・「yum clean all」コマンドを実行します。

 yumのキャッシュをクリアし、次回のパッケージインストール時に新しいリポジトリ設定を使用できるようにします。

[root@localhost ~]# yum clean all
読み込んだプラグイン:fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
リポジトリーを清掃しています: base extras updates
Cleaning up list of fastest mirrors

6.httpdパッケージを再度インストールしようと試みます。

・「yum install httpd」コマンドを実行します。

 再度httpdパッケージをインストールします。今度はエラーが発生せず、パッケージのダウンロードとインストールが進行します。今回はインストールを行わないため、途中でnと入力してインストール作業を中断します。

[root@localhost ~]# yum install httpd
読み込んだプラグイン:fastestmirror, langpacks
Determining fastest mirrors
base                                                     | 3.6 kB     00:00     
extras                                                   | 2.9 kB     00:00     
updates                                                  | 2.9 kB     00:00     
(1/4): extras/7/x86_64/primary_db                          | 253 kB   00:00     
(2/4): base/7/x86_64/group_gz                              | 153 kB   00:00     
(3/4): base/7/x86_64/primary_db                            | 6.1 MB   00:00     
(4/4): updates/7/x86_64/primary_db                         |  27 MB   00:01     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd.x86_64 0:2.4.6-99.el7.centos.1 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package      アーキテクチャー
                            バージョン                     リポジトリー    容量
================================================================================
インストール中:
 httpd        x86_64        2.4.6-99.el7.centos.1          updates        2.7 M

トランザクションの要約
================================================================================
インストール  1 パッケージ

総ダウンロード容量: 2.7 M
インストール容量: 9.4 M
Is this ok [y/d/N]: n
Exiting on user command
Your transaction was saved, rerun it with:
 yum load-transaction /tmp/yum_save_tx.2024-08-12.15-10.IiIv08.yumtx

まとめ

 CentOS 7がEOLを迎えたことにより、従来のリポジトリが使用できなくなっていますが、vault.centos.orgを利用することで、引き続きyumコマンドを使用してパッケージのインストールやアップデートを行うことが可能です。リポジトリ設定の変更は慎重に行い、バックアップを取ってから進めることが重要です。