web-dev-qa-db-fra.com

Comment puis-je itérer plus rapidement lors de la création d'un cliché?

Je travaille sur un composant logiciel plus gros et le construis, en supprimant l'ancien, l'installation du nouveau ne prend que très longtemps.

Je voudrais revenir sur la création de la capture instantanée et de tester les choses plus rapidement. Je sais que la capture se construit très bien, maintenant je suis intéressé à tester des choses telles que le lancement de l'application et son intégration. Y a-t-il un moyen de faire cela?

10
dholbach

Préface

Une solution consiste à utiliser snap try. A partir de son message --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.

Il vient également avec une option:

--devmode     Install in development mode and disable confinement

Ceci est particulièrement utile si vous souhaitez tester les bits de confinement et utiliser correctement les interfaces.

Usage

La façon de l'utiliser est simple, il suffit de lancer:

snapcraft prime
snap try prime/

Dans un premier temps, vous dites à snapcraft de faire le

Final copy and preparation for the snap.

Et dans la deuxième étape, snapd utilise le contenu du répertoire pour "installer" le composant logiciel enfichable. Maintenant, vous pouvez jouer avec le paquet tout en pouvant y apporter des modifications.

Exemple

Utilisons un exemple de le Snappy Playpen pour montrer comment l'utiliser.

Nous utilisons consul car il est relativement rapide à construire et à utiliser:

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

Maintenant, assurons-nous qu'aucune autre version de celle-ci n'est installée, puis poursuivons l'installation.

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$ 

Jusqu'ici tout va bien. Cela semble bien fonctionner. Remplaçons-le maintenant par /bin/echo pour voir comment les choses fonctionnent:

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$  

Comme vous pouvez le constater, nous pouvons apporter des modifications au système live dans prime tout en maintenant des opérations sous confinement. Il s’agit généralement d’un bon moyen d’obtenir rapidement le bon fonctionnement du logiciel et de le tester complètement.

Remarque: Avec snapd avant 2.0.10 (2016-07-09), vous deviez supprimer la capture avant d'exécuter snapcraft clean ou snapd entrerait dans un mauvais état et gémirait sur le fait de ne pas pouvoir trouver des snaps montés. Quelques corrections supplémentaires sont prévues pour la version 2.0.11, qui devrait également arriver dans quelques jours.

8
dholbach