Apt obsługuje zależności między pakietami zainstalowanymi z repozytoriów lub *.deb
plików. A co z oprogramowaniem, które użytkownicy skompilowali i zainstalowali ze źródła ./configure && make && make install
bez uprzedniego utworzenia .deb
pliku? Czy to możliwe, że Apt może usunąć pakiety potrzebne przez takie oprogramowanie? Czy instalacja oprogramowania ze źródła /opt
lub /usr/local
coś zmieniłaby?
debian
apt
dependencies
Elena
źródło
źródło
Odpowiedzi:
APT nie wie nic o oprogramowaniu, które zostało zainstalowane ręcznie. Nie wie, jakich bibliotek potrzebuje to oprogramowanie ani nic.
Gdy APT instaluje pakiet tylko w celu spełnienia zależności innego pakietu, pakiet ten jest oznaczany jako zainstalowany automatycznie. Jeśli usuniesz wszystkie pakiety zależne od automatycznie zainstalowanego pakietu, pakiet ten zostanie usunięty po uruchomieniu
apt-get autoremove
; nakładki wyższego poziomu do APT zwykle oferują to po innych czynnościach konserwacyjnych. Aby uniknąć usuwania pakietów potrzebnych przez lokalnie zainstalowane oprogramowanie, zaznacz te pakiety jako zainstalowane ręcznie: lub wpisz klucz w aptitude.apt-mark manual PACKAGE-NAME
m
Aby znaleźć pakiety biblioteki, których potrzebuje binarny plik wykonywalny, uruchom
ldd /path/to/executable
. Dla każdego wiersza zawierającego uruchom, aby wyświetlić nazwę pakietu zawierającego tę bibliotekę. W przypadku skryptów pokazuje interpreter używany przez skrypt; upewnij się, że ten interpreter pozostanie zainstalowany. Znalezienie bibliotek używanych przez skrypt może być trudne, nie ma na to uniwersalnego sposobu./usr/lib/SOMETHING
dpkg -S /usr/lib/SOMETHING
head -n 1 /path/to/script
Jeśli ręcznie zainstalowałeś nowszą wersję pakietu, która jest obecna w twojej dystrybucji, spójrz na zależności pakietu dystrybucji i oznacz je jako zainstalowane ręcznie.
źródło
apt-get
w Debianie Jessie nie ma takiejmanual
opcji. W przypadku tych instrukcji instalacji vs. automatycznych (matycznych) wskazówek użyłemapt-mark
zamiast tego. (apt-mark manual pkg
,apt-mark showmanual pkg
,apt-mark auto pkg
, Itd.)apt-mark
, dzięki.apt
idpkg
absolutnie może usunąć oprogramowanie, które jest wymagane przez lokalnie zainstalowane inne oprogramowanie, które jest poza zakresem systemu zarządzania pakietami. Po prostu nie ma sposóbapt
idpkg
wiedzieć, że takie oprogramowanie może istnieć.Lokalizacja, w której takie oprogramowanie jest zainstalowane, nie ma znaczenia: może być
/opt
lub/usr/local
w katalogach domowych użytkowników (w takim przypadku nawet sysadmin może nie być świadomy swojej obecności), lub gdziekolwiek, naprawdę.Technicznie
apt
lubdpkg
nawet może usunąć oprogramowanie, które jest wymagane przez inne oprogramowanie, które jest częścią systemu zarządzania pakietami, jeśli to drugie oprogramowanie nie zadeklaruje, że zależy od poprzedniego oprogramowania. Jednak proces tworzenia pakietów deb obejmuje automatyzację, aby pomóc opiekunom pakietów zapomnieć o zadeklarowaniu takiej zależności.źródło