Ubuntu 26.04 LTS ベースの Snap アプリが開発可能に
Ubuntu Core 26 登場により、Ubuntu 26.04 LTS ベースの Snap アプリを開発できるようになりました。Ubuntu Core 26 のリリース情報
Ubuntu Core 26 のリリース情報や紹介は、以下を参照してください。core26
core26 は base snap で指定する識別子です。core26 を指定することで、Ubuntu 26.04 LTS の公式リポジトリーを活用してアプリをビルドできるようになります。
ちなみに新規に Snap アプリを開発するなら、現時点で最新の core26 の指定が推奨されています。
現在 core24 を利用している開発者は
以下で core24 から core26 へ移行するための移行ガイドが提供されています。現在 core24 を利用し core26 への移行を検討している開発者は、以下の移行ガイドを参考にし core26 へ移行すると良いでしょう。
Snapcraft 9.0 の新機能と変更点
Snapcraft は Snap パッケージをビルドするためのツールです。Snapcraft 9.0 がリリースされ、core26 でアプリをパッケージングできるようになりました。
Snapcraft 9.0 には core26 の対応以外にも、新機能や変更点が含まれています。
いくつか新機能や変更点を紹介します。
GPU extension
Snap アプリは OpenGL や Vulkan といったハードウェアアクセラレーションを利用して、アプリのコンテンツを描画することができます。しかしアプリが GPU ライブラリーにアクセスするには、大抵の場合完全なデスクトップ拡張が必要になり、それが複雑さやビルド時間の増加につながっていました。
この状況を改善するため、GPU extension が追加されました。
GPU extension は GPU のハードウェアアクセラレーションを利用したいアプリ向けの拡張です。
GPU extension は core22 以降に対応しています。
もし Snap アプリが GPU のハードウェアアクセラレーションを利用するために GNOME などのデスクトップ拡張を導入している場合は、GPU extension に変えることでシンプルな構成に変更できます。
GPU linter
GPU linter(リンター) が追加されました。リンターはビルド内容をチェックするツールです。
GPU linter は Snap アプリをビルドする際、Snap パッケージが独自に GPU ライブラリーを同梱(stage-packages)しようとしている時に、GPU content snap を使用するように促します。
.NET extensions
.NET extensions は .NET でビルドされたアプリ向けの拡張です。.NET extensions が安定版になり、SNAPCRAFT_ENABLE_EXPERIMENTAL_EXTENSIONS 環境変数の指定が不要になりました。
Bazel plugin
Bazel plugin を利用できるようになりました。Bazel plugin は Bazel でソフトウェアをビルドするプロジェクト向けのプラグインです。
npm Use plugin と NPM Plugin
npm Use plugin を利用できるようになりました。npm Use plugin は npm の tarball をローカルディレクトリーへエクスポートするプラグインです。
NPM Plugin は NPM や Yarn をパッケージマネージャーとして利用する Node.js プロジェクト向けのプラグインです。
NPM Plugin で self-contained ビルド属性がサポートされました。
これらの改良により、npm parts でローカルのソースからソフトウェアをビルドできるようになりました。
Maven Use plugin
Maven Use plugin を利用できるようになりました。Maven Use plugin は、Maven のアーティファクトをローカルリポジトリーに配置し、他のMaven の parts がローカルソースからビルドできるようにするためのプラグインです。
7zip のサポート改善
parts で指定する 7zip ファイルの拡張子に .7z が指定できるようになりました。後方互換性の破壊的変更
Snapcraft 9.0 や core26 では、後方互換性の破壊的変更が含まれています。いくつか紹介します。
core20 に非対応
core20 に非対応になりました。引き続き core20 でソフトウェアをパッケージングしたい場合は、Snapcraft 8 を利用してください。
コマンド名の変更
Snapcraft 8 で使い勝手向上のため、コマンド名の見直しや整理が行われました。それらのコマンド名は Snapcraft 8 で非推奨のコマンド名として警告が表示されていましたが、Snapcraft 9 ではそれらのコマンド名が削除されました。
コマンド名が変更になったコマンドの一覧は、以下を参照してください。
コマンドラインオプションの削除
一部のコマンドラインオプションが環境変数に移され削除されました。削除されたコマンドラインオプションと移行先の環境変数の一覧は、以下を参照してください。
snapcraftctl の削除
Snapcraft 8 では、core22 や core24 を対象にした Snaps で、snapcraftctl コマンドが非推奨になり、代わりに craftctl の使用が推奨されていました。
core26 では snapcraftctl コマンドが削除され、craftctl を使用する必要があります。
ただし core22 や core24 では、引き続き snapcraftctl コマンドも利用可能です。
part 名の文字種制限
core26 では part 名に / は使用できなくなりました。
代わりに - を使用するなど、別の文字を使用してください。
Python ランタイムを同梱しなくなった
core26 で Python ランタイムは同梱されなくなりました。
これは多くの Snap アプリが自分で Python ランタイムを同梱しており、core が提供する Python ランタイムの同梱は不要であると判断されたためです。
