了解自制和仅桶依赖


119

我最近开始使用自制软件,当我将某些东西酿造到系统上时,我有些困惑,但是酿造的依赖项仅是桶装的,这意味着它们链接在下/usr/local

例如,我要安装vips(图像处理库)。pixman是其众多依赖项之一。Pixman只能以桶装方式安装,因为显然Mac OSX(在这种情况下为Snow Leopard)已随附(或版本)。

这是否意味着vips将使用pixman的系统版本?如果是这样,是否存在与使用系统版本而不是依赖版本有关的潜在版本控制问题(假设它们不同)?

Answers:


196

对于软件是“桶只”意味着它是安装在/usr/local/Cellar,但没有挂入像的地方/usr/local/bin/usr/local/lib等等。这取决于它必须与具体的指示使用中的文件进行编译工具等软件/usr/local/Cellarbrew install当公式指定仅桶依赖项时,将自动完成此操作。

指定仅桶依赖项的公式可确保不使用等效的系统库。您安装的vips与中的特定版本pixman链接/usr/local/Cellar/pixman/<version>,因此不受系统版本的pixman或您可能安装的任何其他Homebrew pixman版本的影响。


9
很好的解释!您通常可以与otool -L /usr/local/Cellar/vips/???/lib/*.dylib进行检查,以查看其链接的其他库。
塞缪尔·约翰

我有一个由homebrew安装的openssl 1.0.2s,我的mac os具有LibreSSL 2.6.5,当我这样做时openssl version,它始终显示os(LibreSSL)中的一个,但是当我以交互模式运行python时,它实际上是在使用openssl。您能帮我了解python如何获取正确的openssl吗?@echristopherson
亚历克斯

1
@Alex像echristopherson说:这是针对特定版本的链接openssl(安装期间)。看看pythonBrew配方 ; 在那里,您可以看到openssl@1.1公式的路径(brew的前缀)用作arg,而该路径又用于configure
einjohn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.