はじめに
CentOS7が2024/07/01からEOLとなった事に伴い、
CentOSコミュニティ上のいくつかのサービスが停止しました。
例として、 mirrorlist.centos.org のリポジトリが利用不能となりました。
そのため、既存のCentOS7のサーバで、yum update や yum install が利用できない状況になっています。
本記事では、使用できなくなったyumコマンドを再度利用可能に更新する方法を記載します。
目次
手順の概要
- リポジトリ設定のバックアップ
- リポジトリ設定の書き換え
- yumのキャッシュクリア
- パッケージ再更新
実行環境
CentOS 7
例として httpd パッケージを更新すると
yum update httpd
とした場合に
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Loaded plugins: changelog, fastestmirror, langpacks Determining fastest mirrors Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=genclo error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error" One of the configured repositories failed (Unknown), and yum doesn't have enough cached data to continue. At this point the only safe thing yum can do is fail. There are a few ways to work "fix" this: 1. Contact the upstream for the repository and get them to fix the problem. 2. Reconfigure the baseurl/etc. for the repository, to point to a working upstream. This is most often useful if you are using a newer distribution release than is supported by the repository (and the packages for the previous distribution release still work). 3. Run the command with the repository temporarily disabled yum --disablerepo=<repoid> ... 4. Disable the repository permanently, so yum won't use it by default. Yum will then just ignore the repository until you permanently enable it again or use --enablerepo for temporary usage: yum-config-manager --disable <repoid> or subscription-manager repos --disable=<repoid> 5. Configure the failing repository to be skipped, if it is unavailable. Note that yum will try to contact the repo. when it runs most commands, so will have to try and fail each time (and thus. yum will be be much slower). If it is a very temporary problem though, this is often a nice compromise: yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true Cannot find a valid baseurl for repo: base/7/x86_64 |
といったエラーがでる環境を今回対象とします。
手順
リポジトリ設定のバックアップ
cp -ip /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
(すでに存在する場合は別名で適宜保存してください)
リポジトリ設定の書き換え
vi /etc/yum.repos.d/CentOS-Base.repo
等のエディターで、既存内容をすべて消した上で、本内容に置換してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
[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 |
yumのキャッシュクリア
yum clean all
パッケージ再更新
先述の例の場合だと
yum update httpd
問題なく過去の更新を入手することができるようになったと思います。
まとめ
CentOS7を何らかの理由で継続利用する必要があるかもしれません。
ただ、セキュリティリスクを伴うため、可能であれば早い段階で現行のOS(RockyLinux9など)へ移行を検討いただくことをおすすめします。
投稿者プロフィール
-
2013年入社の平成生まれです。
初めて触ったコンピュータはPC9821でダイヤルアップでした。
その時に鯖落ちや人大杉の対応をしてくださる鯖缶になりたいと憧れ、
みなさんのお役に立てればと思っております!
#今では個人所有のパソコン・サーバだけで20台ほどあります…。
サーバー大好き!