如何自定义构建自制程序包?
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 会警告您无法验证它们,但不会中止安装。
此 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 会警告您无法验证它们,但不会中止安装。