Paquets cassés

[Résolu/Fermé]
Signaler
-
Messages postés
30113
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 septembre 2021
-
Bonjour,

J'utiise linux depuis quelques mois et je cherche à comprendre la notion de "paquets cassés".

-Est ce que ca signifie que certains fichiers sont corrompus?

-Pour quelles raisons peut-ont se retrouver avec des paquets cassés? (probleme de connexion lors de l'installation du paquet?)

-Un paquet deja installé peut-il se casser du jour au lendemain? est-ce fréquent?






3 réponses

Messages postés
30113
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 septembre 2021
7 173
Bon, on va faire toutes les sortes de paquets, comme ça tu auras un article complet :-)

Rappels préalables

Tu sais que lorsqu'on installe un paquet, celui-ci ne peut s'installer que si toutes ses dépendances le sont au préalable. C'est la raison pour laquelle installer un paquet engendre en cascade l'installation de plein d'autres paquets dont tu ne soupçonnes pas forcément l'existence.

Une commande de base (dpkg pour les distributions basées sur debian et rpm pour les distributions basées sur redhat) s'occupe de cette vérification. Toutefois elles ne sont pas capables d'invoquer l'installation en cascade des dépendances manquantes.

Exemple : firefox est codé en langage C avec gtk : cela signifie que les paquets libc6 et libgtk doivent être installés au préalable. C'est sûrement le cas de libc6 mais pas forcément celui de libgtk si je suis sous KDE. Ainsi installer firefox va engendrer l'installation préalable de libgtk pour pouvoir s'installer correctement par la suite. Et on peut imaginer que libgtk dépende à son tour d'un autre paquet qui n'est pas installé, et qu'il faudra installer encore avant.

Bien entendu, tout ceci est possible si quelque chose gère la résolution des dépendances ie :
- tout ce qui manque
- dans quel ordre l'installer

Ainsi on ne se préoccupe plus des dépendances, on dit simplement ce qu'on veut installer. Exemple :

aptitude install vim


C'est le rôle d'une couche plus "intelligente", typiquement apt sous debian (et toutes les commandes qui commencent par apt... comme apt-get, aptitude etc...). Pour les distributions "rpm", ce seraient des outils comme yum, yast etc...

Paquets cassés

Un paquet est dit cassé lorsqu'une de ces dépendances est désinstallé (ou si on s'apprête à en supprimer une, on dit que l'on casse le paquet). Ceci n'est pas sensé arriver car le logiciel déployé grâce au paquet cassé risque de ne plus fonctionner (librairie manquante etc...).

Réinstaller un paquet cassé suffit généralement à le réparer. Exemple :

aptitude reinstall vim


Dans de grosses migrations (changement de version de debian ou ubuntu), il peut arriver que les paquets changent tellement (nom, dépendances, versions ...) que des paquets se trouvent cassés si l'on déclenche la mise à jour. Il revient à l'administrateur de trouver un scénario de mise à jour qui n'engendre aucun paquet cassé.

Des outils comme aptitude (en mode interactif) permettent de l'aider à cette tâche. Sous ubuntu, on se repose sur un script de migration qui évite à l'individu lambda de se poser trop de questions.

Un paquet ne peut se casser que si tu effectues une manipulation sur les paquets (installation, mise à jour, suppression de paquet). Normalement ton gestionnaire de paquets te prévient si cela arrive.

Paquets gelés

Toujours suite à une grosse mise à jour, il se peut que ton gestionnaire de paquet te propose de geler un paquet. Cela signifie que les mises à jour de ce paquets seront ignorées (avec tous les inconvénients que ça implique). Sauf si une nouvelle version d'un paquet est bancale, tu ne devrais jamais avoir de paquets gelés.

Encore une fois, aptitude permet de les traquer.

Paquets orphelins

Suite à une mise à jour, certains paquets résiduels (qui ne servent plus car ils ne sont plus utilisés par rien) peuvent rester. Ils sont dits orphelins. On les détecte sous debian grâce à deborphan. On peut les purger sans risque.

aptitude purge $(deborphan)


Paquets virtuels

Un paquet est dit virtuel quand il ne peut pas être installé. Il est utilisé en interne par le gestionnaire de paquet pour mettre en oeuvre des dépendances complexes basées sur des conditions logiques. Pour "installer" un paquet virtuel (et donc satisfaire les dépendances qui le mettent en jeu) il faut installer l'un des paquets qui le "fournisse".

Tu peux regarder dans aptitude (si tu utilises une distribution basée sur debian) ou sur un site de package un paquet un peu compliqué pour te faire une idée plus précise :

Exemple :
- xserver-xorg dépend de xserver-xorg-video qui est un paquet virtuel
https://packages.debian.org/sid/xserver-xorg
- Ce paquet est satisfait si au moins l'un de ces paquets est installé :
https://packages.debian.org/sid/xorg-driver-video

Méta paquets

Un méta paquet est un paquet qui ne contient rien en lui-même. Il ne fait que rassembler des dépendances qui engendre l'installation d'autres paquets en cascade. Par exemple kde-plasma-desktop est un méta-paquet (car il installe un kde à peu près complet).
https://packages.debian.org/testing/kde/kde-plasma-desktop

Si tu veux plus de détails :
http://www.mistra.fr/tutoriel-linux-gestionnaire-de-paquets.html
http://www.mistra.fr/tutoriel-linux-apt.html
http://www.mistra.fr/tutoriel-linux-apt-configuration.html

Bonne chance
5
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Merci beaucoup pour cette explication complete!
Messages postés
30113
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 septembre 2021
7 173
De rien, bonne continuation !