ローカルファイルからSnapパッケージをインストールするにはどうすればいいですか

ローカルファイルからSnapパッケージをインストールするにはどうすればいいですか

Python で書かれた 1 回限りの使用プログラムがあります。

Snapcraft でパッケージ化できますか? パッケージをローカルにインストールするにはどうすればよいですか? Snaps 用の GDebi のようなものはありますか?

答え1

以下はSnap Storeからスナップをローカルにインストールした例です(ソース)。

ただし、これは機能しません。機能しない理由と、代わりに使用する必要がある方法については、以下で詳しく説明します。

$ snap download hello-world
Fetching snap "hello-world"
Fetching assertions for "hello-world"

$ sudo snap ack hello-world_27.assert 

$ sudo snap install hello-world_27.snap
hello-world 6.3 from 'canonical' installed

$ snap list
Name                   Version                   Rev   Developer      Notes
<snip>
hello-world            6.3                       27    canonical      -
  • スナップに関しては GDebi に勝るものはありません。
  • すでにローカル スナップを持っているので、当然最初の手順はスキップします。ダウンロードする必要はありません。
  • スナップを作成したので、.assert ファイルは存在しないため、2 番目の手順もスキップします。
  • 最後に、Snaps はデフォルトで署名を使用したセキュリティを設定しますが、Snaps は署名されていないため、3 番目の手順でフラグを使用してその保護を無効にする必要があります--dangerous

したがって、ローカルで作成された署名されていない Snap の場合の方法は次のようになります。

$ sudo snap install /path/to/my-snap.snap --dangerous

答え2

要約:

ファイルをabc.snap現在のフォルダにダウンロードした場合、

試す:

snap install ./abc.snap --dangerous

説明:

スナップは通常、発行者の秘密鍵で署名されます。パッケージが署名されている場合、それは秘密鍵を持つ誰かによって準備されたことを意味します。これは文字通り、それ以外の意味はありません。パッケージがコンピュータにとって安全であることを意味するわけではありません。パッケージに、記載されている内容が含まれていることを意味するわけでもありません。誰かが自分の秘密鍵で署名したことを意味するだけです。

.snap署名されているかどうかわからないベア ファイルがある場合は、 を使用して署名の検証を省略できます--dangerous。実際、インターネット上の無作為の人物にコンピューターの内容を信頼することほど危険なことはありません。

公式スナップストアから入手できるパッケージには署名が付けられているため、何か本当に悪いことが起こった場合、パッケージを投稿したアカウントを追跡することができます。これにより、善良な人々が不正なパッケージを投稿するのを阻止できる可能性があります。パッケージが安全であることを意味するわけではありません。おそらく、悪意のある行為者を阻止することはできないでしょう。

関連情報