CentOS 8 から CentOS Stream 8 へ移行した

前々からCentOS8はサポートを終了するという話は知っていたのですが
CentOS Stream 8へ移行するのをすっかり忘れていて
簡単に移行できなかったので備忘録

アップデートすらできない

昨年末でサポートが終了してしまいそのままではアップデートすらできない状況になっていました.

1
2
$ sudo dnf update
Error: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

公式サイトによると
以下のコマンドで移行することができるということですが前述の通り,リポジトリが無効なので
エラーを吐いて終了していまします.

1
2
$ sudo dnf --disablerepo '*' --enablerepo extras swap centos-linux-repos centos-stream-repos
$ sudo dnf distro-sync

リポジトリの変更

このままではどうしようもないのでとりあえずリポジトリを古いスナップショットに切り替えてその場をしのぎます.
私の環境のバージョンは8.2.2004なのでそれに合わせて設定します.
(古いですね…)

1
2
$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)

編集するファイルは以下の3つです.

  • /etc/yum.repos.d/CentOS-AppStream.repo
  • /etc/yum.repos.d/CentOS-Base.repo
  • /etc/yum.repos.d/CentOS-Extras.repo

CentOS-AppStream.repoは以下のような内容ですが,mirrorlistをコメントアウトし別途baseurlを足します.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# CentOS-AppStream.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.
#
#

[AppStream]
name=CentOS-$releasever - AppStream
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream&infra=$infra
#baseurl=http://mirror.centos.org/$contentdir/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

スナップショットは https://vault.centos.org/ のサイトにあるのでドメイン名を切り替えてバージョンも適切な値に切り替えます.

1
2
3
4
5
6
7
8
[AppStream]
name=CentOS-$releasever - AppStream
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream&infra=$infra
#baseurl=http://mirror.centos.org/$contentdir/$releasever/AppStream/$basearch/os/
baseurl=http://vault.centos.org/$contentdir/8.2.2004/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

それを他のCentOS-Base.repoとCentOS-Extras.repoにも適用します.
これでリポジトリの変更は完了です.

それではアップデート

一応クリアしておいて,あとはアップデートをかけて前述のコマンドを実行することで CentOS Stream 8 へ移行は完了するはずです.

1
2
3
4
$ sudo dnf clean all
$ sudo dnf -y update
$ sudo dnf --disablerepo '*' --enablerepo extras swap centos-linux-repos centos-stream-repos
$ sudo dnf distro-sync

しかしうまく動いてくれなかったのでCentOS8からCentOS Stream8への移行手順を参考にアップデートしました.

1
2
3
$ sudo dnf -y install centos-release-stream
$ sudo dnf -y swap centos-{linux,stream}-repos
$ sudo dnf -y distro-sync
1
2
$ cat /etc/redhat-release
CentOS Stream release 8

まとめ

事前に移行しておかないと手順が増えて面倒であることを理解しました…
リポジトリの変更をすることで旧来のバージョンでも使用することはできるので
うまく使い移行することができました.

関連記事