Veraltete Pakete im Vergleich zu verwaisten Paketen

17

Was ist der Unterschied zwischen veralteten und verwaisten Paketen? Genauer gesagt, warum wird dies deborphanerzeugt:

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 autoremoveist 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.

David Kennedy
quelle
Ich persönlich habe sie alle außer den alten Kerneln gelöscht, weil der neue Kernel mit meiner Maschine ein kleiner Buggy ist
jerick wallace

Antworten:

25

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 autoremovehält nur Pakete verwaist , die von installiert wurden , aptzu lösen Abhängigkeiten.

Veraltete Pakete

Wie Sie wahrscheinlich wissen, wird apteine 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 aptListe enthalten ist, wird dieses Paket als "veraltet" betrachtet.

Verwaiste Pakete

Wie Sie wahrscheinlich auch wissen, aptkö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 aptAbhä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 autoremovebietet 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.

Henning Kockerbeck
quelle
1
Danke für die tolle Erklärung. Kurioserweise: Warum nicht deborphanalles aufgreifen, was es autoremovetut? Ich verstehe, warum es nicht umgekehrt funktioniert.
David Kennedy