Você poderia usar dpkg-checkbuilddeps
. A página do manual diz
Este programa verifica os pacotes instalados no sistema em relação às dependências e conflitos de compilação listados no arquivo de controle. Se algum não for atendido, ele será exibido e sairá com um código de retorno diferente de zero.
Por exemplo:
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
No entanto, você também pode tentar criar o pacote, usando (por exemplo) debuild
, por exemplo
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
O que fornece a mesma informação (já que é usada dpkg-checkbuilddeps
), mas é um pouco mais barulhento.
dpkg-checkbuilddeps
gera apenas dependências de construção não atendidas. Veja minha resposta sobre a análise no caso comum.Análise:
Use módulos do
libdpkg-perl
(dpkg-checkbuilddeps
usa esses módulos internamente)Adicione as seguintes linhas
print-build-deps
e executeprint-build-deps
na raiz do pacote de origem.Veja também:
Instalação:
Você pode usar
mk-build-deps
emdevscripts
:man mk-build-deps
diz:fonte
devscripts
eequivs
, gera um pacote temporáriomyproject-build-deps
e o instala. Isso é bom se você não está com a intenção de manter as dependências em tempo de compilação em sua máquina: basta desinstalardevscripts
,equivs
emyproject-build-deps
.Este one-liner Perl pode ser usado para analisar dependências de
debian-control
:ou
fonte
apt-get install $(perl -ne 'next if /^#/; $p=(s/^Build-Depends:\s*/ / or (/^ / and $p)); s/,|\n|\([^)]+\)//mg; print if $p' < debian/control)'
. Lembre-se de que as dependências serão marcadas como instaladas manualmente, para que elas permaneçam no ambiente de construção. Isso não tem importância em um ambiente de construção descartável (chroot, docker), mas se você criar em seu ambiente regular, os pacotes de dependências em tempo de construção permanecerão. Eles podem ser muito grandes para alguns pacotes.