2013-03-31 32 views
1

我有一个复杂的依赖项目,我想让其他开发人员更容易抓取它们。我有一个Capfile,Gemfile,Guardfile,ProcfileRakefile,所以我想......为什么不是Brewfile来管理复制该项目的mac开发人员的系统级程序包依赖关系?将本地公式注入brew中

我的希望是让当地的公式,这只是一个依赖的列表,像:

# Brewfile 
require 'formula' 

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

开发商签出回购首次可以只brew install developer_project,和依赖的变化,他们可以brew update developer_project

问题是,我的brew-fu不够好,无法弄清楚如何在不为其创建整个存储库的情况下识别此公式。

起初,我以为我可以尝试在某种程度上的文件路径传递:

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来做到这一点,而不是像仓库一样嘎嘎作响?否则,是否有办法像远程公式源一样成功嘎嘎响?我是否缺少一个已经存在的为项目制作酿造清单的方法?

+0

TLDR,有没有一种方法可以将本地brew程序制作成像Gemfile这样的依赖项清单,用于那些过于简单而不适用于某个完整公式库的情况? –

回答

0

看起来我不是第一个与this idea! Brewdler不支持特定的水龙头或任何东西,但它会为我工作。

0

您可以使用URL安装任意公式,但不能使用文件名。因此,如果您将该brew install /Users/me/...命令中的路径转换为file://网址,则可以在无需维护回购或点按或任何类似功能的情况下运行。

请注意,要让它自动更新内容,您需要明确地在您的公式中添加一个版本号,并在每次依赖关系发生变化时对其进行修改。

+0

这是一个非常酷的主意!我将不得不玩弄它,看看它是否有效。 –