使用自制软件安装旧版本的Pandoc(<2)

Jos*_*eim 7 homebrew pandoc

我刚刚重新安装了我的macOS.使用brew install pandoc我安装的Pandoc,它安装了v2,这导致我的一些Web应用程序的回归测试失败.

由于我在我的服务器(1.16.0.2)上运行旧版本,我想在我的计算机上安装此版本.

但遗憾的是,我似乎无法使用自制软件,因为似乎没有旧版本可用,只有最新版本?该brew search命令未显示任何版本:

$ brew search pandoc
==> Searching local taps...
pandoc ?                                                pandoc-citeproc                                         pandoc-crossref
==> Searching taps on GitHub...
==> Searching blacklisted, migrated and deleted formulae...
Run Code Online (Sandbox Code Playgroud)

我尝试了类似的东西,brew install pandoc@1.16.0.2但没有成功.

Ort*_*kni 6

选项1)使用旧公式

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

转到存储公式的本地目录:

cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
Run Code Online (Sandbox Code Playgroud)

看看pandoc的历史

git log pandoc.rb
Run Code Online (Sandbox Code Playgroud)

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

1)为了确保在正确的版本中获取所有依赖项,您必须在此提交中签出所有公式(您还可以仅签出依赖关系图).

git checkout 53d113c339
Run Code Online (Sandbox Code Playgroud)

2)公式cabal-install使用旧的自制结构删除它:

brew edit cabal-install
Run Code Online (Sandbox Code Playgroud)

并取下瓶子部分.

3)默认情况下,自制程序在安装之前进行更新,因此您必须在安装之前指定不更新:

HOMEBREW_NO_AUTO_UPDATE=1 brew install pandoc
Run Code Online (Sandbox Code Playgroud)

这将花费很长时间,因为你必须编译所有东西,最后版本的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
Run Code Online (Sandbox Code Playgroud)

选项3)建立自己的复古公式

另一种选择是为您想要的版本重写当前的pandoc公式.

结论

这些选项中的每一个都是可能的方式,但它们都不容易.没有简单的方法来安装旧版本的Pandoc和Homebrew.你应该使用像Stack这样的Haskell版本管理器.