Apt pourrait-il supprimer les packages dont les utilisateurs ont besoin depuis les logiciels installés?

14

Apt gère les dépendances entre les packages installés à partir de ses référentiels ou *.debfichiers. Cependant, qu'en est-il des logiciels que les utilisateurs ont compilés et installés à partir des sources ./configure && make && make installsans créer de .debfichier au préalable? Est-il possible qu'Apt puisse supprimer les paquets nécessaires à ces logiciels? L'installation de logiciels à partir de la source /optou /usr/localferait-elle une différence?

Elena
la source
1
Vous pouvez installer un package equivs en tant que remplaçant pour un package installé à partir de la source, pour forcer vos dépendances à rester installées.
Faheem Mitha

Réponses:

13

APT ne sait rien des logiciels installés manuellement. Il ne sait pas de quelles bibliothèques ce logiciel a besoin ou quoi que ce soit.

Lorsque APT installe un package uniquement pour répondre aux dépendances d'un autre package, ce package est marqué comme installé automatiquement. Si vous supprimez tous les packages qui dépendent d'un package installé automatiquement, ce package est supprimé lorsque vous exécutez apt-get autoremove; les interfaces de niveau supérieur à APT proposent généralement de le faire après une autre maintenance. Pour éviter de supprimer les packages nécessaires aux logiciels installés localement, marquez ces packages comme installés manuellement: ou la clé dans aptitude.apt-mark manual PACKAGE-NAMEm

Pour trouver les packages de bibliothèque dont un exécutable binaire a besoin, exécutez ldd /path/to/executable. Pour chaque ligne contenant , exécutez pour afficher le nom du package contenant cette bibliothèque. Pour les scripts, affiche l'interpréteur utilisé par le script; assurez-vous que cet interpréteur reste installé. Trouver quelles bibliothèques sont utilisées par un script peut être difficile, il n'y a pas de moyen universel de le faire./usr/lib/SOMETHINGdpkg -S /usr/lib/SOMETHINGhead -n 1 /path/to/script

Si vous avez installé manuellement une version plus récente d'un package présent dans votre distribution, examinez les dépendances du package de la distribution et marquez-les comme installées manuellement.

Gilles 'SO- arrête d'être méchant'
la source
apt-getdans Debian, Jessie n'a pas la manualpossibilité. Pour ces conseils d'installation manuelle vs automatique (matic) que j'ai utilisé à la apt-markplace. ( apt-mark manual pkg, apt-mark showmanual pkg, apt-mark auto pkg, Etc.)
Lekensteyn
@Lekensteyn Je voulais dire apt-mark, merci.
Gilles 'SO- arrête d'être méchant'
14

aptet dpkgpeut absolument supprimer les logiciels requis par d'autres logiciels installés localement qui ne relèvent pas du système de gestion des packages. Il n'y a tout simplement aucun moyen aptetdpkg de savoir que ce logiciel pourrait exister.

L'emplacement où un tel logiciel est installé ne fait aucune différence: il pourrait être /optou /usr/localou dans les répertoires personnels des utilisateurs (auquel cas même l'administrateur système peut ne pas être au courant de sa présence), ou n'importe où, vraiment.

Techniquement aptou dpkgpourrait même supprimer le logiciel qui est requis par un autre logiciel qui est une partie du système de gestion des paquets, si ce dernier logiciel ne déclare pas que cela dépend de l'ancien logiciel. Cependant, le processus de création de packages deb inclut une automatisation pour empêcher les responsables de packages d'oublier de déclarer une dépendance comme celle-ci.

Celada
la source