Czy istnieje lepszy sposób na zainstalowanie tylko wymaganych zależności pakietu, zamiast instalowania go bezpośrednio za pomocą apt-get (lub innego interfejsu programu dpkg), a następnie natychmiastowego usuwania go, pomijając jego zależności?
Czy istnieje lepszy sposób na zainstalowanie tylko wymaganych zależności pakietu, zamiast instalowania go bezpośrednio za pomocą apt-get (lub innego interfejsu programu dpkg), a następnie natychmiastowego usuwania go, pomijając jego zależności?
Odpowiedzi:
apt-get udostępnia polecenie dla dokładnie tego ...
apt-get build-dep <package name>
Ze stron podręcznika użytkownika
build-dep powoduje, że apt-get instaluje / usuwa pakiety, próbując spełnić zależności kompilacji dla pakietu źródłowego. Domyślnie zależności są spełnione, aby zbudować pakiet natywnie. W razie potrzeby można określić architekturę hosta za pomocą opcji --host-architecture.
aptitude pozwoli ci określić zapytanie zamiast nazwy pakietu podczas instalacji. Jeśli chcesz zainstalować zależności nazwanego pakietu foo
, możesz zainstalować pakiety, które mają odwrotną zależność od foo
:
aptitude install '?reverse-depends(foo)'
lub
aptitude install '~Rfoo'
Problem z instalacją pakietu, a następnie jego usunięciem polega na tym, że wszystkie pakiety, które zostaną zainstalowane jako zależności, zostaną oznaczone jako „automatycznie zainstalowane” i zostaną usunięte przez dowolną akcję instalacji / usunięcia / aktualizacji przez aptitude lub podczas uruchamiania, apt-get autoclean
chyba że oznacz je jako zainstalowane ręcznie za pomocą aptitude mark
lub apt-mark
polecenia.
Jednak rodzi się pytanie, dlaczego chciałbyś to zrobić, zgaduję, że próbujesz zainstalować zależności dla niektórych programów, które zamierzasz skompilować ręcznie. W takim przypadku najpierw należy zainstalować zależności kompilacji apt-get build-dep packagename
, ale następnie należy utworzyć fikcyjny pakiet, który ma zależności środowiska wykonawczego (które zasadniczo różnią się od zależności kompilacji), używając equiv
pakietu do zbudowania fikcyjnego pakietu z poprawnymi zależnościami dla Twój ręcznie skompilowany program. Zobacz informacje na temat equivs
w APT HOWTO
build dependencies
idependencies
? Podobnie jak w przypadku, gdy normalnie instalujesz program, dostajesz zależności, które musi on faktycznie uruchomić, a przy zależnościach kompilacji myślę więcej o bibliotekach, kompilatorach i podobnych rzeczach. Więc nie jestem pewien (ta odpowiedź ma pozytywne głosy), ale wydaje mi się, że nie jest trywialne, że uzyskanie zależności kompilacji jest tym samym, co uzyskanie zależności (uruchamiania) pakietów?