Как я могу выполнить итерации более быстро при создании снимка?

Я работаю над снимком большей части программного обеспечения и создаю снимок, удаляя старый, устанавливание нового просто занимает очень долгое время.

Я хотел бы выполнить итерации по созданию снимка и вещей проверения более быстро. Я знаю, что снимок создает очень хорошо, теперь я интересуюсь тестированием вещей как запуск приложения и его интеграции. Существует ли способ сделать это?

10
задан 7 July 2016 в 01:50

1 ответ

Предисловие

Один способ пойти об этом состоит в том, чтобы использовать 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, который должен приземлиться через несколько дней также.

8
ответ дан 23 November 2019 в 04:35

Другие вопросы по тегам:

Похожие вопросы: