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:

  1. sudo yum install epel-release

E instalamos:

  1. sudo yum -y install snapd

Una vez finalizada la instalación habilitado el socket de snapd

  1. sudo systemctl enable --now snapd.socket

Además, creamos el siguiente enlace simbólico necesario para su funcionamiento:

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

Una vez hecho podemos comprobar su funcionamiento, buscando por ejemplo un paquete a instalar:

  1. [root@servcentos]# snap find powershell
  2. Name                Version          Publisher              Notes    Summary
  3. powershell-preview  6.2.0-preview.3  microsoft-powershell✓  classic  PowerShell for every system!
  4. powershell          6.1.2            microsoft-powershell✓  classic  PowerShell for every system!

Para instalar un paquete escribimos y ejecutamos:

  1. [root@servcentos]# snap install powershell --classic
  2. 2019-01-27T19:45:38+01:00 INFO Waiting for restart...
  3. 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:

  1. sudo vi /etc/profile
  2. #Y añadimos en el fichero
  3. export PATH="$PATH:/snap/bin/"

Para aplicar los cambios sin salir de la sesion ejecutamos:

  1. source /etc/profile

Ahora ya podemos ejecutar el comando ‘pwsh’ para carga la consola de PowerShell:

  1. [root@servcentos]# pwsh
  2. PowerShell 6.1.2
  3. Copyright (c) Microsoft Corporation. All rights reserved.
  4.  
  5. https://aka.ms/pscore6-docs
  6. Type 'help' to get help.
  7.  
  8. 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”

  1. [root@servcentos]# snap list
  2. Name        Version    Rev   Tracking  Publisher              Notes
  3. core        16-2.36.3  6130  stable    canonical✓             core
  4. powershell  6.1.2      17    stable    microsoft-powershell✓  classic

Si queremos actualizar un paquete:

  1. [root@servcentos]# snap refresh powershell
  2. snap "powershell" has no updates available

Para eliminar un paquete snap:

  1. [root@servcentos]# snap remove powershell
  2. powershell removed

Otro parámetro muy interesante es “info”, ya que nos ofrece información detallada sobre el paquete:

  1. [root@servcentos]# snap info powershell
  2. name:      powershell
  3. summary:   PowerShell for every system!
  4. publisher: Microsoft PowerShell✓
  5. contact:   https://github.com/powershell/powershell
  6. license:   MIT
  7. description: |
  8.   PowerShell is an automation and configuration management platform.
  9.   It consists of a cross-platform (Windows, Linux, and macOS)
  10.   command-line shell and associated scripting language.
  11.  
  12.   See
  13.   https://docs.microsoft.com/en-us/powershell/scripting/powershell-core-support
  14.   for support details.
  15. snap-id: JSNnoJl3EqkMuWoy5Dgq8PMqZ0uNcpie
  16. channels:
  17.   stable:    6.1.2 (17) 59MB classic
  18.   candidate: 6.1.2 (17) 59MB classic
  19.   beta:      6.1.2 (17) 59MB classic
  20.   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:

  1. 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