wca*_*art 4 installation homebrew
我正在使用 Homebrew 安装脚本,这取决于与脚本位于同一目录中的资源目录。例如:
\n\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 directory/\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 script.sh\nRun Code Online (Sandbox Code Playgroud)\n\n如何创建一个script.sh安装 Homebrew 的目录?我尝试过我的公式:
class Script < Formula\n ...\n def install\n bin.install "script.sh"\n bin.install "directory/"\n end\nend\nRun Code Online (Sandbox Code Playgroud)\n\n问题是 和script.sh都directory/安装到/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在公式中进行符号链接吗?
这是 Homebrew 公式中的常见模式。解决方案不是将目录安装在 下bin/,因为该目录应该只包含可执行文件,而是将脚本和目录安装在某个位置,然后在其中创建一个包装器,bin/从该位置调用脚本。
安装以下所有内容libexec:
libexec.install Dir["*"]
Run Code Online (Sandbox Code Playgroud)
编写一个包装器bin:
bin.write_exec_script libexec/"script.sh"
Run Code Online (Sandbox Code Playgroud)
完整公式:
class Myformula < Formula
desc "..."
homepage "..."
url "..."
sha256 "..."
def install
libexec.install Dir["*"]
bin.write_exec_script libexec/"script.sh"
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
739 次 |
| 最近记录: |