Une dépendance de paquet indique qu’un paquet a besoin d’un autre paquet, d’une fonctionnalité ou d’une version compatible pour être installé ou fonctionner. Les gestionnaires de paquets qui connaissent les dépôts emploient ces métadonnées pour calculer un ensemble cohérent de changements au lieu de traiter chaque archive isolément.
Packages · Leçon 4
Dépendances des paquets
Découvrez comment les métadonnées des paquets expriment les fonctionnalités requises, les versions, les conflits et les relations entre bibliothèques partagées.
Relations de dépendances
Les métadonnées d’un paquet peuvent exprimer plus qu’un simple nom obligatoire. Selon le format de la distribution, les relations peuvent comprendre :
- les dépendances obligatoires ;
- des contraintes de version minimale, maximale ou exacte ;
- des solutions de remplacement, où l’un des fournisseurs possibles satisfait l’exigence ;
- des recommandations ou des suggestions dont la sémantique est moins contraignante ;
- des conflits, des ruptures ou des remplacements ;
- des fonctionnalités virtuelles fournies par plusieurs paquets.
Ces règles permettent au solveur de choisir un ensemble de versions compatible avec les dépôts configurés, l’architecture et l’état installé. Une solution peut nécessiter des mises à niveau, des suppressions ou un choix entre plusieurs fournisseurs ; examinez donc la transaction proposée avant de l’approuver.
Que cherche à produire un solveur de dépendances qui connaît les dépôts ?
Bibliothèques partagées comme dépendances
Une bibliothèque partagée contient du code compilé que plusieurs programmes peuvent charger à l’exécution. Le partage réduit la duplication des implémentations et permet aux distributions de mettre à jour une bibliothèque commune indépendamment, mais les programmes dépendent d’une interface binaire applicative, ou ABI, compatible.
Sur les systèmes Linux reposant sur ELF, un exécutable peut enregistrer le nom d’une bibliothèque nécessaire, par exemple un SONAME. L’éditeur de liens dynamique trouve une bibliothèque installée correspondante au démarrage du programme. Les métadonnées du paquet représentent généralement cette exigence comme une dépendance envers le paquet ou la fonctionnalité qui fournit la bibliothèque compatible.
Qu’est-ce qu’une bibliothèque partagée ?
Compatibilité des versions et de l’ABI
La présence d’un fichier dont le nom ressemble à celui de la bibliothèque ne suffit pas. L’ABI requise, l’architecture, les symboles et parfois la version minimale doivent correspondre. Le remplacement manuel d’une bibliothèque de la distribution peut briser tous les programmes qui en dépendent, même si son nom paraît correct.
Les mainteneurs de paquets encodent les relations entre bibliothèques et coordonnent les transitions lorsqu’une ABI change. Laissez le gestionnaire de paquets contrôler les bibliothèques natives ; employez des mécanismes pris en charge d’installation parallèle, de conteneur, d’environnement ou de construction pour les logiciels qui exigent une version incompatible.
Pourquoi un programme peut-il encore échouer lorsqu’un fichier de bibliothèque portant un nom semblable existe ?
États de dépendances cassés
Un problème de dépendances peut provenir d’un mélange de dépôts, d’opérations interrompues, d’archives installées manuellement, de versions retenues, de fichiers supprimés ou de logiciels tiers incompatibles. N’y répondez pas en supprimant les fichiers de la base des paquets ou en forçant aveuglément une installation.
Commencez par lire les diagnostics du gestionnaire de paquets, n’actualisez que les métadonnées des dépôts de confiance, examinez les versions retenues ou épinglées et vérifiez la réparation proposée. Un installateur de bas niveau peut décompresser une archive sans récupérer toutes ses dépendances ; un outil de dépôt de niveau supérieur est généralement plus sûr pour une installation ordinaire, car il résout toute la transaction.
Quelle est une limite courante de l’installation d’un paquet local avec un outil d’archives de bas niveau ?
Utilisez Gérer les bibliothèques partagées sous Linux pour examiner les relations à l’exécution, puis comparez-les aux métadonnées des paquets dans Gérer des paquets avec RPM.
Leçon terminée
Vous avez terminé Dépendances des paquets
Vous savez maintenant expliquer la résolution des dépendances des paquets.
Reconnaître les relations obligatoires, alternatives, versionnées et conflictuelles.
Relier les paquets de bibliothèques partagées aux exigences d’ABI à l’exécution.
Considérer les noms de fichiers comme une preuve moins solide que l’architecture et la compatibilité des interfaces.
Examiner une transaction complète du gestionnaire de paquets avant d’appliquer une réparation.
Conservez votre progression
Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.
Créer un compte gratuit