如何使用 Homebrew 安装整个目录的文件?
How to install a whole directory of files with Homebrew?
我正在使用 Homebrew 安装脚本,这取决于与脚本位于同一目录中的资源目录。例如:
.
├── directory/
└── script.sh
如何创建一个目录,其中 script.sh
是用 Homebrew 安装的?我试过我的公式:
class Script < Formula
...
def install
bin.install "script.sh"
bin.install "directory/"
end
end
问题是 script.sh
和 directory/
都安装到 /usr/local/Cellar/script/
,但只有 script.sh
安装到 /usr/local/bin/
。
我也试过用bin.install Dir["directory/"]
替换bin.install "directory/
,但没有解决问题。
我如何做到 script.sh
可以从我的公式中看到 directory/
,它在 /usr/local/Cellar/script/directory/
中?我可以在我的公式中从 /usr/local/bin
建立符号链接吗?
这是 Homebrew 公式中的常见模式。解决方案不是在 bin/
下安装目录,因为该目录应该只包含可执行文件,而是在某个地方同时安装脚本和目录,然后在 bin/
中创建一个包装器从那个地方调用脚本。
安装 libexec
下的所有内容:
libexec.install Dir["*"]
在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
我正在使用 Homebrew 安装脚本,这取决于与脚本位于同一目录中的资源目录。例如:
.
├── directory/
└── script.sh
如何创建一个目录,其中 script.sh
是用 Homebrew 安装的?我试过我的公式:
class Script < Formula
...
def install
bin.install "script.sh"
bin.install "directory/"
end
end
问题是 script.sh
和 directory/
都安装到 /usr/local/Cellar/script/
,但只有 script.sh
安装到 /usr/local/bin/
。
我也试过用bin.install Dir["directory/"]
替换bin.install "directory/
,但没有解决问题。
我如何做到 script.sh
可以从我的公式中看到 directory/
,它在 /usr/local/Cellar/script/directory/
中?我可以在我的公式中从 /usr/local/bin
建立符号链接吗?
这是 Homebrew 公式中的常见模式。解决方案不是在 bin/
下安装目录,因为该目录应该只包含可执行文件,而是在某个地方同时安装脚本和目录,然后在 bin/
中创建一个包装器从那个地方调用脚本。
安装
libexec
下的所有内容:libexec.install Dir["*"]
在
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