jueves, 27 de enero de 2011

Un administrador de paquetes para todos.

Esto es algo (como verán a continuación) sobre lo que se ha estado hablando desde hace años, pero de alguna manera no ha cuajado, pues bien, parece que siempre y si, al usuario final que es a quien está destinado le va a aliviar un buen pero creo que mas le va a ayudar a Linux si pretende llegar al grueso de los usuarios, ese noveinta y tanto por ciento que usa ya saben que....., el original lo encontré aquí.  Provecho.

La idea de un formato de paquetería (aplicaciones) universal para todas las distribuciones ha estado sobre la mesa un par de veces en los últimos años. Una de las más notables fue la idea de Ryan C. Gordon de archivos FatELF . Las reacciones variaron desde los que le apoyaron pasando por los escépticos y hasta los que se opusieron francamente. Bueno, parece ser que un nuevo equipo que incluye a las distribuciones principales se ha unido para implementar una API de instalación de aplicaciones e infraestructura comunes. 

Desarrolladores de Red Hat, Fedora, Debian, Ubuntu, openSUSE, Mandriva y Mageia se reunieron la semana pasada en la oficina de SUSE en Núremberg para discutir cómo se podría implementar un instalador de aplicaciones universales al que se refieren como tienda de aplicaciones (Application Store). Esto es en respuesta a la creencia de que los usuarios finales no están interesados en librerías, dependencias, compatibilidades, y otros detalles técnicos. Creen que los usuarios sólo se preocupan por las imágenes, descripciones básicas, valoraciones, comentarios de los usuarios, y tal. La idea es definir y escribir una herramienta para encontrar e instalar aplicaciones.

La idea de Ryan "icculus" Gordon consiste en empaquetar los archivos de software necesarios para que los módulos del kernel, las dependencias, bibliotecas y archivos de software queden incluidos en un paquete más grande. Su idea también proveerá por igual a todas las arquitecturas de sistemas y funcionaría a través de todas las distribuciones. Explicó, "añadirá algo de información contable al inicio del archivo, y luego agregará todos los binarios ELF a continuación, añadiendo algún relleno (padding) para la alineación. FatELF permitirá empaquetar binarios en un archivo, separados por la ABI del SO, versión de la ABI del SO, orden de bytes y el tamaño de la palabra (word), y lo más importante, la arquitectura del CPU. "  Una de las principales ideas era que los instaladores de paquetes se parecieran mucho en general a la manera en que la mayoría de los instaladores de software de Windows se parecen entre ellos.  Bueno, no pasó demasiado tiempo antes de una ola de oposición detuviera el proyecto.


Pero la idea está siendo revivida, aunque por un mecanismo totalmente diferente. AppStream se basa en la idea introducida por el Proyecto Bretzn, de hacer el empaquetado para varias arquitecturas y distribuciones después de que el desarrollador envíe el código, publicar el paquete y enviar los anuncios de la publicación.

El equipo AppStream considera que el Centro de Software de Ubuntu (Ubuntu Software Center) es la interfaz de usuario adecuada y hay planes de portarla a PackageKit. Planean usar servidores Xapian para proporcionar resultados de búsqueda para los usuarios y usar los Servicios de Colaboración Abiertos (Open Collaboration Services) para permitir valoraciones y comentarios. Los metadatos se almacenarán en un servidor que contendrá información del paquete, ubicación de iconos, tipo y ubicación del repositorio, y tal. Un servidor de composición va a extraer la información del paquete desde el archivo .desktop (Que las distribuciones participantes tendrán que proporcionar para cada paquete) y enviará toda la información hacia un archivo común XML. La interfaz de usuario AppStream será el front-end de PackageKit, el cual le indicará el sistema de administración de paquetes de la distribución como instalar la aplicación deseada.




La diferencia significativa entre FatELF y AppStream es que FatELF pretendía incluir todos los archivos necesarios en un paquete universal, mientras que AppStream solo compila los metadatos necesarios para llenar un instalador universal. Esto podría ser el gestor gráfico de paquetes principal o único de la mayoría de las distribuciones, si se desea reemplazar (o en adición a), por ejemplo, Synaptic o RPMDrake de Mandriva.
El principal objetivo sería contar con una experiencia de software unificado para Linux como un todo, o, en palabras del equipo de AppStream, "lograr que la instalación y eliminación de software en Linux sea menos molesta."

ACTUALIZACIÓN: Parece que los participantes están comenzando bloggear sobre este proyecto y se refieren a ella como un instalador cruzado de aplicaciones en lugar de AppStream