Ubuntu Weekly Recipe

第767回Debian 12 "Bookworm"の紹介

2023年6月10日に、Ubuntuの母であるDebianの新しい安定版Debian 12(コードネーム "Bookworm")リリースされました。今回のUbuntu Weekly Recipeでは、このリリースされたばかりのDebian 12 "Bookworm"について紹介します。

UbuntuとDebianの関係

さて、⁠Ubuntu Weekly RecipeなのにDebianの話なんですか?」という疑問を持たれた方もいるかと思いますので、まずはUbuntuとDebianの関係をごく簡単にまとめてみましょう。

Debian Projectは「誰もが自由に利用できるフリー[1]なオペレーティングシステムを作りたい」という目標のために連携したボランティア集団であり、OSとしてのDebianはこの成果としてリリースされています[2]

Debian Projectは開発初期から今まで、開発プロセスを含めて一貫してフリーであることを重視しています。Debianとしてリリースされている諸々のパッケージはライセンスが明瞭であり、パッケージの豊富さ、扱い易さ、そしてカスタマイズ性から、多くの派生ディストリビューションの母体ともなっています。

2004年に誕生したDebianベースの派生ディストリビューションが、本連載のタイトルにもなっているUbuntuです。Ubuntuは、Debianの開発者であったMark Shuttleworth氏が「誰にでも使いやすい最新かつ安定したOSを提供すること」を目指し、Debianをベースにして作成したLinuxディストリビューションです。

UbuntuとDebianの関係についてはUbuntuのサイトのProject GovernanceのDebianの項に簡潔にまとめられています。ここで言及されているとおり、⁠Debian is the rock on which Ubuntu is built(DebianはUbuntuの土台となる岩です⁠⁠」といった関係性ですね。

Ubuntuは半年毎のリリースの度にDebianの最新開発版のパッケージをベースに変更を行ない、バイナリパッケージ群を再構築しています。また、Debian Projectは多くの派生ディストリビューションと成果を交換できる開発フローを用意しており、Ubuntuによる変更の少なくない部分もDebianに反映されています。

以上のことから、Debian安定版の状況・主な変更点を知っておくことは、Ubuntuを上手く活用することや次期リリースに向けた開発状況を把握するのに有用です。

Debian 12 "Bookworm"がサポートしているアーキテクチャと収録ソフトウェア

冒頭で触れたとおり、Debian 12 "Bookworm"は、2023年6月10日にリリースされました。以前の安定版であるDebian 11 "Bullseye"のリリースが2021年8月14日であったことから、約1年10ヶ月ぶりの安定版リリースとなります。Debian Projectはリリース作業のうち「フリーズ[3]という期間を2年毎に設けるているため、ここのところの安定版のリリースは約2(+α)年毎だったのですが、今回は2年お待たせすることなくリリースとなりました。

「リリース期間が短かい」ということは、より新しいソフトウェアを提供できるうえ、ソフトウェアのバージョン間差異が小さい(=変更点も小さい)ので、ユーザの負担も減るはずなので良いことずくめではありますね。

Debianのコードネームは映画「Toy Story」のキャラクターからつけられており、Debian 12のコードネーム"Bookworm"は、図書室の主である眼鏡をかけたイモムシです。なお、Debain 13のコードネームは"Trixie"、Debian 14のコードネームは"Forky"に決まっています。

Debian 12にてサポートされるアーキテクチャは以下の9種類です。

  • 32bit PC: i386
  • 64bit PC: amd64
  • 64bit ARM: arm64
  • ARM EABI: armel
  • ARMv7(EABI hard-float ABI): armhf
  • MIPS little-endian: mipsel,
  • MIPS 64bit little-endian: mpis64el
  • PowerPC 64bit little-endian: ppc64el
  • IBM System z: s390x

このうち、32-bit PCについてはi586のサポートが打ち切られました。32bit PCで動作させる場合はi686以降、つまりはPentium Pro以降のCPUが必要となります。

主な収録ソフトウェア等のバージョンは以下のとおりです。

主なパッケージソフトウェア(アルファベット順) 12(bookworm)でのバージョン 11(bullseye)でのバージョン
Apache 2.4.57 2.4.54
Bash 5.2.15 5.1
BIND DNS サーバ 9.18 9.16
Cinnamon 5.6 4.8
Cryptsetup 2.6 2.3
Emacs 28.2 27.1
Exim(標準の電子メールサーバ) 4.96 4.94
GIMP 2.10.34 2.10.22
GNOME 43 3.38
GNU C ライブラリ 2.36 2.31
GNU Compiler Collection(デフォルトのコンパイラ) 12.2 10.2
GNUcache 4.13 4.4
GnuPG 2.2.40 2.2.27
Inkscape 1.2.2 1.0.2
KDE Plasma 5.27 5.20
LibreOffice 7.4 7.0
Linux カーネルイメージ 6.2 シリーズ 5.10 シリーズ
LLVM/Clang ツールチェイン 13.0.1, 14.0(デフォルト), 15.0.6 9.0.1, 11.0.1(デフォルト), 13.0.1
LXDE 11 11
LXQt 1.20 0.16
MariaDB 10.11 10.5
MATE 1.26 1.24
Nginx 1.22 1.18
OpenJDK 17 11
OpenLDAP 2.5.13 2.4.57
OpenSSH 9.2p1 8.4p1
OpenSSL 3.0.8 1.1.1n
Perl 5.36 5.32
PHP 8.2 7.4
Postfix MTA 3.7 3.5
PostgreSQL 15 13
Python 3 3.11.2 3.9.2
Rustc 1.63 1.48
Ruby 3.1 2.7
Samba 4.17 4.13
Systemd 252 247
Vim 9.0 8.2
Xfce 4.18 4.16

収録パッケージはbullseyeの頃から、新規に11,089個増えて64,419個となっています(bullseyeの頃から提供されていたパッケージの約67%にあたる43,254個のパッケージが更新されています⁠⁠。一方で、bullseyeに収録されていたパッケージの約10%にあたる6,296個のパッケージが、様々な理由(上流での開発中止やセキュリティ対応不足など)で削除されました。

また、いくつかのソフトウェアは現在upstreamが提供している最新版にくらべて1世代古い版となっています。この理由はDebianのFreezeのタイミングとupstreamのリリースのタイミングがズレてしまったからです。これらソフトウェアや悲しいことにリリース作業に間に合わなかったいくつかのパッケージは、今後backportsにて提供される予定です。

Debian 12での主な変更点

収録ソフトウェア以外にDebian 12 "Bookworm"がどう変わったのか、主な変更点を見ていきましょう。

Debian 12 "Bullseye" の公式 Art work by Juliette Taka
(URL:https://wiki.debian.org/DebianArt/Themes/Emerald
図

なお、以下の内容はリリースノートからユーザに関連しそうな大きな変更点を抜粋した版です。より細かい変更点や詳細な内容については、一次情報であるリリースノートをご確認ください[4]

non-freeなfirmwareは新たに「non-free-firmware」として分離されました

今回のリリースでの一番の変更点かもしれません。

Deianの提供するパッケージは、Debian社会契約およびポリシーで言及されているとおり、アーカイブエリアが分けられています。多くの場合、/etc/apt/sources.listなどで以下のように設定されています。

deb http://ftp.jp.debian.org/debian/ bullseye main contrib non-free

このmain,contrib,non-freeは次のことを意味し、パッケージを収録するアーカイブ領域を分離しています。

  • main: Debianディストリビューションそのもの。Debian Free Software Guidelines(DFSG)に準拠したソフトウェア
  • contrib: それ自体はDFSGに準拠しているが、ビルド時もしくは動作時にDebianディストリビューション外のソフトウェアが必要となるソフトウェア
  • non-free: DFSGに準拠しない、あるいは配布を難しくする他の問題があるものの、Debianディストリビューションと互換性のあるソフトウェア

つまり、狭義の「Debian」mainだけを指します。

これについて、non-freeなファームウェアに関する2022年の一般決議において投票が行なわれ、この結果を受けてDebian社会契約の第5条に以下の文言が追加されました。

The Debian official media may include firmware that is otherwise not part of the Debian system to enable use of Debian with hardware that requires such firmware.

(Debianの公式メディアには、Debianシステムの一部ではないファームウェアが含まれていることがあります。これはそのようなファームウェアを必要とするハードウェアでDebianを利用可能とするのに他の方法がないためです。)

現時点では社会契約およびポリシーに明示的に反映されていませんが、non-freeアーカイブ領域から、firmwareのみを分離したnon-free-firmware領域が作成され、殆どのnon-freeなfirmwareがここに移動されました。よって、aptのsources.listを以下のように修正する必要があるかもしれません。

# bullseye まで
deb http://ftp.jp.debian.org/debian/ bullseye main contrib non-free
↓
# bookworm から
deb http://ftp.jp.debian.org/debian/ bookworm main contrib non-free non-free-firmware

Debianを仮想環境で利用している場合は特に気にならないかもしれませんが、実機で利用している場合には、Wi-Fiなどを動作させるためには多くの場合firmwareが必要となります。aptでfirmwareを導入している場合には、アップグレード時に忘れずにsources.listを変更しましょう。

また、この分離によりmainnon-free-firmware同梱したインストールメディアが公式に配布されることになりました。

これまでのリリースでは、Debianの公式インストーラを用いて実機にインストールを進める途中でWi-Fiが使えずに困ってしまう、という悲鳴が良く聞こえていた(?)わけですが[5]、Bookwormからはインストール段階でWi-Fiが使えるようになるかもしれません(無論、firmwareが原因ではない場合もあるでしょうが⁠⁠。

rsyslogが必須パッケージではなくなりました

ログの集約にはjournaldを使いましょうということで、これまで必須パッケージとしてインストールされていたrsyslogが必須パッケージではなくなりました。

  • 新規インストールの際には明示的にインストールしないとインストールされません。
  • アップグレードの際には、不要ならば削除可能です。

また、rsyslogを新規に導入した際のログファイルもかなりスッキリと整理されています。rsyslogで保存されていたログを元に処理を行なうプログラムを実行していた場合には、多少調整が必要かもしれません。何かのパッケージと衝突するわけではないので、必要ならばこれまでどおりrsyslogを使うことが可能です。

grubはos-proberを実行しなくなりました

ブートローダとしてgrubを利用してdual boot環境を作成している場合、update-grubが呼ばれる度にos-proberが動作して、検出されたDebian以外のOSがgrubのエントリに自動的に追加されていました。

しかしながら、この挙動は特定の条件の元で問題が生ずるということで、grub開発者側はデフォルトでこれを無効としました。

これまでの挙動に戻す(自動検出してgrubのエントリに他のOSを追加する)場合には/etc/default/grubを確認して、以下のように変更してください(DISABLEをfalseにするというのは、なんか微妙な気持になりますが⁠⁠。

# デフォルト挙動
GRUB_DISABLE_OS_PROBER=true
↓
# デフォルト挙動
GRUB_DISABLE_OS_PROBER=false

Python 2はついにドロップされました。また、Python 3はPEP 668に従います

Python 2.x系列が無事(?)ドロップされました。また、Debianが提供するPython 3はPythonの定めるPEP 668に従い、pipでのパッケージインストールを拒否するようになっています。そういったわけで、pipxを用いるか、venvを使いましょう。

例えば、これまで

pip install --user foo

としていた作業は、

mkdir -p ~/.venvs
python3 -m venv ~/.venvs/foo
~/.venvs/foo/bin/python -m install foo

のように、システムのpythonと分離して導入してください。

セキュリティサポートが限定的なパッケージ(Webブラウザ、GoおよびRust)についての扱い

セキュリティサポートが限定的なパッケージについて取り上げます。ここでの「限定的」「バージョンを変えずに修正バックポートしてセキュリティ更新を行なうのが難しい」という意味です。

Debianでは一般的なユーザ向けのWebブラウザとして、FirefoxとChromiumのパッケージを提供しています。これらパッケージについてはESRリリースが更新される度にリビルドして更新パッケージが提供されます。Thunderbirdも同様です。

GoおよびRustについては、現状ではDebianのパッケージビルドインフラが静的リンクを利用するタイプのパッケージの再構築を上手く扱えていないため、バージョンを更新せずにセキュリティサポートを提供することが困難となっています。つまり、セキュリティ更新は行なわれますが、この場合にはバージョンが更新されるため、昔のバージョンに依存していたソフトウェアが動作しなくなることがあるかもしれません。

これら言語に関連するパッケージについてサポートを提供する場合は、定期的なポイントリリースにおいて提供される予定です。

systemd-resolvedがsystemdから分割され、ntpパッケージはntpsecに置き換わりました

systemd-resolvedがsystemdから分割され、独立したパッケージとして提供されるようになりました。

それは良いのですが、アップグレード時には自動的にはインストールされません。よってネットワークの名前解決にsystemd-resolvedを利用していた場合、途中で名前解決ができなくなります。必要ならば、明示的にインストールしましょう。

クライアントとしての時刻合わせ用途にこれまで使われてきたntpパッケージはntpsecパッケージに置き換えられます。なお、Debianでのデフォルトはsystemd-timesyncdパッケージとなっていますので、こちらで時刻合わせをしている場合には特に気にする必要はありません。

Debian 12を使ってみよう!

Debian 12を試すにはLiveイメージが便利でしょう。

利用したいDesktop環境毎に、Live install imagesが提供されています。ここから、⁠GNOME」⁠KDE」⁠LXDE」⁠LXQt」⁠Xfce」⁠Cinnamon」⁠MATE」それぞれのLiveイメージがダウンロード可能です。

このLiveイメージにはインストーラとして「Calamaresインストーラ」が同梱されており、既存のDebianインストーラのすべての機能に対応しているわけではありませんが、DesktopへDebianを導入する際には非常に直感的に利用できるでしょう。

また、Debian Cloud teamはリリースとほぼ同じタイミングで、メジャーなクラウド環境向けのVMイメージの提供を開始しています。

  • Amazon EC2 (amd64 and arm64)
  • Microsoft Azure (amd64)
  • OpenStack (generic) (amd64, arm64, ppc64el)
  • GenericCloud (arm64, amd64)
  • NoCloud (amd64, arm64, ppc64el)

これら環境で動かしてみるのも良いかもしれません。

最後に

本稿ではDebian 12 "Bookworm"について、ユーザにとって気になりそうな主な変更点を紹介しました。より使いやすくなったDebianをぜひ試してみてください。

おすすめ記事

記事・ニュース一覧