Cuando instala paquetes de software de Linux con snap
, puede decirle adiós al infierno de la dependencia y romper otras aplicaciones que funcionan. Los paquetes Snap se diseñaron originalmente para Ubuntu, pero ahora están disponibles en una gama de distribuciones de Linux.
¿Qué son los paquetes Snap?
En el pasado, instalar aplicaciones en Linux era una experiencia potencialmente frustrante. Instalaría algo solo para hallar una biblioteca en particular u otra dependencia que resta o está desactualizada. Después, buscaría el recurso faltante e instalaría, solo para hallar otra aplicación que dependiera de la versión de la biblioteca que acaba de reemplazar. Arregle uno, rompa uno, repita.
Esto ha mejorado con mejores sistemas de administración de paquetes, como apto, dnf, y pacman. A pesar de esto, aún enfrenta dificultades si necesita instalar diferentes versiones de la misma aplicación. O, si utiliza dos aplicaciones que entran en conflicto debido a que están vinculadas a versiones específicas, pero diferentes, de una biblioteca.
Una solución a estos problemas son los sistemas de implementación y empaquetado de aplicaciones. Rápido es uno de los más populares. Se basa en un sistema de empaquetado e implementación llamado Click, que se remonta a la Ubuntu Touch iniciativa. AppImage y Paquete plano son otros que podría haber encontrado.
Estos sistemas encapsulan la aplicación junto con las dependencias y otros requerimientos en un solo archivo comprimido. Después, la aplicación se ejecuta en una especie de mini contenedor. Está aislado y separado de otras aplicaciones. Las bibliotecas y otros recursos con los que está empaquetada la aplicación o que necesita solo están disponibles para ella.
No se instalan en el sentido tradicional, por lo que no generan ningún problema con otras aplicaciones que requieren diferentes versiones de los mismos recursos. Inclusive puede instalar y ejecutar aplicaciones que necesitan versiones de biblioteca conflictivas debido a que cada aplicación está en su propia caja de arena.
A pesar de esto, si no se instalan de la forma usual, ¿cómo se manejan? Bueno, el archivo de paquete único se descarga, descomprime y monta como un SquashFS
sistema de archivos virtual. Después se le presenta como un entorno virtual. Todo esto sucede entre bastidores. Todo lo que sabrá es que ha instalado una aplicación y, ahora, tiene acceso a ella.
Desde luego, debido a que cada archivo de paquete debe contener todos los recursos que necesita la aplicación, los archivos de paquete pueden ser grandes. Además es fácil duplicar un recurso que regularmente solo instalarías una vez, como MySQL o apache. Si dos diferentes snap
las aplicaciones requieren los mismos recursos, cada una trae su propia copia.
A pesar de esto, esta es la compensación por la simplicidad de la instalación y la eliminación de los dolores de cabeza por conflictos de recursos.
Instalación de snapd
Snappy se introdujo con Ubuntu 16.04, por lo que si está ejecutando esa versión o una posterior, ya está listo para comenzar. En nuestra máquina, Snappy se instaló en Manjaro 18.04, pero tuvimos que instalarlo en Fedora 31.
snap
es tanto el nombre de los archivos del paquete como el comando que utiliza para interactuar con ellos. Detrás de escena, el snapd
daemon además es el nombre del paquete que debe instalar si aún no tiene Snappy en su computadora.
Instalar snapd
en Fedora, escriba el siguiente comando:
sudo dnf install snapd
Si necesita instalarlo en Manjaro, use estos comandos:
sudo pacman -Sy snapd
sudo systemctl enable --now snapd.socket
Puedes utilizar el snap version
comando para ver la versión del snap
cliente, snapd
daemon y el número de serie del software. El nombre y la versión de su distribución de Linux y la versión del kernel además se mostrarán.
Escriba lo siguiente:
snap version
Instalación de paquetes instantáneos
Es un procedimiento bastante sencillo instalar un snap
paquete. Puedes utilizar snap
buscar snap
paquetes y después instale el que desee.
Escribimos lo siguiente para buscar e instalar el editor de imágenes gimp:
snap find gimp
snap
busca coincidencias con la pista de búsqueda «gimp» y devuelve sus resultados. Encontrará cualquier cosa que coincida o mencione el término de búsqueda.
Para instalar uno de los paquetes, usamos el valor del Name
columna, como se muestra a continuación:
sudo snap install gimp
A medida que se descarga, la cifra de porcentaje completado aumenta y una barra de progreso se desliza desde la izquierda de la ventana de la terminal. Cuando se completa la instalación, aparece un mensaje (como se muestra a continuación) indicándole que se instaló el paquete.
Puedes utilizar el df
comando para comprobar la capacidad y el uso de los diferentes sistemas de archivos configurados en su computadora Linux. Si canalizamos su salida al grep
comando y buscamos «gimp», aislar la entrada del paquete acabamos de instalar.
Escribimos lo siguiente:
df | grep gimp
Esto nos muestra que el paquete instantáneo se montó como si fuera un sistema de archivos. El punto de montaje está en el snap
directorio aquí: /snap/gimp/252
. El «252» es el número de lanzamiento de esta versión de gimp
.
RELACIONADO: Cómo utilizar el comando grep en Linux
El sistema de archivos aparece como: /dev/loop18
. Los archivos de dispositivo de bucle se usan para hacer que los archivos normales sean accesibles como dispositivos de bloque. Por lo general, se usan para montar los sistemas de archivos en imágenes de disco. Para este caso, están montando el SquashFS
sistema de archivos dentro del snap
paquete. El «18» significa que este es el 18 /dev/loop
archivo de dispositivo en uso en esta computadora Linux.
Podemos utilizar el df
comando para chequear esto rápidamente. Usaremos el – t
(tipo) opción para limitar la salida a SquashFS
tipos de archivo solamente.
Escribimos lo siguiente:
df -t squashfs
El montado SquashFS
se enumeran los sistemas de archivos. A /dev/loop
El archivo de dispositivo maneja cada uno, y hay 18 de ellos.
Cada sistema de archivos se monta en un directorio dentro del /snap
directorio. A pesar de esto, esto no significa que haya 18 snap
paquetes instalados en esta computadora. Esta es una distribución de Ubuntu, por lo que algunos snap
Los paquetes se instalan de inmediato y acabamos de instalar otro.
Al mismo tiempo, cuando instala snapd
, instala algunos núcleos snap
paquetes para manejar las necesidades de otros snap
paquetes.
Podemos utilizar el snap list
comando, como se muestra a continuación, para listar los instalados snap
paquetes:
snap list
La salida fue un poco amplia, por lo que el final de los listados se muestra a continuación.
Aquí está la lista completa:
Name Version Rev Tracking Publisher Notes core 16-2.43.3 8689 stable canonical* core core18 20200124 1668 stable canonical* base gimp 2.10.18 252 stable snapcrafters - gnome-3-26-1604 3.26.0.20191114 98 stable/… canonical* - gnome-3-28-1804 3.28.0-16-g27c9498.27c9498 116 stable canonical* - gnome-calculator 3.34.1+git1.d34dc842 544 stable/… canonical* - gnome-characters v3.32.1+git3.b9120df 399 stable/… canonical* - gnome-logs 3.34.0 81 stable/… canonical* - gnome-system-monitor 3.32.1-3-g0ea89b4922 127 stable/… canonical* - gtk-common-themes 0.1-28-g1503258 1440 stable/… canonical* -
Como puede ver, hay 10 paquetes snap instalados, no 18. A pesar de esto, estos 10 paquetes han dado lugar a los 18 SquashFS
sistemas de archivos. Las columnas de la tabla se explican por sí mismas, pero aquí hay algunas aclaraciones:
- Nombre: El nombre de
snap
paquete que se instaló. - Versión: El número de versión del software en el
snap
paquete. - Rvdo: El número de revisión del
snap
paquete. - Seguimiento: El canal este
snap
monitores de paquetes para actualizaciones. Existen cuatro:- Estable: El canal predeterminado. Como su nombre lo indica, este canal contiene los paquetes más estables.
- Candidato: Este canal es menos estable, pero está muy cerca de él debido a que contiene software de nivel de versión candidato, que es de código completo. Pasa por las pruebas finales antes de pasar al canal estable.
- Beta: Este canal cuenta con una calidad de ciclo de desarrollo tardío, pero no se garantiza que sea estable.
- Borde: Para probadores de compilación temprana. No debe usar este canal para trabajos importantes o en una computadora de producción. ¡Aquí hay dragones!
- Editor: La persona, compañía u organización que publicó el
snap
paquete. Si se trataba de un editor verificado (y la ventana de su terminal admite Unicode), verá una marca de verificación verde junto al nombre del editor. Si no puede mostrar una marca de verificación, verá un asterisco (*
). - Notas: Cualquier comentario o información adicional aparecerá aquí.
Los canales rápidos
Puedes utilizar el info
opción para obtener una descripción de un snap
paquete.
Para hacerlo, escribimos lo siguiente:
snap info gtk-common-themes
Podemos ver qué canal está rastreando el paquete y la versión del software en el snap
paquetes en cada uno de los cuatro canales. En la mayoría de las circunstancias, debe permanecer en el canal estable.
A snap
El paquete se comprueba cuatro veces al día para ver si hay una versión más reciente del software disponible en el canal que está viendo o «rastreando». Si desea cambiar el canal snap
paquete de pistas, puede usar el refresh
y --channel
opciones.
Para hacerlo, escribimos lo siguiente:
sudo snap refresh gtk-common-themes --channel=beta
Si hubiera una versión más nueva del software disponible, se instalaría, pero ese no fue el caso aquí. a pesar de esto, el snap
paquete ahora está rastreando el canal beta. Tan pronto como se lanza una versión nueva beta, se descarga y actualiza automáticamente.
Puedes utilizar el --list
opción para chequear si hay actualizaciones disponibles para alguno de los snap
paquetes instalados en su computadora.
Para hacerlo, escribimos lo siguiente:
sudo snap refresh --list
Se le dirá si alguno de los canales snap
los paquetes en su computadora que están rastreando contienen versiones de software más recientes.
Si hay una versión más reciente del software disponible, puede utilizar el refresh
opción, como se muestra a continuación, para forzar manualmente una actualización:
sudo snap refresh gtk-common-themes
Borrar un paquete instantáneo
Para desinstalar un snap
paquete, puede usar la opción de eliminación, como se muestra a continuación:
sudo snap remove gimp
La hoja de trucos snap
Utilizar paquetes instantáneos es bastante simple, pero hemos compilado una lista de algunos comandos que lo ayudarán:
- Para buscar un paquete:
snap find package_name
- Para instalar un paquete:
sudo snap install package_name
- Para ver todos los paquetes instalados:
snap list
- Para obtener información sobre un solo paquete:
snap info package_name
- Para cambiar el canal que un paquete rastrea para actualizaciones:
sudo snap refresh package_name --channel=channel_name
- Para ver si las actualizaciones están listas para los paquetes instalados:
sudo snap refresh --list
- Para actualizar manualmente un paquete:
sudo snap refresh package_name
- Para desinstalar un paquete:
sudo snap remove package_name