卸载python@3.9包时,Homebrew抱怨cairo包依赖于它。这不太可能是真的:
brew uses python@3.9列出几个包,但没有列出cairo,
brew deps --tree cairo显示一棵没有任何python@.*的树。另一方面,
brew uses --installed python@3.9列出cairo包,并且像brew missing和brew doctor这样的命令会创建一个关于缺少的依赖项python@3.9的警告。
我不知道cairo包(见其公式这里)在某种程度上是否依赖python3.9,但我想它不是,而且行为很奇怪。怎么回事?怎么才能修好?
发布于 2022-08-15 12:49:58
我想我已经找到了是什么导致了问题,它是由评论在Homebrew的Github存储库中的一个老问题上激发出来的:
brew uses --installed使用您安装的公式中的依赖项解析信息,而仅brew uses不使用。
实际上,虽然/opt/homebrew/Cellar/cairo/1.16.0_5/INSTALL_RECEIPT.json不包含python@3.9的依赖项,但已安装的包是这样的:在我的系统中,文件公式有一个键runtime_dependencies,其中包含这个元素:
{
"full_name": "python@3.9",
"version": "3.9.9",
"declared_directly": false
}在进一步的评论中,开发人员解释:
当从源构建时,有些东西会机会主义地获取依赖,即它们与事物链接,而不是我们试图让它们这样做。另一件事是,如果你已经用一个特定的,非默认的选项构建了一个公式。现在,我们将这些链接存储在公式本身中,并将其用于某些命令,这样您就可以得到对您的系统正确的结果(也就是说,
brew uses --installed不会错过如果卸载就会中断的结果)。
这可能不是一个完整的解释(我很肯定我安装了一个二进制的“瓶子”,没有任何非标准选项),但它确实暗示了问题可能出现的一般领域。
接下来要了解的是如何解决问题。我不知道是否有正式的解决办法,但选择似乎是
我选择了1.看来(到目前为止)起作用了。
https://stackoverflow.com/questions/73350588
复制相似问题