使用Homebrew安装旧版本的Pandoc(<2)

8
我刚重新安装了我的macOS。使用brew install pandoc安装了Pandoc,它安装的是v2版本,导致我web应用的一些回归测试失败。
由于我在服务器上运行的是旧版本(1.16.0.2),我想在我的电脑上安装这个版本。
但不幸的是,似乎我无法通过homebrew安装它,因为似乎没有可用的旧版,只有最新版?brew search命令没有显示任何版本:
$ brew search pandoc
==> Searching local taps...
pandoc ✔                                                pandoc-citeproc                                         pandoc-crossref
==> Searching taps on GitHub...
==> Searching blacklisted, migrated and deleted formulae...

我尝试过像 brew install pandoc@1.16.0.2 这样的东西,但是没有成功。

你使用的是哪个版本的macOS?也许有一个适用于你所使用版本的1.16.0.2瓶子。 - Ortomala Lokni
1个回答

7

选项1)使用旧公式

您可以使用git历史记录来获取pandoc 1.16.0.2的公式。

进入存储公式的本地目录:

cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula

看看 Pandoc 的历史

git log pandoc.rb

看起来版本1.16.0.2的最后一次提交是提交53d113c339280e6bc43325afd24333

1)为确保获取正确版本的所有依赖项,您必须在此提交处检出所有公式(也可以只检出依赖关系图)。

git checkout 53d113c339

2) 公式 cabal-install 使用了一个旧的homebrew构造,请使用以下命令将其移除:

brew edit cabal-install

并移除瓶子部分。

3) 默认情况下,Homebrew 在安装之前会进行更新,因此您需要指定在安装之前不要更新:

HOMEBREW_NO_AUTO_UPDATE=1 brew install pandoc

由于需要编译所有内容,因此需要花费很长时间,对于macOS的最新版本(Sierra和High Sierra),没有预编译好的文件。根据你的macOS版本,你可能会遇到一些编译问题...

选项2)使用旧版预编译好的文件

适用于 OS X Mavericks(10.9)、OS X Yosemite(10.10)和 OS X El Capitan(10.11)的预编译好的文件可用。你可以手动安装它们,但你也需要安装正确版本的依赖关系 (cabal-install 1.22.6.0ghc 7.10.3)。要安装旧版的预编译好的文件,请检出旧的公式,将旧的文件复制到 ~/Library/Caches/Homebrew/ 并使用以下命令进行安装:

HOMEBREW_NO_AUTO_UPDATE=1 brew install bottle_name

选项3)自己构建复古公式

另一种选择是重新编写当前的pandoc公式以获取所需版本。

结论

这些选项都是可能的方式,但没有一种是简单的。使用Homebrew安装旧版本的Pandoc没有简单的方法。您应该使用Haskell版本管理器,如Stack


我想知道如何调整这种方法来适应brew install夜间版本的Pandoc构建,而不是开启一个新线程。 - Dave Everitt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接