Przedmowa
Jednym ze sposobów obejścia tego jest użycie snap try
. Z jego --help
wiadomości:
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.
Ma również opcję:
--devmode Install in development mode and disable confinement
Jest to szczególnie przydatne, jeśli chcesz przetestować bity ograniczające i odpowiednio wykorzystać interfejsy.
Stosowanie
Sposób użycia tego jest prosty, wystarczy uruchomić:
snapcraft prime
snap try prime/
W pierwszym kroku każesz snapcraft
zrobić
Final copy and preparation for the snap.
W drugim kroku snapd
wykorzystuje zawartość katalogu do „instalacji” przystawki. Teraz możesz bawić się pakietem, wciąż będąc w stanie wprowadzać w nim zmiany.
Przykład
Użyjmy przykładu z Snappy Playpen, aby pokazać, jak tego używać.
Używamy konsula, ponieważ jest on stosunkowo szybki do zbudowania i użycia:
$ 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$
Na razie w porządku. Wygląda na to, że działa dobrze. Teraz zastąpmy to, /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, prime
wciąż działając pod kontrolą. Jest to ogólnie dobry sposób na szybkie uruchomienie i pełne przetestowanie.
Uwaga: W snapd
wersjach wcześniejszych niż 2.0.10 (2016-07-09) trzeba było przetestować przystawkę przed uruchomieniem snapcraft clean
lub wpadać snapd
w zły stan i narzekać na niemożność znalezienia zamontowanych przystawek. Kolejne poprawki są w kolejce do wersji 2.0.11, która również powinna wylądować za kilka dni.
snapcraft clean
lub snapd znajdzie się obecnie w złym stanie i narzeka na niemożność znalezienia zamontowanych snapów. Poprawka jest w toku, ale jeszcze nie wydana.