Comment puis-je répéter plus rapidement lors de la création d'un composant logiciel enfichable?

10

Je travaille sur un composant logiciel enfichable plus gros et je crée le composant logiciel enfichable, en supprimant l'ancien, en installant le nouveau prend très longtemps.

Je voudrais répéter la création du composant logiciel enfichable et tester les choses plus rapidement. Je sais que le composant logiciel enfichable fonctionne très bien, maintenant je suis intéressé à tester des choses comme le lancement de l'application et son intégration. Y a-t-il un moyen de faire cela?

dholbach
la source

Réponses:

8

Préface

Une façon de procéder consiste à utiliser snap try. De son --helpmessage:

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 est également livré avec une option:

--devmode     Install in development mode and disable confinement

Ceci est particulièrement utile si vous souhaitez tester des bits de confinement et obtenir une bonne utilisation des interfaces.

Usage

La façon de l'utiliser est simple, lancez simplement:

snapcraft prime
snap try prime/

Dans la première étape, vous dites snapcraftde faire

Final copy and preparation for the snap.

Et dans la deuxième étape, snapdutilise le contenu du répertoire pour "installer" le composant logiciel enfichable. Vous pouvez maintenant jouer avec le package tout en étant en mesure de le modifier.

Exemple

Prenons un exemple du parc Snappy 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 que nous n'en avons pas une autre version installée, puis procédons à 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 très bien fonctionner. Maintenant, remplaçons-le par /bin/echojuste 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 voir, nous pouvons apporter des modifications au système en direct primetout en exécutant les choses sous confinement. C'est généralement un bon moyen d'obtenir le composant logiciel enfichable opérationnel et entièrement testé rapidement.

Remarque: avec la version snapdantérieure à la version 2.0.10 (2016-07-09), vous deviez supprimer le composant logiciel enfichable avant de l'exécuter snapcraft cleanou vous mettriez snapddans un mauvais état et vous vous plaindriez de ne pas pouvoir trouver de snapshots montés. D'autres correctifs sont prévus pour 2.0.11, qui devraient également arriver dans quelques jours.

dholbach
la source
1
Vous pourriez envisager de mentionner que le composant logiciel enfichable doit être supprimé avant que l'un ne s'exécute snapcraft cleanou que le composant logiciel enfichable ne se trouve actuellement dans un mauvais état et se plaigne de ne pas pouvoir trouver les snapshots montés. Le correctif est en cours pour cela, mais pas encore publié.
Kyle
Joli! Ajout des informations maintenant.
dholbach
1
Oui, "snap try" est exactement pour ce cas d'utilisation. Il vous permet de créer un répertoire et d'y construire votre composant logiciel enfichable, sans avoir à continuer à faire les squashfs et à le remonter. Vous itérez simplement en travaillant dans ce répertoire (vous avez effectivement un composant logiciel enfichable lecture-écriture) jusqu'à ce que vous soyez satisfait, puis faites les squashfs à partir de ce répertoire.
Mark Shuttleworth