snapパッケージが様々なLinuxディストリビューションで利用可能に
「Ubuntu(Canonical)」発祥である「snap」パッケージが、様々なLinuxディストリビューションで利用可能になります。Linuxディストリビューションのパッケージ管理システムの垣根を超えるすごい時代になりました。
「Ubuntu on Windows」といい「ZFS」といい「Snappy/Snaps」といいここ最近の「Ubuntu(Canonical)」は話題に事欠かないですね。
「snap」パッケージを簡潔に説明すると、「snap」パッケージは「deb」パッケージのようにアプリケーションなどのソフトウェアのインストーラーに相当するものです。
「Snappy」と組み合わせて利用します。
「Snappy/Snaps」は、新しく作られたモダンなパッケージ管理システムだと思ってもらえれば良いです。
1つのバイナリーパッケージですべてのプラットフォームをサポート
「snap」パッケージは、1つのバイナリーパッケージですべてのプラットフォームをサポートします。既存のソフトウェア管理
Linuxディストリビューション向けにソフトウェアを提供する際、それぞれのディストリビューションの環境に合わせてソフトウェアを用意する必要があります。1.パッケージ形式の違い
例えばUbuntuではdeb形式のパッケージを採用しており、一方Fedoraではrpm形式のパケージを採用しています。UbuntuとFedoraにソフトウェアを提供する場合は、debパッケージとrpmパッケージを用意する必要があります。
debやrpm以外にも、ディストリビューション固有のパッケージ管理の仕組みが存在します。
パッケージ化せずアーカイブ化したバイナリーをそのまま配布することも可能ですが、パッケージ管理システムの管理対象にならずアップデートを手動で行う必要があるなど、ユーザーにとって親切な配布形態ではありません。
2.バージョンの違い
同じディストリビューションにソフトウェア提供する場合でも、バージョンによる環境の違いがあり、環境の違いを配慮する必要があります。例えば現在サポートされているUbuntuのバージョンは、以下の4つです。
- Ubuntu 12.04
- Ubuntu 14.04
- Ubuntu 15.10
- Ubuntu 16.04
もし上記すべてのバージョンにソフトウェアを提供するとなると、それぞれのバージョンにおいてソフトウェアが必要とするライブラリーが提供されているか確認する必要があります。
またライブラリーには複数のバージョンが存在するため、ライブラリーが提供されていたとしてもソフトウェアが必要とするバージョンのライブラリーが存在するか確認する必要があります。
さらにライブラリーのバージョンの違いにより挙動が異なるケースもあります。
将来リリースされるUbuntuのバージョンに対する懸念も同様です。
同じ仕組みを共有して独立したアプリの環境を提供
上記の「1.」については、すべてのLinuxディストリビューションで同じ仕組みを利用すれば解決できます。「2.」については、アプリがLinuxディストリビューションに依存する部分を切離し、アプリ専用の環境を提供することで解決できます。
アプリが必要なライブラリーをアプリの専用環境に配置します。
こうすることで、ライブラリーが存在しているかどうか確認する必要が無くなりますし、ライブラリーのバージョンもアプリにとって都合の良いバージョンが利用できるわけです。
すべてのプラットフォームで利用可能
「snap」は、LinuxデスクトップでもサーバーでもクラウドでもLinuxデバイスでも利用可能です。ただし「snap」を導入するには、ベンダーやソフトウェア開発者、Linuxディストリビューターの協力が必要です。
様々なベンダーや開発者がsnapへの協力を表明
様々なベンダーや開発者、Linuxディストリビューターが「snap」パッケージへの協力を表明しています。- Dell
- Samsung
- the Linux Foundation
- The Document Foundation
- Krita
- Mycroft
- Horizon Computing
- contributors to Arch
- Debian
- OpenWrt
- Ubuntu
- Firefox
- その他関係するLinuxディストリビューション
すでにsnapが利用できるディストリビューション
以下のディストリビューションでは、すでに「snap」が利用できる状況になっています。- Arch
- Debian
- Fedora
- Kubuntu
- Lubuntu
- Ubuntu GNOME
- Ubuntu Kylin
- Ubuntu MATE
- Ubuntu Unity
- Xubuntu
また以下のディストリビューションで「snap」が利用できる状態になりつつあります。
- CentOS
- Elementary
- Gentoo
- Mint
- OpenSUSE
- OpenWrt
- RHEL
上記に挙げたすべてのディストリビューションを含めると、Linuxユーザーの圧倒的多数をカバーできます。
デスクトップ分野、サーバー分野、そしてクラウンド分野においてもです。
各ディストリビューションでsnapパッケージを利用するには
各ディストリビューションでsnapパッケージを利用するには、「Snappy(snapd)」をインストールする必要があります。インストール後にsnapdを有効にするために
「snapd」をインストールした後「snapd」を有効にするために、忘れずにログインし直すか、PCを再起動してください。Arch Linux
いずれかの「AURヘルパー」をインストールし、「snapd」をインストールしてください。例えば「pacaur」なら、以下の操作で「snapd」をインストールできます。
pacaur -S snapd
Debian
公式のDebianパッケージが用意されており、「Debian Unstable」から利用できます。インストール方法は「Ubuntu」と同じで、以下のコマンドを実行してください。
sudo apt install snapd
Fedora
Fedora 23とFedora 24で利用可能です。1.リポジトリーの有効化
まず以下のコマンドでリポジトリーを有効にします。
sudo dnf copr enable zyga/snapcore
2.snapdのインストール
次に以下のコマンドで「snapd」をインストールします。
sudo dnf install snapd