Ubuntu 22.04 LTSがリリースされて2か月ほど経過し、大きな不具合は修正されつつあります。一方、20.04 LTSから22.04 LTSへのアップグレードが始まるまではまだ少し間があります。そんなタイミングなので、新たにUbuntuをインストールする場合にも、アップグレードする場合にも、パッケージとの付き合い方を考え直すいい機会ではないでしょうか。
今回は、Ubuntuでベースのシステムは安定させつつ、アプリケーションは新しいバージョンを使用したい場合のセットアップ方法を紹介します。
Ubuntuとセミローリングリリース
Ubuntuは原則として一度リリースされたらパッケージのバージョンを大きく変更することはありません。しかしご存知のとおり例外はたくさんあり、LTSのカーネルはポイントリリースで上がっていきますし、Firefoxのバージョンもガンガン上がっていきます。
一方でより多くの最新版パッケージを使用したいというのもニーズとして存在するのは理解します。その場合はローリングリリースという手法のLinuxディストリビューションを使用することになりますが、Debianのように不安定版とテスト版はローリングリリース、不具合を充分に修正したあとリリースという両方の特徴を持つものもあります[1] 。
これはもう良し悪しではなく何が好みかで選択するしかないのですが、ローリングリリースは常に誰かがテストしていて不具合は即座に修正されるという幻想を抱きがちです。筆者の経験からいって現実としてそのようなことはなかなかなく、やはりリリース前に集中的にテストを行って不具合を見つけ、それを修正するというのが確実のように思います[2] 。
[2] Ubuntu 22.04 LTSのリリース前に筆者が見つけたいくつかの不具合はDebian unstableやtestingにもありましたが、結局誰からも報告すらされていませんでした。他にも理由はありますが、このような体験により筆者はローリングリリースに関して懐疑的です。
となると、ベースのシステムは安定版を使用し、アプリケーションは新しいものを使用するのがバランス良さそうに思えてきます。特にUbuntuは前述のとおりポイントリリースでカーネルのバージョンが上がっていくため、新しいハードウェアへの対応もある程度テストがなされた状態で行われます。
Ubuntuにはインストール時に「最小インストール」オプションが選択できます。このオプションを選択すると、インストールされるアプリケーションが必要最低限のものになり、今回の用途にピッタリ合致しそうです。
ではアプリケーションはというと、第513回 で紹介したFlatpakが今回の用途に合致します。Flatpakのパッケージ(より正確にはリポジトリであるFlathubにあるパッケージ)はシステムのバージョンを問わず新しいものが使用できます。
snapパッケージでももちろんいいのですが、Flatpakはアプリケーション用に開発されたパッケージの仕組みです。あくまで筆者の主観ではあるものの、Flatpakのほうがたくさんのアプリケーションが提供され、バージョンアップも迅速に提供されています[3] 。
長くなりましたが、今回はUbuntuの最小インストールとFlatpakを組み合わせ、「 セミローリングリリース」とでもいうべき状態を作り上げる手法を紹介します。
とはいえ筆者にとっては昨日今日思いついたものではなく、第715回 で紹介したThinkPad X13 Gen2 AMDではすでに今回の手法を採用しています。また、古いバージョンのUbuntuを何度もアップグレードして使用していることも多いのですが、少しずつパッケージの移行を進めていっています。
今回の手法のメリット
今回の手法のメリットは、最新版のアプリケーションを使用できるのはもちろんそうなのですが、Ubuntuにインストールされているパッケージが必然的に減るので、スムーズなアップグレードが期待できます。
どういうことかというと、そもそもインストールされているパッケージが少なければ少ないほどアップグレードに成功する可能性が上がります。そしてFlatpakは前述のとおりシステムのバージョンは問いません。よってシステムのバージョンが上がってもFlatpakのパッケージは同じバージョンが使用できます。こういった点でスムーズになるわけです。
とはいえ、もちろんリリースノートを読む、変更点を把握するなどは必要ではあるのですが、失敗が怖くてアップグレードを引き伸ばしたり、いちいち再インストールしたりするようなことは格段に少なくなるはずです。
最小インストールを選択する
最小インストールするかどうかはインストールの時点で決定する必要があります。図1 のように「アップデートと他のソフトウェア」で「最小インストール」を選択してください。
図1 インストール時に「最小インストール」を選択する
Flatpakのインストール
UbuntuにFlatpak関連パッケージをインストールする方法はUbuntu Quick Setup に記述されています。要約すると次のコマンドを実行することになります。
$ sudo apt install flatpak gnome-software-plugin-flatpak
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
インストール完了後、再起動してください。
このガイドにはUbuntu 18.10未満はリポジトリにあるFlatpakをインストールすると言及されていますが(PPAを追加する必要はないという意味です) 、紹介されているPPA を見てみると20.04 LTS向けのパッケージが提供されているため、必要があればこのPPAを追加してパッケージをアップデートしてください。同様に、今後22.04 LTS向けのアップデートもこのPPAで提供される可能性があります。
最初に「gnome-software-plugin-flatpak」パッケージもインストールしていますが、「 Ubuntu Software」がFlatpak未対応のため、「 ソフトウェア」( 正確には「ソフトウェア」のFlatpakプラグイン)が必要なのです。「 Ubuntu Software」と「ソフトウェア」はおおむね同じ働きをするため、以後は前者ではなく後者を使用していくのがいいでしょう(図2 ) 。
図2 「 Ubuntu Software」の代わりに「ソフトウェア」をDockに登録し、起動したところ
Flatpakパッケージのインストール
Flatpakパッケージは「ソフトウェア」を使用したGUIとコマンドラインからインストールの両方で行えますが、今回は前者のみ紹介します。
とはいえ「ソース」が「Flathub(Flatpak)」になっているものを選択してインストールするだけで、snapパッケージやDebianパッケージのインストール方法と何ら変わることはありません(図3 ) 。
図3 GIMPはFlatpak/snap/Deianパッケージがリポジトリに存在する
Flatpakパッケージのアップデート
Flatpakパッケージのアップデートは原則としては自動的に実行されますが、「 ソフトウェア」の「アップデート」から更新もできます(図4 ) 。
図4 「 ソフトウェア」の「アップデート」には更新できるFlatpakパッケージ(とsnapパッケージ)が並ぶ
Flatpakパッケージのメンテナンス
Flatpakにはアプリケーションを動作させるためのランタイムが必要となります。当然のことながらプリケーションのバージョンアップに伴ってランタイムのバージョンも上がっていきます。
しかし古いバージョンのラインタイムは自動削除されないため、たまに次のコマンドを実行して削除してください。
$ flatpak uninstall --unused
図5 がこのコマンドを実行し、不要になったランタイムが削除リストとして表示されたところです。
図5 不要なランタイムが表示されている
インストール後の「最小インストール」化
Ubuntuは、原則としてはインストールされているパッケージは削除しないほうがいいのですが、実は「最小インストール」は一度すべてのパッケージをインストールしたあとリストにあるパッケージを削除しています。よってこのリストにあるパッケージを削除すると「最小インストール」と同等になります。
そのリストは22.04 LTS用 、20.04 LTS用 などリリースごとに存在しています。
リストによると最小インストールの場合はThunderbirdは削除されるはずですが、図2のDockにはThunderbirdアイコンがありますし、またアプリケーショングリッドにはLibreOfficeのアイコンもあります。おそらく何らかの依存関係によって残っていると思われますが、いずれも不要であれば削除してしまって構いません。
snapパッケージのほうがいいアプリケーション
本稿ではFlatpakをお勧めしましたが、図3でわかるようにDebianパッケージやsnapパッケージにも同じアプリケーションがリポジトリに存在することもあります。たいていの場合はsnapパッケージよりFlatpakパッケージを選択したほうがいいのですが、筆者が確認している範囲では第653回 で紹介した「Déjà Dup」と第661回 で紹介した「Remmina」に関してはsnapパッケージのほうがお勧めで、「 Visual Studio Code /VSCodium 」に関してはDebianパッケージ版がお勧めです。