将本地公式注入brew中

时间:2013-03-31 17:23:57

标签: macos homebrew dependency-management

我有一个具有复杂依赖关系的项目,我想让其他开发人员更容易抓住它们。我有一个CapfileGemfileGuardfileProcfileRakefile,所以我想......为什么不是Brewfile管理克隆项目的mac开发人员的系统级包依赖关系?

我希望制作一个只需依赖列表的本地公式,例如:

# Brewfile
require 'formula'

class DeveloperProject < Formula
  depends_on 'mongodb'
  depends_on 'postgresql'
  depends_on 'solr'
  depends_on 'phantomjs'
end

首次签出repo的开发人员可能只有brew install developer_project,并且随着依赖关系发生变化,他们可以brew update developer_project

问题是,我的brew-fu不足以弄清楚如何让brew能够识别这个公式,而无需在某处创建一个完整的存储库。

起初我以为我可以尝试以某种方式传递文件路径:

brew install /Users/me/Projects/DeveloperProject/Brewfile

然后我想我可以模拟水龙头而不必托管实际的回购,以进行适当的替代配方来源管理:

mkdir -c /usr/local/Library/Taps/local-tap/Formula/
ln -s \
  /Users/me/Projects/DeveloperProject/Brewfile \
  /usr/local/Library/Taps/local-tap/Formula/developer_project.rb
brew install developer_project

然后我想我可以将它符号链接到我的公式中,虽然它会使脆弱brew update s:

ln -s \
  /Users/me/Projects/DeveloperProject/Brewfile \
  /usr/local/Library/Formula/developer_project.rb
brew install developer_project

我找不到任何方法来完成这些工作,每种方法都感觉越来越黑客。有没有办法用brew来做这个而不像存储库那样嘎嘎​​叫?否则,有没有办法成功嘎嘎像远程公式来源?我是否错过了已经存在的为项目制作brew清单的方法?

2 个答案:

答案 0 :(得分:1)

您可以使用URL安装任意公式,但不能使用文件名。因此,如果您将brew install /Users/me/...命令中的路径转换为file://网址,则可以简单地将其设置为无需维护回购或点击或其他任何内容。

请注意,为了让它自动更新内容,您需要在公式中明确地添加版本号,并在每次依赖项更改时将其更改。

答案 1 :(得分:0)

看起来我不是this idea的第一个! Brewdler不支持特定的水龙头或任何东西,但它对我有用。