Snapcraft est un ensemble d'outils regroupés sous la snapcraft
commande pour créer (créer) facilement des packages pour plusieurs distributions Linux . Ces packages .snap contiennent généralement des applications autonomes, offrent une isolation sécurisée et peuvent être installés à partir du magasin de logiciels Ubuntu ou manuellement via la snap install <snap-name>.snap
commande.
En un mot, en tant que développeur, vous écririez du code à l'aide de vos outils habituels et vous laisseriez Snapcraft se charger de l'assembler pour la distribution. Snapcraft excelle également en permettant aux développeurs de porter leurs applications existantes sur n'importe quelle plate-forme Linux activée par snap.
Snapcraft:
- Est intelligent : il récupère, construit et assemble divers logiciels ( pièces ) à partir de sources distantes dans un package final .snap, qui contient toutes les dépendances dont il a besoin pour fonctionner
- Besoin d'une recette : il s'appuie sur un
snapcraft.yaml
fichier qui spécifie les pièces et plugins nécessaires pour créer le package
- Est extensible avec des plugins. Bien qu'il soit livré avec un ensemble des plug-ins de système de build les plus courants pour répondre à un large éventail de builds d'applications, il peut être facilement étendu avec de nouveaux .
La visite Snapcraft de 3 minutes
Installez Snapcraft sur Ubuntu
Vous aurez besoin d'Ubuntu 16.04 LTS pour utiliser Snapcraft. Ouvrez un terminal avec Ctrl+ Alt+ tet installez simplement Snapcraft avec cette commande:
sudo apt install snapcraft
sudo apt install build-essential # Optional, but useful for different builds
Si vous utilisez une autre distribution, consultez les instructions d'installation alternatives>
Testez Snapcraft
L'exemple suivant crée un package qui contient un service qui vous permet de coller et de partager. Une fois terminé, vous pouvez l'installer manuellement sur votre appareil accrocheur à des fins de test ou le télécharger sur le Store pour d'autres utilisateurs.
Tout d'abord, nous ouvrons un terminal et téléchargeons l'exemple à partir du référentiel d'exemples:
sudo apt install git
git clone https://github.com/ubuntu-core/snapcraft.git
cd snapcraft/demos/gopaste
Notez le snapcraft.yaml
fichier dans ce répertoire, qui spécifie un service et les pièces nécessaires pour assembler le .snap final. Vous pouvez éventuellement l'examiner avec un éditeur de texte.
Exécutez maintenant la snapcraft
commande sur le terminal. Cela entraînera l'exécution de toutes les sous-commandes snapcraft en séquence pour générer les pièces et placer les résultats dans le package .snap final. Pendant le développement, vous devez normalement exécuter les étapes séparément jusqu'à ce que vous soyez sûr que la construction et l'assemblage entiers fonctionnent.
$ snapcraft
Pulling gopaste
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go get -t -d github.com/wisnij/gopaste/gopasted
Building gopaste
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go build github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go install github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build cp -a /tmp/snapcraft/examples/gopaste/parts/gopaste/build/bin /tmp/snapcraft/examples/gopaste/parts/gopaste/install
Staging gopaste
Snapping gopaste
Generated 'gopaste_1.0_amd64.snap' snap
Sur la sortie de la commande, vous pouvez voir les étapes que snapcraft exécute pour vous:
- Pull : il extrait le code de la partie gopaste requise d'un dépôt Github distant
- Build : il construit gopaste localement
- Étape : après la construction, les pièces sont placées dans une arborescence de répertoires unique, la "zone de transit"
- Snap : le package .snap final est créé à partir des pièces assemblées dans la zone de transfert
Remarques:
- Vous trouverez le fichier snap final en tant que
gopaste_1.0_amd64.snap
(remarquez dans mon cas que je l'ai construit sur mon bureau amd64, par exemple, les packages Raspberry Pi 2 auraient le _armhf
suffixe d'architecture).
- Vous pouvez également exécuter chaque commande individuellement:
snapcraft pull
, snapcraft build
, snapcraft stage
ousnapcraft snap
- Utilisez
snapcraft -h
pour un aperçu rapide de toutes les commandes disponibles.
Et c'est tout pour un aperçu rapide de ce que Snapcraft peut faire! En savoir plus sur Snapcraft>
"And that's it for a quick glimpse of what Snapcraft can do!"