AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

CentOS7 (RHEL7 系ディストリ) の延命

といってもエンタープライズサポートを OSS 同等環境でやる、とかでないです。

単純に archive 扱いの vault リポジトリを利用するようにする事で、移行の時間を稼ぐ、みたいなやつです。

CentOS のバージョン

redhat-release で確認できる。

[user@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

今回は 7.9.2009 の Vault リポジトリを参照する。

Vault リポジトリを利用する

  1. Base リポジトリ参照を無効化する
  2. Vault リポジトリ参照を有効化する

この手順で作業を行う。

Base リポジトリ参照を無効化する

戻ることは無いだろうけど、カスタムリポジトリとか作るかもしれないので、既存ファイルのバックアップを行う。

[user@localhost ~]$ sudo cp -p /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

次に参照無効化を行う。

[user@localhost ~]$ sudo vi /etc/yum.repos.d/CentOS-Base.repo

各ブロックに enabled=0 を追加する。

centosplus なんかはもともと enabled=0 指定が入っているので、特定のパッケージを利用しているとかじゃなければ有効化されていないと思われる。

# 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
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0 #追加

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0 #追加

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0 #追加

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

Vault リポジトリ参照を有効化する

無効にした Base リポジトリの代わりに Vault リポジトリを有効化する。

今回は事前に調べた通り、バージョンが 7.9.2009 のため、既存の CentOS-Vault.repo に参照記述が含まれていなかった。

そのため、文末に以下の内容で追記する。

[user@localhost ~]$ sudo vi /etc/yum.repos.d/CentOS-Vault.repo
# CentOS Vault contains rpms from older releases in the CentOS-7
# tree.

# C7.0.1406

...

# [C7.8.2003-fasttrack]

...

# ここから追記
# C7.9.2009
[C7.9.2009-base]
name=CentOS-7.9.2009 - Base
baseurl=http://vault.centos.org/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

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

[C7.9.2009-extras]
name=CentOS-7.9.2009 - Extras
baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

[C7.9.2009-centosplus]
name=CentOS-7.9.2009 - CentOSPlus
baseurl=http://vault.centos.org/7.9.2009/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0

[C7.9.2009-fasttrack]
name=CentOS-7.9.2009 - Fasttrack
baseurl=http://vault.centos.org/7.9.2009/fasttrack/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0

yum キャッシュの削除

リポジトリ参照情報を変更時に、yum のキャッシュが残っているとエラーになったり、「動いているけどなんか返ってくる内容がおかしい……」、みたいな事になりがちなので、一度キャッシュファイルだけ削除しておく。

[user@localhost ~]$ sudo yum clean all

読み込んだプラグイン:fastestmirror
リポジトリーを清掃しています: C7.9.2009-base C7.9.2009-extras C7.9.2009-updates epel mysql-connectors-community mysql-tools-community
                            : mysql80-community nodesource yarn

リポジトリと疎通できるか確認

yum repolist コマンドを使うことでリポジトリ一覧を出力できます。

この際、有効化されたリポジトリと通信を行って利用できるかのチェックもされているので、このコマンドでエラーが出なければ大丈夫です。 試してみましょう。

[user@localhost ~]$ sudo yum repolist

...

リポジトリー ID                                             リポジトリー名                                                              状態
C7.9.2009-base/x86_64                                       CentOS-7.9.2009 - Base                                                      10,072
C7.9.2009-extras/x86_64                                     CentOS-7.9.2009 - Extras                                                       526
C7.9.2009-updates/x86_64                                    CentOS-7.9.2009 - Updates                                                    6,173
epel/x86_64                                                 Extra Packages for Enterprise Linux 7 - x86_64                              13,791
mysql-connectors-community/x86_64                           MySQL Connectors Community                                                     258
mysql-tools-community/x86_64                                MySQL Tools Community                                                          108
mysql80-community/x86_64                                    MySQL 8.0 Community Server                                                     503
nodesource/x86_64                                           Node.js Packages for Enterprise Linux 7 - x86_64                               136
yarn                                                        Yarn Repository                                                                 57
repolist: 31,624

僕の環境だと、有効化していた EPEL がエラーを吐いてましたが、Vault 参照に変更した CentOS-7.9.2009 リポジトリ各種の状態 (Status) 列が 0 ではないので、ちゃんと通信できています。

以上です、お疲れ様でした。 なるべく早く環境移行しましょうね。

参考

blog.goo.ne.jp

www.miraclelinux.com

shobon.hatenablog.com