Vous pourriez utiliser dpkg-checkbuilddeps
. La page de manuel indique
Ce programme vérifie les packages installés dans le système par rapport aux dépendances de génération et aux conflits de génération répertoriés dans le fichier de contrôle. Si aucun n'est rencontré, il les affiche et se termine avec un code retour différent de zéro.
Par exemple:
faheem@orwell:/usr/local/src/julia/julia-0.3.2$ dpkg-checkbuilddeps
dpkg-checkbuilddeps: Unmet build dependencies: libopenblas-dev (>= 0.2.10-1~) libopenlibm-dev libopenspecfun-dev (>= 0.4~) patchelf python-sphinx-rtd-theme
Cependant, vous pouvez également essayer de construire le package, en utilisant (par exemple) debuild
, par exemple
faheem@orwell:/usr/local/src/julia/julia-0.3.2$ debuild -uc -us
dpkg-buildpackage -rfakeroot -D -us -uc
dpkg-buildpackage: source package julia
dpkg-buildpackage: source version 0.3.2-1
dpkg-buildpackage: source changed by Sébastien Villemot <[email protected]>
dpkg-source --before-build julia-0.3.2
dpkg-buildpackage: host architecture amd64
dpkg-checkbuilddeps: Unmet build dependencies: libopenblas-dev (>= 0.2.10-1~) libopenlibm-dev libopenspecfun-dev (>= 0.4~) patchelf python-sphinx-rtd-theme
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)
debuild: fatal error at line 1357:
dpkg-buildpackage -rfakeroot -D -us -uc failed
Ce qui donne la même information (car il utilise dpkg-checkbuilddeps
), mais est un peu plus bruyant.
dpkg-checkbuilddeps
affiche uniquement les dépendances de construction non satisfaites. Voir ma réponse sur l'analyse syntaxique dans le cas commun.Analyse:
Utiliser des modules de
libdpkg-perl
(dpkg-checkbuilddeps
utilise ces modules en interne)Ajoutez les lignes suivantes à
print-build-deps
et exécutezprint-build-deps
à la racine du package source.Voir également:
Installation:
Vous pouvez utiliser à
mk-build-deps
partir dedevscripts
:man mk-build-deps
dit:la source
devscripts
etequivs
, génère un package temporairemyproject-build-deps
et l'installe. C'est bien si vous n'avez pas l'intention de conserver les dépendances de construction sur votre machine: désinstallez simplementdevscripts
,equivs
etmyproject-build-deps
.Cette ligne unique Perl peut être utilisée pour analyser les dépendances de
debian-control
:ou
la source
apt-get install $(perl -ne 'next if /^#/; $p=(s/^Build-Depends:\s*/ / or (/^ / and $p)); s/,|\n|\([^)]+\)//mg; print if $p' < debian/control)'
. Sachez simplement que les dépendances seront marquées comme installées manuellement, de sorte qu'elles resteront dans l'environnement de génération. Cela n'a aucune importance dans un environnement de build jetable (chroot, docker), mais si vous construisez dans votre environnement normal, les packages de dépendances au moment de la construction resteront. Ils peuvent être assez gros pour certains packages.