【问题标题】:Understand homebrew and keg-only dependencies了解自制和仅小桶的依赖项
【发布时间】:2013-06-05 14:26:01
【问题描述】:

我最近开始使用自制软件,当我在我的系统上酿造某些东西时会发生什么,我有点困惑,但它酿造的依赖关系是仅限于小桶的,这意味着它们在 /usr/local 下链接。

例如,我正在安装 vips(一个图像处理库)。它的众多依赖项之一是 pixman。 Pixman 仅作为小桶安装,因为显然 Mac OSX(在本例中为 Snow Leopard)已经随附它(或它的一个版本)。

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

【问题讨论】:

    标签: homebrew


    【解决方案1】:

    对于“仅限桶装”的软件意味着它安装在 /usr/local/Cellar链接到 /usr/local/bin/usr/local/lib 等位置。这意味着依赖于其他软件必须使用特定说明对其进行编译才能使用/usr/local/Cellar 中的文件。当公式指定仅桶依赖项时,brew install 会自动完成。

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

    【讨论】:

    • 很好的解释!您可以经常查看 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
    • @Alex 就像 echristopherson 所说:它openssl 的特定版本相关(在安装期间)。看看python Brew Formula;在那里您可以看到openssl@1.1 公式的路径(brew 的前缀)用作arg,而configure 又用于configure
    猜你喜欢
    • 1970-01-01
    • 2018-05-12
    • 2018-01-23
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多