2020-12-14

CentOS から CentOS Stream へ移行してみた

米国時間 12 月 8 日、CentOS プロジェクトは今後、現在の RHEL リリースより先行する内容の CentOS Stream へ活動を移し、Red Hat Enterprise Linux 8 (RHEL 8) のリビルドとしての CentOS Linux 8 は、2021 年末に終了するというアナウンスをしました

このアナウンスに対し、批判的な意見を目にしますが、そもそも CentOS Stream とは何なのか、ということが判っていません。サイバートラスト社 Miracle Linux のサイトに CentOS Stream について丁寧な解説がありましたので、サイトのリンクを紹介します。

長く安定して Linux のサーバー環境を維持したい場合、10 年間のサポートが保証されている RHEL は、企業にとって魅力的な選択肢です。RHEL のオープンソース部分をリビルドした CentOS は、RHEL と同じ品質を期待でき、リリース時期は遅れるものの、セキュリティアップデートもサブスクリプション費用無しに受けることができます。しかも、Red Hat 社は RHEL クローンである CentOS プロジェクトの活動を支援するスポンサー企業なのです。

自分がもしも(IBM 傘下の)Red Hat 社の株主であれば、こんな利益相反するビジネスモデルに文句を言うことでしょう。

CentOS Stream

昨年アナウンスされた CentOS Stream [3] ですが、興味が無くて触ったこともありませんでした。まずはどんなものか使ってみるべしと考え、CentOS-Stream-8-x86_64-20201210-dvd1.iso をダウンロードして GNOME Box の仮想環境にインストールしてみました。

CentOS Stream のデスクトップ画面

インストールの方法やデスクトップの見映えは、従来の CentOS との違いが判りません。

カーネルと Python のバージョンの違いを見てみました。[2020-12-13 時点]

まずは、家庭内 LAN に常時稼働させている PC にインストールしている現行の CentOS 8.3 の場合です。

CentOS 8.3.2011 の場合

次は、仮想環境上の CentOS Stream の場合です。

CentOS Stream 8 (20201210) の場合

バージョン差は僅差です。バージョン差は僅かとは言え、企業の本番環境でもしも CentOS を使っているとすれば問題になるでしょうが、自分の環境では大きな問題は無さそうです。

ちなみに、RHEL に将来取り込まれる等、検証目的の位置づけの Fedora で同じように確認すると、バージョンに大きな開きがあることを確認できます。

Fedora 33 の場合

CentOS から CentOS Stream へ移行

自分の場合、ミッションクリティカルな用途に CentOS を使用しているわけではありません。ですので CentOS プロジェクトの方針変更を嘆くよりも早々に CentOS Stream に移行してみて問題点を探した方が良さそうです。

CentOS から CentOS Stream へ移行は、リポジトリの変更だけで良さそうです。CentOS Stream のダウンロードサイトに以下のように移行の手順が示されていました [4]

  1. dnf install centos-release-stream
  2. dnf swap centos-{linux,stream}-repos
  3. dnf distro-sync

実際にやってみました。

[bitwalk@centos-pc ~]$ sudo dnf install centos-release-stream
[sudo] bitwalk のパスワード:
メタデータの期限切れの最終確認: 2:49:01 時間前の 2020年12月13日 18時36分15秒 に実施しました。
依存関係が解決しました。
========================================================================================================================
 パッケージ                          アーキテクチャー     バージョン                         リポジトリー         サイズ
========================================================================================================================
インストール:
 centos-release-stream               x86_64               8.1-1.1911.0.7.el8                 extras                11 k

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

ダウンロードサイズの合計: 11 k
インストール済みのサイズ: 6.6 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
centos-release-stream-8.1-1.1911.0.7.el8.x86_64.rpm                                     198 kB/s |  11 kB     00:00
------------------------------------------------------------------------------------------------------------------------
合計                                                                                     18 kB/s |  11 kB     00:00
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                1/1
  インストール     : centos-release-stream-8.1-1.1911.0.7.el8.x86_64                                                1/1
  検証             : centos-release-stream-8.1-1.1911.0.7.el8.x86_64                                                1/1
Installed products updated.

インストール済み:
  centos-release-stream-8.1-1.1911.0.7.el8.x86_64

完了しました!
[bitwalk@centos-pc ~]$ sudo dnf swap centos-{linux,stream}-repos
CentOS-Stream - AppStream                                                               3.1 MB/s | 6.3 MB     00:02
CentOS-Stream - Base                                                                    610 kB/s | 2.3 MB     00:03
CentOS-Stream - Extras                                                                   15 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 パッケージ

ダウンロードサイズの合計: 40 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/2): centos-stream-release-8.4-1.el8.noarch.rpm                                       265 kB/s |  21 kB     00:00
(2/2): centos-stream-repos-8-2.el8.noarch.rpm                                           199 kB/s |  19 kB     00:00
------------------------------------------------------------------------------------------------------------------------
合計                                                                                     61 kB/s |  40 kB     00:00
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                1/1
  scriptletの実行中: centos-stream-repos-8-2.el8.noarch                                                             1/1
  インストール     : centos-stream-repos-8-2.el8.noarch                                                             1/5
  インストール     : centos-stream-release-8.4-1.el8.noarch                                                         2/5
  廃止             : centos-release-stream-8.1-1.1911.0.7.el8.x86_64                                                3/5
  廃止             : centos-linux-release-8.3-1.2011.el8.noarch                                                     4/5
  削除             : centos-linux-repos-8-2.el8.noarch                                                              5/5
  scriptletの実行中: centos-linux-repos-8-2.el8.noarch                                                              5/5
  検証             : centos-stream-release-8.4-1.el8.noarch                                                         1/5
  検証             : centos-linux-release-8.3-1.2011.el8.noarch                                                     2/5
  検証             : centos-release-stream-8.1-1.1911.0.7.el8.x86_64                                                3/5
  検証             : centos-stream-repos-8-2.el8.noarch                                                             4/5
  検証             : centos-linux-repos-8-2.el8.noarch                                                              5/5
Installed products updated.

インストール済み:
  centos-stream-release-8.4-1.el8.noarch                       centos-stream-repos-8-2.el8.noarch

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

完了しました!
[bitwalk@centos-pc ~]$ sudo dnf distro-sync
CentOS Stream 8 - AppStream                                                             2.9 MB/s | 6.3 MB     00:02
CentOS Stream 8 - BaseOS                                                                2.2 MB/s | 2.3 MB     00:01
CentOS Stream 8 - Extras                                                                5.1 kB/s | 7.0 kB     00:01
エラー:
 問題 1: package openblas-devel-0.3.3-5.el8.x86_64 requires openblas(x86-64) = 0.3.3-5.el8, but none of the providers can be installed
  - openblas-0.3.3-5.el8.x86_64 does not belong to a distupgrade repository
  - problem with installed package openblas-devel-0.3.3-5.el8.x86_64
 問題 2: package R-core-devel-4.0.3-1.el8.x86_64 requires openblas-devel, but none of the providers can be installed
  - package openblas-devel-0.3.3-5.el8.x86_64 requires openblas-threads(x86-64) = 0.3.3-5.el8, but none of the providers can be installed
  - cannot install the best update candidate for package R-core-devel-4.0.3-1.el8.x86_64
  - openblas-threads-0.3.3-5.el8.x86_64 does not belong to a distupgrade repository
 問題 3: problem with installed package R-core-devel-4.0.3-1.el8.x86_64
  - package R-core-devel-4.0.3-1.el8.x86_64 requires openblas-devel, but none of the providers can be installed
  - package openblas-devel-0.3.3-5.el8.x86_64 requires openblas(x86-64) = 0.3.3-5.el8, but none of the providers can be installed
  - cannot install both openblas-0.3.12-1.el8.x86_64 and openblas-0.3.3-5.el8.x86_64
  - cannot install the best update candidate for package openblas-0.3.3-5.el8.x86_64
(競合するパッケージを置き換えるには、コマンドラインに '--allowerasing' を追加してみてください または、'--skip-broken' を追加して、インストール不可のパッケージをスキップしてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)
[bitwalk@centos-pc ~]$ sudo dnf distro-sync --allowerasing
メタデータの期限切れの最終確認: 0:00:42 時間前の 2020年12月13日 21時27分05秒 に実施しました。
依存関係が解決しました。
========================================================================================================================
 パッケージ                                 Arch   バージョン                                         Repo        サイズ
========================================================================================================================
インストール:
 kernel                                     x86_64 4.18.0-257.el8                                     baseos      4.9 M
 kernel-core                                x86_64 4.18.0-257.el8                                     baseos       31 M
...
(途中省略)
...

完了しました!
[bitwalk@centos-pc ~]$ sudo reboot
[sudo] bitwalk のパスワード:

無事再起動できたので、OS のバージョンを確認しました。

[bitwalk@centos-pc ~]$ lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOSStream
Description:    CentOS Stream release 8
Release:        8
Codename:       n/a
[bitwalk@centos-pc ~]$

念のため、dnf のキャッシュをクリアしてアップデートしました。

[bitwalk@centos-pc ~]$ sudo dnf clean all
[sudo] bitwalk のパスワード:
Librepo version: 1.12.0 with CURL_GLOBAL_ACK_EINTR support (libcurl/7.61.1 OpenSSL/1.1.1g zlib/1.2.11 brotli/1.0.6 libidn2/2.2.0 libpsl/0.20.2 (+libidn2/2.2.0) libssh/0.9.4/openssl/zlib nghttp2/1.33.0)
128 ファイルが削除されました
[bitwalk@centos-pc ~]$ sudo dnf update
Librepo version: 1.12.0 with CURL_GLOBAL_ACK_EINTR support (libcurl/7.61.1 OpenSSL/1.1.1g zlib/1.2.11 brotli/1.0.6 libidn2/2.2.0 libpsl/0.20.2 (+libidn2/2.2.0) libssh/0.9.4/openssl/zlib nghttp2/1.33.0)
Downloading: http://mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=AppStream&infra=stock
Downloading: http://ftp.jaist.ac.jp/pub/Linux/CentOS/8-stream/AppStream/x86_64/os/repodata/repomd.xml0  B     --:-- ETA
Downloading: http://ftp.jaist.ac.jp/pub/Linux/CentOS/8-stream/AppStream/x86_64/os/repodata/8273351f88060971c41b3311d6639ef213ee39738fc06df2bd5da1e1c6f80f38-primary.xml.gz
Downloading: http://ftp.jaist.ac.jp/pub/Linux/CentOS/8-stream/AppStream/x86_64/os/repodata/fc19982f7d58ac10901057d3a3107b8ec2a862484b6fa265097aa0bffc003e89-filelists.xml.gz
Downloading: http://ftp.jaist.ac.jp/pub/Linux/CentOS/8-stream/AppStream/x86_64/os/repodata/7b3e68b8ce7cbaf431e311014e097b99390465ce660eebdf3bd469524aea8059-comps-AppStream.x86_64.xml.xz
Downloading: http://ftp.jaist.ac.jp/pub/Linux/CentOS/8-stream/AppStream/x86_64/os/repodata/ee943ff8df8ef794d546f4512e51092a0600aba19a57170bc1866be8639d86b0-modules.yaml.gz
CentOS Stream 8 - AppStream                                                             3.1 MB/s | 6.3 MB     00:02
Downloading: http://mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=BaseOS&infra=stock
Downloading: http://ftp.jaist.ac.jp/pub/Linux/CentOS/8-stream/BaseOS/x86_64/os/repodata/repomd.xml 653  B     00:00 ETA
Downloading: http://ftp.jaist.ac.jp/pub/Linux/CentOS/8-stream/BaseOS/x86_64/os/repodata/791eafa551462b5d8c607bca5b2f84fa197f9ed0d54c9d1337c912f50ff262bb-primary.xml.gz
Downloading: http://ftp.jaist.ac.jp/pub/Linux/CentOS/8-stream/BaseOS/x86_64/os/repodata/8e01da4e448455967e624cee6a166892a084272955b0017c73ff53518b8f54a4-filelists.xml.gz
Downloading: http://ftp.jaist.ac.jp/pub/Linux/CentOS/8-stream/BaseOS/x86_64/os/repodata/6cd252c469b0dd0c67bc8d8b4ab2df44fb24de52c93decdfe7acc77b97361490-comps-BaseOS.x86_64.xml.xz
CentOS Stream 8 - BaseOS                                                                1.5 MB/s | 2.3 MB     00:01
Downloading: http://mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=extras&infra=stock
Downloading: http://ftp.jaist.ac.jp/pub/Linux/CentOS/8-stream/extras/x86_64/os/repodata/repomd.xml 682  B     00:00 ETA
Downloading: http://ftp.jaist.ac.jp/pub/Linux/CentOS/8-stream/extras/x86_64/os/repodata/5a57a31bcc93440037fc10dbea5d51cb44bd1d06ac7a9f23fbc7083616d8e0dd-primary.xml.gz
Downloading: http://ftp.jaist.ac.jp/pub/Linux/CentOS/8-stream/extras/x86_64/os/repodata/7b3e6411745b658b6732f5c21cc2e7ce27eb633939dfe384521c743b31c4b49c-filelists.xml.gz
CentOS Stream 8 - Extras                                                                 13 kB/s | 7.0 kB     00:00
Downloading: https://mirrors.fedoraproject.org/metalink?repo=epel-modular-8&arch=x86_64&infra=stock&content=centos
Downloading: https://nrt.edge.kernel.org/fedora-buffet/epel/8/Modular/x86_64/repodata/repomd.xml |   0  B     --:-- ETA
Downloading: https://nrt.edge.kernel.org/fedora-buffet/epel/8/Modular/x86_64/repodata/6e76b07470add4d980ab55e489c19a8711c0a21c85aa87ce7118bf6df2973bd8-primary.xml.gz
Downloading: https://nrt.edge.kernel.org/fedora-buffet/epel/8/Modular/x86_64/repodata/473a9a62ed983fdf7fda72f715935fd193016dd2f7953a43e2f3e1e8fcb0ea67-filelists.xml.gz
Downloading: https://nrt.edge.kernel.org/fedora-buffet/epel/8/Modular/x86_64/repodata/3baaf05dd0949527e5a5ab10b2026fe0d4d05e94e2c3701a49252b2b4815e1d8-modules.yaml.gz
Downloading: https://nrt.edge.kernel.org/fedora-buffet/epel/8/Modular/x86_64/repodata/63f80214622af65fbeb921ddca0117d62b119a0550f4acfe041350e531a01fc1-updateinfo.xml.xz
Extra Packages for Enterprise Linux Modular 8 - x86_64                                   51 kB/s |  98 kB     00:01
Downloading: https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=x86_64&infra=stock&content=centos
Downloading: http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/8/Everything/x86_64/repodata/repomd.xml|   0  B     --:-- ETA
Downloading: http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/8/Everything/x86_64/repodata/a9cd8adabc3a27074b6943e8ff135b88a4f328a5d1f97d67a8dac0aa55ed982c-primary.xml.gz
Downloading: http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/8/Everything/x86_64/repodata/270edbc44df4e1c9ed73474ed11013a9a02c7c2d9cee8463ce05d6198410f202-filelists.xml.gz
Downloading: http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/8/Everything/x86_64/repodata/7566a18455054e4ce6b28bda7c181f66dd9958ed35c66f2b23612fa1f1f5c591-comps-Everything.x86_64.xml
Downloading: http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/8/Everything/x86_64/repodata/59d78238032d40e2b597ea095a233d32b1567f41b68df9283c800efbeda0f4f9-prestodelta.xml.xz
Downloading: http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/8/Everything/x86_64/repodata/504b1498b49178122c9e6a14df5fd67ed4485bfe34829325bd43be72401231ac-updateinfo.xml.bz2
Extra Packages for Enterprise Linux 8 - x86_64                                          2.7 MB/s | 8.6 MB     00:03
Downloading: http://nginx.org/packages/centos/8/x86_64/repodata/repomd.xml
Downloading: http://nginx.org/packages/centos/8/x86_64/repodata/82631ea743cf7be308771aea604ab9360f5a22a353dd41cd4aa821cf5e304e3b-filelists.xml.gz
Downloading: http://nginx.org/packages/centos/8/x86_64/repodata/e40dce1fd90b0b014306eaa53afd5f17ef7d45e54528381c2def57d24c92aa64-primary.xml.gz
nginx stable repo                                                                        17 kB/s |  20 kB     00:01
Downloading: http://nginx.org/packages/mainline/centos/8/x86_64/repodata/repomd.xml
Downloading: http://nginx.org/packages/mainline/centos/8/x86_64/repodata/4509e3991602149526026152838e6c463449526c1d6fdc9cf5f98e1299040d9f-filelists.xml.gz
Downloading: http://nginx.org/packages/mainline/centos/8/x86_64/repodata/23af08fb357a75663c94e659b3106e16c03fd9fcbacd1c6f4d501d8cccabb3a7-primary.xml.gz
nginx mainline repo                                                                      41 kB/s |  55 kB     00:01
Downloading: https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-8-x86_64/repodata/repomd.xml
Downloading: https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-8-x86_64/repodata/1bc62ad12586b7135b7169eeed072ff133ff9c56a42901703cc4d0aeb10fbfd9-primary.xml.gz
Downloading: https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-8-x86_64/repodata/cfd77272bca3f2c95961f22011199c11cf499bcff424ae172de6e1b3ec5acf6f-filelists.xml.gz
Downloading: https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-8-x86_64/repodata/2b45eeae9901ca2f9d7b11d1ffc9d2e3734b74a05bfb7cea50445d8ee4466e80-postgresqldbserver-12.xml.gz
PostgreSQL 12 for RHEL/CentOS 8 - x86_64                                                104 kB/s | 416 kB     00:03
依存関係が解決しました。
行うべきことはありません。
完了しました!
[bitwalk@centos-pc ~]$

Cockpit にも従来通りアクセスできました。

Cockpit の画面

まとめ

CentOS Stream に問題があるかどうかは、使っていく中で確認をしていきます。CentOS Stream の将来は安泰か?という問いについては判りませんが、今回の CentOS から CentOS Stream への移行については、一年も前から意図して計画されていた節がありますし、移行プランも用意されていたので、今後なにか変更があるとしても、周到に準備をした上でアナウンスされると思います。

只より高いものはないとはよく言ったもので、オープンソース・プロジェクトに限りませんが、常にリスクアセスメントをしてプランA、プラン B…を用意しておく必要性を実感しました。

サブスクリプションに費用を支払いたくない企業を相手にするよりも、株主に RHEL と CentOS Stream の位置づけの違いを明確に説明することの方が、Red Hat 社にとってはきっと良いことなのでしょう。無料であることを望む一般ユーザーとのバランスがうまく取れることを望むばかりです。

参考サイト

  1. CentOS Project shifts focus to CentOS Stream – Blog.CentOS.org [2020-12-08]
  2. bitWalk's: CentOS プロジェクトは CentOS Stream に注力 [2020-12-11]
  3. Transforming the development experience within CentOS [2019-09-24]
  4. CentOS Stream
  5. Rocky Linux

 

ブログランキング・にほんブログ村へにほんブログ村

0 件のコメント: