Apt verarbeitet Abhängigkeiten zwischen Paketen, die aus seinen Repositorys oder *.deb
Dateien installiert wurden . Was ist jedoch mit Software, die Benutzer aus dem Quellcode kompiliert und installiert haben, ./configure && make && make install
ohne zuvor eine .deb
Datei zu erstellen ? Ist es möglich, dass Apt Pakete entfernt, die von solchen Softwareprogrammen benötigt werden? Würde die Installation von Software von der Quelle in /opt
oder /usr/local
einen Unterschied machen?
debian
apt
dependencies
Elena
quelle
quelle
Antworten:
APT weiß nichts über Software, die manuell installiert wurde. Es weiß nicht, welche Bibliotheken die Software benötigt oder was auch immer.
Wenn APT ein Paket nur installiert, um die Abhängigkeiten eines anderen Pakets zu erfüllen, wird dieses Paket als automatisch installiert markiert. Wenn Sie alle Pakete entfernen, die von einem automatisch installierten Paket abhängen, wird dieses Paket bei der Ausführung entfernt
apt-get autoremove
. Übergeordnete Frontends zu APT bieten in der Regel an, dies nach einer anderen Wartung zu tun. Um zu vermeiden, dass Pakete entfernt werden, die von lokal installierter Software benötigt werden, markieren Sie diese Pakete als manuell installiert: oder geben Sie aptitude ein.apt-mark manual PACKAGE-NAME
m
Führen Sie Folgendes aus, um herauszufinden, welche Bibliothekspakete eine ausführbare Binärdatei benötigt
ldd /path/to/executable
. Führen Sie für jede Zeile, die enthält , den Namen des Pakets aus, das diese Bibliothek enthält. Zeigt bei Skripten den vom Skript verwendeten Interpreter an. Stellen Sie sicher, dass dieser Interpreter installiert bleibt. Es kann schwierig sein, herauszufinden, welche Bibliotheken von einem Skript verwendet werden. Es gibt keine universelle Möglichkeit, dies zu tun./usr/lib/SOMETHING
dpkg -S /usr/lib/SOMETHING
head -n 1 /path/to/script
Wenn Sie eine neuere Version eines Pakets, das in Ihrer Distribution vorhanden ist, manuell installiert haben, überprüfen Sie die Abhängigkeiten des Distributionspakets und markieren Sie sie als manuell installiert.
quelle
apt-get
in Debian hat Jessie nicht diemanual
Option. Für diese manuellen oder automatischen (automatischen) Installationshinweise verwende ichapt-mark
stattdessen. (apt-mark manual pkg
,apt-mark showmanual pkg
,apt-mark auto pkg
, Etc.)apt-mark
, danke.apt
unddpkg
kann auf jeden Fall Software entfernen, die von lokal installierter anderer Software benötigt wird, die außerhalb des Geltungsbereichs des Paketverwaltungssystems liegt. Es gibt einfach keine Möglichkeit ,apt
unddpkg
zu wissen , dass eine solche Software existieren könnte.Der Ort, an dem diese Software installiert wird, spielt keine Rolle: Es kann sich um
/opt
oder/usr/local
in den Home-Verzeichnissen der Benutzer handeln (in diesem Fall ist sich sogar der Systemadministrator seiner Anwesenheit möglicherweise nicht bewusst), oder tatsächlich um irgendwo.Technisch
apt
oderdpkg
könnte sogar Software entfernen, die von anderer Software benötigt wird, die Teil des Paketverwaltungssystems ist, wenn die letztere Software nicht deklariert, dass sie von der ersteren Software abhängt. Der Prozess zum Erstellen von Deb-Paketen umfasst jedoch eine Automatisierung, um zu verhindern, dass Paketbetreuer vergessen, eine solche Abhängigkeit zu deklarieren.quelle