Homebrew 基本了解
Homebrew是macOS(或者 linux)缺失的软件包管理器。常用安装命令行工具(也可安装 GUI 程序),非常便利。
Homebrew 支持多种形式的软件包管理,常见的有 Formula 和 Cask 两种。Formula 一般用来源码编译安装开源的命令行工具(mysql 、 tomcat 等),Cask 一般用来安装支持UI的应用程序(比如 微信 qq 某些插件)
创建一个 Cask
注意,如果你的软件在 github star小于75 一般会被拒绝合并到主分支。
在保证自己具备正确的 hombre cask 环境之后。
以下以 swiftjsonmodeler
为示例
创建一个 Cask
brew cask create swiftjsonmodeler
就会为你创建一个 .rb 文件,如下
cask "swiftjsonmodeler" do
version ""
sha256 ""
url "https://"
name ""
desc ""
homepage ""
app ""
end
你可以使用 vim或者其他编辑工具编辑。
属性 | 简介 |
---|---|
version | 应用版本号,可以使用 :latest (但是基于 github release 的不知道怎么弄) |
sha256 | 下载文件 sha256加密密钥(用于文件验证)。可以使用 :no_check 来避免添加(但是如果你合并主仓库时必须有) |
url | 应用下载地址 |
appcast | 注意这个需要手动添加,好像大部分时候都需要,介绍 |
app | 应用名字,注意是解压后的。也可以更改名字 |
根据项目配置后
cask "swiftjsonmodeler" do
version "2.0.0"
sha256 :no_check
url "https://github.com/CodeOcenS/SwiftJSONModeler/releases/download/v#{version}/SwiftJSONModeler.For.Xcode.app.zip"
appcast "https://github.com/CodeOcenS/SwiftJSONModeler/releases.atom"
name "SwiftJSONModeler"
desc "json 转 swift model 插件"
homepage "https://github.com/CodeOcenS/SwiftJSONModeler"
app "SwiftJSONModeler For Xcode.app"
end
验证配置
验证命令如下:
brew cask audit swiftjsonmodeler
如果看见 pass
就代表文件基本可以,如果失败,则可根据提示修正。
测试你的 Cask
在提交你的 cask 之前,你应该自己测试下,安装、删除、下载是否成功。
以下命令可以避免 brew 远程更新
export HOMEBREW_NO_AUTO_UPDATE=1
安装
brew cask install swiftjsonmodeler
卸载
brew cask uninstall swiftjsonmodeler
下载验证
brew cask audit swiftjsonmodeler --download
你还应该测试 style
brew cask style --fix my-new-cask
合并主分支
首先在自己的 github中 fork 一份主分支Homebrew-cask githhub 然后本地 checkout 一份自己的分支,添加新建的 cask, 将自己分支远程修改为 fork 地址,之后推动本地分支。 在 github 上提交 pull request 等待成员管理回复。
问题处理
- 未添加 appcast
audit for swiftjsonmodeler: warning
- Download uses GitHub releases, please add an appcast. See https://github.com/Homebrew/homebrew-cask/blob/HEAD/doc/cask_language_reference/stanzas/appcast.md
Error: audit failed for casks: swiftjsonmodeler
由于我是采用 realse发布, 所有需要配置 appcast,可以参考它的链接中提到的 rb 文件来配置。
- url 地址错误
Error: Cask 'swiftjsonmodeler' definition is invalid: 'url' stanza failed with: bad URI(is not URI?): "https://github.com/CodeOcenS/SwiftJSONModeler/releases/download/v{version}/SwiftJSONModeler.For.Xcode.app.zip"
修正后的 url
https://github.com/CodeOcenS/SwiftJSONModeler/releases/download/v#{version}/SwiftJSONModeler.For.Xcode.app.zip
- 测试安装找不到应用
It seems the App source '/usr/local/Caskroom/swiftjsonmodeler/2.0.0/SwiftJSONModeler.app' is not there.
在进行基本配置后,验证也通过。但是安装总是提示我的应用找不到。
经过多次测试,发现是 app 名称填写错误。 这个名称需要和你下载路径文件解压后的名称一致,否则找不到。
参考
Homebrew github 仓库 22.8k Star
Homebrew-cask 贡献一个 Cask 文档 包含添加、更新、设置一个 Cask
Homebrew creat 一个 cask rb文件示例 基于应用包发布在 github 上的如何配置 rb 文件(需要增加 appcast 部分)
Mac OS 下用 Homebrew 安装自己写的开源工具 介绍命令式应用在 home brew发布