Pacchetti obsoleti vs. pacchetti orfani


17

Qual è la differenza tra pacchetti obsoleti e orfani? Più specificamente, perché deborphanproduce questo:

dave@ubuntu:~$ deborphan
libbind9-80
libllvm3.1
libgrail5
libpython3.2
libsvga1
libarchive12
libdirectfb-1.2-9
gcalctool
liblwres80
libqpdf8
libkms1
libnux-3.0-0

... mentre aptitude search '~o'produce questo:

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)

Domanda bonus: apt-get autoremoveè ancora più diversa. Perché?

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.

Nel caso in cui qualcuno volesse saperlo, l'aggiornamento a 13.04 è ciò che l'ha richiesto.


li ho cancellati personalmente tutti tranne i vecchi kernel perché con la mia macchina il nuovo kernel è un po 'buggy
jerick wallace

Risposte:


25

In breve, i pacchetti obsoleti non si trovano più in alcun repository nell'elenco. I pacchetti orfani sono dipendenze automatiche i cui "dipendenti" sono stati tutti disinstallati. E apt-get autoremoveconsidera solo i pacchetti orfani che sono stati installati aptper risolvere le dipendenze.

Pacchetti obsoleti

Come probabilmente saprai, aptmantiene un elenco di repository da cui è possibile recuperare i pacchetti. Ma a volte, i pacchetti vengono rimossi da un repository. Forse nessuno si prende più cura del pacchetto e la (molto) ultima versione disponibile è diventata un rischio per la sicurezza. O forse il programma ha cambiato nome, i nomi dei pacchetti sono stati modificati di conseguenza e i vecchi pacchetti con il vecchio nome vengono rimossi. Esistono anche altri motivi per cui un pacchetto viene rimosso da un repository.

Se un pacchetto è installato sul tuo sistema, ma non può più essere trovato in nessuno dei repository che hai aptnei suoi elenchi, quel pacchetto è considerato "obsoleto".

Pacchetti orfani

Come probabilmente saprai, aptpuoi gestire le dipendenze tra i pacchetti. Ad esempio, un programma chiamato "greatprogram" ha bisogno di una libreria chiamata "greatlibrary" per funzionare. Quindi, il pacchetto contenente greatlibrary può essere contrassegnato come dipendenza automatica del pacchetto contenente greatprogram. Non sarai in grado di installare il pacchetto greatprogram, a meno che greatlibrary non sia già installato (o verrà installato con lo stesso comando).

Ma cosa succede se si disinstalla greatprogram in un giorno successivo e si lascia indietro greatlibrary? In quel caso, una volta almeno un altro pacchetto aveva bisogno di greatlibrary come dipendenza, ma ora nessun altro pacchetto lo fa più. Quei pacchetti "lasciati alle spalle" sono chiamati "pacchetti orfani".

apt-get autoremove

Ancora un altro fatto che probabilmente conosci è che aptpuò risolvere automaticamente le dipendenze per te. Supponi di voler installare il programma di cui sopra, ma non hai ancora installato greatlibrary. apt-get"nota che esiste una dipendenza insoddisfatta e offre anche di installare greatlibrary.

apt-get autoremoveti offre la possibilità di rimuovere tutti i pacchetti orfani che sono stati installati in questo modo per risolvere una dipendenza . I pacchetti orfani che sono stati installati in altri modi non sono nell'elenco di autoremove. Se, diciamo, hai installato greatlibrary da solo prima di installare greatprogram, e in seguito disinstallare greatprogram, greatlibrary rimarrebbe comunque orfano. Ma autoremove non se ne occuperebbe, perché non è stato installato automaticamente a causa di una dipendenza risolta.


1
Grazie per l'ottima spiegazione. Curioso però: perché non deborphanraccogliere tutto autoremovefa? Capisco perché non funziona al contrario.
David Kennedy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.