1. はじめに
2020年12月の「CentOSからCentOS Streamへ移行」アナウンス以降、周辺の動きが激しくなっている。
- Rocky LinuxやAlmaLinuxなど、CentOSの後継を目指すプロジェクトの開発意向表明
- Red Hat Developer Programの無料枠拡大
- Oracle Linuxの積極的なプロモーション
- 各種ベンダーのCentOS 8延長サポートサービス
このような状況のなか、AlmaLinuxの安定版が2021/03/30に正式リリースされた。そこで、AlmaLinuxを紹介すると共に、少しさわってみようと思う。
予定している内容は次のとおり。
- AlmaLinuxとはどんなものなのか?
- CentOSとの違いは?
- ツールを使った移行
- 出来や将来性は?
2. AlmaLinuxとは
AlmaLinuxとは、RHEL互換のLinux OSで、CentOS 8の後継を目指しているプロジェクトだ。CloudLinuxを中心としたコミュニティーが開発している。AlmaLinuxのトップページ冒頭には次のように書かれている。
Welcome to AlmaLinux OS, a new RHEL fork from the team at CloudLinux. A free Linux OS for the community, developed in close co-operation with the community.
また、次の3つのコンセプトが紹介されている。
- In partnership with the community.
- Matches the current RHEL release 1:1.
- Always free, always open source.
CloudLinuxは有名ではないが、ホスティングサービス向けでは実績のあるLinux OSだ。日本でもGMOなどが提供するVPS(仮想専用サーバー)などで使われている。強力なリソース制限機能や隔離機能が特徴だ。なお、CloudLinuxもRHEL互換OSの一つである。
AlmaLinuxのトップページにはローンチイベントのYouTube動画が紹介されている。これを見ると、現時点でも相当のコミュニティーを築けていることが分かる。
- AlmaLinux OSプロジェクトに対して、CloudLinux社は100万ドルのスポンサーシップをコミットメント
- AlmaLinuxは、少なくとも2029年までサポートを保証(RHEL8と同様)
3. AlmaLinuxを使ってみよう
AlmaLinuxのおもな情報ソースは以下のとおり。
ISOイメージでインストールすることもできるし、移行ツールでCentOSやRHEL、Oracle Linuxから移行することもできる。それぞれについて調べてみよう。
ヒント:AwSではAMIが提供されている。
→AlmaLinux OS Amazon Web Services AMIs
3.1. ISOイメージからインストールする
今回はVirtualBoxでAlmaLinuxをインストールする。インストール手順はCentOSと同じなので手順は説明しないが、GUIインストーラーのAnacondaはAlmaLinux用に修正されている。GUIの修正は地味に面倒なので、素早い対応が感じられる。
使用したISOイメージ:AlmaLinux-8.3-x86_64-dvd.iso
ロゴもAlmaLinuxになっている。
インストールが完了したあとのデスクトップ画面。
3.2. AlmaLinuxをさわってみる
インストールが終わったら、いくつか確認してみよう。
3.2.1. /etc/xxx-release
- /etc/almalinux-releaseが追加されている。
$ cat /etc/almalinux-release
AlmaLinux release 8.3 (Purple Manul)
2./etc/centos-releaseの内容も同じになっている。
$ cat /etc/centos-release
AlmaLinux release 8.3 (Purple Manul)
3.同じになっている理由は、/etc/centos-releaseと/etc/redhat-releaseは共に/etc/almalinux-releaseを参照しているためである。
$ ls -l /etc/*release
-rw-r--r--. 1 root root 37 Mar 25 02:36 /etc/almalinux-release
lrwxrwxrwx. 1 root root 17 Mar 25 02:36 /etc/centos-release -> almalinux-release ★AlmaLinuxを参照
lrwxrwxrwx. 1 root root 21 Mar 25 02:36 /etc/os-release -> ../usr/lib/os-release
lrwxrwxrwx. 1 root root 17 Mar 25 02:36 /etc/redhat-release -> almalinux-release ★AlmaLinuxを参照
lrwxrwxrwx. 1 root root 17 Mar 25 02:36 /etc/system-release -> almalinux-release ★AlmaLinuxを参照
4.ブートメニューもAlmaLinuxになっている。
$ sudo grubby --info DEFAULT | grep AlmaLinux
title="AlmaLinux (4.18.0-240.15.1.el8_3.x86_64) 8.3 (Purple Manul)"
3.2.2. RPMパッケージ
CentOSと同じくRHEL互換なので基本的には同じハズだが、RPMパッケージがどのようになっているか確認する。
- kernelパッケージの情報は以下のとおり。
$ rpm -qi kernel
Name : kernel
Version : 4.18.0
Release : 240.el8
Architecture: x86_64
Install Date: Tue Apr 6 02:30:34 2021
Group : System Environment/Kernel
Size : 0
License : GPLv2 and Redistributable, no modification permitted
Signature : RSA/SHA256, Fri Jan 15 13:14:07 2021, Key ID 51d6647ec21ad6ea
Source RPM : kernel-4.18.0-240.el8.src.rpm
Build Date : Fri Jan 15 05:12:50 2021
Build Host : build.cloudlinux.com ★cloudlinuxのサーバーでビルドしている
Relocations : (not relocatable)
Packager : AlmaLinux Packaging Team <packager@almalinux.org>
Vendor : AlmaLinux ★VenderタグはAlmaLinux
URL : http://www.kernel.org/
Summary : The Linux kernel, based on version 4.18.0, heavily modified with backports
Description :
This is the package which provides the Linux kernel for AlmaLinux.
★省略
2.Venderタグは、RPMをビルドした会社や人を区別するのに利用できる。どのようなものがあるか調べるとAlmaLinuxとCloudLinuxの2種類で、約8割がCloudLinuxだった。
$ rpm -qa --qf '%{VENDOR}\n' | sort | uniq
AlmaLinux
CloudLinux
3.パッケージ名はRHEL/CentOSと同じだ。
$ rpm -qa | grep kernel-4
kernel-4.18.0-240.el8.x86_64
kernel-4.18.0-240.15.1.el8_3.x86_64
4.ただし、アーキテクチャ(x86_64)の前にalmaが付いているパッケージもある。
# rpm -qa | grep alma.x86 | sort
bluez-5.52-1.el8.alma.x86_64
bluez-libs-5.52-1.el8.alma.x86_64
bluez-obexd-5.52-1.el8.alma.x86_64
firefox-78.9.0-1.el8_3.alma.x86_64
fwupd-1.4.2-4.el8.alma.x86_64
grub2-pc-2.02-90.el8_3.1.alma.x86_64
grub2-tools-2.02-90.el8_3.1.alma.x86_64
grub2-tools-extra-2.02-90.el8_3.1.alma.x86_64
grub2-tools-minimal-2.02-90.el8_3.1.alma.x86_64
initial-setup-0.3.81.6-1.el8.alma.x86_64
initial-setup-gui-0.3.81.6-1.el8.alma.x86_64
libgcc-8.3.1-5.1.el8.alma.x86_64
libgomp-8.3.1-5.1.el8.alma.x86_64
libstdc++-8.3.1-5.1.el8.alma.x86_64
platform-python-3.6.8-31.el8.alma.x86_64
python3-libs-3.6.8-31.el8.alma.x86_64
5.changelogを見る限りは、軽微な独自パッチを適用しているものにalmaが付いているようだ。
$ rpm -q --changelog libgcc-8.3.1-5.1.el8.alma.x86_64 | head -n 5
* Wed Jan 20 2021 Sergey Fokin <sfokin@cloudlinux.com> 8.3.1-5.1.alma
- change bugurl to http://bugs.almalinux.org/
* Tue May 12 2020 Marek Polacek <polacek@redhat.com> 8.3.1-5.1
- consider negative edges in cycle detection (#1817991, PR gcov-profile/91601)
3.2.3. リポジトリ
- デフォルトで有効なリポジトリは以下のとおり。CentOSと同じである。
$ dnf repolist
repo id repo name
appstream AlmaLinux 8 - AppStream
baseos AlmaLinux 8 - BaseOS
extras AlmaLinux 8 - Extras
powertools AlmaLinux 8 - PowerTools
2.新しいパッケージがリリースされているか確認してみよう。むむっ、ミラーサイト! それは後ほど。
$ sudo dnf check-update
最速のミラーを確定しています (66 hosts).. ] --- B/s | 0 B --:-- ETA
3.以下のアップデート可能なパッケージがリリースされている。
$ sudo dnf check-update
bpftool.x86_64 4.18.0-240.15.1.el8_3 baseos
firefox.x86_64 78.9.0-1.el8_3.alma appstream
gnu-free-fonts-common.noarch 20120503-18.el8.0.1 appstream
gnu-free-mono-fonts.noarch 20120503-18.el8.0.1 appstream
gnu-free-sans-fonts.noarch 20120503-18.el8.0.1 appstream
gnu-free-serif-fonts.noarch 20120503-18.el8.0.1 appstream
kernel.x86_64 4.18.0-240.15.1.el8_3 baseos
kernel-core.x86_64 4.18.0-240.15.1.el8_3 baseos
kernel-modules.x86_64 4.18.0-240.15.1.el8_3 baseos
kernel-tools.x86_64 4.18.0-240.15.1.el8_3 baseos
kernel-tools-libs.x86_64 4.18.0-240.15.1.el8_3 baseos
openssl.x86_64 1:1.1.1g-15.el8_3 baseos
openssl-libs.x86_64 1:1.1.1g-15.el8_3 baseos
python3-perf.x86_64 4.18.0-240.15.1.el8_3 baseos
4.アップデートするときは、次のコマンドでアップデートできる。しかし、調査の都合上ここではアップデートしない。
$ sudo dnf distro-sync
3.2.4. アップデート状況
CentOSとAlmaLinuxのアップデート状況を比較してみよう。
- このCentOS 8のVMでは、この時点で新しく提供されているパッケージはopensslだった。当然、もっとたくさんのパッケージをインストールしているときには、異なる可能性がある。
$ sudo dnf check-update
openssl.x86_64 1:1.1.1g-15.el8_3 baseos
openssl-libs.x86_64 1:1.1.1g-15.el8_3 baseos
2.Buildtimeは「Mar 30 14:35:59 2021」になっている。
$ sudo dnf -v info openssl-1.1.1g-15.el8_3
Available Packages
Name : openssl
Epoch : 1
Version : 1.1.1g
Release : 15.el8_3
Architecture : x86_64
Size : 707 k
Source : openssl-1.1.1g-15.el8_3.src.rpm
Repository : baseos
Packager : CentOS Buildsys <bugs@centos.org>
Buildtime : Tue Mar 30 14:35:59 2021 ★
Summary : Utilities from the general purpose cryptography library with TLS
: implementation
URL : http://www.openssl.org/
License : OpenSSL and ASL 2.0
Description : The OpenSSL toolkit provides support for secure communications
: between machines. OpenSSL includes a certificate management tool
: and shared libraries which provide various cryptographic
: algorithms and protocols.
3.同様にAlmaLinuxでも調べてみよう。次のコマンドを実行すると、現在インストールされているopensslが1.1.1g-12.el8_3
で、新しい1.1.1g-15.el8_3
も提供されていることが分かる。
$ sudo dnf list openssl
Last metadata expiration check: 1:56:42 ago on Tue Apr 6 06:24:41 2021.
Installed Packages
openssl.x86_64 1:1.1.1g-12.el8_3 @baseos
Available Packages
openssl.x86_64 1:1.1.1g-15.el8_3 baseos
4.さらにBuildtimeを調べると「Mar 30 13:24:53 2021」で、CentOSよりも早い?
$sudo dnf -v info openssl-1.1.1g-15.el8_3
Available Packages
Name : openssl
Epoch : 1
Version : 1.1.1g
Release : 15.el8_3
Architecture : x86_64
Size : 706 k
Source : openssl-1.1.1g-15.el8_3.src.rpm
Repository : baseos
Packager : AlmaLinux Packaging Team <packager@almalinux.org>
Buildtime : Tue Mar 30 13:24:53 2021 ★
Installed by : root <root>
Summary : Utilities from the general purpose cryptography library with TLS
: implementation
URL : http://www.openssl.org/
License : OpenSSL and ASL 2.0
5.各ディストリビューションを比較した結果は以下のとおり。時間が早い順に並べてみた。AlmaLinux優秀! すべてのパッケージを調べていないので、参考情報に過ぎないけれどね。
Linux OS | Buildtime: openssl-1.1.1g-15.el8_3 |
---|---|
Red Hat Enterprise Linux | Fri Mar 26 01:51:51 2021 |
Oracle Linux | Tue Mar 30 04:41:44 2021 |
AlmaLinux | Tue Mar 30 13:24:53 2021 |
CentOS | Tue Mar 30 14:35:59 2021 |
3.2.5. ミラーサイト
- ミラーサイトが気になったので調べてみる。ミラーサイトとはRPMパッケージのリポジトリを提供するサイトのことで、世界各地に分散配置することで高速化を図れる。
[baseos]
name=AlmaLinux $releasever - BaseOS
mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos ★この行
# baseurl=https://repo.almalinux.org/almalinux/$releasever/BaseOS/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux
fastestmirror=1
2.現在のミラーサイトは$releasever
を8
に置き換えた以下のコマンドで確認できる。
curl 'https://mirrors.almalinux.org/mirrorlist/8/baseos'
http://mirrors.ptisp.pt/almalinux/8/BaseOS/$basearch/os/
http://mirror.espoch.edu.ec/almalinux/8/BaseOS/$basearch/os/
http://mirror.dk.team.blue/almalinux/8/BaseOS/$basearch/os/
http://mirror.hosting.com.tr/almalinux/8/BaseOS/$basearch/os/
http://mirror-almalinux.grupocg.cl/almalinux/8/BaseOS/$basearch/os/
3.ミラーサイトの総数は現在66(2021/4/6)。ミラーサイトのクエリは、総数ではなく遅延が少ないサイトだけ表示されるケースもあるが、今回はほぼすべて表示されているようだ。
$ curl -s 'https://mirrors.almalinux.org/mirrorlist/8/baseos' | wc -l
66
4.日本国内は2サイトだと思ったら、AlmaLinux Mirrorsページを見ると5サイトあった。それに対してCentOSは日本国内8サイトだ(海外は相当ある)。高速なIIJがあるのはありがたいがRIKENは無かった。(2021/4/15修正)RIKENも追加され、日本は計8サイトになった。
$ curl -s 'https://mirrors.almalinux.org/mirrorlist/8/baseos' | grep jp
http://ftp.iij.ad.jp/pub/linux/almalinux/8/BaseOS/$basearch/os/
http://mirror-jp.almalinux.id/almalinux/8/BaseOS/$basearch/os/
3.2.6. リポジトリのupdateinfo.xml提供
商用ディストリビューションでは、アップデートパッケージについて、セキュリティレベルや重要度などの修正情報を提供している。そのためyum update-minimal --sec-severity=critical,important --bugfix -y
のように最小限のパッケージをアップデートできる。
CentOSではパッケージの修正情報が提供されていなかったため、この機能は使えなかった。ところがAlmalinuxは使えるようだ。スゴい!
$ yum updateinfo list
ALBA-2021:1099 bugfix NetworkManager-1:1.26.0-14.el8_3.x86_64
ALBA-2021:1099 bugfix NetworkManager-libnm-1:1.26.0-14.el8_3.x86_64
ALBA-2021:1099 bugfix NetworkManager-team-1:1.26.0-14.el8_3.x86_64
ALSA-2021:1093 Important/Sec. bpftool-4.18.0-240.22.1.el8_3.x86_64
パッケージのアップデート情報はYumリポジトリのrepodata/xxxxxx-updateinfo.xml.gz
で提供されている。そのため、次のコマンドでも判断できる。
$ curl -s 'http://ftp.iij.ad.jp/pub/linux/centos/8/BaseOS/x86_64/os/repodata/' | grep updateinfo
$ curl -s 'http://ftp.iij.ad.jp/pub/linux/almalinux/8/BaseOS/x86_64/os/repodata/' | grep updateinfo
<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a
href="917a125d528031b22ab6f39a705a27697230318798df32ffe6ed0821569e01df-updatei
nfo.xml.gz">917a125d528031b22ab6f39a705a27697230318798df32ffe6ed0821569e01df-u
pdateinfo.xml.gz</a></td><td align="right">2021-04-19 21:22 </td><td align="r
ight">113K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="
almalinux83-baseos-updateinfo.xml">almalinux83-baseos-updateinfo.xml</a></td><
td align="right">2021-03-28 02:50 </td><td align="right">744K</td><td> <
/td></tr>
4. 前編まとめ
移行ツールも書こうと思ったが、長くなったので次回にする。とりあえず、ここまでのまとめは以下のとおり。
概要
- AlmaLinuxはRHEL互換のLinux OSで、CentOSと同じ位置づけ
- AlmaLinuxは、少なくとも2029年までサポートを保証(RHEL8と同等)
- AlmaLinuxは、CloudLinux社のスポンサードを受けながらもコミュティドリブンで開発
- 2021/03/30に正式安定版をリリース
機能
- CentOSと、まったく同じように扱える。違うのは/etc/almalinux-releaseがあること
- アップデートパッケージも十分早くリリースされている
- 現時点(2021/04/06)で60以上のミラーサイトが用意され、日本でも5サイトある
- CentOSとは異なりパッケージアップデート情報が提供されているので、必要最小限のパッケージなどレベルを指定したアップデートが可能
続きは、こちら。