Instalar paquetes Snap en Centos 7
Desde hace unos años, gracias al trabajo de la compañía Canonical, tenemos disponibles los paquetes Snap. Su intención es simplificar la instalación de programas en GNU/Linux. Snap, que viene de la palabra Snappy, es un sistema de administración de paquetes y despliegue de software. En sus inicios este sistema fue diseñado por la compañía sudafricana, para el ya malogrado sistema operativo, enfocado a teléfonos móviles con Ubuntu Phone.
Veamos antes de nada en que consiste.
¿Qué son Snap y Snapd?
Digamos que este sistema tiene dos patas importantes. Una es Snap que es propiamente la herramienta de instalación y gestión de los paquetes Snap. Luego está Snampd, que es un servicio o “daemon” de API REST, que se ejecuta en los sistemas GNU/Linux, para administrar los paquetes. Este interactúa con la “snap Store” y proporciona el comando “clientsnap”, necesario para interactuar con él. Debemos tener instalado snapd antes de poder administrar los paquetes Snaps en cualquier distribución.
Características y ventas de los paquetes Snap
Este tipo de paquetes tienen una serie de características que lo hacen muy interesantes y potentes:
- Son más rápidos de instalar, más fáciles de crear y más seguros, desde el punto de vista de ejecución. Se actualizan de forma automática, de manera que la aplicación que contienen esos paquetes siempre está actualizada.
- Los paquetes Snap, funcionan en cualquier distribución y dispositivo. Desde Internet de las cosas, a servidores, PC de sobremesa y dispositivos móviles. Siempre que tengamos Snapd funcionando
Si queréis profundizar en su funcionamiento siempre podéis consultar este completo artículo al respecto escrito por el amigo Lorenzo, en su web Atareao.es
Instalar Snap y Snapd en Centos 7
Para poder instalarlo debemos habilitar el repositorio EPEL
De la siguiente manera:
sudo yum install epel-release
E instalamos:
sudo yum -y install snapd
Una vez finalizada la instalación habilitado el socket de snapd
sudo systemctl enable --now snapd.socket
Además, creamos el siguiente enlace simbólico necesario para su funcionamiento:
sudo ln -s /var/lib/snapd/snap /snap
Una vez hecho podemos comprobar su funcionamiento, buscando por ejemplo un paquete a instalar:
[root@servcentos]# snap find powershell
Name Version Publisher Notes Summary
powershell-preview 6.2.0-preview.3 microsoft-powershell✓ classic PowerShell for every system!
powershell 6.1.2 microsoft-powershell✓ classic PowerShell for every system!
Para instalar un paquete escribimos y ejecutamos:
[root@servcentos]# snap install powershell --classic
2019-01-27T19:45:38+01:00 INFO Waiting for restart...
powershell 6.1.2 from Microsoft PowerShell✓ installed
Para poder acceder desde cualquier parte del sistema a los paquetes Snap instalados, debemos editar el fichero “/etc/profiles” y añadir la ruta del directorio con los paquetes:
sudo vi /etc/profile
#Y añadimos en el fichero
export PATH="$PATH:/snap/bin/"
Para aplicar los cambios sin salir de la sesion ejecutamos:
source /etc/profile
Ahora ya podemos ejecutar el comando ‘pwsh’ para carga la consola de PowerShell:
[root@servcentos]# pwsh
PowerShell 6.1.2
Copyright (c) Microsoft Corporation. All rights reserved.
https://aka.ms/pscore6-docs
Type 'help' to get help.
PS /etc/yum.repos.d>
Trabajar con paquetes Snaps
Podemos hacer muchas más cosas, como por ejemplo listar los paquetes Snap instalados, con el parámetro “list”
[root@servcentos]# snap list
Name Version Rev Tracking Publisher Notes
core 16-2.36.3 6130 stable canonical✓ core
powershell 6.1.2 17 stable microsoft-powershell✓ classic
Si queremos actualizar un paquete:
[root@servcentos]# snap refresh powershell
snap "powershell" has no updates available
Para eliminar un paquete snap:
[root@servcentos]# snap remove powershell
powershell removed
Otro parámetro muy interesante es “info”, ya que nos ofrece información detallada sobre el paquete:
[root@servcentos]# snap info powershell
name: powershell
summary: PowerShell for every system!
publisher: Microsoft PowerShell✓
contact: https://github.com/powershell/powershell
license: MIT
description: |
PowerShell is an automation and configuration management platform.
It consists of a cross-platform (Windows, Linux, and macOS)
command-line shell and associated scripting language.
See
https://docs.microsoft.com/en-us/powershell/scripting/powershell-core-support
for support details.
snap-id: JSNnoJl3EqkMuWoy5Dgq8PMqZ0uNcpie
channels:
stable: 6.1.2 (17) 59MB classic
candidate: 6.1.2 (17) 59MB classic
beta: 6.1.2 (17) 59MB classic
edge: 6.1.2 (17) 59MB classic
Por último, también podemos hacer un “rollback” a una versión de un programa instalado con este sistema:
sudo snap revert “paquete snap”
Conclusión
Una vez hecho todos estos pasos ya podemos trabajar de manera fácil con los paquetes Snap, tanto su instalación, actualización manual, eliminación o búsqueda de información. Creo que es una manera muy útil de trabajar con los paquetes, simplificando las cosas. Ya que de esta manera nos ahorramos los posibles problemas con las dependencias.
¿Qué os parecen? ¿Os gusta este sistema o preferís la manera «clásica» de instalación de programas en GNU/Linux?
Fuentes consultadas:
Computingforgeeks.com – How to Install Snapd and Snap applications on Centos 7