CentOS Linux 8 から CentOS Stream 8 へ移行する

## 移行方法

公式サイトに CentOS Linux 8 から CentOS Stream 8 への移行用コマンドが載っている。

[CentOS Stream](https://www.centos.org/centos-stream/)

> root@centos-linux# dnf install centos-release-stream
> 
> root@centos-linux# dnf swap centos-{linux,stream}-repos
> 
> root@centos-linux# dnf distro-sync
> 
> root@centos-stream# cat /etc/centos-release
> CentOS Stream release 8

## CentOS Linux 8.3 から CentOS Stream 8 へ移行してみる

### 移行前の情報を確認

OS 情報を確認。
CentOS Linux 8.3 であることを確認できる。

```
$ cat /etc/centos-release
CentOS Linux release 8.3.2011

$ uname -mrsv
Linux 4.18.0-240.1.1.el8_3.x86_64 #1 SMP Thu Nov 19 17:20:08 UTC 2020 x86_64
```

パッケージリポジトリ情報を確認。
CentOS Linux 8 のパッケージリポジトリを参照しているのが確認できる。

```
$ dnf repolist
repo id                                   repo の名前
appstream                                 CentOS Linux 8 - AppStream
baseos                                    CentOS Linux 8 - BaseOS
extras                                    CentOS Linux 8 - Extras

$ ls -1 /etc/yum.repos.d/
CentOS-Linux-AppStream.repo
CentOS-Linux-BaseOS.repo
CentOS-Linux-ContinuousRelease.repo
CentOS-Linux-Debuginfo.repo
CentOS-Linux-Devel.repo
CentOS-Linux-Extras.repo
CentOS-Linux-FastTrack.repo
CentOS-Linux-HighAvailability.repo
CentOS-Linux-Media.repo
CentOS-Linux-Plus.repo
CentOS-Linux-PowerTools.repo
CentOS-Linux-Sources.repo
```

### 移行作業

CentOS Stream に移行するための centos-release-stream パッケージをインストールする。

```
$ sudo dnf install centos-release-stream
(中略)
インストール済み:
  centos-release-stream-8.1-1.1911.0.7.el8.x86_64                                                   

完了しました!
```

dnf swap コマンドでパッケージのリポジトリ情報を更新する。
不要なパッケージが削除され、CentOS Stream に必要なパッケージがインストールされる。

```
$ sudo dnf swap centos-{linux,stream}-repos
CentOS-Stream - AppStream                                           2.5 MB/s | 6.3 MB     00:02    
CentOS-Stream - Base                                                3.4 MB/s | 2.3 MB     00:00    
CentOS-Stream - Extras                                               11 kB/s | 7.0 kB     00:00    
依存関係が解決しました。
====================================================================================================
 パッケージ                      アーキテクチャー バージョン          リポジトリー            サイズ
====================================================================================================
インストール:
 centos-stream-release           noarch           8.4-1.el8           Stream-BaseOS            21 k
     置き換え  centos-linux-release.noarch 8.3-1.2011.el8
     置き換え  centos-release-stream.x86_64 8.1-1.1911.0.7.el8
 centos-stream-repos             noarch           8-2.el8             Stream-BaseOS            19 k
削除中:
 centos-linux-repos              noarch           8-2.el8             @BaseOS                  26 k

トランザクションの概要
====================================================================================================
インストール  2 パッケージ
削除          1 パッケージ
(中略)
インストール済み:
  centos-stream-release-8.4-1.el8.noarch             centos-stream-repos-8-2.el8.noarch

削除しました:
  centos-linux-repos-8-2.el8.noarch

完了しました!
```

dnf distro-sync コマンドでインストール済みのパッケージを更新する。
CentOS Stream で利用可能な最新バージョンのパッケージに更新される。

今回の環境では以下のようになった。

```
$ sudo dnf distro-sync
CentOS Stream 8 - AppStream                                         5.1 MB/s | 6.3 MB     00:01    
CentOS Stream 8 - BaseOS                                            2.5 MB/s | 2.3 MB     00:00    
CentOS Stream 8 - Extras                                            943  B/s | 7.0 kB     00:07    
依存関係が解決しました。
(中略)
インストール      7 パッケージ
アップグレード  208 パッケージ
削除              4 パッケージ
ダウングレード    5 パッケージ
(中略)
完了しました!
```

### 移行後の情報を確認

OS 情報を確認。
CentOS Stream 8 になっているのを確認できる。

```
$ cat /etc/centos-release
CentOS Stream release 8

$ uname -mrsv
Linux 4.18.0-240.1.1.el8_3.x86_64 #1 SMP Thu Nov 19 17:20:08 UTC 2020 x86_64
```

パッケージリポジトリ情報を確認。
CentOS Stream のパッケージリポジトリを参照しているのが確認できる。

```
$ dnf repolist
repo id                                  repo の名前
appstream                                CentOS Stream 8 - AppStream
baseos                                   CentOS Stream 8 - BaseOS
extras                                   CentOS Stream 8 - Extras

$ ls -1 /etc/yum.repos.d/
CentOS-Stream-AppStream.repo
CentOS-Stream-BaseOS.repo
CentOS-Stream-Debuginfo.repo
CentOS-Stream-Extras.repo
CentOS-Stream-HighAvailability.repo
CentOS-Stream-Media.repo
CentOS-Stream-PowerTools.repo
CentOS-Stream-RealTime.repo
```

OS を再起動すると、 Linux カーネルのバージョンが更新されていることを確認できる。

```
$ sudo reboot
```

```
$ uname -mrsv
Linux 4.18.0-257.el8.x86_64 #1 SMP Thu Dec 3 22:16:23 UTC 2020 x86_64
```

## 参考資料

- [CentOS Stream](https://www.centos.org/centos-stream/)
- [Fedora/CentOS Stream/CentOS/RHELの関係性 \- 赤帽エンジニアブログ](https://rheb.hatenablog.com/entry/202007-fedora-distribution)
- [centos\-release\-stream\-8\.1\-1\.1911\.0\.7\.el8\.x86\_64\.rpm CentOS 8 Download](https://centos.pkgs.org/8/centos-extras-x86_64/centos-release-stream-8.1-1.1911.0.7.el8.x86_64.rpm.html)