【问题标题】:How to install a whole directory of files with Homebrew?如何使用 Homebrew 安装整个文件目录?
【发布时间】:2020-02-13 05:48:49
【问题描述】:

我正在使用 Homebrew 安装脚本,该脚本依赖于与脚本位于同一目录中的资源目录。例如:

.
├── directory/
└── script.sh

如何使用 Homebrew 创建一个安装了 script.sh 的目录?我试过我的公式:

class Script < Formula
  ...
  def install
    bin.install "script.sh"
    bin.install "directory/"
  end
end

问题是script.shdirectory/都安装到/usr/local/Cellar/script/,但只有script.sh安装到/usr/local/bin/

我也尝试将bin.install "directory/ 替换为bin.install Dir["directory/"],但并没有解决问题。

我怎样才能让script.sh 可以从我的公式中看到directory/,它位于/usr/local/Cellar/script/directory/ 中?我可以在我的公式中从/usr/local/bin 进行符号链接吗?

【问题讨论】:

    标签: installation homebrew


    【解决方案1】:

    这是 Homebrew 公式中的常见模式。解决方案不是在bin/ 下安装目录,因为该目录应该只包含可执行文件,而是在某个地方同时安装脚本和目录,然后在bin/ 中创建一个包装器,从那个地方。

    1. 安装libexec下的所有东西:

       libexec.install Dir["*"]
      
    2. bin中写一个包装器:

       bin.write_exec_script libexec/"script.sh"
      

    完整公式:

    class Myformula < Formula
      desc "..."
      homepage "..."
      url "..."
      sha256 "..."
      
      def install
        libexec.install Dir["*"]
        bin.write_exec_script libexec/"script.sh"
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2014-06-22
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      • 2016-05-07
      • 2017-10-22
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      相关资源
      最近更新 更多