Jak mogę szybciej tworzyć iteracje podczas tworzenia snapu?

10

Pracuję nad snapem większego oprogramowania i budowaniem przyciągania, usuwanie starego, instalacja nowego zajmuje bardzo dużo czasu.

Chciałbym iterować nad tworzeniem snapowania i testowania rzeczy szybciej. Wiem, że snap jest w porządku, teraz jestem zainteresowany testowaniem rzeczy, takich jak uruchomienie aplikacji i jej integracja. Czy jest jakiś sposób na zrobienie tego?

    
zadawane dholbach 07.07.2016, 10:50
źródło

1 odpowiedź

8

Przedmowa

Jednym ze sposobów rozwiązania tego problemu jest użycie snap try . Z jego komunikatu --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.

Jest także wyposażony w opcję:

--devmode     Install in development mode and disable confinement

Jest to szczególnie przydatne, jeśli chcesz przetestować bity w odosobnieniu i poprawnie korzystać z interfejsów.

Wykorzystanie

Sposób użycia jest prosty, wystarczy uruchomić:

snapcraft prime
snap try prime/

W pierwszym kroku powiesz snapcraft , że zrobisz

Final copy and preparation for the snap.

W drugim kroku snapd używa zawartości katalogu, aby "zainstalować" przystawkę. Teraz możesz bawić się paczką, wciąż będąc w stanie wprowadzać w niej zmiany.

Przykład

Użyjmy przykładu z Snappy Playpen , aby pokazać, jak z niego korzystać.

Używamy konsula, ponieważ jest on stosunkowo szybki w budowie i użyciu:

$ 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$ 

Teraz upewnijmy się, że nie mamy zainstalowanej innej wersji, a następnie kontynuuj instalację.

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$ 

Jak dotąd tak dobrze. Wygląda na to, że działa dobrze. Teraz zamieńmy go na /bin/echo , aby zobaczyć, jak to działa:

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$  

Jak widać, możemy wprowadzać zmiany w systemie na żywo w prime , jednocześnie nadal wykonując operacje w zamknięciu. Zwykle jest to dobry sposób na szybkie uruchomienie i pełne testowanie.

Uwaga: z snapd przed 2.0.10 (2016-07-09) trzeba było zrobić krok w przód przed uruchomieniem snapcraft clean lub snapd znalazłoby się w złym stanie i skomleć, że nie można znaleźć zamontowanych zatrzasków. Kilka innych poprawek jest ustawionych w kolejce dla wersji 2.0.11, które również powinny pojawić się za kilka dni.

    
odpowiedział dholbach 07.07.2016, 11:11
źródło

Przeczytaj inne pytania na temat tagów