Snapcraft es un conjunto de herramientas agrupadas bajo el snapcraft
comando para crear fácilmente (crear) paquetes para múltiples distribuciones de Linux . Estos paquetes .snap generalmente contienen aplicaciones independientes, proporcionan un aislamiento seguro y se pueden instalar desde la Tienda de software de Ubuntu o manualmente a través del snap install <snap-name>.snap
comando.
En pocas palabras, como desarrollador, escribiría código utilizando sus herramientas habituales y dejaría que Snapcraft se encargara de ensamblarlo para su distribución. Snapcraft también se destaca por permitir a los desarrolladores portar sus aplicaciones existentes a cualquier plataforma Linux habilitada por snap.
Snapcraft:
- Es inteligente : recupera, construye y ensambla diversas piezas de software ( partes ) de fuentes remotas en un paquete final .snap, que contiene todas las dependencias que necesita para funcionar
- Necesita una receta : se basa en un
snapcraft.yaml
archivo que especifica las partes y los complementos necesarios para crear el paquete
- Es extensible con complementos. Si bien se incluye con un conjunto de los complementos de sistema de compilación más comunes para satisfacer una amplia gama de compilaciones de aplicaciones, se puede ampliar fácilmente con otras nuevas .
El recorrido de 3 minutos de Snapcraft
Instalar Snapcraft en Ubuntu
Necesitará Ubuntu 16.04 LTS para usar Snapcraft. Abra una terminal con Ctrl+ Alt+ ty simplemente instale Snapcraft con este comando:
sudo apt install snapcraft
sudo apt install build-essential # Optional, but useful for different builds
Si está utilizando otra distribución, consulte las instrucciones de instalación alternativas>
Prueba de manejo de Snapcraft
El siguiente ejemplo crea un paquete que contiene un servicio que le permite pegar y compartir. Una vez finalizado, puede instalarlo manualmente en su dispositivo ágil con fines de prueba o subirlo a la Tienda para otros usuarios.
En primer lugar, abrimos un terminal y descargamos el ejemplo del repositorio de ejemplos:
sudo apt install git
git clone https://github.com/ubuntu-core/snapcraft.git
cd snapcraft/demos/gopaste
Observe el snapcraft.yaml
archivo en ese directorio, que especifica un servicio y las partes necesarias para ensamblar el .snap final. Opcionalmente, puede examinarlo con un editor de texto.
Ahora ejecute el snapcraft
comando en la terminal. Esto hará que todos los subcomandos de snapcraft se ejecuten en secuencia para construir las partes y colocar los resultados en el paquete final .snap. Durante el desarrollo, normalmente ejecutaría los pasos por separado hasta que esté seguro de que toda la compilación y el ensamblaje funcionan.
$ 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
En la salida del comando puedes ver los pasos que Snapcraft ejecuta para ti:
- Pull : extrae el código de la parte de gopaste requerida de un repositorio remoto de Github
- Construir : construye gopaste localmente
- Etapa : después de la compilación, las partes se colocan en un solo árbol de directorios, el "área de ensayo"
- Snap : el paquete final .snap se crea a partir de las piezas ensambladas en el área de preparación
Notas:
- Encontrará el archivo snap final como
gopaste_1.0_amd64.snap
(observe que en mi caso lo construí en mi escritorio amd64, por ejemplo, los paquetes Raspberry Pi 2 tendrían el _armhf
sufijo de arquitectura).
- También puede ejecutar cada comando individual:
snapcraft pull
, snapcraft build
, snapcraft stage
osnapcraft snap
- Úselo
snapcraft -h
para obtener una descripción general rápida de todos los comandos disponibles.
¡Y eso es todo para echar un vistazo rápido a lo que Snapcraft puede hacer! Obtenga más información sobre Snapcraft>
"And that's it for a quick glimpse of what Snapcraft can do!"