Есть ли способ для оснастки Ubuntu предоставлять файлы в иерархии файловой системы FHS, например, двоичные файлы в / usr / bin, данные пакета в / usr / share /, файлы конфигурации в / etc? Если нет, то как лучше всего использовать такие ресурсы, предоставляемые оснасткой? Будет ли один раз использовать / snap // вместо каждого?
Нет, снимок является автономным. Это может, конечно, содержать мусорное ведро/, usr/bin/, и т.д. в себе, но это не может поместить вещи в / мусорное ведро системы/,/usr/bin/, и т.д.
, лучшая практика для использования таких ресурсов, обеспеченных снимком, должна экспортировать их из снимка с помощью ключевого слова "приложений" в YAML. Например, скажите, что у меня есть исполняемый сценарий оболочки, названный hello.sh
, который содержит следующее:
#!/bin/sh
echo "hello snap guru"
И я имею snapcraft.yaml
, который похож на это:
name: hello
version: 1
summary: my summary
description: my description
apps:
run:
command: hello.sh
parts:
hello:
plugin: copy
files:
hello.sh: bin/
После того, как Вы выполняете snapcraft
на этом и устанавливаете получающийся снимок, Вы заметите, что hello.sh содержится в мусорном ведре снимка / каталог, который находится, конечно, не в Вашем ПУТИ, таким образом, Вы не можете непосредственно назвать его. Однако то, когда снимок установлен, мгновенный, создает новый сценарий внутри/snap/bin/для каждого объекта в ключевом слове "приложений" (run
в этом случае), и/snap/bin/находится в Вашем ПУТИ. Необходимо смочь запустить hello.sh скрипт только при помощи <snap name>.<app name>
:
$ hello.run
hello snap guru