Je travaille sur certaines instructions de configuration de la machine, et j'ai été surpris de découvrir que cela apt-get install A B
peut se comporter différemment apt-get install A && apt-get install B
.
Mon exemple spécifique est A == openjdk-7-jdk
et B == ant
.
Donc, openjdk-7-jdk
dépend de openjdk-7-jre-headless
, ce qui satisfait ant
la dépendance de java6-runtime-headless
. Mais si vous les installez en tant que apt-get install openjdk-7-jdk ant
, APT ne semble pas comprendre cela et installe default-jre-headless
. Mais si vous installez openjdk-7-jdk
avant l'installation ant
, sa dépendance est satisfaite et tout va bien.
APT est généralement assez intelligent pour comprendre ce genre de chose, alors pourquoi ne peut-il pas le faire dans ce cas? J'aimerais mieux comprendre pourquoi cela fonctionne de cette façon, donc ce genre de chose ne me fera plus trébucher à l'avenir.
la source
apt-get install -o Debug::pkgProblemResolver=true package1 package2...
. Cela pourrait vous donner une idée pourquoi cela fonctionne de cette façon.Réponses:
Il semble qu'il y ait une sorte de système de "poids" ici:
Comme vous pouvez le voir, cela
ant
dépend d'openjdk-7-jdk
une quantité compliquée et complexe de suggestions, de recommandations et de dépendances, tandis que lors de l'utilisation deopenjdk-6-jdk
la dépendance est plus directe:Bien sûr, les
aptitude
méthodes de résolution des dépendances pourraient être différentes de cellesapt-get
de. BTW, exécuter une simulation de fourmi sans openjdk-7-jdk installé ne tire pas openjdk-6-jdk:Peut-être que si vous utilisez les mêmes méthodes que moi, vous pourriez en comprendre plus, car j'utilise actuellement les tests Debian et les référentiels pourraient avoir changé entre-temps.
la source
AFAIK, il a des valeurs par défaut pour satisfaire une dépendance, donc si cette dépendance n'a pas été satisfaite avant d'installer un package, il installe la dépendance puis installe le package demandé.
Cependant, cela pourrait également être un gros bogue.
Quoi qu'il en soit, j'espère que cela vous aidera.
la source