Cómo trabajar con paquetes Snap en Linux
Publicado: 2022-01-29 Cuando instala paquetes de software de Linux con snap
, puede decir adiós al infierno de dependencia y romper otras aplicaciones de trabajo. Los paquetes Snap se diseñaron originalmente para Ubuntu, pero ahora están disponibles en una variedad de distribuciones de Linux.
¿Qué son los paquetes instantáneos?
En el pasado, instalar aplicaciones en Linux era una experiencia potencialmente frustrante. Instalaría algo solo para encontrar una biblioteca en particular u otra dependencia que falta o está desactualizada. Luego buscaría el recurso faltante y lo instalaría, solo para encontrar otra aplicación que dependiera de la versión de la biblioteca que acaba de reemplazar. Arreglar uno, romper uno, repetir.
Esto ha mejorado con mejores sistemas de administración de paquetes, como apt, dnf y pacman. Sin embargo, todavía se enfrenta a una lucha si necesita instalar diferentes versiones de la misma aplicación. O bien, si usa dos aplicaciones que chocan porque 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. Snappy es uno de los más populares de estos. Se basa en un sistema de empaquetado e implementación llamado Click, que se remonta a la iniciativa Ubuntu Touch. AppImage y FlatPack son otros que podrías haber encontrado.
Estos sistemas encapsulan la aplicación junto con las dependencias y otros requisitos en un único archivo comprimido. Luego, la aplicación se ejecuta en una especie de minicontenedor. Está aislado y separado de otras aplicaciones. Las bibliotecas y otros recursos con los que se empaqueta o requiere la aplicación solo están disponibles para ella.
No se instalan en el sentido tradicional, por lo que no causan ningún problema con otras aplicaciones que requieren diferentes versiones de los mismos recursos. Incluso puede instalar y ejecutar aplicaciones que necesitan versiones de biblioteca en conflicto porque cada aplicación está en su propia zona de pruebas.
Sin embargo, si no se instalan de la manera habitual, ¿cómo se manejan? Bueno, el archivo del paquete único se descarga, descomprime y monta como un sistema de archivos virtual SquashFS
. Luego se le presenta como un entorno virtual. Todo esto tiene lugar tras bambalinas. Todo lo que sabrá es que instaló una aplicación y, ahora, tiene acceso a ella.
Por supuesto, debido a que cada archivo de paquete debe contener todos los recursos que necesita la aplicación, los archivos de paquete pueden ser grandes. También es fácil duplicar un recurso que normalmente solo instalaría una vez, como MySQL o Apache. Si dos aplicaciones snap
diferentes requieren los mismos recursos, cada una trae su propia copia.
Sin embargo, esta es la compensación por la simplicidad de la instalación y la eliminación de los dolores de cabeza del conflicto de recursos.
Instalando 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 usa para interactuar con ellos. Detrás de escena, el demonio snapd
también es el nombre del paquete que debe instalar si aún no tiene Snappy en su computadora.
Para instalar snapd
en Fedora, escriba el siguiente comando:
sudo dnf instalar snapd
Si necesita instalarlo en Manjaro, use estos comandos:
sudo pacman-sy snapd
sudo systemctl habilitar --ahora snapd.socket
Puede usar el comando snap version
para ver la versión del cliente snap
, el demonio snapd
y el número de serie del software. También se le mostrará el nombre y la versión de su distribución de Linux y la versión del kernel.
Escribe lo siguiente:
versión instantánea
Instalación de paquetes instantáneos
Es un proceso bastante sencillo instalar un paquete snap
. Puede usar snap
para buscar paquetes snap
y luego instalar el que desee.
Escribimos lo siguiente para buscar e instalar el editor de imágenes gimp:
chasquido encontrar gimp
snap
busca coincidencias con la pista de búsqueda "gimp" y devuelve sus hallazgos. Encontrará todo lo que coincida o mencione el término de búsqueda.
Para instalar uno de los paquetes, usamos el valor de la columna Name
, como se muestra a continuación:
sudo snap instalar gimp
A medida que se descarga, la cifra del 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) que le indica que se instaló el paquete.
Puede usar el comando df
para verificar la capacidad y el uso de los diferentes sistemas de archivos configurados en su computadora Linux. Si canalizamos su salida al comando grep
y buscamos "gimp", aislamos la entrada del paquete que acabamos de instalar.
Tecleamos 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 directorio snap
aquí: /snap/gimp/252
. El “252” es el número de lanzamiento de esta versión de gimp
.
RELACIONADO: Cómo usar el comando grep en Linux
El sistema de archivos aparece como: /dev/loop18
. Los archivos de dispositivo de bucle se utilizan para hacer que los archivos regulares sean accesibles como dispositivos de bloque. Por lo general, se usan para montar los sistemas de archivos en imágenes de disco. En este caso, están montando el sistema de archivos SquashFS
dentro del paquete snap
. El "18" significa que este es el archivo de dispositivo /dev/loop
18 en uso en esta computadora Linux.
Podemos usar el comando df
para verificar esto rápidamente. Usaremos la opción – t
(tipo) para limitar la salida solo a los tipos de archivo SquashFS
.
Tecleamos lo siguiente:
df -t calabazas
Se enumeran los sistemas de archivos SquashFS
montados. Un archivo de dispositivo /dev/loop
maneja cada uno, y hay 18 de ellos.
Cada sistema de archivos está montado en un directorio dentro del directorio /snap
. Sin embargo, esto no significa que haya 18 paquetes snap
diferentes instalados en esta computadora. Esta es una distribución de Ubuntu, por lo que algunos paquetes snap
se instalan de inmediato, y acabamos de instalar otro.
Además, cuando instalas snapd
, se instalan algunos paquetes de snap
básicos para manejar las necesidades de otros paquetes de snap
.
Podemos usar el comando de snap list
, como se muestra a continuación, para enumerar los paquetes snap
instalados:
lista instantánea
La salida fue un poco amplia, por lo que el final de los listados se muestra a continuación.
Aquí está el listado completo:
Nombre Versión Seguimiento Rev Notas del editor núcleo 16-2.43.3 8689 núcleo canónico estable * core18 20200124 1668 base canónica* estable gimp 2.10.18 252 snapcrafters estables - gnome-3-26-1604 3.26.0.20191114 98 estable/... canónico* - gnome-3-28-1804 3.28.0-16-g27c9498.27c9498 116 canónica estable* - gnome-calculator 3.34.1+git1.d34dc842 544 estable/... canónico* - gnome-caracteres v3.32.1+git3.b9120df 399 estable/... canonical* - gnome-logs 3.34.0 81 estable/... canonical* - gnome-system-monitor 3.32.1-3-g0ea89b4922 127 estable/... canónico* - gtk-common-themes 0.1-28-g1503258 1440 estable/... canónico* -
Como puede ver, hay 10 paquetes instantáneos instalados, no 18. Sin embargo, estos 10 paquetes han dado lugar a los 18 sistemas de archivos SquashFS
. Las columnas de la tabla se explican por sí mismas, pero aquí hay algunas aclaraciones:
- Nombre : el nombre del paquete
snap
que se instaló. - Versión : El número de versión del software en el paquete de
snap
. - Rev : el número de revisión del paquete de
snap
. - Seguimiento : el canal que este paquete
snap
supervisa en busca de 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 se parece mucho a él porque contiene software de nivel de candidato de versión, que tiene el código completo. Pasa por las pruebas finales antes de pasar al canal estable.
- Beta: este canal tiene calidad de ciclo de desarrollo tardío, pero no se garantiza que sea estable.
- Edge: 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, empresa u organización que lanzó el paquete
snap
. Si era un editor verificado (y la ventana de su terminal es compatible con 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 instantáneos
Puede usar la opción de info
para obtener una descripción de un paquete snap
.
Para ello escribimos lo siguiente:
ajustar información gtk-common-themes
Podemos ver qué canal está rastreando el paquete y la versión del software en los paquetes snap
en cada uno de los cuatro canales. En la mayoría de las circunstancias, debe permanecer en el canal estable.
Un paquete snap
verifica cuatro veces al día para ver si una versión más nueva del software está disponible en el canal que está viendo o "rastreando". Si desea cambiar el canal que rastrea el paquete snap
, puede usar las opciones refresh
y --channel
.
Para ello escribimos lo siguiente:
sudo snap actualizar gtk-common-themes --channel=beta
Si hubiera disponible una versión más nueva del software, se instalaría, pero ese no fue el caso aquí. Sin embargo, el paquete snap
ahora está rastreando el canal beta. Tan pronto como se lanza una nueva versión beta, se descarga y actualiza automáticamente.
Puede usar la opción --list
para verificar si hay actualizaciones disponibles para cualquiera de los paquetes snap
instalados en su computadora.
Para ello escribimos lo siguiente:
sudo snap actualizar --lista
Se le informará si alguno de los canales que rastrean los paquetes snap
en su computadora contiene versiones de software más nuevas.
Si hay disponible una versión más reciente del software, puede usar la opción de refresh
, como se muestra a continuación, para forzar manualmente una actualización:
sudo snap actualizar gtk-common-themes
Eliminación de un paquete instantáneo
Para desinstalar un paquete snap
, puede usar la opción Eliminar, como se muestra a continuación:
sudo snap eliminar gimp
La hoja de referencia rápida
Usar paquetes instantáneos es bastante simple, pero hemos compilado una lista de algunos comandos que lo ayudarán:
- Para buscar un paquete: haga clic en
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 rastrea un paquete para las actualizaciones:
sudo snap refresh package_name --channel=channel_name
- Para ver si las actualizaciones están listas para cualquier paquete instalado:
sudo snap refresh --list
- Para actualizar manualmente un paquete:
sudo snap refresh package_name
- Para desinstalar un paquete:
sudo snap remove package_name
Comandos Linux | ||
archivos | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · cola · stat · ls · fstab · eco · menos · chgrp · chown · rev · mirar · cadenas · tipo · renombrar · zip · descomprimir · montar · desmontar · instalar · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · parche · convertir · rclone · triturar · srm | |
Procesos | alias · pantalla · top · agradable · renice · progreso · strace · systemd · tmux · chsh · historia · at · lote · gratis · cual · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · tiempo de espera · pared · sí · matar · dormir · sudo · su · hora · groupadd · usermod · grupos · lshw · apagar · reiniciar · detener · apagar · contraseña · lscpu · crontab · fecha · bg · fg | |
Redes | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · cavar · dedo · nmap · ftp · curl · wget · quién · whoami · w · iptables · ssh-keygen · ufw |
RELACIONADO: Las mejores computadoras portátiles Linux para desarrolladores y entusiastas