如何自定义构建自制程序包?

How do I custom build a homebrew package?

Homebrew Cookbook manual 有助于提供有关 homebrew 系统如何工作的一些线索。我已经使用 brew install phantomjs 安装了 PhantomJS,但我需要应用一些补丁。我可以看到公式已经应用了补丁:

# Qt Yosemite build fix. Upstream commit/PR:                                                                                     
# https://qt.gitorious.org/qt/qtbase/commit/70e442                                                                               
# https://github.com/ariya/phantomjs/pull/12934                                                                                  
patch do                                                                                                                         
  url "https://raw.githubusercontent.com/Homebrew/patches/480b7142c4e2ae07de6028f672695eb927a34875/phantomjs/yosemite.patch"     
  sha256 "f54bd1592185f031552d3ad5c8809ff27e8f3be4f1c05c81b59bf7dbc4a59de1"                                                      
end

'correct'修改源和重建的方法是什么?我想我可以修改源,使用tar/gz重新打包,放置它在缓存文件夹中,然后更改公式中的校验和,但这是正确的方法吗?

像已有的那样添加你的补丁:

patch do
    url "https://where.your.patch/is"
    sha256 "... its checksum ..."
end

patch do
    url "https://another.patch.url"
    sha256 "... its checksum ..."
end

确保它像现有补丁一样位于 stable do 块中。

然后运行brew install --build-from-source phantomjs。安装后,将公式编辑为原始状态,否则您的下一个 brew update 将失败。

如果您知道自己在做什么,就可以避免向每个补丁添加 sha256; Homebrew 会警告您无法验证它们,但不会中止安装。