Załóżmy, że pobrałeś folder kodu źródłowego, który zawiera istniejący /debian/
folder oraz /debian/control
plik.
Załóżmy, że dany pakiet nie znajduje się w oficjalnym repozytorium Debiana, więc apt-get build-dep
nie można go użyć.
Jak parsować Build-Depends:
linię?
Na przykład, jeśli wiersz przeczytałby Build-Depends: debhelper (>= 8), faketime
, czy istnieje jakieś narzędzie, control-parse debian/control build-depends
które by echo debhelper faketime
?
Zwłaszcza gdy jest to linia wieloliniowa?
Czy istnieją istniejące narzędzia Debiana lub ktoś napisał własny kod, aby to przeanalizować?
źródło
dpkg-checkbuilddeps
wyprowadza tylko niespełnione zależności kompilacji. Zobacz moją odpowiedź na temat analizowania w typowym przypadku.Rozbiór gramatyczny zdania:
Użyj modułów z
libdpkg-perl
(dpkg-checkbuilddeps
używa tych modułów wewnętrznie)Dodaj następujące wiersze
print-build-deps
i uruchomprint-build-deps
w katalogu głównym pakietu źródłowego.Zobacz też:
Instalacja:
Możesz używać
mk-build-deps
zdevscripts
:man mk-build-deps
mówi:źródło
devscripts
iequivs
, generuje pakiet tymczasowymyproject-build-deps
i instaluje go. To jest miłe, jeśli nie jesteś zamierza zachować zależności build-czasowych na komputerze: wystarczy odinstalowaćdevscripts
,equivs
amyproject-build-deps
.Jednowarstwowy Perl może być używany do analizowania zależności od
debian-control
:lub
źródło
apt-get install $(perl -ne 'next if /^#/; $p=(s/^Build-Depends:\s*/ / or (/^ / and $p)); s/,|\n|\([^)]+\)//mg; print if $p' < debian/control)'
. Pamiętaj tylko, że zależności zostaną oznaczone jako zainstalowane ręcznie, więc będą się utrzymywać w środowisku kompilacji. Nie ma to znaczenia w środowisku kompilacji typu chroot, docker, ale jeśli budujesz w swoim zwykłym środowisku, pakiety zależności kompilacji pozostaną. Mogą być dość duże dla niektórych pakietów.