如何在安装旧版本后处理Homebrew公式依赖项

时间:2016-10-23 17:12:27

标签: boost dependencies homebrew versioning downgrade

出于各种项目原因,我已将INDEX(latitude)(和boost)自制软件安装从boost-python降级为boost159(又名Boost boost为写这个问题)。 1.62.0homebrew/versions/boost159公式是 keg-only ,因此我必须手动链接它们:

boost-python159

到目前为止一切顺利。但是,当我想安装一些与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 有依赖关系的无关Homebrew公式时,Homebrew尝试boost(Boost brew install boost)并且无法链接它:

1.62.0

有没有办法让其他公式使用[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 [...] 代替boost159?请注意,boost必须链接到项目的其他部分(不在我的控制范围内)才能工作。也就是说,我不能将其取消链接并改为设置构建变量。

PS。这实际上都是在CI构建中发生的,这使得错误更具破坏性。

参考

1 个答案:

答案 0 :(得分:1)

可能你只需要patch your local formulas。在我看来,brew中的整个版本支持是一个邪恶的黑客,也是我不使用brew构建时间开发依赖的原因之一。