lunes, 15 de enero de 2024

Los paquetes “Snap”

En la columna My Opinion, en las páginas 48 y 49 de la edición más reciente de Full Circle Magazine (de la que aún no he publicado mi reseña), el incansable Erik escribe sobre los controversiales paquetes Snap de Canonical. Es un muy buen artículo. Así que lo traduje al español y lo publico a continuación:

El amor, el odio, la controversia, como los granos en un reloj de arena, así son los días de nuestras vidas...

Según la web de snapcraft

Snapcraft – Los Snaps son paquetes universales para Linux.

  • El Snapcraft de Canonical es una tienda de aplicaciones (en C/C++, Java, Node.js, Electron, Flutter, Ruby, MOOS, ROS 2, etc.) prefabricadas para Linux. 
  • Los Snaps son fáciles de encontrar e instalar. Millones de usuarios pueden explorar e instalar gráficamente snaps desde la tienda de Snaps o desde la línea de comandos.
  • Los Snaps se instalan y ejecutan igual en todos los Linux.

Entonces, ¿que obtenemos de toda esta definición? Que se trata de paquetes universales para Linux y una pérdida de tiempo leyéndola.

A ver si encuentro más información para compartir con nuestros lectores. Los paquetes autónomos no son nada nuevo en el mundo del software. Si alguna vez ha utilizado MacOS también deberían serle familiares. Al hablar de MacOS, intencionalmente no utilicé la expresión “paquete universal” ya que refiere a algo levemente diferente pero, en esencia, los Snaps son paquetes universales para Ubuntu. De acuerdo, pero ¿qué significa eso? Significa que la aplicación y todos los cachivaches que necesita para ejecutarse se encuentran en un conveniente paquete (dicen que se inspiran en las aplicaciones móviles). Básicamente una aplicación autónoma. En Windows puede encontrar “aplicaciones portátiles”, que son similares y, ciertamente, los paquetes Snap son portátiles. Dado a que contienen más que solamente la aplicación, no son gestionados por el gestor de paquetes de su distribución y se necesita una herramienta aparte para gestionarlos. Profundicemos un poco más sobre este tema ya que actualmente ha concitado mucha atención.

Para usted, como usuario con una computadora moderna, los Snaps pueden ser otra forma de obtener aplicaciones. No se puede negar el hecho de que los paquetes Snap traen a Linux un montón de software que previamente no estaba disponible y eso es genial. Los paquetes Snap también soportan canales, lo que significa que puede obtener software estable desde un canal y sus compilaciones diarias (nightly builds) desde otro, todo genial. Debido a que los paquetes Snap son autónomos, primero tienen que desempaquetar y cargar todos esos cachivaches al ser ejecutados, sin importar si ya tiene la misma versión en la memoria, resultando en tiempos de carga más largos y mayor consumo de memoria. De nuevo: no es un problema si está utilizando una computadora moderna. Pero… si lo vemos desde la perspectiva de alguien que compró una Asus i3, 1.8Ghz con 4GB de memoria y 80GB, 5400rpm lento y oxidado, hace años, más espacio de disco duro desperdiciado, más memoria desperdiciada, más revoluciones del CPU desperdiciadas: no tiene sentido, en especial si quiere “salvar” a su laptop de terminar en el vertedero. Ahora tiene información redundante por todos lados ya que cada Snap utiliza los mismos recursos, pero cada uno en su propia burbuja. Encima, imagine que está usando su teléfono celular para conectarse a Internet. De no creer lo rápido que se quedaría sin fondos (contraste esto con Ubuntu 5.10 cuando yo disponía de 10MB de datos mensuales y las actualizaciones eran en kilobytes, ¡y era suficiente!) No temo que Canonical esté haciendo cosas nefastas con los Snaps, a diferencia de MS, pero Linux Mint anda a las patadas como loco contra los Snaps (https://hackaday.com/2020/06/24/whats-the-deal-with-snap-packages/).

Lo que más me molesta de los paquetes Snap es que la gente los está utilizando para cosas en las que no son necesarias (como, por ejemplo, para instalar VIM) perdiendo tiempo y espacio, al estilo de lo que está haciendo Microsoft con su tienda, OBLIGANDO a la gente a utilizarla. ¿Quiere un panel de control para su tarjeta de sonido o el panel de control de Nvidia con sus drivers convenientemente empaquetados? ¡Ja! ¡Ya no! Microsoft ahora lo tiene exclusivamente en su tienda. ¿Por qué? Probablemente para poder agregarle más spyware y extraer más datos para vender. Veamos la página de Firefox en la tienda de software. No presenta la opción de instalar un archivo .DEB. Es Snap o Snap. Desde una perspectiva empresarila tiene sentido, pero no para un usuario doméstico. Como nos gusta la posibilidad de elegir, prefiero las aplicaciones rápidas a las autocontenidas ¿Usted no? Desde el punto de vista de los recursos me gustaría tener la opción de no llenar mi disco con información redundante (aunque tengo que aclarar que no todos los Snaps son un desperdicio de recursos, recuerdo que el Snap de Blender era del mismo tamaño que una instalación nativa más sus dependencias).

Se han hecho muchos avances para mejorar los Snaps y me parece muy bien. Antes, al hacer una df-h, terminaba con una pantalla interminable de dispositivos en bucle y era necesario modificar el comando con un alias. En las versiones más recientes eso ha sido corregido. El Snap de Firefox ahora se ejecuta a una velocidad decente y cosas por el estilo. Sin dudas hay una demanda por un paquete universal para Linux. Sin embargo, si hace un lsblk, los verá (a los Snaps) como sistemas de archivos montados, cuando, por ejemplo, lo único que quiere ver es si su unidad montada sigue aún ahí.

Hemos avanzado tanto en cosas como la virtualización y el ahorro de recursos, solo para ir en la dirección opuesta con el software (por ejemplo, mi máquina con Windows 7 pre-release y con menos de la mitad de potencia arrancaba más rápido que mi máquina con Windows 11 y un SSD súper veloz y cuatro veces más de memoria). Incluso cuando los paquetes Snap se actualizan, descargan todo de nuevo, malgastando ancho de banda y escribiendo muchos datos en su disco y, en caso de que tenga un SSD antiguo, acortándole la vida por bastante margen.

El principal punto de discordia, para mucha gente, es el punto único de fallo. Si la tienda de Snap se cae, digamos por un ataque DDOS, también lo hace su oportunidad de conseguir más software o actualizaciones. No es Código abierto, así que no puede tener su tienda en su propio servidor, lo que lo hace parecido al jardín amurallado de Apple. Aunque puede tener su propia “tienda”, por decirlo de alguna manera, en la plataforma de Canonical, no puede tenerla replicada en un servidor propio.

Lo bueno:

Las aplicaciones están aisladas, prometiendo más seguridad. El “confinamiento” del Snap describe el nivel de aislamiento de un snap en su sistema: estricto, clásico y modo desarrollo. Con estricto (‘strict’) la aplicación no puede acceder a los recursos del sistema. Esto puede ser problemático cuando necesite, por ejemplo, guardar un archivo en una unidad externa desde la aplicación snap. En el modo clásico (‘classic’), el nivel de confinamiento le da al snap el mismo acceso a los recursos que tienen los paquetes tradicionales. El Modo desarrollo (‘Devmode’) está reservado para los creadores y los desarrolladores de snaps. Un Snap con el nivel de confinamiento ‘Devmode’ se ejecuta como uno con nivel estricto pero, además, tiene acceso total a los recursos del sistema y proporciona una salida para depuración de errores. También puede revertir a un versión previa del software, si, por alguna razón, no está conforme con la actualización puede revertir fácilmente a la versión previa (downgrade). Una tienda de Snaps también elimina el uso de muchos PPA’s. Es una forma cómoda de encontrar software para los usuarios de Ubuntu.

Lo malo:

Ya han habido aplicaciones maliciosas en la tienda, ya que nadie las revisa realmente y todo lo que se necesita para publicar una aplicación en la tienda es una cuenta (ni siquiera es necesario ser el autor o mantenedor de la aplicación). Han habido artículos que sostienen que la seguridad por aislamiento es solo a nivel superficial. Los Snaps no se integran con el tema del sistema operativo, ya sea los punteros, los íconos o los colores. Además, están las actualizaciones forzadas, una de las razones principales porque la gente abandona Microsoft Windows y migra a Ubuntu. Muchos Gestores de paquetes también molestan a la gente.

Desde una perspectiva empresarial, es totalmente razonable y Canonical es una compañía con fines de lucro, dedicada a los negocios, aunque su fama le venga de los usuarios domésticos. Por eso, creo que los Snaps están aquí para quedarse. No tengo la bola de cristal, pero como alguien de la industria de las IT, que ha tenido que cumplir constantemente con condiciones definidas por Microsoft para excluir a otros, esta es una forma en que Canonical está arañando ese mercado.

Mi pequeño aporte

Aquí es donde creo que Canonical tiene que tomar una decisión; ser un Sistema Operativo para empresas o darle soporte a los usuarios domésticos que quieren tener el mismo Sistema Operativo en sus casas que el que tienen en el trabajo. Quizás sea el momento de seguir el ejemplo de Microsoft y dividirse en ediciones ‘home’ y ‘business’, donde tenga opciones en la versión doméstica y la versión empresarial sea rígida. De cualquier manera, los Snaps son solo parte del panorama general. Ubuntu es un producto de Canonical que también es un proyecto comunitario, con un dictador benévolo. Es realmente difícil de mantener el balance entre las necesidades de la comunidad y las de una empresa. Todos hemos sido testigos del fiasco de Red Hat de los últimos meses…

No hay comentarios.:

Publicar un comentario

Lo que escriba a continuación será revisado antes de publicarse.
Gracias por tus comentarios.