Quelle est la différence entre les packages obsolètes et orphelins? Plus précisément, pourquoi cela deborphan
produit-il:
dave@ubuntu:~$ deborphan
libbind9-80
libllvm3.1
libgrail5
libpython3.2
libsvga1
libarchive12
libdirectfb-1.2-9
gcalctool
liblwres80
libqpdf8
libkms1
libnux-3.0-0
... tandis que aptitude search '~o'
produit ceci:
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)
Question bonus: apt-get autoremove
est encore plus différente. Pourquoi?
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.
Au cas où quelqu'un voudrait le savoir, la mise à niveau vers 13.04 est ce qui a provoqué cela.
Réponses:
Pour faire court, les packages obsolètes ne figurent plus dans aucun référentiel de votre liste. Les packages orphelins sont des dépendances automatiques dont les "dépendants" ont tous été désinstallés. Et
apt-get autoremove
ne prend en compte que les packages orphelins installés parapt
pour résoudre les dépendances.Forfaits obsolètes
Comme vous le savez probablement,
apt
conserve une liste des référentiels à partir desquels il peut récupérer des packages. Mais parfois, les packages sont supprimés d'un référentiel. Peut-être que plus personne ne s'occupe (ne maintient) le paquet, et la (très) ancienne dernière version disponible est devenue un risque pour la sécurité. Ou peut-être que le programme a changé son nom, les noms des packages ont été modifiés en conséquence et les anciens packages sous l'ancien nom sont supprimés. Il existe d'autres raisons possibles pour lesquelles un package est également supprimé d'un référentiel.Si un package est installé sur votre système, mais ne peut plus être trouvé dans aucun des référentiels que vous avez
apt
sur ses listes, ce package est considéré comme "obsolète".Forfaits orphelins
Comme vous le savez probablement aussi,
apt
peut gérer les dépendances entre les packages. Supposons par exemple qu'un programme appelé "greatprogram" ait besoin d'une bibliothèque appelée "greatlibrary" pour fonctionner. Ainsi, le package contenant greatlibrary peut être marqué comme une dépendance automatique du package contenant greatprogram. Vous ne pourrez pas installer le package greatprogram, sauf si greatlibrary est déjà installé (ou sera installé avec la même commande).Mais que se passe-t-il si vous désinstallez greatprogram un jour plus tard et laissez greatlibrary derrière? Dans ce cas, une fois au moins un autre paquet avait besoin d'une grande bibliothèque comme dépendance, mais maintenant aucun autre paquet ne fait plus. Ces packages "laissés pour compte" sont appelés "packages orphelins".
apt-get autoremove
Encore un autre fait que vous savez probablement, c'est qu'il
apt
peut résoudre automatiquement les dépendances pour vous. Supposons que vous souhaitiez installer le grand programme mentionné ci-dessus, mais que la grande bibliothèque ne soit pas encore installée.apt-get
"remarque" qu'il existe une dépendance non satisfaite et vous propose également d'installer greatlibrary.apt-get autoremove
vous propose de supprimer tous les packages orphelins qui ont été installés de cette façon pour résoudre une dépendance . Les packages orphelins qui ont été installés par d'autres moyens ne figurent pas dans la liste de suppression automatique. Si, par exemple, vous avez installé greatlibrary vous-même avant d'installer greatprogram, et que vous désinstallez ultérieurement greatprogram, greatlibrary serait toujours orphelin. Mais autoremove ne s'en occuperait pas, car il n'a pas été installé automatiquement en raison d'une dépendance résolue.la source
deborphan
reprendreautoremove
? Je comprends pourquoi cela ne fonctionne pas dans l'autre sens.