レッドハット社(Red Hat)が支援するコミュニティー The Fedora Projectは、4月28日 Fedora の最新版 Fedora 32 (Thirty Two)をリリースしました。Fedora は、 約半年周期(Fedora31 は 10月29日リリース)でリリースされる最新の技術、ソフトウェアのバージョンを体験できるディストリビューションです。
Fedora では、ディスクトップ向けの Workstation、サーバ向けの Server、組み込み用の IoT エディションのインストールイメージが提供されています。その他コンテナイメージの CoreOS、OSTree用いたデプロイ型OS Silverblue なども利用できます。対応アーキテクチャは、x86_64 をメインに AArch64、PPC64LE、s390x などにも対応しています。全てのエディション、アーキテクチャ版は、https://getfedora.org/ja/ よりダウンロードできます。
Workstation は Ubuntu 20.04 同様、最新の GNOME Shell 3.36 が採用されていますが、Fedora は素のGNOME 環境を提供しているので使いにくいと思う方は、Fedora SPINS(https://spins.fedoraproject.org/ja/)でKDE、MATE、CINAMON 版なども用意されています。また、Fedora abs(https://labs.fedoraproject.org/) では、ゲームやデザインなど
目的別にソフトウェアとコンテンツをまとめたISOを配布しています。
Fedora 32 のアップデート内容は以下の通りです。
詳細は、https://docs.fedoraproject.org/en-US/fedora/f32/release-notes/,
https://fedoraproject.org/wiki/Releases/32/ChangeSet を参照して下さい。
(量が多いので掲載した方が良いと思われる項目に ※ を入れておきました。)
・sysusers.d フォーマットの対応 ※
・Binutils 2.33 へのアップデート
・DNF コマンドでのサーバアクセス時、システムの UUID を使用しユーザ数をカウント
・リリース時、物理光学メディアでのテストを廃止
・EarlyOOM をデフォルトで有効化 ※
・FSTrimTimer をデフォルトで有効化 ※
・フォントパッケージを Langpacks へ移動
・フリー Pascal コンパイラ 3.2.0 へのアップデート
・構成が決まるまで時期バージョン(Fedora 33)のブランチを作成しない
・GCC 10 へのアップデート
・GNU C ライブラリ 2.31 へのアップデート
・LLVM 10 へのアップデート
・Python 3.8 へのアップデート ※
・パッケージアップデート時にサービスリスタートの仕組みを変更
・Python 2 関連のサブパッケージを削除 ※
・Ruby 2.7 へのアップデート ※
・個別に clang-libs ライブラリを持つパッケージを libclang-cpp.so を利用するように変更
・Systemd の presets の動作を見直し
・翻訳のプラットフォームを Weblate へ移行
・Firewalld のバックエンドが iptables から nftables へ変更 ※
・Golang 1.14 へのアップデート
・iptables-nft がデフォルトに
・任意精度数値計算ライブラリ MPFR 4.0.2 へのアップデート
・AArch64 の GNOME Workstation をリリース
・最新の x86_64 アーキテクチャに合わせたビルドオプションや環境の整備
・Bundler 2.0 へのアップデート
・計算神経科学者を対象にしたイメージを提供
・python-nose パッケージの廃止を予定
・Django 3 へのアップデート ※
・Haskell 14 へのアップデート
・Jekyll 4 へのアップデート
・MariaDB 10.4 へのアップデート ※
・mingw32 を dwarf-2 へ変更
・Mono 6.6 へのアップデート
・apt 互換の apt-rpm を提供
・PostgreSQL 12 へのアップデート ※
・Pango 用の OpenType ビットマップフォントを提供
・Python3 rdiff-backup パッケージの提供
・パフォーマンス改善の為に Pyhton のビルドオプションに -fno-semantic-interposition を追加
・バージョン管理システム Breezy を Bazaar に変更
・新規提案などの管理を Taiga https://teams.fedoraproject.org/ へ一元化
・PHP 7.4 へのアップデート ※
・rpm インストール時に出力される Usage を非表示に
Fedora 31 では Python のデフォルトが Python 3 になりましたが、Fedora 32 では Python 2 に関連するパッケージが削除されました。しかしビルドの依存関係で python 2 を要求するものがまだ多く残っているようで完全に削除は出来ていないようです。
その他著者が気になった機能としては、EarlyOOM と FSTrimTimer がデフォルで有効になったことです。EarlyOOM は物理メモリとスワップ領域を監視するデーモンで、利用可能なメモリ、スワップ領域がしきい値を超えた場合、プロセスを強制終了させます。これにより作業中にディスクトップがフリーズしてしまう事態を回避する事ができます。RAM とスワップの空き領域が 10% を下回るとSIGTERMを 5% を下回ると SIGKILL が最もメモリを占有するプロセスに対して送信されます。しかし dnf や Xwayland など強制終了されては困るプロセスは –avoid オプションで除外対象として指定されています。
メモリを目一杯に使うソフトウェアを開発している人は、EarlyOOM を無効にするか /etc/default/earlyoom の –avoid オプションにプログラム名を追記する必要があります。
trim とは、SSDをクリンアップするコマンドです。trim は、あらかじめ消去しても良いセクターをSSDに通知してSSDはこれに基づいてブロックを消去して空きブロックを作るので長期間しようして速度が遅くなっているSSDには実行した方が良いのですが、FSTrimTimer は、月曜日 0:00、起動時、サスペンド復旧時、trim コマンドを実行します。SSD が主流になりつつ現状を反映した変更だと思いました。
※trim がサポートされているディスクなのかは、dparm コマンドで確認する事ができます。
$ dparm -I /dev/sda
:
Data Set Management TRIM supported (limit 8 blocks)
Fedora 32 が採用する主なソフトウェアのバージョン
カーネル
kernel 5.6.7
Cライブラリ
glibc 2.31
libgcc 10.0.1
ディスクトップ環境
wayland 1.18.0
gnome-shell 3.36.1
KDE Plasma 5.18.4
libreoffice 6.4.3.2
gtk 3.24.18
qt 4.8.7
プログラミング言語
perl 5.30.2
Python 3.8.2
python3-django 3.0.2
php 7.4.5
ruby 2.7.1
rubygem-rails 5.2.3
nodejs 12.16.1
golang 1.14.2
データベース
postgresql 12.2
mariadb 10.4.12
Webサーバ
httpd 2.4.43
nginx 1.16.1
ネットワークサーバ
samba 4.12.1
bind 9.11.18
dovecot 2.3.9.3
postfix 3.5.1
主要パッケージで、どれも最新バージョンのパッケージが提供されているが、メジャーバージョンが大きく変更されたものとして、Kernel、PostgreSQL、Django を取り上げたい。
Kernel 5.6 では、USB4のサポート、VPNプロトコルの「WireGuard」がカーネルレベルでサポートされた。
PostgreSQL 12 では、JSON Path に対応や沢山の機能改善が含まれている。
最近流行りのWebアプリケーションフレームワーク Django 3 では、非同期対応のWebサーバー(ASGIサーバー)に対応した。
今回も見た目の大きな変化はなく、一般ユーザからすると軽微なアップデートかもしれませんが、32 は、Django + PostgreSQL で Web システムを開発している Web系エンジニアには興味をそそる構成になっているのではないかと思います。
またまだ一般向け製品が無い USB 4 に対応したりと最先端の技術をテストしたいエンジニアは、Fedora を是非一度触れてみては如何でしょうか?