GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment Apt choisit-il le package spécifique à installer afin de fournir un package virtuel nécessaire en tant que dépendance ?

Par exemple, awk est un paquet virtuel fourni par original-awk , mawk et gawk .

Essayer de l'installer directement donne :

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package awk is a virtual package provided by:
  original-awk:i386 2012-12-20-4
  mawk:i386 1.3.3-17ubuntu2
  gawk:i386 1:4.1.1+dfsg-1
  original-awk 2012-12-20-4
  mawk 1.3.3-17ubuntu2
  gawk 1:4.1.1+dfsg-1
You should explicitly select one to install.

E: Package 'awk' has no installation candidate

Cependant, de nombreux packages virtuels sont nécessaires en tant que dépendances par les packages installés par défaut, par exemple awk lui-même est requis par base-files , qui vérifie les journaux APT est installé avec un tas d'autres packages via apt-get --yes; d'une manière ou d'une autre, APT finit par choisir automatiquement l'un des trois (je suis presque sûr que c'est mawk , mais ce n'est pas le but de la question).

Comment APT choisit-il le package spécifique à installer dans ce cas ?

Réponse acceptée :

Comment APT choisit-il le package spécifique à installer dans ce cas ?

APT ne sélectionne pas de package. Il dit :

Vous devez en sélectionner un explicitement à installer.

Si vous essayez de sélectionner manuellement un package, il ne sera pas installé.

Dans le cas de fichiers de base dépendant de awk, cela n'a pas d'importance. Tout d'abord, il dépend en fait de awk, forçant dpkg à installer awk avant de commencer à installer les fichiers de base; deuxièmement, mawk a la priorité requise qui est installée lors de l'installation du système, et apt vous harcèle si vous essayez de le supprimer. Alors, ne le faites pas.

Maintenant, selon les sources, apt essaie d'abord de satisfaire la dépendance avant d'essayer avec des packages virtuels (c'est-à-dire si les dépendances sont firefox | www-browser , vérifie si l'un des packages est installé, puis essayez d'installer firefox si ni l'un ni l'autre ne l'est). Si le package non virtuel n'est pas disponible, il semble simplement itérer sur tous les packages qui fournissent le package virtuel, si aucune autre dépendance n'est rompue. D'autres commentaires témoignent de ce comportement, ce qui conduit à la fonction GrpIterator ::FindPreferredPkg.

En relation :Définir les autorisations d'exécution sur une image montée ?
Ubuntu
  1. Comment installer Webmin sur Ubuntu 20.04

  2. Comment utiliser yum pour installer une version spécifique d'un Package ?

  3. Comment installer un fichier Deb, par Dpkg -i ou par Apt ?

  4. Comment installer Termite ?

  5. Comment faire de Synaptic la valeur par défaut pour installer les fichiers .deb ??

Comment installer Ubuntu 22.04 sur Virtual Box

Comment installer une version de package spécifique sur Ubuntu et Debian

Comment installer Ulauncher dans Ubuntu 20.04

Comment demander à Yum d'installer une version spécifique du package X ?

Comment activer le bouton Modifier dans l'obturateur ?

Comment installer KVM sur Ubuntu 22.04