去る2019年7月6日に、Ubuntuの母であるDebianの新しいリリースであるDebian 10(コードネーム"Buster")がリリースされました。今回のUbuntu Weekly Recipeでは、このDebian 10 "Buster"について紹介します。
UbuntuとDebianの関係
Debian Projectは「フリーなオペレーティングシステムを作成するために連携した個人の集団」であり、OSとしてのDebianはその成果物です。Debianは開発初期から今まで一貫してフリーであることを重視しており、Debianとしてリリースされているパッケージ群はライセンスが明瞭であることで知られています。aptによるパッケージ群の扱いやすさも相まって、Debianは多くの派生ディストリビューションの母体となっています[1]。
本連載のタイトルにもなっているUbuntuもDebianをベースにした派生ディストリビューションの一つです。Ubuntuは、Debianの開発者であったMark Shuttleworthが「誰にでも使いやすい最新かつ安定したOSを提供すること」を目指して作成したLinuxディストリビューションです。UbuntuはDebianから分離独立したわけではなく、母体であるDebianと成果を交換できる開発フローを用意しており、Ubuntuによる変更点はDebianのソースパッケージに対するパッチとして還元されています[2]。Ubuntu側は半年のリリースの度にDebianの最新開発版のパッケージリポジトリをリベースし、必要に応じて独自の変更点を適用しなおし、バイナリパッケージを再構築しています。
以上のことから、Debianの安定版の状況を知ることはUbuntuを上手く使う・次期リリースに向けた開発状況を理解するためにも有用です。
Debian 10: "Buster"
冒頭で触れたとおり、Debian 10 "Buster"は、2019年7月6日にリリースされました。前安定版Debian 9 "Stretch"のリリースが2017年6月17日でしたので、おおよそ2年ぶりのリリースとなります。Debian Projectではリリース作業のうち「フリーズ」という期間[3]を2年毎に設けているため、安定版のリリースも約2年ごとに行なわれています。
Debian 3.0のリリース(2002年7月19日)からDebian 3.1のリリース(2005年6月6日)まで約3年の月日を費したためか、もう15年程前の話なのに「Debianのリリースは遅い」という声が聞こえてきたりするのはなかなか寂しい限りなので、もう一度書いておきます[4]。
Debian 10 "Buster"はおおよそ2年ぶりのリリースとなります。
Debianのコードネームは映画「Toy Story」のキャラクターからつけられており、Debian 10のコードネーム"Buster"はアンディの飼い犬です。なお、次期バージョンのコードネームは"Bullseye"であることが決まっていたりします。
サポートするアーキテクチャは、以下の10種類です。
- 32bit PC:
i386
- 64bit PC:
amd64
- 64bit ARM:
arm64
- ARM EABI:
armel
- ARMv7:
armhf
- MIPS big endian:
mips
- MIPS little endian:
mipsel
- 64bit MIPS little endian:
mips64el
- 64bit PowerPC little endian:
ppc64el
- IBM System z:
s390x
収録ソフトウェア等のバージョンは以下のとおりです。
Apache |
2.4.38 |
2.4.25 |
Nginx |
1.14 |
1.10 |
Lighttpd |
1.4.53 |
1.4.45 |
BIND DNSサーバ |
9.11 |
9.10 |
OpenSSH |
7.9p1 |
7.4p1 |
Exim(標準の電子メールサーバ) |
4.92 |
4.89 |
Dovecot MTA |
2.3.4 |
2.2.27 |
Postfix MTA |
3.3.2 |
3.1.8 |
MariaDB |
10.3 |
10.1 |
PostgreSQL |
11 |
9.6 |
Samba |
4.9 |
4.5 |
Linuxカーネルイメージ |
4.19シリーズ |
4.9シリーズ |
GNU Cライブラリ |
2.28 |
2.24 |
Cryptsetup |
2.1 |
1.7 |
GNU Compiler Collection(デフォルトのコンパイラ) |
7.4および8.3 |
6.3 |
LLVM/Clangツールチェイン |
6.0.1および7.0.1(デフォルト) |
3.7 |
OpenJDK |
11 |
8 |
PHP |
7.3 |
7.0 |
Perl |
5.28 |
5.24 |
Python 3 |
3.7.3 |
3.5.3 |
Rustc |
1.34 |
- |
Emacs |
26.1 |
24.5および25.1 |
Vim |
8.1 |
8.0 |
GnuPG |
2.2 |
2.1 |
GIMP |
2.10.8 |
2.8.18 |
Inkscape |
0.92.4 |
0.92.1 |
GNOME3 |
3.30 |
3.22 |
KDE Plasma |
5.14 |
5.8 |
Cinnamon |
3.8 |
3.2 |
MATE |
1.20 |
1.16 |
Xfce |
4.12 |
4.12 |
LXDE |
0.99.2 |
0.99.0 |
LXQt |
0.14 |
0.11 |
収録パッケージは前バージョンの頃から、新規に13,370増えて57,703となっています。一方で、前バージョンに収録されていたパッケージの約13%にあたる7,278以上のパッケージが、様々な理由(上流での開発中止やセキュリティ対応不足など)でディストリビューションから取り除かれました. いくつかのソフトウェアは現在upstreamが提供している最新版にくらべて1世代古い版となっています。この理由はDebianのFreezeのタイミングとupstreamのリリースのタイミングがズレてしまったからです。これらソフトウェアや悲しいことにリリース作業に間に合わなかったいくつかのパッケージは、今後backportsにて提供される予定です。
また、上記の表には載せませんでしたが、Python 2.x系列としてPython 2.7が収録されています。コマンドとしてpython
を実行するとpython 2.7が起動しますので、python3.x系列を利用したい場合には明示的にpython3
を実行してください。ただし、今後のリリースにおいてはPython2.x系列はすべて削除される予定ですので、なるべく早めにPython3.x系列へ移行しておくのが良いでしょう。
Debian 10での主な変更点
それではDebian 10 "Buster"がどう変わったか、Debian 9 "Stretch"からの主な変更点を見ていきましょう。
なお、以下の内容はDebianのリリースノートから、ユーザに関連しそうな大きな変更点を抜粋した版です. より細かい変更点や、詳細な内容、一次情報についてはリリースノートを確認してください。
新規インストール時のmerged /usr
「主な変更点」と言いつつ、最初は地味な変更点で恐縮ですが、説明の都合上最初に取り上げたほうが楽でしたので、まずは「merged /usr」から紹介します。
Debianを新規にインストールした場合には、/bin,/sbin/,/libといったディレクトリの中身は/usr 以下の対となるディレクトリにインストールされ、/bin,/sbin,/libといったディレクトリはすべて/usr/以下の対となるディレクトリを指すシンボリックリンクとなります。
この変更(merged /usr)についての詳細はFreedesktop.orgのWikiを参照してください。
多くのユーザにとってmerged /usrはあまり影響の無い変更でしょう。ただし、自分でスクリプトを書いていたり、サードパーティ製のソフトウェアを利用しているユーザは、実行ファイルのパスが変わる可能性もありますので、注意したほうが良いかもしれません。
なお、アップグレードの際にはこの変更は行なわれません。もし新規インストールと状況を揃えたい場合にはusrmerge
パッケージが提供するコマンドが役に立つでしょう。
GNOMEのデフォルトがWaylandに
ユーザの利便性という点では非常に重要な点かもしれません。
Debianはデスクトップ環境を「決め打ち」してはいませんが、何も選択しない場合のデフォルトのデスクトップ環境はGNOMEです。このGNOMEがデフォルトではXorgではなくWaylandで動作するようになりました。環境によってはWaylandのほうがセキュリティやパフォーマンスの面で優れているでしょう。
一方で、これまで通りXorgのサーバも標準でインストールされ、利用可能です。Waylandに対応していないソフトウェアの利用を考えている時や、ディスプレイマネージャーのアクセシビリティ機能が必要となるユーザはXorgを用いたほうが良いでしょう。
Busterインストール後にXorgの利用に切り替える場合には/etc/gdm3/daemon.conf
を以下のように編集します。
編集後に再起動してみてください。gdm3およびGNOMEがXorgで起動するようになります。
UEFI Secure Boot対応
UEFI Secure Bootは、UEFIにおいて署名されていないコードの実行を防止するこで、bootkitやrootkitから計算機を保護する機能です。Debian 10 "Buster"より、SecureBootが有効となった機材にもインストールが可能となっています。
また、既存のDebianシステムにおいても、アップグレードの際にshim-signed
、 grub-efi-amd64-signed
あるいはgrub-efi-ia32-signed
、LinuxカーネルパッケージをインストールすればSecure Bootを有効にできます。
一方で、「イメージの改竄を検出する」というSecureBootの機能の代償として一部の機能制限があります[5]。自身が利用するシステムにおいてSecureBootを有効にするかどうかは良く考えておく必要がありそうです。
AppArmorの有効化
AppArmorはLinuxのセキュリティモジュールの一つで、プログラム毎にプロファイルを定義し適用することでプログラムの権限を制約することができる、強制アクセスコントロールシステムです。Debian 10 "Buster"より、LinuxイメージパッケージのRecommends(推奨)依存関係として、このこのAppArmorが導入され有効化されるようになりました。とはいえ、apparmor
パッケージは基本的なプロファイルを提供するのみですから、apparmor-profiles-extra
パッケージも導入しておくのが良いでしょう。
なお、AppAromorの利用は「強制」ではありません. 依存関係はRecommends(推奨)ですから、インストール時に「推奨」を外していた場合にはAppAromorは導入されません(削除も可能です)。
ネットワークフィルタリング機能のnftablesへの変更
Busterからはiptables
パッケージが提供するiptablesコマンドの実体がiptables-nftになっています。これはLinuxカーネルのnf_tablesを利用してネットワークフィルタリングを行なうコマンド群です。フィルタリングルールの書き換えを後回しにしたい場合には、update-alternativesコマンド等を利用して、iptablesとしてiptables-legacyを利用するようにしてください。
なお、これらはあくまでiptablesコマンド群から移行できないユーザ向けの話です。nftablesはiptablesとフィルタリングルールの文法が異なるものの、機能面では完全に上位互換であり、かつ、性能の改善、IPv4/v6混在環境での使いやすさ、動的なルールセットのアトミックな適用などといった多くの利点があります。将来を見据えてnftablesへ移行することが強く推奨されています。
Debian 10を試す、Liveイメージ!
Debian 10を試すにはLiveイメージが便利でしょう。利用したいDesktop環境毎に、Debian 10のLiveイメージが提供されています。「GNOME」「KDE」「LXDE」「LXQt」「Xfce」「Cinnamon」「MATE」それぞれのLiveイメージがダウンロード可能です。
このLiveイメージにはインストーラとして「Calamaresインストーラ」が同梱されています。既存のDebianインストーラのすべての機能に対応している訳ではありませんが、DesktopへDebianを導入する際には非常に直感的に利用できると期待しています。
また、Debian LiveチームはGUI環境を含まないLiveイメージである「standard」の提供を復活させました。GUIの不要なDebian環境を導入する場合には、既存のインストーラを利用するよりも(圧縮されたイメージをディスクに展開するだけですので)短時間でインストールが終わるようになっています。是非活用してください。
最後に
本稿ではDebian 10 "Buster"について駆け足で紹介しました。
個々のディストリビュータはそれぞれの開発方針で最新の「リリース」を提供しています。目指すところが同じこともあれば、違うこともあったりして、同じ(ような)ソフトウェアを提供しているにもかかわらず総体としては全然違う顔付きになったりします。普段Ubuntu一辺倒の人も、たまには別のディストリビューションを試してみるのはいかがでしょうか。ということで、この機会に是非Debianを触ってみてください。