Ubuntuではディストリビューションを問わず利用できる
snapcraftコマンドで作るsnapパッケージ
Ubuntuではディストリビューションをまたいで利用できるユニバーサルパッケージシステムとして
- ※1
- さらに遡るとその祖先は,
Ubuntu Phone用に新規に開発されたClickパッケージシステムになります。
Snapパッケージは,
- ※2
- snapcraftの登場に合わせてSnappyと呼ばれることはほぼなくなりました。
「ユニバーサルパッケージ」
実は第476回
パッケージ構築環境の準備
snapパッケージをビルドする流れは,
- パッケージビルドのためのsnapcraftコマンド
- ビルド環境を構築するための仮想マシンシステム
- パッケージ情報を記述したYAMLファイル
snapcraftコマンド自体はsnapパッケージ化されているため,
$ sudo snap install snapcraft --classic
もうひとつ必要になるのが仮想マシンシステムです。従来のパッケージを作成したことがあるならおそらくご存知だと思いますが,
作ろうとしているパッケージごとに必要となるツールが異なるため,
snapcraftでは,
- ※3
- 一応構築環境としてLXDとホストを直接利用する2種類の方法も用意されてはいます。ただメインではないため,
snapcraftに慣れるまでは仮想マシンを利用する方法をおすすめします。
MultipassはUbuntuだけでなくmacOSやWindowsでも利用できるため,
Multipassはsnapcraftの初回実行時にインストールするかどうかを問われます。もちろんあらかじめインストールしておいてもかまいませんので,
$ sudo snap install multipass --classic
一点,
$ for table in filter nat mangle; do \ sudo iptables-legacy -t $table -S | grep Multipass | \ xargs -L1 sudo iptables-nft -t $table \ done
もちろんUbuntu 20.