PDA

Ver la Versión Completa : Paquetes Debian y dependencias


roman
11-04-2007, 19:33:25
Hola,

El uso de paquetes en ubuntu es realmente cómodo para la instalación de software, pero cuando vamos un poco más allá la situación se torna algo complicada.

El ubuntu edgy viene con python (http://www.python.org/) ya instalado y con la versión 2.6.x de wxPython (http://www.wxpython.org/). Todo muy bien hasta que quize ver los ejemplos más recientes (que son formidables, por cierto), porque son para la versión 2.8.x.

En el sitio de wxPython mencionan que hay unos repositorios para ubuntu dapper con unos paquetes que tambien funcionan en edgy. Y así es, en efecto; los bajé y pude ver los ejemplos ya con la versión actualizada de wxPython.

El problema es que otros paquetes dependen de la versión 2.6. Así, por ejemplo, para instalar el VLC Media player (http://www.videolan.org/vlc/), el Synaptic me dice que debo instalar la versión 2.6 de wxPython.

La pregunta aquí es, ¿cuál es la forma de proceder en estos casos? Creo que la situación puede resumirse así:

Un paquete A depende de un paquete B en una versión más antigua de la que tenemos instalada.

¿Hay forma de decirle al manejador de paquetes que cambie la dependencia por la nueva versión? ¿O debo instalar las dos versiones hasta que el paquete A ofrezca una actualización? ¿Debo compilar el paquete A? Esto último lo intenté tímidamente con el VLC pero hay diez mil cosas que ajustar para poder hacer eso.

// Saludos

Casimiro Notevi
11-04-2007, 20:37:03
Normalmente esto se "arregla" con un enlace simbólico, aunque no siempre es posible. Por ejemplo:
El programa progA necesita la dependencia depenX. Ahora instalamos el programa progB que usa una versión más nueva de la depenX, la depenX.1 y en estos casos, para solucionar el problema del progA, lo que se hace es "engañar" al progA creando un enlace simbólico, algo así como: ln -s depenX depenX.1
Así el progA encontrará depenX, que realmente es un enlace a depenX.1 y el progB seguirá encontrando su depenX.1

Si no he entendido mal, creo que eso es lo que necesitas. Si miras algún ejemplo de 'ln' lo comprenderás mejor.

Espero que te sirva.

roman
11-04-2007, 20:53:21
Gracias Casimiro.

La técnica que propones ya la había utilizado para instalar el wxDesigner (http://www.roebling.de/) y funcionó bien, pero no estoy seguro que funcione en este caso, porque aquí, a quien hay que "engañar" no es a un programa sino al paquete que lo instala, que me forzaría a instalar la versión antigua.

Y no sé yo si el tener ambas versiones al mismo tiempo pudiera ocasionarme problemas por otros lados. Tal como está ahora, python "reconoce" la versión 2.8 de wxPython:


>>>import wx
>>>wx.VERSION
(2, 8, 3, 0, '')
>>>


pero si dejo que se instale la anterior no sé que pase.

¿Hay forma de decirle a un paquete que no instale tal o cual dependencia?

// Saludos

Casimiro Notevi
11-04-2007, 21:33:33
No sé si es posible, pero seguramente te traerá otro tipo de problemas :(