第5章 bookworm で注意すべき点

目次

5.1. bookworm へのアップグレード特有の事項
5.1.1. non-free なファームウェアがアーカイブの独自コンポーネントへ移動しました
5.1.2. システムクロックの設定をするパッケージについての変更
5.1.3. 設定管理システム puppet はバージョン 7 にアップグレードされました
5.1.4. youtube-dl は yt-dlp にリプレースされました
5.1.5. fcitx は複数バージョンをインストールできなくなりました
5.1.6. MariaDB パッケージはパッケージ名にバージョン番号を含まなくなりました
5.1.7. システムのロギング設定への変更
5.1.8. rsyslog での変更が logcheck のようなログ分析ソフトに影響を与えます
5.1.9. rsyslog が生成するログファイルが少なくなっています
5.1.10. slapd のアップグレードには手動での介入が必要になる可能性があります
5.1.11. GRUB はデフォルトでは os-prober を実行しなくなりました
5.1.12. GNOME はスクリーンリーダーへのアクセシビリティサポートを縮小しています
5.1.13. polkit 設定についての変更点
5.1.14. merged-/usr が必須となりました
5.1.15. buster からのサポート外のアップグレードが libcrypt1 で失敗する
5.1.16. アップグレード後、再起動前にすること
5.2. アップグレード後も影響がある項目
5.2.1. セキュリティサポートにおける制限事項
5.2.2. python インタプリタは externally-managed としてマークされます
5.2.3. VLC でのハードウェアアクセラレーションを利用したビデオエンコードとデコードのサポートは制限されています
5.2.4. systemd-resolved は分割されて独立したパッケージになりました
5.2.5. systemd-boot は分割されて独立したパッケージになりました
5.2.6. systemd-journal-remote は GnuTLS を使わなくなりました
5.2.7. bookworm に向けた adduser の大幅な変更点
5.2.8. 予測可能な Xen のネットワークインターフェイス名
5.2.9. dash でのサーカムフレックス (^) の扱いの変更
5.2.10. netcat-openbsd が抽象ソケットをサポートしました
5.3. 廃止および非推奨となった事柄について
5.3.1. 特記すべき廃止されたパッケージたち
5.3.2. bookworm で非推奨となったコンポーネント
5.4. 既知の重大なバグ

新しいリリースで導入された変更点には副作用が避けられず、どこか他の場所でバグを出してしまうことがあります。この章では、現時点で私たちが知っている問題点を記載しています。正誤表・関連パッケージの付属文書・バグ報告や、「もっと読みたい」で触れられているその他の情報も読んでください。

5.1. bookworm へのアップグレード特有の事項

この項では bullseye から bookworm へのアップグレードに関連した項目を取り扱います。

5.1.1. non-free なファームウェアがアーカイブの独自コンポーネントへ移動しました

「アーカイブエリア」 で説明したように、non-free なファームウェアパッケージは non-free-firmware と呼ばれる独自のアーカイブコンポーネントから提供されるようになりました。インストール済みの non-free なファームウェアパッケージがきちんとアップグレードされるのを保証するため、APT の設定変更が必要となっています。ファームウェアをインストールするのに APT sources-list にnon-free コンポーネントだけが追加されている場合は、更新した APT sources-list の記述は以下の様になります:

deb https://deb.debian.org/debian bookworm main non-free-firmware

apt によってこの章を案内された場合、/etc/apt/apt.conf.d/no-bookworm-firmware.conf という名前の apt.conf(5) ファイルを以下の内容で作成することで、この変更について何度も通知されるのを防げます。

APT::Get::Update::SourceListWarnings::NonFreeFirmware "false";

5.1.2. システムクロックの設定をするパッケージについての変更

Network Time Protocol (NTP) サーバーからシステムクロックを設定するデフォルトの手法だった ntp パッケージは ntpsec に置き換えられました。

ntp から ntpsec への移行について、ほとんどのユーザーは何も特別な作業をする必要はありません。

bookworm では、他にも同様のサービスを提供する複数のパッケージがあります。Debian でのデフォルトは systemd-timesyncd となっていますが、これは ntp クライアントをクロック設定の用途のみに必要なユーザーには十分なものでしょう。bookworm は、NTP サーバーの運用など、より高度な機能をサポートする chronyopenntpd も含んでいます。

5.1.3. 設定管理システム puppet はバージョン 7 にアップグレードされました

Puppet はバージョン 5 から 7 へとアップグレードされ、Puppet 6 シリーズは完全にスキップされました。これは Puppet のエコシステムに大きな変更をもたらします。

クラシックな Ruby ベースの Puppet Master 5.5.x アプリケーションは、upstream によって非推奨にされ、Debian では利用できなくなりました。これは Puppet Server 7.x へと置き換えられ、puppetserver パッケージで提供されています。このパッケージは移行用の puppet-master パッケージの依存関係によって自動的にインストールされます。

いくつかのケースでは Puppet サーバーは Puppet マスターの完全互換品となりますが、新しいデフォルト値がデプロイ環境に適合するのを確認するため、/etc/puppet/puppetserver 以下にある設定ファイルをチェックすべきでしょう。特に auth.conf ファイルでのレガシーな形式は非推奨となっています。詳細は auth.conf documentation を参照してください。

推奨方法はクライアントの前にサーバーをアップグレードすることです。Puppet 7 サーバーは 過去のクライアントと後方互換性を持っています。Puppet 5 サーバーはアップグレードされたエージェントを扱いつづけることはできますが、新規の Puppet 7 エージェントを登録できません。つまり、サーバーをアップグレードする前に新規に Puppet 7 エージェントをデプロイすると、フリートにこのエージェントを追加できなくなってしまいます。

puppet パッケージは puppet-agent パッケージによって置き換えられ、スムースなアップグレードを保証するために移行パッケージとなっています。

最後に、puppetdb パッケージは bullseye で削除されましたが bookworm で再導入されています。

5.1.4. youtube-dl は yt-dlp にリプレースされました

広く様々なウェブサイト (YouTube を含みますがこれに限りません) からビデオをダウンロードできることで人気のツール、youtube-dl は Debian に含まれなくなりました。その代わり、yt-dlp を引っ張ってくる中身が空の移行パッケージとしてリプレースされています。yt-dlpyoutube-dl のフォークで、現在新規の開発が行われています。

完全な互換を持つラッパーは提供されていないので、スクリプトや自身の挙動を youtube-dl ではなく yt-dlp を呼び出すように調整する必要があります。機能はほぼ同じですが、オプションの一部や細かな挙動が変更されています。詳細は yt-dlpマニュアルページ、特に Differences in default behavior セクションを必ず確認してください。

5.1.5. fcitx は複数バージョンをインストールできなくなりました

fcitx そして fcitx5 パッケージは、人気の Fcitx インプットメソッドフレームワークのバージョン 4 および バージョン 5 を提供しています。upstream からのアドバイスに従い、同一のオペレーティングシステム上にこれらを同時にインストールできなくなりました。以前に fcitxfcitx5 を同時にインストールしてあった場合、ユーザーはどちらのバージョンの Fcitx をキープするかを決める必要があります。

アップグレード作業の前に、ユーザーは希望しない Fcitx バージョンの関連パッケージ全て (Fcitx 4 の場合は fcitx-*、Fcitx 5 は fcitx5-*) の purge を強く推奨します。アップグレード完了後、選択した希望のインプットメソッドフレームワークがシステムで使われるよう、im-config の再実行を検討してください。

さらなる背景情報を メーリングリストへ投稿されたアナウンス (簡体中国語です) を読むことができます。

5.1.6. MariaDB パッケージはパッケージ名にバージョン番号を含まなくなりました

bullseye では MariaDB バージョンがパッケージ名に含まれていましたが (例: mariadb-server-10.5mariadb-client-10.5)、bookworm では MariaDB 10.11 同等のパッケージ名は完全にバージョンが無いものとなります (例: mariadb-server または mariadb-client)。MariaDB バージョンはパッケージバージョンのメタデータで確認できます。

バージョン番号なしのパッケージ名への移行が失敗すると判明しているアップグレード時の流れの一つ (Bug #1035949) は以下です

apt install default-mysql-server

mariadb-admin コマンドを使う MariaDB サーバーの SysV init サービスがシャットダウンを実行する前に mariadb-client-10.5 及びパッケージ内の /usr/bin/mariadb-admin ファイルが削除された場合に失敗することになります。回避策は以下を実行します。

apt full-upgrade

を実行する前に以下を実行します

apt upgrade

以上です。

MariaDB でのパッケージ名の変更の詳細な情報については、/usr/share/doc/mariadb-server/NEWS.Debian.gz を参照してください。

5.1.7. システムのロギング設定への変更

rsyslog パッケージはほとんどのシステムで不要になっており、削除しても構いません。

多くのプログラムが何をしているかをユーザーに知らせるためにログメッセージを生成します。これらのメッセージは、systemd の journalrsyslog のような syslog デーモンによって取り扱えます。

bullseye では、デフォルトで rsyslog がインストールされ、systemd ジャーナルは /var/log/syslog のような様々なテキストファイルにメッセージを書き込む rsyslog にログメッセージを転送するように設定されていました。

bookworm より rsyslog はデフォルトではインストールされなくなりました。rsyslog を使い続けたくない場合、アップグレード後に自動的にインストールされたというマークを以下のコマンドで付けることができます。

apt-mark auto rsyslog

を実施、それから可能な場合は以下で削除を実行します

apt autoremove

さらに以前の Debian のリリースからアップグレードしていて、デフォルトの設定を受け入れていなかった場合、ジャーナルは永続ストレージにメッセージを保存するようには設定されていません: journald.conf(5) に有効にする指示手順があります。

rsyslog から離れるのを決めた場合ですが、journalctl コマンドを使えば /var/log/journal にバイナリ形式で保存されているログメッセージを読むことができます。

journalctl -e

上記のコマンドは、ジャーナル内の最も直近のログメッセージを表示します

journalctl -ef

このコマンドは書き込みされた新しいメッセージを表示します (同様のコマンドを実行する場合は以下のようになります)

tail -f /var/log/syslog

5.1.8. rsyslog での変更が logcheck のようなログ分析ソフトに影響を与えます

rsyslog高精度タイムスタンプの利用をデフォルトにしましたが、この変更はシステムログを分析する他のプログラムに影響を与える可能性があります。この設定をどのように調整するかについての詳細な情報が rsyslog.conf(5) にあります。

タイムスタンプの変更は、ローカルで作成された logcheck ルールの更新が必要になる場合があります。logcheck は、ルールとして知られている正規表現データベースに照らし合わせて (systemd-journald または rsyslog が生成した) システムログ内のメッセージをチェックします。メッセージが生成された時間にマッチするルールは、新しい rsyslog 形式にマッチするように更新する必要があります。logcheck-database パッケージによって提供されているデフォルトのルールは更新されていますが、ローカルで作成したなどの他のルールについては新しい形式を認識するように更新する必要があるかもしれません。ローカルの logcheck ルールを更新するのに役立つスクリプトについては /usr/share/doc/logcheck-database/NEWS.Debian.gz を参照してください。

5.1.9. rsyslog が生成するログファイルが少なくなっています

rsyslog が生成するログファイルについて変更を行ったので、/var/log 以下のいくつかのファイルは削除しても構わなくなりました。

rsyslog を使い続ける場合 (「システムのロギング設定への変更」 参照)、/var/log 内のログファイルのいくつかはデフォルトでは生成されなくなります。これらのファイルに書き込まれていたメッセージは /var/log/syslog にもありますが、デフォルトでは生成されなくなっています。これらのファイルに書き込まれていたものはすべて、 /var/log/syslog 以下から入手可能です。

作成されなくなったファイル一覧:

  • /var/log/mail.{info,warn,err}

    これらのファイルは、ローカルのメール転送エージェント (MTA) からのメッセージを含み、プライオリティによって分割されていました。

    /var/log/mail.log がメール関連のメッセージを全て含んでいるので、これらのファイル (およびローテーションされたコピー) は安全に削除できます。このファイル群をアノマリー検知に利用していた場合ですが、適切な代替はlogcheck などになるでしょう。

  • /var/log/lpr.log

    これらのファイルには印刷に関連するログメッセージが含まれていました。Debian でのデフォルトの印刷システム cups はこのファイルを使わないので、他の印刷システムをインストールしているのでない限り、このファイル (およびローテーションされたコピー) は削除できます。

  • /var/log/{messages,debug,daemon.log}

    これらのファイル (およびローテーションされたコピー) は削除して構いません。ここに書き込まれていたものはすべて /var/log/syslog 以下にあります。

5.1.10. slapd のアップグレードには手動での介入が必要になる可能性があります

OpenLDAP 2.5 は新規のメジャーリリースで、upstream のリリースアナウンス に記述されているように複数の非互換性を含んでいます。設定によりますが、slapd サービスはアップグレード後に必要な設定更新が完了するまで停止し続ける可能性があります。

以下が既知となっている互換性のない変更です:

  • slapd-bdb(5) および slapd-hdb(5) データーベースバックエンドは削除されました。bullseye でこれらのバックエンドのうちの一つを利用していた場合、bookworm へのアップグレード前に slapd-mdb(5) への移行を強く推奨します。

  • slapd-shell(5) データベースバックエンドは削除されました。

  • slapo-ppolicy(5) オーバーレイはスキーマをモジュールに内包するようになりました。以前の外部スキーマが存在していると、新しい内蔵スキーマとコンフリクトを起こします。

  • pw-argon2 contrib パスワードモジュールは argon2 にリネームされました。

アップグレードの完了と slapd サービスの再開に関する作業手順は、/usr/share/doc/slapd/README.Debian.gz で確認できます。さらに upstream のアップグレードに関する記述についても調べておくのが良いでしょう。

5.1.11. GRUB はデフォルトでは os-prober を実行しなくなりました

長らく grub はコンピューターにインストールされている他のオペレーティングシステム (OS) を検出するのに os-prober パッケージを利用しており、検出した OS を起動メニューに追加できていました。残念なことにこの機能は特定のケース (例: ゲストバーチャルマシンが動作している状態) で問題になるため、最新の upstream でのリリースでデフォルトでは無効にされました。

システムを起動するのに GRUB を使っていて、他の OS を起動メニューにそのまま載せておきたい場合は、この挙動を変更できます。/etc/default/grub ファイルを編集し、設定が GRUB_DISABLE_OS_PROBER=false となっていることを確認して update-grub を実行する、あるいは

dpkg-reconfigure <GRUB_PACKAGE>

を実行して、この設定やその他の GRUB の設定をよりユーザーフレンドリーなやり方で変更します。

5.1.12. GNOME はスクリーンリーダーへのアクセシビリティサポートを縮小しています

数多くの GNOME アプリケーションが GTK3 グラフィックスツールキットから GTK4 へ切り替えをしました。残念なことに、多くのアプリケーションが orca のようなスクリーンリーダーでとても使いづらくなっています。

あなたがスクリーンリーダーに頼っている場合は、よりマシなアクセシビリティサポートがある Mate などの他のデスクトップ環境への切り替えを検討する必要があるでしょう。この切り替えを行うには mate-desktop-environment パッケージのインストールを行います。Mate 環境での Orca の使い方についての情報はこちらになります。

5.1.13. polkit 設定についての変更点

upstream や他のディストリビューションとの整合性のため、非特権プログラムが特権システムサービスにアクセスするのを許可する polkit サービス (以前は PolicyKit) は、ローカルのポリシールールについて記述方法と配置場所を変更しました。これからは、セキュリティポリシーのカスタマイズするローカルルールを JavaScript で記述し、/etc/polkit-1/rules.d/*.rules に配置する必要があります。新しい形式を使ったルールの例は /usr/share/doc/polkitd/examples/ で、詳細は polkit(8) で参照できます。

これまでは、ルールを pkla 形式で記述し、/etc/polkit-1/localauthority または /var/lib/polkit-1/localauthority以下のサブディレクトリに配置できました。しかし、.pkla ファイルは非推奨 (deprecated) として扱われるようになり、 polkitd-pkla パッケージがインストールされている場合のみ動作しつづけることができます。このパッケージは、通常 bookworm にアップグレードする際に自動的にインストールされますが、将来の Debian リリースには含まれなくなると思われるため、上書きするローカルポリシーは JavaScript 形式に移行する必要があるでしょう。

5.1.14. merged-/usr が必須となりました

Debian は merged-/usr と呼ばれるファイルシステムレイアウトを採用し、従来のディレクトリである /bin, /sbin, /lib そして /lib64 のようなオプションを含まなくなりました。新しいレイアウトでは、従来のディレクトリはそれぞれ対応する場所である /usr/bin, /usr/sbin, /usr/lib, and /usr/lib64 に置き換えられています。つまり、例えば /bin/bash でも /usr/bin/bash でも bash を起動することになります。

For systems installed as buster or bullseye there will be no change, as the new filesystem layout was already the default in these releases. However, the older layout is no longer supported, and systems using it will be converted to the new layout when they are upgraded to bookworm.

The conversion to the new layout should have no impact on most users. All files are automatically moved to their new locations even if they were installed locally or come from packages not provided by Debian, and hardcoded paths such as /bin/sh continue to work. There are, however, some potential issues:

  • dpkg --search

    このコマンドは新しい位置に移動したファイルについて誤った答えを出します:

    dpkg --search /usr/bin/bash

    上記は bash がどのパッケージからきたのか判別できません (ですが、以下は今までどおりで期待通りに動作します。)

    dpkg --search /bin/bash

  • Local software not provided by Debian may not support the new layout and may, for example, rely on /usr/bin/name and /bin/name being two different files. This is not supported on merged systems (including new installations since buster), so any such software must be fixed or removed before the upgrade.

  • Systems that rely on a base layer that is not directly writable (such as WSL1 images or container systems using multi-layer overlayfs filesystems) cannot be safely converted and should either be replaced (e.g., by installing a new WSL1 image from the store) or have each individual layer upgraded (e.g., by upgrading the base Debian layer of the overlayfs independently) rather than dist-upgraded.

詳細な情報については、The Case for the /usr merge および Debian 技術委員会での決議を参照してください。

5.1.15. buster からのサポート外のアップグレードが libcrypt1 で失敗する

Debian は公式には安定版リリースからその次の安定版リリースへのアップグレードのみをサポートしています。つまり、bullseye から bookworm に、ということです。buster から bookworm へのアップグレードはサポートしておらず、Bug #993755 のため以下のようなエラーで失敗することになります:

Setting up libc6:armel (2.36-9) ...
/usr/bin/perl: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
dpkg: error processing package libc6:armel (--configure):
installed libc6:armel package post-installation script subprocess returned error exit status 127
        

このような特定の状況からではありますが、強制的に新しい libcrypt1 をインストールすることで手動でリカバリ可能となります:

# cd $(mktemp -d)
# apt download libcrypt1
# dpkg-deb -x libcrypt1_*.deb .
# cp -ra lib/* /lib/
# apt --fix-broken install
        

5.1.16. アップグレード後、再起動前にすること

apt full-upgrade が完了した時点で、正規のアップグレードは完了しています。bookworm へのアップグレードについては、再起動の実行前に必要となる特別な作業はありません。

5.2. アップグレード後も影響がある項目

5.2.1. セキュリティサポートにおける制限事項

Debian がセキュリティ問題に対する最小限のバックポートを約束できないパッケージがいくつか存在しています。これらについては以下の章で触れられています。

[注記]注記

debian-security-support パッケージが、インストールされたパッケージのセキュリティサポート状況を確認するのに役立ちます。

5.2.1.1. ウェブブラウザとそのレンダリングエンジンにおけるセキュリティ更新の状態

Debian 12 は複数のブラウザエンジンを含んでおり、これらは一定の割合でセキュリティ脆弱性の影響を受けます。高い脆弱性率と長期ブランチ形式での upstream でのサポートが限定的なことによって、セキュリティ修正をバックポートしてこれらのブラウザならびにブラウザエンジンをサポートする事が難しくなっています。さらに、ライブラリとの相互依存性のため、開発元での新しいリリースへの更新を極めて難しくしています。webkit2gtk ソースパッケージを使ったアプリケーション (例: epiphany) はセキュリティサポートの対象ですが、qtwebkit (qtwebkit-opensource-src ソースパッケージ) を使っているアプリケーションはセキュリティサポートの対象外です。

一般的なウェブブラウザ利用として我々は Firefox または Chromium を推奨しています。安定版向けに現行の ESR リリースをリビルドすることで最新を維持します。同じ手法が Thunderbird にも適用されます。

一旦リリースが oldstable となると、公式サポート対象のブラウザは標準的な保証期間の更新を受け続けられないかもしれません。例えば、Chromium は oldstable では通常の 12 ヶ月 ではなく 6 ヶ月のセキュリティサポートのみを受けます。

5.2.1.2. Go および Rust 言語ベースのパッケージ

現在、Debian のインフラは静的リンクを行うパッケージをリビルドすることに問題を抱えています。Go および Rust のエコシステムの成長に伴い、インフラが強化されメンテナンスが行き届くようになるまでは、限定的なセキュリティサポートとなります。

多くの場合ですが Go あるいは Rust の開発用ライブラリへの更新は、定期的なポイントリリースでのみ提供されます。

5.2.2. python インタプリタは externally-managed としてマークされます

Debian が提供する python3 インタプリタパッケージ (python3.11 および pypy3) は、PEP-668 に従って externally-managed とマークされるようになりました。Debian で提供されるバージョンの python3-pip はこれに伴って、--break-system-packages オプションが指定されない限り、Debian の python インタプリタ環境へ手作業でのパッケージインストールを拒否します。

Debian ではパッケージ化されていない Python アプリケーション (あるいはバージョン) をインストールする必要がある場合、(pipx Debian パッケージにある) pipx を使ってのインストールを推奨します。pipx は他のアプリケーションやシステムの Python モジュールから隔離された環境をセットアップし、アプリケーションとその依存関係をその環境へインストールします。

Debian ではパッケージ化されていない Python ライブラリモジュール (あるいはバージョン) をインストールする必要がある場合、可能であれば virtualenv へインストールするのを推奨しています。virtualenv は Python 標準ライブラリモジュールの venv (python3-venv Debian パッケージ内)、あるいは Python サードパーティツールの virtualenv (virtualenv Debian パッケージにあります) で作成できます。例えば、pip install --user foo を実行するのではなく、任意の virtualenv にインストールするのに mkdir -p ~/.venvs && python3 -m venv ~/.venvs/foo && ~/.venvs/foo/bin/python -m pip install foo を実行します。

詳細については /usr/share/doc/python3.11/README.venv を参照してください。

5.2.3. VLC でのハードウェアアクセラレーションを利用したビデオエンコードとデコードのサポートは制限されています

VLC ビデオプレイヤーは、VA-API と VDPAU を使ってハードウェアアクセラレーションを有効にしたビデオエンコーディング・デコーディングをサポートしています。しかし、VLC の VA-API サポートは FFmpeg のバージョンと強く結びついてしまっています。FFmpeg が 5.x ブランチにアップグレードされたので、VLC の VA-API サポートは無効にされています。ネイティブな VA-API サポートを持つ GPU (Intel や AMD の GPU) のユーザーは、ビデオの再生やエンコーディング時に高い CPU 負荷に遭遇するかもしれません。

ネイティブな VDPAU サポートを提供している GPU (non-free なドライバを利用している NVIDIA) はこの問題の影響を受けません。

VA-API サポートと VDPAU サポートについては、vainfovdpauinfo を使ってチェックできます (それぞれ同じ名前の Debian パッケージで提供されています)。

5.2.4. systemd-resolved は分割されて独立したパッケージになりました

新規パッケージ systemd-resolved はアップグレード時に自動的にはインストールされません。systemd-resolved システムサービスを利用していた場合は アップグレード後に手動で新規パッケージをインストールしてください。それから、システム上にこのサービスが存在しないため、インストールが完了するまで DNS 解決が動作しない可能性があることに注意してください。このパッケージのインストールは systemd-resolved に /etc/resolv.conf のコントロールを与えることに自動的になります。systemd-resolved の詳細については 公式のドキュメントを精査してください。systemd-resolved は過去も、そして今も Debian でのデフォルトの DNS リゾルバでは無いことに留意ください。マシンを systemd-resolved を DNS リゾルバとして設定していなければ、特に作業は不要です。

5.2.5. systemd-boot は分割されて独立したパッケージになりました

新規パッケージ systemd-boot はアップグレード時に自動的にはインストールされません。systemd-boot を利用していた場合は、この新規パッケージを手動でインストールしてください。インストールするまではブートローダーとして systemd-boot の以前のバージョンが利用される点に注意ください。このパッケージをインストールすると、自動的に systemd-boot をこのマシンのブートローダーとして設定します。Debian でのデフォルトのブートローダーは依然として GRUB です。以前にこのマシンがブートローダーとして systemd-boot を使うように設定していない場合、特に作業は要りません。

5.2.6. systemd-journal-remote は GnuTLS を使わなくなりました

任意のサービス systemd-journal-gatewayd および systemd-journal-remote は GnuTLS サポート無しでビルドされるようになりました。これはどちらのプログラムでも --trust オプションが無くなり、もし指定した場合はエラーが返されるようになったということです。

5.2.7. bookworm に向けた adduser の大幅な変更点

様々な変更が adduser にあります。最も目立つ変更点は --disabled-password および --disabled-login が文字通り動作するようになったことです。より詳細については /usr/share/doc/adduser/NEWS.Debian.gz を参照してください。

5.2.8. 予測可能な Xen のネットワークインターフェイス名

systemd でのネットワークインターフェースに関する予測可能な命名規則ですが、Xen の netfront デバイス情報での固定名の生成にまで拡張されています。これはインターフェイスが以前のカーネルにアサインされたシステム名ではなく、enX# という形式の固定名を持つということを意味しています。アップグレード後、再起動の前にシステムを調整してください。他の情報については NetworkInterfaceNames wiki page を参照してください。

5.2.9. dash でのサーカムフレックス (^) の扱いの変更

Debian でシステムシェル /bin/sh をデフォルトで提供する dash ですが、これまでのように POSIX 互換の挙動を意図しているところから、サーカムフレックス (^) をリテラル文字として扱うように変更しました。これは bookworm では [^0-9]0 から 9 ではないという意味ではなく、0 から 9 と ^という意味になるということです。

5.2.10. netcat-openbsd が抽象ソケットをサポートしました

ネットワーク接続間でデータを読み書きする netcat ユーティリティが 抽象ソケットをサポートし、いくつかの状況下ではデフォルトで利用するようになっています。

デフォルトの状態では netcatnetcat-traditional によって提供されています。しかし、netcatnetcat-openbsd パッケージによって提供されていて AF_UNIX ソケットを使っている場合、この新しいデフォルト設定が適用されます。この場合、 nc コマンドの -U オプションは @ で始まる引数をカレントディレクトリにある @ で始まるファイル名ではなく、抽象ソケットの要求であると解釈するようになっています。ファイルシステムのパーミッション設定が抽象ソケットへのアクセス制御に使えなくなくなるため、これはセキュリティに影響を与える可能性があります。./ をファイル名のプレフィックスに使う、あるいは絶対パスを指定すれば、@ から始まるファイル名を使い続けることができます。

5.3. 廃止および非推奨となった事柄について

5.3.1. 特記すべき廃止されたパッケージたち

以下は、よく知られていて特に廃止されたパッケージの一覧です (説明については 「利用されなくなったパッケージ」 参照)。

廃止パッケージの一覧には以下が含まれます:

  • libnss-ldap パッケージは bookworm から削除されました。この機能は libnss-ldapd ならびに libnss-sss によってカバーされています。

  • libpam-ldap パッケージは bookworm から削除されました。代替は libpam-ldapd となります。

  • fdflush パッケージは bookworm から削除されました。代わりとして、 util-linuxblockdev --flushbufs を利用してください。

  • GDAL の Perl バインディングは upstream でサポートされなくなったため、libgdal-perl パッケージは bookworm から削除されています。GDAL の Perl サポートを必要とする場合は、CPAN で入手可能な Geo::GDAL::FFI パッケージが提供する FFI インターフェイスに移行できます。BookwormGdalPerl Wiki ページに記述されているように、自前でバイナリをビルドする必要があります。

5.3.2. bookworm で非推奨となったコンポーネント

次のリリースである Debian 13 (コードネーム trixie) では、いくつかの機能が非推奨となります。13 へ更新する際にトラブルを防ぐためには、ユーザーは他の選択肢へ移行する必要があります。

これには以下の機能が含まれます:

  • NSS サービス gw_name の開発は2015年に停止しました。関連パッケージ libnss-gw-name は将来の Debian リリースにて削除される可能性があります。upstream の開発者は代わりに libnss-myhostname の利用を推奨しています。

  • dmraid は upstream での活動が2010年終わりから見られず、Debian でのサポートを受けている状態でした。bookworm がこれを含む最後のリリースとなるので、dmraid を利用している場合は対応の計画を適宜してください。

  • request-tracker4 はこのリリースで request-tracker5 に置き換えられました。そして request-tracker4 は将来のリリースで削除されます。今回のリリースのサポート期間内で request-tracker4 から request-tracker5 への以降を計画しておくことをお勧めします。

  • The isc-dhcp suite has been deprecated by the ISC. The Debian Wiki has a list of alternative implementations, see DHCP Client and DHCP Server pages for the latest. If you are using NetworkManager or systemd-networkd, you can safely remove the isc-dhcp-client package as they both ship their own implementation. If you are using the ifupdown package, you can experiment with udhcpc as a replacement. The ISC recommends the Kea package as a replacement for DHCP servers.

    The security team will support the isc-dhcp package during the bookworm lifetime, but the package will likely be unsupported in the next stable release, see bug #1035972 (isc-dhcp EOL'ed) for more details.

5.4. 既知の重大なバグ

「Debian は準備が出来たらリリースされる (Debian releases when it's ready) 」とはいうものの、それは残念ながら既知のバグが存在しないという意味ではありません。リリース作業の一環として、深刻度 (severity) が「重大 (serious)」以上のすべてのバグはリリースチームが精力的に追いかけていますが、 bookworm リリース作業の最終工程において「無視をする (ignored)」とタグ付けがされたこれらのバグ一覧Debian バグ追跡システムで確認ができます。以下のバグはリリース時に bookworm へ影響があったものであり、このドキュメント中で触れる価値があるでしょう:

バグ番号パッケージ名 (ソースあるいはバイナリ)説明
1032240akonadi-backend-mysqlakonadi server fails to start since it cannot connect to mysql database
918984src:fuse3fuse -> fuse3 のアップグレードパスを bookworm に向けて提供指定ください
1016903g++-12tree-vectorize: O2 レベルで間違ったコードが生成される (-fno-tree-vectorize は動作している)
1020284git-daemon-runpurge に失敗する: deluser -f: Unknown option: f
919296git-daemon-run以下のメッセージで失敗する 'warning: git-daemon: unable to open supervise/ok: file does not exist'
1034752src:gluegen2non-free なヘッダを含む
1036256src:golang-github-pin-tftptesting での FTBFS (ソースからのビルドに失敗): dh_auto_test: error: cd _build && go test -vet=off -v -p 8 github.com/pin/tftp github.com/pin/tftp/netascii returned exit code 1
1036575groonga-binDepends: libjs-jquery-flot, libjs-jquery-ui が欠落している
1036041src:grub2upgrade-reports: Dell XPS 9550 が bullseye から bookworm へのアップグレード後に起動に失敗する - grub/bios 関連のバグ?
558422grub-pcアップグレードがハングする
913916grub-efi-amd64grub2 2.02~beta3-5+deb9u1 への更新後、UEFI 起動オプションが削除された
924151grub2-commonefi での起動と全体が暗号化されたディスクに対する誤った grub.cfg
925134grub-efi-amd64grub-efi-amd64-signed: cryptodisk をマウントしない
945001grub-efi-amd64GRUB-EFI がブート関連変数を変更する
965026grub-emugrub-emu を root で実行した際に linux コンソールでハングする
984760grub-efi-amd64アップグレードは動作するが起動に失敗する (error: symbol `grub_is_lockdown` not found)
1036263src:guestfs-toolstesting での FTBFS (ソースからのビルドに失敗): make[6]: *** [Makefile:1716: test-suite.log] Error 1
916596iptablesiptables.postinst スクリプトがリンク作成に失敗する
919058itstoolits-tools: xmlDocs の開放時にクラッシュする
1028416kexec-toolssystemctl kexec が正しくシステムをシャットダウンせず、マウントしたファイルシステムが破損する
935182libreoffice-core同一ホスト上で並行してファイルをオープンするとファイルが消去される
1036755src:linux6.1.26 <= x < 6.1.30 では mmap(MAP_32BIT) を使っているアプリケーションを阻害する [ganeti に影響]
1036580src:llvm-defaultsbullseye からのスムースなアップグレードために依存関係に Breaks を追加してください
1036359elpa-markdown-toc(wrong-type-argument consp nil) でクラッシュします
1032647nvidia-driver525.89.02-1 へのアップグレード後に観血的にスクリーンが空白状態になる
1029342openjdk-17-jre-headlessjexec: can't locate java: No such file or directory
1035798libphp8.2-embed/usr/lib/libphp.so -> libphp8.2.so への SONAME のシンボリックリンクが含まれていません
1034993software-properties-qtbullseye からのアップグレード時に必要な software-properties-kde パッケージへの Breaks+Replaces 依存関係が欠落しています
1036388sylpheedメールチェック時にアカウントがリセットされます
1036424sylpheedreplying to an email you sent doesn't set account accordingly
994274src:syslinuxgnu-efi 3.0.13 で FTBFS (ソースからのビルドエラー) を起こします
1031152system-config-printersystem-config-printer の解除ボタンがパーミッションの上昇ダイアログを表示しません
975490u-boot-sunxiA64-Olinuxino-eMMC が "Starting kernel ..." で起動がスタックします
1034995python-is-python3bullseye からのアップグレード時に必要な python-dev-is-python2 パッケージへの Breaks+Replaces がありません
1036881whiteduneセグメンテーション違反を起こします
1036601xenstore-utilsDepends: xen-utils-common が欠落しています
1036578python3-yadePython モジュールを含んでいません