Поскольку моментальные снимки устанавливаются с правами root, невозможно сделать именно то, что вы просите во время установки, поскольку $SNAP_USER_DATA
зависит от пользователя, поэтому он всегда будет root. Однако вы можете сделать это во время установки, используя общесистемный каталог, например $SNAP_DATA
, используя хук install
:
$ snapcraft init
Created snap/snapcraft.yaml.
Edit the file to your liking or run `snapcraft` to get started
Создайте крючок. В нашем случае мы просто создадим новый файл в $SNAP_DATA
, но вы можете делать все, что хотите.
$ mkdir -p snap/hooks
$ echo "touch \$SNAP_DATA/foo" >> snap/hooks/install
$ chmod a+x snap/hooks/install
Постройте оснастку.
$ snapcraft
Preparing to pull my-part
Pulling my-part
Preparing to build my-part
Building my-part
Staging my-part
Priming my-part
Snapping 'my-snap-name' |
Snapped my-snap-name_0.1_amd64.snap
Установите снап. Это запустит хук install
.
$ sudo snap install my-snap-name_0.1_amd64.snap --devmode --dangerous
my-snap-name 0.1 installed
Обратите внимание, что файл был создан в $SNAP_DATA.
$ ls /var/snap/my-snap-name/current
foo
Единственный способ получить аналогичную функциональность для $SNAP_USER_DATA
— это обернуть вашу реальную команду в скрипт, который создает конфигурацию. Затем эта команда запускается пользователем, что означает, что вы получаете $SNAP_USER_DATA
, которое вы намеревались. Конечно, это не во время установки.
person
kyrofa
schedule
06.09.2017