首页 > 解决方案 > Homebrew:点击创建,在安装过程中移动包文件

问题描述

我试图弄清楚如何(以及是否有可能)告诉 brew 当人 x 安装我的包时,它必须将一些文件放在一个文件夹中,而将一些文件放在其他文件夹中。例如,您通常将 /etc/ 文件夹用于配置文件:假设我有项目“项目”,例如

  • 文件1.py
  • 文件2.js
  • 文件3.blablabla
  • 配置文件.conf

我希望当有人启动brew install project文件 1、2 和 3 时将其放入默认的 brew 文件夹中,而将 configfile.conf 移动到 /etc/project/ 中。我已经看到许多软件包在安装过程中移动文件,但是 brew 的文档没有涵盖这种情况,并且在谷歌上查找它只会导致人们询问如何移动 homebrew 安装文件夹。

这是可能的还是我必须在同一个文件夹中组织整个项目?

标签: installationpackagehomebrew

解决方案


我终于找到了答案,文档中没有很好地解释它,但是在那里: Here are the docs

答案在“只是移动一些文件”部分:在你的 .rb 脚本中,你有 def install 功能。如果您查看文档,则有一个包含许多目录的表

prefix      #{HOMEBREW_PREFIX}/Cellar/#{name}/#{version}    /usr/local/Cellar/foo/0.1
opt_prefix  #{HOMEBREW_PREFIX}/opt/#{name}             /usr/local/opt/foo
bin         #{prefix}/bin                  /usr/local/Cellar/foo/0.1/bin
etc...

这些是您可以安装文件的目录。例如,我必须将我的脚本移动到bin文件夹中,并将配置文件移动到etc文件夹中,所以我写了

def install
    etc.install "config"  # move file "config" to etc directory
    bin.install "script"  # move file "script" to bin directory
end

注意: etc 和 bin 不是/etc//bin/而是在 brew 的文档中指定的。在这种情况下#{HOMEBREW_PREFIX}/etc#{prefix}/binHOMEBREW_PREFIX 在哪里/usr/local,前缀是 brew 的安装文件夹。


推荐阅读