… más sencillo de lo que pensaba. Y, como es habitual, gracias a la red StackOverflow.
En realidad la duda me surge cuando intento empaquetar en Debian un programa que tiene estructura para ello (directorio /debian) pero no está en los repositorios oficiales. En ese caso usar apt-get build-dep
no sirve de nada porque trabaja sobre lo que ya está registrado por apt y no sobre el directorio fuente.
Luego el problema tiene dos caras: saber de qué paquetes se depende para construirlo y ver además cuáles están instalados.
Para ver qué paquetes de los que depende están instalados:
$ cd cups-1.4.6/ $ dpkg-checkbuilddeps dpkg-checkbuilddeps: Dependencias de construcción no satisfechas: libpam0g-dev libslp-dev libgnutls-dev libpaper-dev libldap2-dev libavahi-compat-libdnssd-dev libpoppler-dev (>= 0.12.2-2) po4a (>= 0.31) libijs-dev hardening-wrapper liblcms1-dev libusb-dev
o si simplemente queremos ver todos los paquetes de los que depende sin más comprobaciones podemos emplear el siguiente programa Perl:
#!/usr/bin/perl use strict; use warnings; # # Evgeny Vereshchagin # http://unix.stackexchange.com/a/211319 # use Dpkg::Control::Info; use Dpkg::Deps; my $control = Dpkg::Control::Info->new(); my $fields = $control->get_source(); my $build_depends = deps_parse($fields->{'Build-Depends'}); print deps_concat($build_depends) . "\n";
Fácil, ¿ verdad ? E incluso nos presenta los módulos Perl para gestionar información de paquetes con los que aún podemos obtener y hacer más cosas.
Pero eso para otro día …