【问题标题】:x11 dependency in a homebrew formula?自制公式中的 x11 依赖项?
【发布时间】:2018-05-02 20:32:42
【问题描述】:

在自制公式中指定 x11 依赖项的正确方法是什么? 默认的 superenv 从其参数中删除 /opt/X11/lib。

我正在为一个包编写一个公式,我可以使用通常的配置、make install 在自制程序之外构建它。

所以我有这个安装功能:

  def install
        ENV["PKG_CONFIG_PATH"] = "/usr/local/opt/qt/lib/pkgconfig"
        # ENV["PATH"] = "/usr/local/bin:/usr/bin:/bin" <--- work around
        Dir.chdir("codebase")
        system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}"
        system "make install"    
  end

得到回显的链接阶段显示

/bin/sh ../../../../libtool  --tag=CXX   --mode=link clang++ .... -I /opt/X11/include ..... -L/opt/X11/lib ...

但是链接失败了

 ld: library not found for -lX11

如果我将它添加到类定义的顶部,则构建成功 env :std

或者,我可以在构建函数中设置 PATH 并且构建成功。

这是有道理的,因为在 brew install 的上下文中,/usr/local/Homebrew/Library/Homebrew/shims/super 出现在 PATH 的开头,并且该目录有一个 clang++其中包括剥离 /opt/X11 组件。

我认为这种行为是有充分理由的,并且很好奇指定 X11 库的最佳方法是什么。

【问题讨论】:

  • 在公式gv.rb 中使用depends_on :x11 怎么样?
  • 小写'x'是票。我正在尝试depends_on :X11

标签: homebrew x11


【解决方案1】:

了解如何编写 Hombrew 公式的最简单方法是查看现有公式。对于您的情况,您可以查看MuPDF 一个轻量级的 PDF 和 XPS 查看器,具体取决于 X11。在其公式中,您将找到解决方案:

depends_on :x11

【讨论】:

  • 看起来这样不行;因为 brew 删除了 x11 公式,所以没有用...有什么建议吗?
  • 我已经用 MuPDF 更新了我的答案。这个公式不依赖于x11 公式,而是依赖于:x11,这是一种特殊的依赖关系。见depends_on.rb
  • 好像:x11被删除了:github.com/Homebrew/brew/commit/…。现在应该使用"libx11"
猜你喜欢
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 2019-12-19
  • 1970-01-01
  • 2021-03-18
  • 2023-03-13
相关资源
最近更新 更多