Un point de vue légèrement différent, qui aboutit à une solution similaire à la réponse de @Bryson, mais la façon d'y parvenir peut être plus générale et utile à un plus grand nombre de personnes. De plus, je ne suis pas d'accord avec l'affirmation selon laquelle la bonne façon de procéder est d'utiliser la fonction --ignore-dependencies
drapeau. Lorsque vous utilisez ce drapeau, il est dit
Attention : --ignore-dependencies
est un drapeau de développeur Homebrew non supporté ! Ajustez votre PATH pour mettre toute version préférée d'applications plus tôt dans le PATH plutôt que d'utiliser ce drapeau non supporté !
De plus, je n'aime pas cette solution parce que vous devez vous rappeler de vérifier manuellement les dépendances de tout ce que vous installez à l'avenir, et faire manuellement le travail d'installation de toutes ces dépendances autres que celle que vous voulez éviter. Je pense que c'est une très mauvaise solution. L'avertissement contient en fait une suggestion pour résoudre le problème : ajustez votre variable de chemin. J'ai rencontré ce problème avec Java, pas avec OCaml, mais la solution devrait être la même pour tous les logiciels. brew
met les exécutables dans /usr/local/bin/
Le répertoire contenant l'exécutable de la dépendance que vous voulez utiliser doit donc se trouver plus tôt dans votre chemin que /usr/local/bin/
. Je vérifie donc quel est l'exécutable Java utilisé.
$ which java
/usr/bin/java
Et je vérifie mon chemin pour voir où il est relatif à /usr/local/bin/
$ echo $PATH | tr ':' '\n'
...
/usr/local/bin
/usr/bin
...
Je pourrais changer l'ordre de ceux-ci dans mon .bashrc
o .bash_profile
mais je veux en fait garder cet ordre, donc à la place je vais créer un lien symbolique dans /usr/local/bin
pour pointer vers l'exécutable de la dépendance en /usr/bin
alors brew sera capable de voir ma version de la dépendance au même niveau que toutes les autres dépendances de brew.
$ ln -s /usr/bin/java /usr/local/bin/java
Désormais, Brew n'essaiera pas d'installer une autre version de Java, ou toute autre dépendance.