Як я можу швидше повторити процес створення оснащення?


10

Я працюю над оснащенням більшої частини програмного забезпечення та надбудовування оснащення, видалення старого, встановлення нового просто триває дуже довго.

Я хотів би повторити створення швидшого огляду та тестування речей. Я знаю, що оснащення складається добре, тепер мені цікаво тестувати такі речі, як запуск програми та її інтеграція. Чи є спосіб це зробити?

Відповіді:


8

Передмова

Один із способів зробити це - використовувати 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використовує вміст каталогу, щоб «встановити» оснащення. Тепер ви можете пограти з пакетом, поки ще зможете внести зміни до нього.

Приклад

Давайте скористаємося прикладом Snappy Playpen, щоб показати, як це використовувати.

Ми використовуємо консула, оскільки це досить швидко будувати та використовувати:

$ 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), вам довелося виправити оснащення перед запуском, snapcraft cleanабо ви snapdпотрапите в недобрий стан і ридаєте про те, що не зможете знайти змонтовані знімки. Ще декілька виправлень викладені на 2.0.11, який також повинен виїхати через кілька днів.


1
Ви можете розглянути питання про те, що оснастку слід видалити до того, як один запуск snapcraft cleanабо оснащення в даний час прийде в непридатний стан і скаже про неможливість пошуку встановлених знімків. Виправлення для цього триває, але ще не випущено.
Кайл

Хороший! Додавання інформації зараз.
dholbach

1
Так, "швидка спроба" - це саме такий випадок використання. Це дозволяє вам скласти каталог і побудувати своє оснащення в ньому, не потрібно продовжувати робити сквош і переробляти його. Ви повторюєте лише працюючи в цьому каталозі (ви фактично маєте оснащення для читання і запису), поки не будете задоволені, а потім зробіть squashfs з цього каталогу.
Марк Шаттлворт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.