web-dev-qa-db-fra.com

Comment apt-get sélectionne-t-il dans une liste de dépendances alternatives?

Je comprends que dans la section Depends: des fichiers de contrôle deb, un package peut spécifier des dépendances alternatives séparées par | symbole pour satisfaire une seule dépendance.

Ma question est de savoir comment apt-get décide lequel installer quand il existe des alternatives?

Existe-t-il un moyen de modifier manuellement cette sélection en utilisant quelque chose de similaire à apt_preferences?

Par exemple, si un package dépend de Java et dans la section Depends, nous avons openjdk-6-jre | Sun-Java6-jre, comment puis-je forcer apt-get à installer openjdk-6-jre à condition que le système n'ait installé aucun des deux packages?

4
mrantims

Dans le Manuel de politique de Debian, Chapitre 7 - Déclarer les relations entre les paquets vous pouvez lire

Dans les champs de contrôle Depends, Recommends, Suggests, Pre-Depends, Build-Depends et Build-Depends-Indep du package, qui déclarent les dépendances des autres packages, les noms de package répertoriés peuvent également inclure des listes de noms de package alternatifs, séparés par des verticales symboles de barre (tuyau) |. Dans un tel cas, si l'un des packages alternatifs est installé, cette partie de la dépendance est considérée comme satisfaite.

Je ne trouve aucune autre information utile sur la liste des alternatives dans tout le document, donc je devrais conclure que, dans le cas où aucun des packages de la liste n'est déjà installé, le premier de la liste sera choisi. Mais sachez que ce n'est que mon interprétation.

1
enzotib