GioBlog.info

Apuntes sobre GNU/Linux

Editar dependencias de un paquete .deb

leave a comment »

En algunas ocasiones queremos instalar una aplicación en nuestro sistema Debian GNU/Linux o derivados, pero por alguna razón se nos presenta problemas de dependencias, en donde el paquete que vamos a instalar requiere de otro paquete en una versión mayor o menor a la que nosotros tenemos instalado y no queremos actualizarlo o desactualizarlo por la razón que sea (Por ejemplo porque somos usuarios de Debian Stable y no queremos instalar versiones de paquetes provenientes de Testing).

Para esos casos particulares puede ser que nos interese editar el paquete .deb que queremos instalar para así colocarle como dependencia la versión de nuestro paquete y no la versión que trae por defecto el paquete.

Como ejemplo pongo el paquete de Dropbox que al día de hoy está en su página de descarga. Dicho paquete cuya versión es la 0.6.8 nos indica que depende del paquete libnautilus-extension1 (>= 1:2.22.2) pero resulta que actualmente la versión de este paquete en squeeze es la 2.30.1-2. Como podemos ver en este caso, la versión de la que dispongo es mayor a la que me solicita Dropbox, por lo que debo editar el paquete y cambiarle las dependencias para que ahora quede como dependencia la versión que actualmente tengo en mi sistema.

Voy a desarrollar todo este manual con este ejemplo particular para que queden claros los pasos.

  • Copio el paquete a /tmp para trabajarlo allí.

cp nautilus-dropbox_0.6.8_amd64.deb /tmp/

  • Me muevo a /tmp para iniciar el proceso.
  • El primer paso será crear un directorio temporal y desempaquetar el paquete .deb.

mkdir temporal ; dpkg-deb –extract nautilus-dropbox_0.6.8_amd64.deb temporal

(Nota: en la sección extract son dos guiones)

  • Ahora vamos a extraer la parte de control del paquete a temporal/DEBIAN.

dpkg-deb –control nautilus-dropbox_0.6.8_amd64.deb temporal/DEBIAN

(Nota: en la sección control son dos guiones)

  • El siguiente paso es editar la sección de control del paquete, para ello editaremos a temporal/DEBIAN/control.

vim temporal/DEBIAN/control

(Nota: estoy utilizando vim, pero se puede usar cualquier otro editor)

  • Dentro de este archivo nos vamos a encontrar una sección de dependencias como este:

Depends: libatk1.0-0 (>= 1.20.0), libc6 (>= 2.4), libcairo2 (>= 1.6.0), libg    lib2.0-0 (>= 2.16.0), libgtk2.0-0 (>= 2.12.0), libnautilus-extension1 (>= 1:    2.22.2), libpango1.0-0 (>= 1.20.1), python (>= 2.5), python-gtk2 (>= 2.12)

(Nota: miremos la especificación del paquete que nos presenta problemas)

  • Para solventar el problema de la dependencia con libnautilus-extension1 únicamente cambiaremos esa sección por:

libnautilus-extension1 (>= 2.30.1-2)

  • El siguiente paso será volver a empaquetar el .deb, pero esta vez con la nueva dependencia.

dpkg –build temporal ; mv temporal.deb nautilus-dropbox_0.6.8_squeeze_amd64.deb

(Nota: primeros estamos construyendo el paquete temporal.deb y luego le cambiamos el nombre a uno más apropiado)

  • Finalmente podemos instalar nuestro nuevo paquete sin problemas de dependencias.

sudo dpkg -i nautilus-dropbox_0.6.8_squeeze_amd64.deb

Bueno eso es todo y espero que les funcionen, para los que quieren descargar la versión final de mi paquete modificado de dropbox pueden ir a mi anterior post.

Saludos

Anuncios

Written by Gio

22 julio, 2011 a 13:46

Publicado en Debian, Linux, Manuales

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: