Czy Apt może usunąć pakiety potrzebne przez oprogramowanie, które użytkownicy zainstalowali ze źródła?


14

Apt obsługuje zależności między pakietami zainstalowanymi z repozytoriów lub *.debplików. A co z oprogramowaniem, które użytkownicy skompilowali i zainstalowali ze źródła ./configure && make && make installbez uprzedniego utworzenia .debpliku? Czy to możliwe, że Apt może usunąć pakiety potrzebne przez takie oprogramowanie? Czy instalacja oprogramowania ze źródła /optlub /usr/localcoś zmieniłaby?


1
Możesz zainstalować pakiet equivs jako stand-in dla pakietu zainstalowanego ze źródła, aby zmusić swoje zależności do pozostania zainstalowanym.
Faheem Mitha

Odpowiedzi:


13

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-NAMEm

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/SOMETHINGdpkg -S /usr/lib/SOMETHINGhead -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.


apt-getw Debianie Jessie nie ma takiej manualopcji. W przypadku tych instrukcji instalacji vs. automatycznych (matycznych) wskazówek użyłem apt-markzamiast tego. ( apt-mark manual pkg, apt-mark showmanual pkg, apt-mark auto pkg, Itd.)
Lekensteyn

@Lekensteyn Miałem na myśli apt-mark, dzięki.
Gilles „SO- przestań być zły”

14

apti dpkgabsolutnie 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ób apti dpkgwiedzieć, że takie oprogramowanie może istnieć.

Lokalizacja, w której takie oprogramowanie jest zainstalowane, nie ma znaczenia: może być /optlub /usr/localw katalogach domowych użytkowników (w takim przypadku nawet sysadmin może nie być świadomy swojej obecności), lub gdziekolwiek, naprawdę.

Technicznie aptlub dpkgnawet 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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.