Homebrew 离线安装方式变更

Author Avatar
Oᴜʏᴀɴɢ 9月 09, 2018
  • 在其它设备中阅读本文章

在我此前多篇博文中均提及了 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 更新成功calibre 更新成功


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

如无特别声明,本博客遵循 CC BY-NC-SA 4.0 协议授权。
本文链接:https://imouyang.com/homebrew-chi-xian-an-zhuang-fang-shi-bian-geng/