Por favor, haz un clic sobre los anuncios cuando pases por mi blog, ya? =)

Instalando cosas en Linux

1 comentario
Y seguimos hablando de Linux.



Uno de mis muchos sueños a realizar es tener un linux completamente equipado: multimedia, ambientes de desarrollo, navegadores, compatibilidad, todo a full.

Sin embargo, no puede dejar de incomodarme el asunto de la instalacion de paquetes. Para quienes no sepan de qué hablo, en Linux la gran parte de los programas se bajan como archivos comprimidos, con extension .deb (en versiones basadas en Debian, como Ubuntu). Estos archivos se instalan usando el instalador de linux.

El problema es que para ser instalados, muchos de esos paquetes requieren de otros paquetes. Entonces, si yo quiero instalar el programa XXX, me tengo que bajar el paquete XXX.deb. Pero si ese programa requiere que los paquetes AAA.deb, BBB.deb, CCC.deb esten instalados en mi computador, debo bajarmelos tambien e instalarlos antes.




Y puede ser mas complicado aun: el programa XXX puede requerir que este instalada la version 1.094 del paquete BBB.deb. Pero si los encargados del paquete BBB sacan una nueva version que no es compatible con las anteriores, digamos BBB version 2.0, yo no podré instalar XXX.

Ahora, alguien puede decir que ese problema está 'resuelto'. Pues si tenemos coneccion a internet, basta con abrir una consolo y escribir
$ sudo apt-get install XXX

y esto nos instalará automáticamente el paquete XXX y todos los paquetes de los que depende. No deja de ser algo muy comodo a la hora de instalar. Pero si nuestro pc por alguna razon no puede acceder a internet, la cosa se nos complica demasiado. Además, eso de tener que depender de internet no sé cuán bueno será.

En verdad me cuesta entender por qué cuando un desarrollaodor hace un programa para linux no empaqueta todas las dependencias junto con el programa, de forma que, al instalar el paquete, estes instale, si es necesario, los paquetes que faltan.

En casi todos los programas de Windows es así. Si me bajo un juego que requiera DirectX 9.0c, el instalador la trae, revisa si está instalada en el sistema, y si no, la instala. Si estoy instalando un convertidor de audio, este instala su propia copia del codificador lame_enc.dll, para su propio uso, sin exigir que nosotros lo hagamos. ¿Por qué rayos en Linux no es así?

Otro gran problema averiguar en dónde se instaló el programa , por si quisiéramos modificar algún archivo de configuración, por ejemplo, o copiar algo. ¿En dónde se estará? ¿/etc/, /usr? ¿/shared? ¿/bin?

En Windows es mas sencillo: Unidad raiz, Archivos de Programa o Program Files y todos felices (y las opciones para cada usuario en Datos de Programa, claro).

Mmm... ¿y cómo será en Macintosh? Voy a investigar eso.

1 comentario :

Alejandro dijo...

El problema de programar para linux radica en qué pasaría si el usuario no ha instalado las X o el gnome... ¿Habría que incluir el escritorio completo en el paquete que estamos desarrollando?.. evidentemente no se puede.
Para hacer menos incómodo el asunto se pueden crear scripts de descarga con synaptic... Aunque si buscamos un sistema libre para trabajar offline e instalar programas a lo windows sería mejor usar pcbsd.