Necesitamos un nuevo sistema de paquetes de software para GNU/Linux.
Octubre 6 de 2.004
Por Manuel Alejandro Cerón Estrada.
La forma de instalar software en GNU/Linux varía demasiado entre distribuciones. Los formatos de paquetes binarios son incompatibles entre si, lo que hace que no sea posible, por ejemplo, instalar un paquete de Debian en Mandrake ni viceversa. Incluso cuando dos diferentes distribuciones usan el mismo tipo formato de paquetes, muchas veces usan diferentes herramientas de instalación, como en el caso de Mandrake con su urpmi y Fedora con su yum. Esta situación se convierte en un gran problema para los usuarios nuevos, generalmente acostumbrados a Windows donde siempre existe un solo instalador que siempre funciona de igual manera, incluso cuando se usan en diferentes versiones del sistema operativo.
Cuando alguno de estos usuarios se emociona al ver las demostraciones de software libre que se hacen en el "Vive la Vida Linux" [1] o en cualquier otro evento, generalmente se me acercan y me piden los instaladores de los programas, pero casi siempre es imposible dárselos porque probablemente no le van a funcionar si la distribución que están usando no es exactamente la que yo estoy usando. Esto hace que los recién llegados se desanimen rápido de GNU/Linux. Fuera de eso, existe una incompatibilidad entre los programas que se instalan por paquetes binarios (deb, rpm, tgz) y los que se instalan compilando e instalando el código fuente (tar.gz o tar.bz2).
Si la incompatibilidad de paquetes entre distribuciones es un problema para los usuarios, la situación para los desarrolladores es todavía peor. Para alguien que desarrolle software para GNU/Linux es todo un reto distribuir sus programas en forma binaria de tal forma que funcionen en cualquier distribución. Siempre les toca conformarse con la liberar los programas en forma de código fuente, la cual es muy, pero muy poco amigable para los usuarios comunes. Los binarios entonces quedan a mano de los empaquetadores de las diferentes distribuciones, los cuales no hacen más que duplicar y re-duplicar trabajo; unos hacen el paquete de un programa para Debian, otros el mismo pero para Mandrake, otros para Fedora, SuSE, Gentoo, Slackware, etc. Si existiría un formato unificado de paquetes, todos estos colaboradores, en lugar de estar repitiendo lo mismo una y otra vez, podrían dar soporte a muchísimos más paquetes.
El problema de la estandarización no se reduce solo a las distribuciones, sino que también tiene que ver con los entornos de escritorio y los administradores de ventanas. Así por ejemplo, detalles como colocar una entrada en el menú de inicio y un enlace en el escritorio, que en Windows son tan fáciles de hacer, en GNU/Linux son toda una pesadilla para el desarrollador o el empaquetador. Todo cambia de acuerdo al escritorio que se esté usando. Peor aún, hay casos donde la distribución hackea los escritorios para que se adapten a su estilo, como en el caso de Mandrake que instala su propio sistema de menús común a todos los escritorios.
Actualmente parece que todavía estamos lejos de tener un estándar unificado de paquetes para GNU/Linux, sin embargo, existen varios proyectos que pretenden dar solución a este problema; a continuación nombraré los dos que, a mi parecer, son los más importantes:
Autopackage
Autopackage [2] es un software que permite la creación, instalación y mantenimiento de paquetes de software que funcionen en cualquier distribución de GNU/Linux. Es una herramienta tanto para los desarrolladores, como para los usuarios. Lo más interesante de este proyecto es que no pretende ser un remplazo para los sistema de paquetes propios de cada distribución, sino que intenta complementarlos haciendo que los programas que no tienen paquetes específicos puedan ser instalados en cualquier distribución. Es más en algunos casos Autopackage actuaría como un wrapper del sistema de paquetes nativo.
Un aspecto importante acerca de Autopackage, es que su objetivo principal es la facilidad de uso. Es por esto que cuenta con varios front-ends, para distintos tipos de usuario. Desde el clásico de linea de comandos para los usuarios avanzados, hasta los más bonitos diseñados para GNOME o KDE para los usuario nuevos.
Mike Hearn, el autor principal de Autopackage ha escrito un excelente artículo [3] en el que describe su visión a futuro de lo que debería ser el proyecto, desde la perspectiva de la interfaz de usuario. Hearn menciona como instalar software en GNU/Linux debería ser tan simple como arrastrar y soltar un enlace de una página web. Para desinstalarlo simplemente bastaría con arrastrar y soltar el icono del programa en la papelera de reciclaje. Una visión un poco parecida a lo que se conoce como AppFolders en Mac OS X, pero con ciertas mejoras y adaptaciones al mundo libre.
El proyecto Autopackage todavía no está completo, pero lleva un buen ritmo de desarrollo, y la verdad es que promete bastante. Personalmente, no puedo esperar para que al fin empiecen a salir paquetes multi-distro de los programas más populares. Esto definitivamente le daría un impulso muy importante a la adopción de GNU/Linux en todo el mundo.
Zero Install
Algunos proponen alternativas más curiosas, pero no por eso menos útiles, al problema de la instalación de software en GNU/Linux. Mientas proyectos como Autopackage tratan de lograr que la instalación de paquetes sea más fácil, el proyecto Zero Install [4] lo que intenta es hacer que la instalación sea innecesaria. La idea detrás de Zero Install consiste en que para ejecutar una aplicación, simplemente sea necesario usar un administrador de archivos como Nautilus o Konqueror para acceder a una carpeta remota, que generalmente estaría en la página web del autor del programa, y hacer un doble click en el icono del programa que se quiere usar. No puede haber algo más fácil.
Zero Install no requiere que se tenga una conexión a Internet dedicada o de banda ancha, es más, incluso se puede usar sin conexión. Esto es debido a que Zero Install maneja un avanzado sistema de caché, así que cada vez que se quiere correr una aplicación, esta se baja y se guarda en caché, de tal manera que al volver ejecutar la aplicación ya no es necesario bajarla de nuevo. También es posible ejecutar aplicaciones desde CD-ROM u otro tipo de dispositivos removibles. Las aplicaciones corren tan rápido como las que se instalan tradicionalmente. No existen los problemas de dependencias, todo es gestionado automáticamente. Definitivamente es un concepto muy interesante, que lo único que necesita es que los desarrolladores empiecen a adoptar para sus aplicaciones.
Referencias
[1] El "Vive la Vida Linux" es un evento que realizamos en el Grupo GNU/Linux de la Universidad de Cauca en el que se dan charlas y demostraciones sobre Software Libre. Para más información visitar: http://gluc.unicauca.edu.co/
El contenido del material publicado por nuestros columnistas es responsabilidad de sus autores.
Para saber más sobre la programación y naturaleza de nuestros artículos y columnas, haga clic aquí.