У меня есть одноразовая программа, написанная на Python.
Можно ли упаковать Snapcraft? Как установить пакет локально? Есть ли что-то вроде GDebi для Snaps?
решение1
Вот пример локальной установки Snap из 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.
- Поскольку у вас уже есть локальный snap, вы, очевидно, пропускаете первый шаг. Вам не нужно его скачивать.
- Поскольку вы сделали снимок, файла .assert нет, поэтому вы пропускаете и второй шаг.
- Наконец, поскольку Snaps по умолчанию используют для защиты подписи, а ваш не подписан, вам необходимо отключить эту защиту на третьем этапе с помощью флага
--dangerous
.
Таким образом, ваш метод для локально созданного неподписанного Snap будет следующим:
$ sudo snap install /path/to/my-snap.snap --dangerous
решение2
Краткий обзор:
если у вас есть загруженный файл, например, abc.snap
в текущей папке,
пытаться:
snap install ./abc.snap --dangerous
Объяснение:
Snap-файлы обычно подписываются закрытым ключом издателя. Когда пакет подписан, это означает лишь то, что он был подготовлен кем-то, у кого есть закрытый ключ. Это буквально ничего больше не означает. Это не означает, что пакет безопасен для вашего компьютера. Это не означает, что пакет содержит то, что он утверждает. Это означает лишь то, что кто-то подписал его своим закрытым ключом.
Если у вас есть пустой .snap
файл, который может быть подписан или не подписан, вы можете пропустить проверку подписи, используя --dangerous
. На самом деле нет ничего более опасного, чем доверить содержимое вашего компьютера случайному человеку в Интернете.
Пакеты, доступные в официальном магазине snap, подписаны, так что если случится что-то действительно дерьмовое, можно будет отследить учетную запись, с которой был отправлен пакет. Это может удержать хороших людей от публикации плохих пакетов. Это не означает, что пакеты безопасны. Это, вероятно, не остановит плохих игроков.