2016-10-23 2 views
0

Pour diverses raisons spécifiques au projet, j'ai rétrogradé mon boost (et boost-python) l'installation Homebrew à boost159 de boost (alias Boost 1.62.0 comme de l'écriture de cette question). Les homebrew/versions/boost159 et boost-python159 formules sont tonnelet seulement et donc je devais les lier manuellement:Comment gérer les dépendances de formule Homebrew après avoir installé une version plus ancienne

brew tap homebrew/versions 
brew remove --force boost 
brew remove --force boost-python 
brew install boost159 
brew link --force --overwrite boost159 
brew install boost-python159 
brew link --force --overwrite boost-python159 

Jusqu'à présent, si bon. Mais, quand je veux installer une formule Homebrew sans rapport qui a une dépendance à l'égard boost, Homebrew essaie de brew install boost (Boost 1.62.0) et ne parvient pas à lier:

[34m==>[0m [1mPouring boost-1.62.0.el_capitan.bottle.tar.gz[0m 

[31mError:[0m The `brew link` step did not complete successfully 

The formula built, but is not symlinked into /usr/local 

Could not symlink include/boost/accumulators/accumulators.hpp 

Target /usr/local/include/boost/accumulators/accumulators.hpp 

is a symlink belonging to boost159. You can unlink it: 

    brew unlink boost159 


To force the link and overwrite all conflicting files: 

    brew link --overwrite boost 


To list all files that would be deleted: 

    brew link --overwrite --dry-run boost 


Possible conflicting files are: 

/usr/local/include/boost/accumulators/accumulators.hpp -> /usr/local/Cellar/boost159/1.59.0/include/boost/accumulators/accumulators.hpp 
[...] 

Est-il possible de faire d'autres formules utilisent boost159 au lieu de boost? S'il vous plaît noter que boost159 doit être lié pour d'autres parties des projets (pas sous mon contrôle) pour fonctionner. C'est-à-dire, je ne peux pas le laisser dissocié et mettre des variables de construction à la place.

PS. Tout cela se passe dans une construction CI, rendant l'erreur beaucoup plus perturbante.

Références

Répondre

1

Probablement il vous suffit de patch your local formulas. À mon avis, le support de versions entières dans le brassage est un hack impure et l'une des raisons pour lesquelles je n'utilise pas de brassage pour les dépendances de développement de temps de construction.