如何自定义构建自制软件包?

时间:2015-10-14 07:51:45

标签: phantomjs homebrew

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

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

1 个答案:

答案 0 :(得分:1)

添加您已经存在的补丁:

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会警告你它无法验证它们,但不会中止安装。