homebrew

一、homebrew库的下载、更新

Homebrew 的安装见 终端常用命令

【推荐查看】:

1、homebrew库的下载、更新

1.1、库的下载

创建以 homebrew-开头的工程,如https://github.com/dvlpCI/homebrew-tools

这样执行 brew tap 的时候,就可以只输入brew tap dvlpCI/tools,其会自动映射到dvlpCI/homebrew-tools

image-20230415222441966

如截图,你的远程库索引就会放到本地的以下路径

/usr/local/Homebrew/Library/Taps/dvlpci/homebrew-tools

image-20230415230921079

1.2、库的更新

常见问题(答案见底部常见问题):

1、brew upgrade xxx 更新不到网络上已发布的最新版本的原因

2、不通过 brew update ,如何知道远程有没有新版本,并更新?

使用以下命令更新

1
2
3
brew update → 更新本地的软件包索引(知道有哪些新版本)

brew upgrade tools → 根据本地索引,升级到索引中的最新版本

更新后

image-20230416215241520

2、homebrew库中的命令

2.1、brew install

①、brew install的使用

brew install可安装上述 homebrew-tool中的子库

如可执行 brew install brew 也可以 brew helloworld

②、brew install 安装到目录

brew install软件会安装在/usr/local/Cellar/bjf/(可通过 brew info bjf 查看)下

image-20230416190602315

执行结果如下:

如果想要有如下lib/src,则需要在rb文件中

1
2
3
4
5
6
def install
# Install script to bin
# bin.install "helloworld.sh"
bin.install "bjf"
lib.install Dir["*"] # 记得添加lib目录,并将源码存放于lib里的src下
end

image-20230416190923562

目录/usr/local/Cellar/bjf/0.0.3/lib/src/

2.2、brew uninstall

验证方式,你brew uninstall的时候也会提示

下载下来的文件存放位置:

/Users/lichaoqian/Library/Caches/Homebrew

2.3、brew info

1
brew info qbase

rb文件介绍

1、xxx.rb名字规范

1、文件名:

建议文件名都是小写;如果有多个词需连接,建议用-

2、文件内容

文件内容中的类名,必须和文件名一致,且第一个字母大小,其余都是小写。否则会出现如下错误。

image-20230416034029544

库中的内容

存放rb文件

二、brew库的开发

详见:https://github.com/dvlproad/AI-qskills.git 中的 《script-to-qbase/SKILL.md》里的 "完整 Homebrew Tap 创建流程"

三、brew库的检查更新

1、brew upgrade xxx 更新不到网络上已发布的最新版本的原因

1
2
3
brew update → 更新本地的软件包索引(知道有哪些新版本)

brew upgrade xxx → 根据本地索引,升级到索引中的最新版本

**如果不执行 brew update**:

  • 你本地的软件包列表是上次 update 时的快照
  • 即使作者昨天发布了新版本,你的电脑根本不知道它的存在
  • 执行 brew upgrade qbase 只会比对本地旧列表,提示”已是最新”

正确操作流程:

方法1:通过 brew update , 如下:

1
2
3
4
5
# 1. 刷新索引(知道有哪些新版本)
brew update

# 2. 升级指定包(按刷新后的最新版本升级)
brew upgrade qbase

方法2:不通过 brew update ,见下文

2、不通过 brew update ,如何知道远程有没有新版本,并更新?

2.1、查询

查看你github上仓库的 qbase.rb 文件中的版本号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 情况一:
# 如果rb文件里有:
version "0.8.0"
# 则命令可以为:
curl -s https://raw.githubusercontent.com/dvlpci/homebrew-qbase/main/qbase.rb | grep -E '^[[:space:]]*version' | head -1
# 输出示例:
version "0.8.0"


# 情况二:
# 如果rb文件里是:
url "https://github.com/dvlpCI/script-qbase/archive/0.8.0.tar.gz"
# 则命令为:
curl -s https://raw.githubusercontent.com/dvlpci/homebrew-qbase/main/qbase.rb | grep 'url' | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'
# 输出示例:
0.8.0

####2. 2、更新

1
2
# 只更新这一个 tap 而不更新其他。这样比 brew update(更新所有 tap)快很多。
cd "$(brew --repository)/Library/Taps/dvlpci/homebrew-qbase" && git pull && brew upgrade qbase

附录

附录一、安装和更新命令的更多介绍

1.Tap包

1.1 Tap包的安装

1
2
# 添加 dvlpCI/qbase 这个 Tap 包
brew tap dvlpCI/qbase

1.2 Tap包的更新

方法一:brew update(更新所有 tap)

1
2
# 1. 刷新所有 tap 索引(知道有哪些新版本)
brew update

方法二:git pull (只更新这一个 tap)

1
2
# 只更新这一个 tap 而不更新其他。这样比 brew update(更新所有 tap)快很多。
cd "$(brew --repository)/Library/Taps/dvlpci/homebrew-qbase" && git pull

2.Tap 包里指定 .rb 软件

2.1 Tap 包里指定 .rb 软件的安装

方法一:如果是执行 brew tap dvlpCI/qbase ,添加 Tap 后,可以简化命令(省略 dvlpCI/qbase/ 前缀)

1
brew install qbase

方法二:如果没有添加 Tap,需要用完整路径

1
brew install dvlpCI/qbase/qbase

2.2 Tap 包里指定 .rb 软件的更新

1
2
# 2. 升级指定包(按刷新后的最新版本升级)
brew upgrade qbase

3. 安装和更新小结

3.1、安装

1
2
3
4
5
6
7
# 先添加 qbase.rb 所在的 Tap 包(dvlpCI/qbase)
brew tap dvlpCI/qbase

# 添加 Tap 后,可以简化命令(省略 dvlpCI/qbase/ 前缀)
brew install qbase

brew install dvlpCI/qbase/qbase

3.2、更新

1
2
3
4
5
6
7
8
# 步骤1. 刷新索引(知道有哪些新版本)
# 方法一:通过 brew update,刷新所有 tap 的索引
brew update
# 方法二:不通过 brew update,只更新这一个 tap 而不更新其他。这样比 brew update(更新所有 tap)快很多。
cd "$(brew --repository)/Library/Taps/dvlpci/homebrew-qbase" && git pull

# 步骤2. 升级指定包(按刷新后的最新版本升级)
brew upgrade qbase

4、使用示例:homebrew-xxx 下多 .rb 包的安装和更新

背景:dvlpCI 的 homebrew-qbase 下有两个 .rb包,分别为 qbase.rbqhelloworld.rb

问:现在我更新了 qhelloworld.rb ,那我怎么使用最新的 qhelloworld ?

答:以安装或更新 qhelloworld 为例:

  • 步骤1:安装或更新 Tap 包(不管是要安装还是更新 qhelloworld ,都要执行)

若未安装 Tap 包,安装方法如下:

1
2
# 先添加 qhelloworld.rb 所在的 Tap 包(dvlpCI/qbase)
brew tap dvlpCI/qbase

若已安装,则更新 Tap 包。更新方法如下:

1
2
3
4
5
# 方法一:通过 brew update, 刷新所有 tap 索引(知道有哪些新版本)
brew update

# 方法二:通过 git pull, 只更新这一个 tap 而不更新其他。这样比 brew update(更新所有 tap)快很多。
cd "$(brew --repository)/Library/Taps/dvlpci/homebrew-qbase" && git pull
  • 步骤2:进行 qhelloworld 的安装或更新

如果是安装:

1
2
3
4
# 方法一:添加 Tap 后,可以简化命令(省略 dvlpCI/qbase/ 前缀)
brew install qhelloworld
# 方法二:如果没有添加 Tap,需要用完整路径
brew install dvlpCI/qbase/qhelloworld

如果是更新:把上述安装中的 brew install 改为 brew upgrade 即可。