如何添加brewcask没有的软件
如何添加brewcask没有的软件
按照brewcask的wiki上说的步骤
添加步骤:
fork homebrew-cask
进入你的系统的homebrew-cask的repository目录,mac系统默认都在:
/usr/local/Library/Taps/phinze/homebrew-cask
一定要先更新你的brewcask 的repository:
git pull
按照官方文档的做法,把你的fork过去的项目url加入到remote里去
$ github_user='huguiqi' $ cd "$(brew --repository)"/Library/Taps/caskroom/homebrew-cask $ git remote add "$github_user" "https://github.com/$github_user/homebrew-cask"
建立软件token(这一步官方文档上没写)
"$(brew --repository)/Library/Taps/caskroom/homebrew-cask/developer/bin/generate_cask_token" 'software_name'
如已经在repostory目录了,则执行如下:
developer/bin/generate_cask_token 'solftName'
如果执行报错,那么可以git pull试下
6 . 新建cask:brew cask create solftName
在这一步的时候,一直报错,后面看了报错信息,说是什么找不到这个token,在/usr/local/Library/Taps/caskroom/homebrew-cask
目录下,这就奇了怪了,明明我的repository在另外一个目录,它怎么会往这个不存在的目录里去找呢,后面找了很久,发现是我更新了brew,而brew-cask还是用的老的:phinze/homebrew-cask
,官方wiki上有这个问题的解决方案:
$ brew update; brew cleanup; brew cask cleanup
$ brew uninstall --force brew-cask; brew update
- 如果还报错,则可能是之前你的没有卸载干净,再执行:
brew untap phinze/cask; brew untap caskroom/cask; brew update
- 最后再重复第1、2步
** cask重装以后再执行一遍repository下add remote url**
执行 cask create 以后,会打开一个*.rb文件,如下:
cask 'my-new-cask' do
version ''
sha256 ''
url ''
name ''
homepage ''
license :unknown # TODO: change license and remove this comment; ':unknown' is a machine-generated placeholder
app ''
end
其中将:
– my_new_cask改为新建cask名称
– version 改成改软件最新版本,如果下方所提供的下载链接并不包含版本信息此处写成:version :latest
– sha256 下载文件的SHA-256校验值,当下方所提供的下载链接并不包含版本信息此处写成:sha256 :no_check
– url 为软件下载链接
– name 为软件名称
– homepage 为软件主页
– license 可以分为以下几大类,同时大类下面又分成 gratis commercial freemium 等小类,具体请查阅参考1。
– app 中填写url下载文件中*.app文件的相对位置
symbol | 含义 |
---|---|
:oss | 开源软件 |
:closed | 闭源软件 |
:unknown | 许可未知 |
:oss | 其他 |
测试 cask
bwcs readkit
发现有可以搜索到了,太棒了。。。。。。
安装呢,哈哈,我已经安装了,就不试了
提交到git库
git commit -a -m "readkit"
git push newRemote
在push之前我遇到一个从示遇到的问题,就是push的时候老push不上去,总是报错:
sam@samhus-MBP /u/l/L/T/c/homebrew-cask> gp huguiqi master
Counting objects: 12, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (12/12), 1.46 KiB | 0 bytes/s, done.
Total 12 (delta 8), reused 1 (delta 0)
To git@github.com:huguiqi/homebrew-cask.git
! [remote rejected] master -> master (shallow update not allowed)
error: failed to push some refs to 'git@github.com:huguiqi/homebrew-cask.git'
google了一下,发现说什么,只要添加了remote或者更改了remote,shallow 的更新不被允许,我也不知道shallow啥意思,可能是个啥标志吧,就是要将老的remote库标志为unshallow(这样老库就不会更新了),新的remote才能push,这什么鬼规则。。。
master -> master (shallow update not allowed)
那怎么样去flag老的remote为unshallow呢,就要用fetch命令了。
好吧,我就干下吧,干的时候必须带上unshallow:
git fetch --unshallow origin
ps:这个库是我从主库fork下来的,只是提交到我自己的公有库上,而对于brew-cask的主库而言,我是它无数个分支中的一个分支,别人暂时通过brew cask search readkit
是搜不到的,直到主库维护者将无数分支merge到主库,用户更新了brew-cask 的index,那就可以搜得到了