背景
在 mac osx 下, 大部分的软件都是使用 homebrew 进行管理的, 可以方便的进行软件的安装,更新,删除等等, 大部分情况下 homebrew 的仓库只会存在一份最新的软件版本, 有时可能也会同时存在多个版本, 比如 python 就会有多个.
在有些情况下我们可能需要安装某些软件的历史版本, 接下来提供几种方式实现.
Homebrew 术语说明
在安装历史版本介绍之前, 先简单介绍一下 Homebrew 的一些名词术语及结构, 以便大家能更好的理解, Homebrew 中文可以翻译成 “家酿”, 所以这个软件是对酒相关的一个抽象. 主要的结构包括:
-
Formula ( 配方 )
-
主要使用 ruby 文件描述的软件信息, 包含软件基本信息, 依赖, 编译等等. 如
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/foo.rb Tap ( 酒吧 )
-
所有 Formula 或命令的 Git 仓库, 比如:
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core对应https://github.com/Homebrew/homebrew-core仓库.
我们平时使用brew update就是使用同步 Tap 对应分支的更新. 使用brew install formula也是从所有的 tap 中查找formula 安装. Bottle ( 酒瓶 )
-
基于对应操作系统已编译好的二进制包, 可以直接使用, 在 rb 文件中会描述各个版本的二进制. 使用二进制包可以省去自己编译. 如:
qt-4.8.4.catalina.bottle.tar.gz Cask ( 木酒桶 )
-
用于描述和安装 macOs 原生 app 软件, 使用
brew cask安装就和使用 dmg 安装到 Applications 一样的效果. Keg ( 小桶 )
-
描述的是一个已安装的软件版本路径, 如:
/usr/local/Cellar/foo/0.1 Cellar ( 酒窖 )
-
所有已安装软件的存储仓库路径, 如:
/usr/local/Cellar

本文介绍了在MacOS上使用Homebrew管理软件时如何安装历史版本。当软件在Homebrew仓库中存在多版本时,可以直接通过指定版本进行安装;若无多版本,可以从git仓库获取历史formula并在本地安装,可能需要手动修改rb文件以解决依赖问题。
1510

被折叠的 条评论
为什么被折叠?



