Cómo instalar y usar Snapcraft en Linux

¿Alguna vez se ha preguntado cómo algunas distribuciones de Linux hacen que sea tan fácil instalar software mientras que otras pueden ser bastante difíciles? La diferencia está en el formato de paquete que utilizan. Algunas distribuciones usan archivos .deb mientras que otras usan .rpm.

Pero, ¿y si hubiera un formato de paquete que pudiera usarse en cualquier distribución? Ahí es donde entra en juego Snapcraft. En este tutorial, aprenderá cómo instalar y usar Snapcraft para crear e instalar paquetes instantáneos en Linux.

¿Qué es un paquete instantáneo?

Un paquete instantáneo es un paquete de aplicación autónomo que incluye todas las dependencias y bibliotecas necesarias, lo que facilita la instalación y actualización de aplicaciones sin tener que preocuparse por los problemas de dependencia.

¿Por qué usar paquetes Snap?

Hay varias ventajas en el uso de paquetes instantáneos:

  • Los Snaps son fáciles de instalar y actualizar. Puede instalar un paquete de instantáneas con un solo comando y las instantáneas se actualizan automáticamente en segundo plano.
  • Los broches son seguros y protegidos. Dado que todas las dependencias están incluidas en el paquete instantáneo, no hay riesgo de un conflicto de dependencia. Además, las instantáneas están aisladas del resto del sistema, por lo que no pueden acceder a sus datos u otras aplicaciones en su sistema.
  • Puede instalar su aplicación favorita en cualquier distribución de Linux que admita instantáneas.

Instalación de Snapd en Linux

Snapd es un demonio que permite la instalación y el uso de complementos y debe instalarse antes de poder utilizar Snapcraft. Cuando instala Snapd, también instala una herramienta de interfaz de línea de comandos (CLI) llamada snap. Puede usar esta herramienta para administrar sus instantáneas.

Para instalar Snapd en Ubuntu, abra una terminal e ingrese el siguiente comando, ingresando su contraseña de usuario cuando se le solicite.

sudo apt update -y  && sudo apt install snapd -y
Snapcraft Instalar Snapd Ubuntu

En CentOS, deberá habilitar el repositorio EPEL antes de poder instalar Snapd. Para hacer esto, primero ingrese el siguiente comando en su terminal:

sudo dnf install epel-release -y && sudo dnf update -y
Snapcraft Habilitar repositorio Epel

Luego, instale Snapd con el siguiente comando. Ingrese la contraseña para el usuario sudo cuando se le solicite.

sudo dnf install snapd -y
Snapscrat Instalar Snapd Centos

En Fedora, instale con el comando:

En Arch Linux, instale snapd desde AUR. Consulte estos asistentes de AUR para ayudarlo a instalar paquetes de terceros fácilmente.

Una vez que se complete la instalación, ejecute el siguiente comando para habilitar el snapd.socket unidad del sistema. Esto garantiza que el demonio Snapd se inicie automáticamente cuando se inicie el sistema.

sudo systemctl enable --now snapd.socket

Cree un enlace simbólico entre «/var/lib/snapd/snap» y «/snap» para habilitar el soporte de complemento clásico.

sudo ln -s /var/lib/snapd/snap /snap

Ahora que ha instalado Snapd en su sistema Linux, verifique la versión de Snapd con el siguiente comando. Verá una salida similar a la siguiente.

Versión de Snapcraft

También puede verificar el estado del servicio Snapd con el siguiente comando.

sudo systemctl status snapd
Snapcraft Estado Snapd Ubuntu 1

Instalación de Snapcraft

Antes de poder crear paquetes instantáneos, debe instalar Snapcraft, la herramienta utilizada para crear paquetes instantáneos.

Para instalar Snapcraft en Linux, ejecute el siguiente comando. los classic bandera dice snap usar el classic modo de confinamiento. Esta bandera es obligatoria ya que Snapcraft aún no es compatible con el modo de confinamiento más nuevo y restrictivo.

sudo snap install snapcraft --classic
Snapcraft Instalar Snapcraft

Verifique que Snapcraft esté instalado comprobando el número de versión.

Número de versión de Snapscraft.

Uso de Snapcraft para crear un paquete Snap

Ahora, la parte interesante: usar Snapcraft para crear un paquete instantáneo para una aplicación. En este tutorial, estamos creando un complemento básico de hola mundo, un complemento simple que imprime «¡Hola, mundo!» cuando lo ejecutas. Después de completar este tutorial, aplique el mismo proceso para crear instantáneas para sus propias aplicaciones.

En aras de la simplicidad, los pasos a continuación lo guiarán a través del proceso de creación de un complemento en Ubuntu. Los mismos pasos también se pueden aplicar en otras distribuciones de Linux.

Iniciar un proyecto para tu complemento

Primero cree un directorio de proyecto para su complemento. Será el directorio de trabajo para su proyecto y lo ayudará a mantener sus archivos de proyecto organizados.

  1. Cree un directorio de proyecto llamado «hola» con el siguiente comando:

los -p bandera le dice a la mkdir comando para crear cualquier directorio principal que aún no exista. En este caso, el mysnaps Se creará un directorio si no existe. Puede colocar cualquier instantánea futura dentro de este directorio.

  1. Vaya al directorio del proyecto recién creado e inicialice el proyecto con el init comando para crear un archivo llamado «snapcraft.yaml» en el directorio de su proyecto. Puede usar el archivo «snapcraft.yaml» para configurar su complemento más tarde.
cd ~/mysnaps/hello
snapcraft init
Proyecto de inicialización de Snapcraft 1
  1. Comprueba la estructura de tu proyecto con el tree comando, que imprime una representación gráfica de su directorio de proyectos.

Verá una salida similar a la siguiente.

Verifique la estructura de su proyecto

Adición de metadatos de nivel superior

Snapcraft proporciona muchos metadatos que puede usar para describir su paquete instantáneo. En este tutorial, agregamos información básica que se requiere para cada complemento.

  1. Abra el archivo «snapcraft.yaml» en su editor de texto favorito. Usamos nano en este tutorial.
  1. Elimine las líneas de marcador de posición y reemplácelas con el siguiente contenido.
name: hello
base: core18
version: '2.10'
summary: GNU Hello, the "hello world" snap
description: |
  GNU hello prints a friendly greeting.
grade: devel
confinement: devmode

Aquí cambiamos la información de nuestro complemento. los core18 base le dice a Snapcraft que desea crear un complemento basado en Ubuntu Core 18. El confinement: devmode los metadatos le dicen a Snapcraft que desea crear un complemento que no esté confinado, lo cual es útil para fines de desarrollo y prueba.

Exponiendo su aplicación

  1. Agregue las siguientes líneas después del campo de confinamiento en su archivo «snapcraft.yaml». Aquí especificamos la aplicación que queremos empaquetar.
apps:
 hello:
  command: bin/hello

En este caso, solo tenemos una aplicación, hello. los command line le dice a Snapcraft qué binario ejecutar cuando se instala el complemento.

Agregar una parte

  1. En una nueva línea, agregue lo siguiente parts dominio:
parts:
  gnu-hello:
    source: http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
    plugin: autotools

Esto le dice a Snapcraft qué software desea incluir en su paquete instantáneo.

Para crear este complemento hello-world, debe descargar el código fuente de GNU Hello, luego usar el autotool complemento para construir la aplicación desde la fuente.

  1. En este punto, su archivo snapcraft.yaml se verá como el que se muestra a continuación. Guarde y cierre el archivo snapcraft.yaml antes de pasar al siguiente paso.
Archivo Snapcraft.yaml

Construyendo el Paquete Snap

Ahora que ha definido su complemento, es hora de construirlo. Para crear un paquete instantáneo, ejecute el siguiente comando.

Se le pedirá que instale «multipass» si no lo tiene en su sistema. Snapcraft utiliza varias pasadas para crear un entorno aislado para crear instantáneas dentro de una máquina virtual. Escribe y y presiona Ingresar continuar.

Pase múltiple de Snapcraft

El proceso de creación puede demorar un tiempo, según la conexión a Internet y las especificaciones de la computadora. Una vez que finalice el proceso de construcción, verá algo similar al siguiente resultado.

Construcción instantánea

Al final, encontrará un «hello_2.10_amd64.snap» en el directorio del proyecto.

Prueba del paquete Snap

Para probar si su paquete instantáneo está funcionando, ejecute el siguiente comando:

sudo snap install --devmode hello_2.10_amd64.snap

los --devmode bandera dice snap que desea instalar el complemento en devmodeque es útil para fines de prueba.

Instantánea de instalación de Snapcraft

A continuación, ejecute el siguiente comando para ejecutar su aplicación hello-world.

Verá el siguiente resultado, que indica que su complemento hello-world está funcionando como se esperaba.

Snapcraft Ejecute su aplicación Hello World

Para ver la versión de su aplicación hello-world, ejecute el siguiente comando.

Versión de la aplicación Snapcraft Hello World

Si encuentra un problema mientras prueba el complemento, obtenga más información utilizando el --debug flag y ejecutando el siguiente comando.

Depuración de Snapcraft

Preguntas frecuentes

¿Es Snapcraft seguro?

¡Absolutamente! Snapcraft es la herramienta oficial para crear instantáneas. Es desarrollado y mantenido por Canonical, la compañía detrás de Ubuntu. Tenga la seguridad de que Snapcraft es seguro y confiable.

¿Es Snap como Docker?

Si y no. Snap y Docker son tecnologías de contenedores, pero tienen diferentes propósitos. Piense en Snap como un formato de empaquetado para su aplicación y en Docker como un entorno de tiempo de ejecución para su aplicación. Puede configurar WordPress con Nginx y PHP en un contenedor Docker utilizando las imágenes oficiales de WordPress y Nginx, pero no puede crear un paquete Snap para su sitio de WordPress.

¿Es snap mejor que apt o apt-get?

Eso depende. Ambos sistemas tienen sus propias ventajas y desventajas. Apt y apt-get es el administrador de paquetes tradicional para las distribuciones de Linux basadas en Debian. Ha existido durante mucho tiempo y es muy estable, pero tiene algunos inconvenientes. Por ejemplo, apt no admite el control de versiones ni la reversión. Snap, por otro lado, admite tanto el control de versiones como la reversión. Entonces, si desea experimentar con nuevas versiones de su aplicación, Snap es el camino a seguir. Pero si desea un sistema estable, apt y apt-get son la mejor opción.

Credito de imagen: Freepik. Todas las capturas de pantalla de Nicholas Xuan Nguyen.

¿Es útil este artículo?

¡Suscríbete a nuestro boletín!

Nuestros últimos tutoriales enviados directamente a su bandeja de entrada

¡Compártelo en redes sociales!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Ver más

  • Responsable: David Martínez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a Banahosting que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.