在我此前多篇博文中均提及了 Homebrew,官方自定义为「macOS 缺失的软件包的管理器」, 作为一个开源项目,同样可以在 Github 上找到它的 项目文档。
前言
calibre 作为最强的电子书管理/编辑/查看软件(没有之一),一直都在狂刷版本号 [1]。一般而言,在终端输入 brew cask upgrade
,等待下载、安装更新即可,但终端中软件下载速度实在感人,所以我每次更新 calibre 都是使用采用 Homebrew 的离线方式安装。简要操作步骤如下:
- 输入
brew cask upgrade
,获取 calibre 最新安装包的下载链接(此时在默认下载位置会生成一个。incomplete 的中间文件) - 通过 Aria2GUI,下载该安装包
- 将下载的安装包移动至 Homebrew Cask 的默认下载位置,即
/Users/ouyang/Library/Caches/Homebrew/Cask
- 将安装包更名,主要是在软件名与版本号之间增加一个
-
- 再次运行
brew cask upgrade
命令,Homebrew 在检测到该软件安装包后,会跳过下载步骤,校验文件信息是否与 Homebrew 预存的一致,如一致则执行后续安装步骤。
问题
今天我在更新 calibre 时,执行到上述操作第五步时发现还是会继续下载。于是,按照如下顺序检查此前操作
- 查看安装包是否忘了添加软件名与版本号之间的
-
- 查看文件复制是否在
/Users/ouyang/Library/Caches/Homebrew/Cask
- 查看文件版本号是否正确
以上检查都无误后,发现在 /Caches/Homebrew/Cask
文件夹下并无 calibre 的.incomplete
中间文件,于是返回上级文件夹查看 [2]。发现多了一个downloads
文件夹,进入后发现了.incomplete
中间文件。并且,与此前文件命名规则不同的是,在软件名之前多了一串字符,软件名与版本号之间-
仅为 1。
解决方案/备份
在找到上述问题后,将此前操作方法第 3 至 4 步进行了修改,新的离线更新方式如下:
- 输入
brew cask upgrade
,获取 calibre 最新安装包的下载链接(此时在默认下载位置会生成一个。incomplete 的中间文件) - 通过 Aria2GUI,下载该安装包
- 将下载的安装包移动至 Homebrew Cask 的默认下载位置,即
/Users/ouyang/Library/Caches/Homebrew/downloads
- 将安装包更名,与
.incomplete
文件命名规则一致,即软件名之前增加特定的字符 - 再次运行
brew cask upgrade
命令,Homebrew 在检测到该软件安装包后,会跳过下载步骤,校验文件信息是否与 Homebrew 预存的一致,如一致则执行后续安装步骤
按照新的更新方式操作后,成功更新 calibre 软件。
- 1.几乎是每月两个 0.x 的版本号的速度在更新,比起 Chrome 与 Firefox 也毫不逊色,但因为 作者不准备支持 Python3,还是对它的前景堪忧。 ↩
- 2.因为 Homebrew 默认下载位置为
/Caches/Homebrew
。 ↩