kledgeb UbuntuやLinuxの最新情報を紹介

Ubuntu 16.04 その32 - 新しいパッケージ形式であるSnappyパッケージが利用可能に・debパッケージと共存可能

Snappy

  「Ubuntu 16.04」では、「Canonical」が開発した新しいパッケージ形式である「Snappy」パッケージが利用可能になります。


  • Adding snaps for secure, transactional packages in Ubuntu 16.04 LTS

  「Snappy」は、「Ubuntu Touch」ですでに導入されている仕組みです。
  debパッケージがそうであるように、「Snappy」パッケージもアプリケーションなどのソフトウェアをパッケージにしたものです。

  「Snappy」を略して「snap」や複数形の「snaps」と表記します。

  なぜsnapを開発しUbuntu 16.04で導入するのか

    上記のアナウンスから関係するところを抜粋します。
  
Ubuntu Phoneプラットフォームの開発及びUbuntu PhoneプラットフォームのIoTやデバイスへの展開において、我々はセキュリティーや信頼性の本質的な問題の解決に取り組む必要があった。

これらの問題はデスクトップやサーバーシステムにも同様に当てはまる。

新しいバージョンのKDEやGNOME、ブラウザー、その他デスクトップ環境のアプリは、大抵古いバージョンのUbuntu LTS版でも簡単にビルドできるだろう。
しかしdebパッケージの作成やアップデートの提供は複雑であり、我々が古いバージョンのUbuntu LTS版に新しいバージョンのソフトウェアを提供することは困難である。

これらの問題はUbuntu LTS版でより新しいバージョンのソフトウェアを必要とするユーザーや開発者達を、落胆させる原因になっている。
これらの状況を踏まえ我々は、snapパッケージフォーマットとsnapを操作するツールを開発した。

snapパッケージを利用すると、開発者はより新しいバージョンのアプリをUbuntu 16.04に導入できる。

  debパッケージと共存可能

    現在Ubuntuで広く使われているdebパッケージとsnapパッケージは共存可能です。
    そのため、ユーザーは特に意識すること無く今までどおりの操作でdebパッケージのインストールやアップデート等の操作を行うことができます。

    従って、既存の何かの機能を置き換えるものではなく、新しい機能が追加されたと捉えると良いでしょう。

Ubuntu 16.04では、debパッケージだけでなくsnapパッケージもインストールできるようになる。
これら2種類のパッケージフォーマットは、お互い完全に共存できる。
そのため、OSの開発やアップデートといった我々の既存の作業も継続して行えるし、Debianコミュニティーとの関係も強化しつつ、開発者やコミュニティーはUbuntuのユーザーにsnapパッケージもしくはdebパッケージでソフトウェアを提供できる。

    もしユーザーが使いたいアプリがsnapパッケージでのみ提供されている場合、ユーザーはそのsnapパッケージをインストールすれば良いです。

    もし同じアプリがdebパッケージでもsnapパッケージでも提供されている場合、利用したい方のパッケージをインストールすれば良いです。
    違いはそのアプリの開発者が紹介してくれるでしょう。
    例えば、アプリのバージョンの違いや、アプリがサポートしているUbuntuのバージョンの違いなどです。
    もちろん両パッケージは共存可能なので、両パッケージをインストールすることも可能です。

  snapは既存のシステムや他のアプリに影響を与えない

    debパッケージとsnapパッケージが共存できる理由がこれです。

snapパッケージのセキュリティーの仕組みにより、snapアプリケーションは既存のシステムから切り離されて配置されるため、ユーザーは他のアプリやシステムに与える影響を心配すること無く、snapアプリケーションをインストールできる。

    snapパッケージは取り外し可能なパーツであり、アプリが動作するのに必要な環境をすべて備えており、snapアプリケーションはsnapパッケージが提供する環境で完結して動作できる、ということです。

    なのでsnapパッケージには、アプリが動作するのに必要なライブラリー等がすべて含まれています。

  ユーザーが受けるメリット以上に開発者が受けるメリットの方が大きい

    snapパッケージの導入によるメリットは、ユーザーが受けるメリット以上に開発者が受けるメリットがの方が大きいです。

開発者は、アプリの更新周期を都合の良い更新周期に設定し、アプリと特定のバージョンのライブラリーをセットにしてユーザーに提供できる。
そしてsnapパッケージのトランザクショナルアップデートにより、安定性と信頼性も提供できる。

Ubuntu 16.04にsnapパッケージを導入することで、開発者はPC向け、サーバー向け、モバイル向け、そしてIoTデバイス向けにソフトウェアを一元的に開発・提供できるようになる。

Snapcraftはsnap開発のためのツールである。
Snapcraftを利用すれば開発者は、アプリや依存するライブラリーを簡単にパッケージ化できる。
開発者はsnapパッケージで開発することで、テスト用の環境を用意したり仮想マシンで環境を用意しなくても、自分のデスクトップで開発やテストが行えるようになる。

    snapが既存のシステムや他のアプリに影響を与えないからこそ、できることですね。

  有料アプリはsnapに移行する

    いままでdebパッケージで提供されていた有料アプリは、snapパッケージに移行します。

今まで有料アプリの開発者は、様々なライブラリーとの依存関係や互換性を管理する必要があり、この管理にしばしばストレスを感じてきた。
特に古いUbuntuにアプリを提供する場合、強いストレスを感じてきた。

このため、2016年8月に有料アプリはdebパッケージによる提供からsnapパッケージによる提供に移行する。

Canonicalは、snapパッケージへの移行を支援するため、今後数ヶ月以内に開発者のコミュニティーと連携してトレーニングやドキュメントの整備といった作業を行う。

    有料アプリの開発者にとって頭痛のタネは、アプリが依存するライブラリーの管理です。
    debパッケージで提供されるライブラリーのバージョンがいくつであるか、あるいは、そもそもライブラリーが存在するかどうかは、Ubuntuのバージョンによって異なります。

    アプリの開発者がUbuntu 12.04もサポートしたいが、Ubuntu 12.04に必要なライブラリーが存在しないケースや、ライブラーのバージョンが古くアプリが必要とする機能を提供していないケースもあります。
    しかもそのライブラリーがUbuntuの骨幹となるアプリも利用している場合、勝手にアプリがライブラリーのバージョンをアップさせるわけにもいきません。
    依存関係が壊れる可能性もあります。
    
    Windowsで言うところの「DLL地獄」ですね。

    逆もまた然りで、アプリの開発者は今後リリースされるUbuntuでもアプリが動作することを期待します。
    Ubuntu 16.10でもUbuntu 17.04でもアプリがそのまま動作することに越したことはありません。

    これらの問題に対する1つの解が、snapパッケージです。

    Ubuntuは、有償アプリを販売する仕組みを提供しており、有料アプリの開発者はUbuntu Storeを通じて販売することもできます。
    開発者の取り分は80%とのことです。

  debパッケージはなくならない

    debパッケージはなくなりません。
    Ubuntu 16.04以降もdebパッケージはサポートされます。
    「snap」と「deb」は用途や状況に応じて使い分ける事になると思います。

snapは既存の資産を受け継ぎつつも、Ubuntuのコミュニティーにとって主要な新機能となる。
deb形式で提供される何万ものアプリやパッケージは、Ubuntu 16.04以降もサポートしていく。

  パッケージの操作方法が異なる

   「snap」は、既存のパッケージ管理システムとは異なるシステムなので、「apt/apt-get」コマンドで「snap」パッケージのインストールやアップデートは行えません。

    この操作方法の違いをデスクトップユーザーにどう見せるのかは、今後明らかになっていくでしょう。

    おそらくユーザーにパッケージの違いを意識させないように「GNOMEソフトウェア」や「ソフトウェアの更新」でパッケージの違いを吸収していくかと思われます。

参考

  • Adding snaps for secure, transactional packages in Ubuntu 16.04 LTS
  • Snappy Ubuntu Core
  • Canonical, through Olli Ries, has had the enormous pleasure of announcing that the upcoming Ubuntu 16.04 LTS (Xenial Xerus) operating system will offer users the possibility of installing snaps alongside the standard Debian packages.
  • Snap! Ubuntu 16.04 Just Made Installing New Apps MUCH Easier


Ubuntu 16.04
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 26.04 その74 - Chromium 系ブラウザーにより、Qt6 で構築されたアプリがクラッシュする現象
    Qt6 で構築されたアプリがクラッシュする現象 Chromium 系ブラウザーにより、Qt6 で構築されたアプリがクラッシュする現象が報告されています。
  • Ubuntu 24.04 その104 - Ubuntu 26.04 LTS へアップグレードするには・アップグレードの注意事項
    Ubuntu 26.04 LTS へアップグレードするには 現在 Ubuntu 24.04 LTS を利用しているユーザーは、Ubuntu 26.04 LTS へアップグレードできます。
  • Ubuntu 26.10 その35 - RISC-V 向け Ubuntu Desktop 登場
    RISC-V 向け Ubuntu Desktop 登場 Ubuntu Desktop 26.10 では、RISC-V 向けデスクトップイメージがリリースされます。
  • Ubuntu 24.04 その103 - Ubuntu 26.04 LTS へアップグレード可能に・2年分の変化が一気にやってくる
    Ubuntu 26.04 LTS へアップグレード可能に 2026年9月29日、Ubuntu 24.04 LTS から Ubuntu 26.04 LTS へアップグレード可能になりました。
  • Ubuntu 26.10 その34 - Ubuntu と Rust に対する取り組み(2026年10月)
    Ubuntu と Rust に対する取り組み 2026年10月1日、Ubuntu と Rust に対する取り組みが以下で紹介されました。
  • Ubuntu 26.10 その33 - Ubuntu 26.10 β版がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.10 β版がリリースされました 2026年10月1日、Ubuntu 26.10 β版 がリリースされました。
  • Ubuntu 26.04 その76 - CVE-2026-92392 含む curl の脆弱性22件修正・アップデートを
    curl の脆弱性22件修正 CVE-2026-92392 含む22件の curl の脆弱性に対応したセキュリティーアップデートがリリースされました。
  • Ubuntu 26.10 その38 - Ubuntu 26.10 がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.10 リリース 2026年10月15日、Ubuntu 26.10 がリリースされました。
  • Linux その440 - uutils coreutils 0.11.0 でコマンド実行時のエラーメッセージを大幅に改良
    コマンド実行時のエラーメッセージを大幅に改良 uutils coreutils 0.11.0 で、コマンド実行時のエラーメッセージが大幅に改良されました。
  • Ubuntu 26.10 その32 - Snapdragon X2 に対応した Ubuntu 26.10 実験版登場
    Snapdragon X2 に対応した Ubuntu 26.10 実験版登場 2026年9月29日、Snapdragon X2 に対応した Ubuntu 26.10 実験版が登場しました。
記事のピックアップ
オプション