Añadir nuevo comentario

Modificando un paquete en debian/ubuntu

A todos nos ha pasado alguna vez, sobre todo a los que llevamos usando linux toda la vida, que el desarrollador de debian o ubuntu comete un pequeño error al empaquetarlo y ese paquete que necesitamos con gran urgencia no se puede instalar. También nos puede ocurrir que haya un paquete para red hat o derivados y que al alienarlo nos ponga una dependencia mal y tampoco se pueda instalar. ¡¡CAGONTÓ!!

La solución que se aplica normalmente consiste en bajarse el código fuente de la aplicación y compilarlo con los dedos cruzados para que funcione a la primera.
Haciendo esta operación conseguimos dos cosas: perder tiempo y que debian/ubuntu pierdan el control sobre ese software, lo que a la larga nos dará problemas. Se que me estarán preparando la hoguera para meterme dentro por decir esto, pero es lo que veo en mi día a día.

La solución alternativa consiste en arreglar el paquete.

Pongamos un ejemplo: resulta que nos queremos echar unos vicios al nexuiz así que nos vamos a "Sistema | Administración | Gestor de paquetes Synaptic", buscamos la aplicación nexuiz, le damos a instalar ... y nos dice algo como esto:
(aquí viene el ¡¡cagontó!! ;-) )

Miramos las dependencias del paquete y nos encontramos con que depende de una versión mayor que la 2.2.3-1 y la bajable es la 2.2.3-1~edgy1 :

Así que lo que ocurre es que el paquete nexuiz tiene mal una dependencia. Habría que cambiar donde pone 2.2.3-1 y poner 2.2.3-1~edgy1.
Hala, pues al tajo.

Primero vamos a bajarnos los paquetes así que abrimos un terminal y hacemos lo siguiente:
jmferrerm@yinyan:~$ apt-cache show nexuiz | grep Filename
Filename: pool/universe/n/nexuiz/nexuiz_2.2.3-1~edgy1_i386.deb
Filename: pool/universe/n/nexuiz/nexuiz_2.0-1_i386.deb
jmferrerm@yinyan:~$ apt-cache show nexuiz-server | grep Filename
Filename: pool/universe/n/nexuiz/nexuiz-server_2.2.3-1~edgy1_i386.deb
Filename: pool/universe/n/nexuiz/nexuiz-server_2.0-1_i386.deb

Y ahora que sabemos la ruta, que un posible mirror es ftp://archive.ubuntu.com y que los paquetes están en el directorio ubuntu ... sabemos que el paquete está en ftp://archive.ubuntu.com/ubuntu/pool/universe/n/nexuiz/nexuiz_2.2.3-1~edgy1_i386.deb.
Nos lo bajamos a donde queramos, por ejemplo al escritorio.

Y ahora modificamos el paquete para arreglar la dependencia. Dicen que una imagen vale más que mil palabras así que un video ... pues mejor todavía.
Primero preparamos el paquete.
Luego modificamos el paquete.
Reempaquetamos el paquete.
Si no puedes ver los vídeos puedes utilizar el vlc que se encuentra dentro de cualquier distribución de linux o en videolan.org.

Más fácil imposible. :-)