Jak znaleźć zależności kompilacji pakietu?

48

Chciałbym dowiedzieć się, które pakiety

sudo apt-get build-dep <package>

zainstalowałbym się (jeśli już zainstalowałem jakieś zależności, chciałbym też zobaczyć te → więc uruchomienie lub symulacja powyższego nie wystarczy). Preferowana linia poleceń.

htorque
źródło
1
Jestem zdezorientowany, czy nie sudo apt-get build-dep <package>wyświetla listy pakietów (jeśli pakiet ma jakieś zależności kompilacji), którą zamierza zainstalować?
Izajasza
1
Niestety pokazuje tylko pakiety, które nie są zainstalowane.
htorque

Odpowiedzi:

45

Aby uzyskać pełną listę zależności, w tym zależności zależności, możesz użyć:

apt-rdepends --build-depends openoffice.org

Polecenie może przypominać o instalacji w apt-rdependspierwszej kolejności.

Możesz użyć następującego polecenia, aby wyświetlić tylko te, które nie są zainstalowane:

apt-rdepends --build-depends --print-state openoffice.org | grep NotInstalled

Zobacz apt-rdepends --helpwszystkie opcje.

Uwaga : wygeneruje ogromną listę.
apt-rdepends -b xterm, na przykład generuje 8773 wierszy wyniku i zajmuje to dużo czasu.

Jeśli chcesz tylko zobaczyć pakiety, które są wymagane do zbudowania najwyższego pakietu, tj. Co muszę zainstalować, aby zbudować nautilus, uruchom:

apt-rdepends --build-depends --follow=DEPENDS nautilus

Jest to z grubsza odpowiednik Carsten Thiel za odpowiedź ( The following NEW packages will be installed), ale format jest nieco ładniejszy. Pokazuje także tylko najwyższy pakiet, podczas gdy symulowany apt-get pokazuje również pakiety zainstalowane jako ich zależności.

Pokazuje to również zainstalowane pakiety. Ale może również pokazywać pakiety instalowane domyślnie. Niestety, żadna z metod nie jest zbyt pomocna, gdy próbujesz wyczyścić system po uruchomieniu apt-get build-dep. O ile mi wiadomo, nie ma niezawodnej metody znalezienia, które zostały zainstalowane, z wyjątkiem przeglądania pliku dziennika apt w /var/log/apt/history.log.

Stefano Palazzo
źródło
1
Dzięki, wersja z --follow=DEPENDSjest dokładnie tym, czego szukałem. Te zależności kompilacji można również znaleźć na Launchpadzie, np. w przypadku Nautilus: launchpad.net/ubuntu/natty/+source/nautilus (przewiń w dół).
htorque
17

Opcja -s( --simulate) wyświetli wszystko, co byłoby zrobione bez robienia czegokolwiek. Nie potrzebujesz do tego nawet uprawnień roota.

apt-get -s build-dep <package>
Carsten Thiel
źródło
6
Zobacz mój komentarz powyżej - nie pokaże już zainstalowanych pakietów. Przepraszam, że nie jestem precyzyjny w moim pytaniu.
htorque
Nie działa - nie działa zE: Unable to find a source package for inkscape
anatoly techtonik
17
apt-cache showsrc <pkgname> | grep ^Build-Depends

showsrcwyświetla plik debian / control dla danego pakietu źródłowego. Następnie grep dla linii, które zaczynają się od 'Build-Depends', która zawiera listę pakietów potrzebnych do kompilacji ze źródła.

anonimowy
źródło
+1, jeśli wyjaśnisz, co apt-cache showsrci co | greprobi. Dobra odpowiedź. Dziękujemy za poświęcenie czasu na jego dostarczenie.
MadMike
sudo apt-cache showsrc inkscapenie działa inkscapew Ubuntu 18.10 - dajeW: Unable to locate package inkscape N: No packages found
anatoly techtonik
@anatolytechtonik właśnie przetestowany na Ubuntu 18.10 w Docker, działa dla mnie. Czy ty apt-get updatepierwszy
Stéphane Gourichon
To powinna być zaakceptowana odpowiedź, ponieważ zapewnia potrzebne narzędzie i nie wymaga dodatkowego pakietu.
Stéphane Gourichon