Я работаю над снимком большей части программного обеспечения и создаю снимок, удаляя старый, устанавливание нового просто занимает очень долгое время.
Я хотел бы выполнить итерации по созданию снимка и вещей проверения более быстро. Я знаю, что снимок создает очень хорошо, теперь я интересуюсь тестированием вещей как запуск приложения и его интеграции. Существует ли способ сделать это?
Один способ пойти об этом состоит в том, чтобы использовать snap try
. От --help
сообщение:
The try command installs an unpacked snap into the system for testing
purposes. The unpacked snap content continues to be used even after
installation, so non-metadata changes there go live instantly. Metadata
changes such as those performed in snap.yaml will require reinstallation
to go live.
Это также идет с опцией:
--devmode Install in development mode and disable confinement
Это особенно полезно, если Вы хотите протестировать биты заключения и разбирание в использовании интерфейсов.
Способ использовать это прост, просто выполненный:
snapcraft prime
snap try prime/
В первом шаге Вы говорите snapcraft
сделать
Final copy and preparation for the snap.
И на втором шаге snapd
использует содержание каталога для "устанавливания" снимка. Теперь можно играть вокруг с пакетом в то время как все еще способность внести изменения в него.
Давайте использовать пример с Мгновенного Детского манежа, чтобы показать, как использовать это.
Мы используем консула, поскольку это относительно быстро, чтобы создать и использовать:
$ git clone https://github.com/ubuntu/snappy-playpen
$ cd snappy-playpen/consul/
snappy-playpen/consul$ snapcraft prime
Preparing to pull consul
[...]
Staging consul
Priming consul
snappy-playpen/consul$
Теперь давайте удостоверимся, что мы не имеем другой версии установленной его и затем возобновляем установку.
snappy-playpen/consul$ which consul
snappy-playpen/consul$ snap try prime
Name Version Rev Developer Notes
consul 0.6.4 x1 try
snappy-playpen/consul$ consul --help
usage: consul [--version] [--help] <command> [<args>]
Available commands are:
agent Runs a Consul agent
[...]
snappy-playpen/consul$
Пока все хорошо. Это, кажется, работает просто великолепно. Теперь давайте заменим его /bin/echo
только, чтобы видеть, как работают вещи:
snappy-playpen/consul$ cp /bin/echo prime/bin/consul
snappy-playpen/consul$ consul --help
Usage: /snap/consul/x1/bin/consul [SHORT-OPTION]... [STRING]...
or: /snap/consul/x1/bin/consul LONG-OPTION
Echo the STRING(s) to standard output.
[...]
daniel@daydream:/tmp/test/snappy-playpen/consul$
Как Вы видите, мы можем внести изменения в живую систему в prime
в то время как все еще рабочие вещи под заключением. Это обычно - хороший способ разбудить снимок и выполнение и полностью протестированный быстро.
Примечание: С snapd
прежде 2.0.10 (2016-07-09), у Вас был к temove снимок перед выполнением snapcraft clean
или snapd
вошел бы в плохое состояние и пожаловался бы на неспособность найти смонтированные снимки. Меры еще многие выстроены в линию для 2.0.11, который должен приземлиться через несколько дней также.