Klik y Linux

Editado a las 12:56 del 2005-09-26

Leo en Genbeta que ha aparecido un nuevo sistema de distribución de software para Linux, llamado Klik. La idea es que las aplicaciones se distribuyan como un enorme paquete que contenga todas las librerías y dependencias necesarias para su ejecución, evitando así los problemas de dependencias de versiones entre librerías, que siempre van a coincidir con las que requiere el programa en cuestión porque se distribuyen con él.

Este mecanismo viene a ser similar al de Mac OSX. En OSX las aplicaciones que uno ve en el escritorio son los familiares iconos que puedes pinchar para arrancar la aplicación. Estos iconos uno puede moverlos por cualquier carpeta (incluso el escritorio) y la aplicación sigue funcionando. El truco es que lo que para el usuario es un icon opara el sistema operativo es todo un application bundle que contiene los directorios necesarios para que funcione el programita en cuestión. Así, cuando mueves un icono de una carpeta a otra no se está creando un enlace directo o nada parecido: simplemente se está moviendo toda la aplicación de un sitio a otro del disco duro. Y por eso para desinstalarla basta con mandarlo al cubo de la basura: simple y efectivo.

Creo que esta "tecnología" puede ser una herramienta importantísima para que los usuarios que vienen de otros sitemas operativos se adapten a Linux, pero creo que de momento se está olvidando un detalle importante. El sistema de "application bundles" funciona en Mac por un motivo sencillo: el desarrollador saca su software para una versión
concreta de Mac OSX: 10.3.xx, o 10.4.xx y ya está. Sabe perfectamente qué librerías y recursos ofrece cada versión de Mac OS, por tanto puede aprovecharlos.

Pero en Linux no es así. Por la propia idiosincrasia de Linux, cada distro tiene sus propias librerias -con sus correspondientes versiones distintas- por lo que si queremos hacer paquetes genéricos que funcionen en cualquier versión de cualquier distribución tendremos que incluir en nuestro "application bundle" (si se me permite llamarlos así) todas las librerías que vayamos a usar (salvo, quizá, glibc y unas pocas más). Imaginad el tamaño de uno de estos paquetes cuando haya que incluir, por ejemplo, las dependencias de una aplicación KDE, Gnome o basada en Mozilla. Y, peor aún, se me ocurre que dado que cada aplicación montada de esta manera lleva su propia versión de cada librería, aunque sean las mismas el sistema operativo no tiene forma de saber que lo son, con lo cual cada librería por muy dinámica que sea ocupará su espacio en memoria sin compartir nada con el resto de versiones usadas por otros programas en ejecución, lo que entiendo que supondrá un mayor uso de memoria por parte de un sistema organizado usando Klik.

En fin, a ver en qué queda todo esto.

10 comentarios

Referencias (TrackBacks)

URL de trackback de esta historia http://hronia.blogalia.com//trackbacks/33288

Comentarios

1
De: Algernon Fecha: 2005-09-26 13:30

Bueno, ocurre lo mismo con las carpetas de Windows que contienen ejecutables y sus propias librerias... aplicaciones que no dependen del registro de sistema...

Linux es una pesadilla para instalar y desinstalar programas, IMHO. Aunque con hay gestores de paquetes como Synaptic que no están nada mal...



2
De: Dr. Pepix Fecha: 2005-09-26 14:21

Imagino que ya sabes que ese invento es la herencia de NeXTSTEP (no sé
si lo he escrito bien, hay más reglas para escribir ese nombre que
días tiene el año; o no).

Esto es un movimiento de vaivén (como siempre): centralizado,
distribuido, centralizado, distribuido... y en el caso de las
aplicaciones y sus bibliotecas, lo mismo.

Es decir, de antiguo viene usar programas autocontenidos, luego se
separaron las rutinas comunes en bibliotecas, luego se unen, luego se
separan...

Como siempre, cada sistema tiene sus ventajas e inconvenientes. El
"problema de Linux" no es tanto que tenga las bibliotecas dispersas o
las dependencias (cualquier sistema o metasistema de paquetes decente
hoy en día lo resuelve sin pestañear), como la cantidad de
distribuciones y versiones de bibliotecas con posibles
incompatibilidades a tener en cuenta.

Por otra parte, que cada programa lleve las bibliotecas asociadas,
además del posible problema de depender de una determinada versión del
SO, es que es bastante probable que uno acabe por tener bibliotecas
duplicadas repartidas por el disco.

Ignoro si hay un claro ganador en todo esto, pero las características
deben ser transparentes al usuario, y desde luego debe resolver todos
los problemas de dependencias y versiones, a ser posible optimizando
los recursos. Que aunque los discos sean baratos hoy día, la gente
tiene cada vez más datos en ellos. Y que así sea.



3
De: Haddhar Fecha: 2005-09-26 15:57

En realidad en Linux también puede haber aplicaciones autocontenidas: basta hacer una compilación estática de la aplicación junto con la librería.

Aunque claro, normalmente sólo van enlazadas estáticamente las librerías menos frecuentes: como dice Epa, si hubiera que compilar todas las librerías de las que depende la aplicación (teniendo en cuenta las dependencias en cascada entre librerías), el binario sería enorme.

Personalmente mi receta para instalar aplicaciones en Linux es:
- Usa una distribución popular (en mi caso Fedora)
y mantente actualizado.
- Busca el binario actualizado en rpm (o deb)
- Si necesita alguna liberaría (o versión más
reciente) que no tienes, pues búscala.
Repositorios como rpmfind o freshrpms resultan
muy prácticos
- Si las dependencias en cascada se vuelven
recurrentes, o no encuentras determinadas
versiones para tu distribución, bájate los fuentes
y compílala tú mismo (que es un ejercicio sano,
y además es como cocinar en casa: te lo puedes
hacer a tu gusto).



4
De: maldita Fecha: 2005-09-26 19:21

Joé, kuñi, escribe algo en el que pueda poner cosas, no? es que ya sabe que con este lenguaje, aquí la menda se pierde... horas bajas en el curro. ¿Se nota?



5
De: Epaminondas Pantulis Fecha: 2005-09-26 19:27

Maldita: la inspiración bitacorera es lo que tiene, que cuando llega, uno no sabe por dónde va a venir. Si algún día ves que estoy un poco obtuso, prueba a visitar algunos de mis blogs recomendados, los de la derecha, que seguro que te proporcionarán interminables horas de diversión asegurada :-)



6
De: Tyrannosaurus Reflex Fecha: 2005-09-27 10:49

Para ir costeandome las opos ahora estoy dando un curso de Linux y cuando mientras les explicaba a mis alumnos el tema de la instalación de paquetes, de las depedencias, del apt-get, el synaptic y el alien veía como su cara se transformaba, primero en rictus y luego directamente en máscara de angustia.
Que monos y graciosos son... Si hasta me preguntaban si los "instaladores" creaban iconos de "acceso directo" en el menú de "Inicio"....



7
De: godo Fecha: 2005-10-01 12:23

Me parecen muy acertados los análisis de esta noticia: epaminondas, Dr. Pepix, Haddhar, etc. Yo sintonizo especialmente con el expresado vaivén del Dr. Pepix... y creo que hay un especial desgaste de energía en esto como en otras muchas cosas (miles de lenguajes de programación que aportan lo mismo, por ejemplo, siendo la elección cuestión de gustos).

Tiempo al tiempo, y mientras tanto: "apt"eamos.



8
De: Chas Fecha: 2005-10-03 20:21

Se trata sin duda de una novedad interesante. La idea básica es estúpida, y nos remonta a aquellas viejas aplicaciones de MS-DOS, pero las ideas estúpidas suelen ser las que mejor funcionan y el tiempo ha demostrado que las librerías compartidas traen problemas, haciendo que unos programas funcionen y otros no. Sin embargo, los programas autosuficientes sólo tienen el problema de su tamaño.

Yo creo que todo depende del uso que se le quiera dar a esto del Klik. A mí me parece estupendo, porque mi disco duro, sin ser nada del otro mundo (40Gb) va más que sobrado para aplicaciones Linux, y me gusta mucho probar programas nuevos, aunque en realidad, utilizo un número bastante reducido de ellos. Klik no sería una molestia para mí (aun no lo uso), porque el número de aplicaciones estables en el disco duro es pequeño, y sí que sería una gran ventaja, porque puedo probar cualquier programa y, si no me gusta, borrarlo absolutamente sin dejar rastro y sin correr ningún riesgo. ¿Alguien da más?



9
De: pepeghino Fecha: 2007-07-15 21:20

Cuando un linuxero habla con un usuario de otros sistemas operativos debe resaltar las virtudes de Linux. Cuando un linuxero habla con otro linuxero debe resaltar los defectos de Linux. Hacer autocrítica es bueno para el progreso de Linux y de nada sirve vanagloriarse.

Existen distribuciones como Mandriva o Ubuntu orientadas al “usuario normal”, es decir usuarios informáticos convencionales que no se dedican profesionalmente a la informática. En último extremo estas distribuciones entran en competencia directa con Windows y necesitan que usuarios de Windows empiecen a usarlas para seguir creciendo. Sin embargo, el usuario de Windows que decide probar Linux necesita una transición lo más suave posible.

En muchas distribuciones de Linux existen los conceptos de “repositorio de paquetes” y de “gestor de paquetes”. Mandriva, por ejemplo, tiene repositorios en servidores de Internet llenos de paquetes y usa herramientas como urpmi o rpmdrake. Una vez configurados los repositorios instalar una aplicación será tan sencillo como poner su nombre y se descargaran automáticamente el paquete que contiene la aplicación y todas sus dependencias. El sistema de repositorios y paquetes es tan perfecto que los linuxeros no quieren ver sus inconvenientes.

Aprender supone un esfuerzo y el esfuerzo a menudo genera infelicidad. El windosero que prueba Linux espera un paquete al que se le pueda hacer doble click con el ratón pulsar continuar continuar y aplicación instalada. El windosero que prueba Linux no sabe ni quiere saber en muchos casos que es un repositorio ni una dependencia. En lugar de recriminarle las pocas ganas de aprender tal vez habría que darle lo que pide.

Yo imagino un nuevo tipo de paquetes llamado .rol. Un .rol es un archivo comprimido y dentro del archivo comprimido existen una serie de rpms y un pequeño archivo de texto que clasifica a cada .rpm en tres categorías: principal, necessary y suplementary. En la categoría principal normalmente sólo habría un .rpm que contiene la aplicación. En la categoría necessary estarían los rpms que contienen las dependencias que el creador del .rol estima que va a necesitar el usuario. En la categoría suplementary están los rpms que amplían la aplicación pero que no son necesarias para su funcionamiento como por ejemplo una colección de carátulas.

Cuando el usuario el usuario hace doble click sobre un .rol aparece la aplicación RolInstaller que actúa así: 1. Solicita la contraseña de root si el sistema cuenta con contraseña. 2. Descomprime el .rol en /tmp/rol/. 3. Deshabilita todos los repositorios que tenía configurados el usuario. 4. Añade y habilita /tmp/rol/ como repositorio local. 5. Advierte al usuario que se van a instalar los rpms de la categoría principal y aquellos de la categoría necessary que no estén presentes en el sistema. 6. Si el usuario acepta instala los rpms. 7. Invita al usuario a seleccionar rpms de la categoría suplementary. 8. Si el usuario selecciona rpms se instalan más paquetes. 9. Borra y elimina /tmp/rol/.
10. Habilita los repositorios que tenía el usuario. 11. Indica que el proceso de instalación ha concluido. La aplicación RolUninstaller no exístiría y el usuario sólo podría quitar rpms en un futuro.

Este sistema de paquetes no solo ayudaría a usuarios noveles de Linux, sino que resolvería otro gran problema de Linux: que se trata de un sistema operativo on-line. Cualquier linuxero sabe lo difícil que es instalar una aplicación cuando no se dispone de una banda ancha. De hecho el nombre de .rol se me ha ocurrido por “Rpm Off-Line”.

La gran contrapartida de los .rol sería un mayor gasto de ancho de banda para los servidores al enviarle al usuario de forma repetida dependencias que ya podrían estar en el sistema. Por otra parte se podría generar una cultura Linux de comprar aplicaciones en Cds o adquirir Cds de aplicaciones a través de revistas. También podría generarse una cultura Linux similar a la actual cultura Windows de pasarle al vecino o amigo una aplicación en un CD o una pendrive.



10
De: chechu Fecha: 2008-08-03 22:14

tonteras



Nombre
Correo-e
URL
Dirección IP: 54.204.252.37 (2ff8ab5101)
Comentario