Homebrew 离线安装方式变更


在我此前多篇博文中均提及了 Homebrew,官方自定义为「macOS 缺失的软件包的管理器」, 作为一个开源项目,同样可以在 Github 上找到它的 项目文档

前言

calibre 作为最强的电子书管理/编辑/查看软件(没有之一),一直都在狂刷版本号 [1]。一般而言,在终端输入 brew cask upgrade,等待下载、安装更新即可,但终端中软件下载速度实在感人,所以我每次更新 calibre 都是使用采用 Homebrew 的离线方式安装。简要操作步骤如下:

  1. 输入 brew cask upgrade,获取 calibre 最新安装包的下载链接(此时在默认下载位置会生成一个。incomplete 的中间文件)
  2. 通过 Aria2GUI,下载该安装包
  3. 将下载的安装包移动至 Homebrew Cask 的默认下载位置,即 /Users/ouyang/Library/Caches/Homebrew/Cask
  4. 将安装包更名,主要是在软件名与版本号之间增加一个 -
  5. 再次运行 brew cask upgrade 命令,Homebrew 在检测到该软件安装包后,会跳过下载步骤,校验文件信息是否与 Homebrew 预存的一致,如一致则执行后续安装步骤。

问题

今天我在更新 calibre 时,执行到上述操作第五步时发现还是会继续下载。于是,按照如下顺序检查此前操作

  1. 查看安装包是否忘了添加软件名与版本号之间的 -
  2. 查看文件复制是否在 /Users/ouyang/Library/Caches/Homebrew/Cask
  3. 查看文件版本号是否正确

以上检查都无误后,发现在 /Caches/Homebrew/Cask文件夹下并无 calibre 的.incomplete中间文件,于是返回上级文件夹查看 [2]。发现多了一个downloads文件夹,进入后发现了.incomplete中间文件。并且,与此前文件命名规则不同的是,在软件名之前多了一串字符,软件名与版本号之间- 仅为 1。

解决方案/备份

在找到上述问题后,将此前操作方法第 3 至 4 步进行了修改,新的离线更新方式如下:

  1. 输入 brew cask upgrade,获取 calibre 最新安装包的下载链接(此时在默认下载位置会生成一个。incomplete 的中间文件)
  2. 通过 Aria2GUI,下载该安装包
  3. 将下载的安装包移动至 Homebrew Cask 的默认下载位置,即 /Users/ouyang/Library/Caches/Homebrew/downloads
  4. 将安装包更名,与 .incomplete 文件命名规则一致,即软件名之前增加特定的字符
  5. 再次运行 brew cask upgrade 命令,Homebrew 在检测到该软件安装包后,会跳过下载步骤,校验文件信息是否与 Homebrew 预存的一致,如一致则执行后续安装步骤

按照新的更新方式操作后,成功更新 calibre 软件。

calibre 更新成功


  1. 1.几乎是每月两个 0.x 的版本号的速度在更新,比起 Chrome 与 Firefox 也毫不逊色,但因为 作者不准备支持 Python3,还是对它的前景堪忧。
  2. 2.因为 Homebrew 默认下载位置为 /Caches/Homebrew

文章作者: Oᴜʏᴀɴɢ
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Oᴜʏᴀɴɢ !
 上一篇
AppleScript 脚本两个半 AppleScript 脚本两个半
AppleScript 与我的需求AppleScript 是苹果开发的一种脚本语言,语法结构和自然语言类似,主要用来控制和运行 macOS 中应用程序。在 macOS 升级与发展的同时,也逐渐兼容 JavaScript 进行操作,实现与 A
2018-09-13
下一篇 
趁着 Tampermonkey 回归的脚本盘点 趁着 Tampermonkey 回归的脚本盘点
使用场景与需求有些东西,用了就回不去了。比如 uBlock Origin 、Telegram、Gmail 和「油猴」。同样,也因为他们过于强大,也会因为某些因素而无法使用。今天趁着 Tmapermonkey 回归 Safari 扩展中心,
2018-09-07
  目录