Was ist der Unterschied zwischen veralteten und verwaisten Paketen? Genauer gesagt, warum wird dies deborphan
erzeugt:
dave@ubuntu:~$ deborphan
libbind9-80
libllvm3.1
libgrail5
libpython3.2
libsvga1
libarchive12
libdirectfb-1.2-9
gcalctool
liblwres80
libqpdf8
libkms1
libnux-3.0-0
... während dies aptitude search '~o'
erzeugt:
dave@ubuntu:~$ aptitude search '~o'
idA libarchive12 - Multi-format archive and compression library (shared li
i libbind9-80 - BIND9 Shared Library used by BIND
i libdns81 - DNS Shared Library used by BIND
i libdrm-nouveau1a - Userspace interface to nouveau-specific kernel DRM serv
idA libgrail5 - Gesture Recognition And Instantiation Library
i libisc83 - ISC Shared Library used by BIND
i libisccc80 - Command Channel Library used by BIND
i libisccfg82 - Config File Handling Library used by BIND
i liblwres80 - Lightweight Resolver Library used by BIND
idA libnux-3.0-0 - Visual rendering toolkit for real-time applications - s
idA libnux-3.0-common - Visual rendering toolkit for real-time applications - c
idA libpython3.2 - Shared Python runtime library (version 3.2)
idA libqpdf8 - runtime library for PDF transformation/inspection softw
i libudev0 - udev library
i A linux-headers-3.5.0-27 - Header files related to Linux kernel version 3.5.0
i A linux-headers-3.5.0-27-generic - Linux kernel headers for version 3.5.0 on 32 bit x86 SM
i linux-image-3.5.0-27-generic - Linux kernel image for version 3.5.0 on 32 bit x86 SMP
i linux-image-extra-3.5.0-27-generic - Linux kernel image for version 3.5.0 on 32 bit x86 SMP
i python3.2 - Interactive high-level object-oriented language (versio
i python3.2-minimal - Minimal subset of the Python language (version 3.2)
Bonusfrage: apt-get autoremove
ist noch anders. Warum?
dave@ubuntu:~$ sudo apt-get --purge autoremove
[sudo] password for dave:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
gksu* libarchive12* libdirectfb-1.2-9* libgksu2-0* libgnome-menu2* libgrail5* libllvm3.1*
libnux-3.0-0* libnux-3.0-common* libpython3.2* libqpdf8* libsvga1* libts-0.0-0* libx86-1*
mobile-broadband-provider-info* python-imaging* python-imaging-compat* python- oauth* tsconf*
0 upgraded, 0 newly installed, 19 to remove and 0 not upgraded.
After this operation, 33.8 MB disk space will be freed.
Do you want to continue [Y/n]? n
Abort.
Falls jemand es wissen möchte, hat das Upgrade auf 13.04 dies veranlasst.
Antworten:
Kurz gesagt, veraltete Pakete befinden sich nicht mehr in einem Repository auf Ihrer Liste. Verwaiste Pakete sind automatische Abhängigkeiten, deren "Abhängigkeiten" alle deinstalliert wurden. Und
apt-get autoremove
hält nur Pakete verwaist , die von installiert wurden ,apt
zu lösen Abhängigkeiten.Veraltete Pakete
Wie Sie wahrscheinlich wissen, wird
apt
eine Liste der Repositorys geführt, aus denen Pakete abgerufen werden können. Manchmal werden Pakete jedoch aus einem Repository entfernt. Vielleicht kümmert sich niemand mehr um das Paket und die (sehr) alte letzte verfügbare Version ist zu einem Sicherheitsrisiko geworden. Oder das Programm hat seinen Namen geändert, die Paketnamen wurden entsprechend geändert und die alten Pakete unter dem alten Namen werden entfernt. Es gibt auch andere mögliche Gründe, warum ein Paket aus einem Repository entfernt wird.Wenn ein Paket auf Ihrem System installiert ist, aber nicht mehr in einem der Repositorys auf Ihrer
apt
Liste enthalten ist, wird dieses Paket als "veraltet" betrachtet.Verwaiste Pakete
Wie Sie wahrscheinlich auch wissen,
apt
können Sie Abhängigkeiten zwischen Paketen verwalten. Angenommen, ein Programm namens "greatprogram" benötigt eine Bibliothek namens "greatlibrary", um zu funktionieren. So kann das Paket, das greatlibrary enthält, als automatische Abhängigkeit des Pakets markiert werden, das greatprogram enthält. Sie können das greatprogram-Paket nur installieren, wenn greatlibrary bereits installiert ist (oder mit demselben Befehl installiert wird).Aber was ist, wenn Sie greatprogram zu einem späteren Zeitpunkt deinstallieren und greatlibrary zurücklassen? In diesem Fall benötigte mindestens ein anderes Paket greatlibrary als Abhängigkeit, aber jetzt funktioniert kein anderes Paket mehr. Diese "zurückgelassenen" Pakete werden "verwaiste Pakete" genannt.
apt-get autoremove
Eine weitere Tatsache, die Sie wahrscheinlich kennen, ist, dass
apt
Abhängigkeiten automatisch für Sie aufgelöst werden können. Angenommen, Sie möchten das oben erwähnte GreatProgram installieren, haben aber noch keine GreatLibrary installiert.apt-get
"merkt", dass es eine unzufriedene Abhängigkeit gibt und bietet Ihnen an, greatlibrary ebenfalls zu installieren.apt-get autoremove
bietet Ihnen die Möglichkeit, verwaiste Pakete zu entfernen , die auf diese Weise installiert wurden, um eine Abhängigkeit aufzulösen . Verwaiste Pakete, die auf andere Weise installiert wurden, sind nicht in der Liste von autoremove enthalten. Wenn Sie beispielsweise greatlibrary vor der Installation von greatprogram selbst installiert haben und greatprogram zu einem späteren Zeitpunkt deinstallieren, ist greatlibrary weiterhin verwaist. Aber autoremove würde sich nicht darum kümmern, da es aufgrund einer gelösten Abhängigkeit nicht automatisch installiert wurde.quelle
deborphan
alles aufgreifen, was esautoremove
tut? Ich verstehe, warum es nicht umgekehrt funktioniert.