
Pregunta sobre Debian/Ubuntu aquí. Rutinariamente hago copias de seguridad de paquetes de distribuciones de Ubuntu más recientes a otras más antiguas (LTS). Descargo (a través de dget) una fuente de Debian, luego introduzco un cd y escribo debuild -b
. Luego dice algo como
dpkg-checkbuilddeps: Unmet build dependencies: dh-autoreconf gnome-pkg-tools (>= 0.7) yelp-tools gtk-doc-tools (>= 1.12) pkg-config libglib2.0-dev (>= 2.29.14) libgstreamer1.0-dev (>= 0.11.92) libgstreamer-plugins-base1.0-dev (>= 0.11.92) libxml2-dev (>= 2.6.0) libsm-dev libice-dev libgtk-3-dev (>= 3.0.0) libcanberra-dev (>= 0.1) libcanberra-gtk3-dev (>= 0.1) libnautilus-extension-dev (>= 2.91.90) libburn-dev (>= 0.4.0) libisofs-dev (>= 0.6.4) libtotem-plparser-dev (>= 2.32) libunique-dev (>= 1.0.0) libnotify-dev (>= 0.6.1) gobject-introspection (>= 0.6.3) libgirepository1.0-dev (>= 0.6.3) libappindicator3-dev (>= 0.0.7) libunity-dev (>= 5.0.0)
apt-get build-dep
ayuda hasta cierto punto (pero descarga dependencias para elactualpaquete, no para el que estoy respaldando). Podría instalar manualmente todas las dependencias enumeradas y volver a intentarlo debuild
para ver si dpkg-checkbuilddeps
tiene éxito, pero esto requiere mucho tiempo (y espacio en disco).
Supongo que realmente necesito una herramienta (o un script) que pueda verificar si los Build-Depends:
requisitos debian/control
son satisfactorios con los repositorios actuales (o, en caso contrario, qué paquetes adicionales necesito respaldar). ¿Existe una manera fácil de lograr esto?
Respuesta1
Hay algunas cosas que pueden ayudar a facilitar el backporting. El primero es mk-build-deps
. Cuando se ejecuta desde el directorio fuente, creará un paquete ficticio que depende del paquete actual. Dado que esto depende del paquete que está creando y no del que está en su repositorio actual, notará inmediatamente si algunas dependencias no se pueden satisfacer.
Existe un método que puede utilizar para comprobar si un paquete se puede respaldar de sid a estable. El ircbot "judd" en #debian en irc.oftc.net e irc.freenode.net tiene un checkbackport
comando. Aquí hay un ejemplo:
[23:53] <jordanm> checkbackport apache2
[23:53] <judd> Backporting package apache2 in sid→wheezy/i386: unsatisfiable build dependencies: Build-Depends: libaprutil1-dev (>= 1.5.0).
Sería posible implementar algo similar usted mismo. Desafortunadamente, el método que utiliza Judd consulta elUDD (base de datos definitiva de Debian), que es bastante grande. El código fuente de Judd está disponible.aquísi está interesado en cómo se implementa.