Linux Daily Topics

2020年8月24日 manifest.yaml ―Snapパッケージのビルドを克明に記録する"マニフェスト"

この記事を読むのに必要な時間:およそ 1 分

Chromiumのように頻繁なアップデートが実施されるソフトウェアを,OSのバージョンやディストリビューション,アーキテクチャなどを問わず,パッケージ間の依存関係に悩まされることなくセキュアに管理する ―Ubuntuが開発したコンテナ方式のユニバーサルなパッケージ管理システム「Snap」は,⁠パッケージごとにライブラリをインストールするため)ディスク消費量が多い」という欠点があるものの,⁠複数のバージョンを共存させられる」⁠パッケージ管理がクリーン」⁠隔離されたセキュアな実行環境」といったメリットから,Snap対応のソフトウェアの数は拡大傾向にある。

Snapはdebに比較して可搬性が高いため,メンテナンスの手間が削減されるという点も開発者にとっては魅力のひとつだが,その一方で「パッケージを構成するライブラリに対応するソースコードのバージョンや依存関係を確認しにくい」という声もあがっていた。その解決策のひとつとして,ベルギー・ヘント大学のMerlijn Sebrechtsが,自身のブログでSnapパッケージの中身を検証する方法を紹介している。

How to verify the source of a Snap package -Merlijn Sebrechts

Snapパッケージには,パッケージのビルド時に使われたソースを確認するために「snap/snapcraft.yaml」「snap/manifest.yaml」という2つのファイルが含まれている。snapcraft.yamlはその名の通り,snapcraftがビルドする際に使用したソースリポジトリを示し,manifest.yamlはsnapcarft.yamlで示した情報よりもさらに詳細に,ビルドに使われたソースのバージョンや依存関係,gitコミットしたリポジトリ,ダウンロードしたバイナリのチェックサムなどを表示する。Sebrechtsはmanifest.yamlを「パッケージビルドの"記録(recording)"」と呼んでいるが,まさにパッケージビルドの記録を克明に,正確に残した"マニフェスト"といえる。なお,LaunchpadおよびGitHubでビルドされたパッケージは,ビルド先のURL(build_url)もビルドログの一部としてmanifest.yamlに含まれる。

manifest.yamlを使うにはSnapをダウンロードし,手動でファイルを閲覧する必要がある。また,パッケージビルドの記録が残っていても,その記録を再利用してパッケージを作ることは現時点ではできない。使い勝手にはまだ改良の余地が多いが,LaunchpadやGitHubから入手したSnapパッケージの詳細を確認する方法として覚えておきたい。

著者プロフィール

階戸アキラ(かいとあきら)

起きてからまず海外ニュースサイトのハシゴをしないと1日を始められない海外ニュースウォッチャー。英語は英検準一級の資格を持ち,日本人と話すより英語圏の人のほうがウマが合う。