文章目录
  1. 1. 如何添加brewcask没有的软件
    1. 1.1. 添加步骤:
    2. 1.2. 测试 cask
    3. 1.3. 提交到git库

如何添加brewcask没有的软件

按照brewcask的wiki上说的步骤

添加步骤:

  1. fork homebrew-cask

  2. 进入你的系统的homebrew-cask的repository目录,mac系统默认都在:/usr/local/Library/Taps/phinze/homebrew-cask

  3. 一定要先更新你的brewcask 的repository:git pull

  4. 按照官方文档的做法,把你的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"
    
  5. 建立软件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上有这个问题的解决方案

  1. $ brew update; brew cleanup; brew cask cleanup
  2. $ brew uninstall --force brew-cask; brew update
  3. 如果还报错,则可能是之前你的没有卸载干净,再执行:brew untap phinze/cask; brew untap caskroom/cask; brew update
  4. 最后再重复第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,那就可以搜得到了

文章目录
  1. 1. 如何添加brewcask没有的软件
    1. 1.1. 添加步骤:
    2. 1.2. 测试 cask
    3. 1.3. 提交到git库