Cabal - 如何安装特定版本的包

22

例如,我需要一个软件包的次要版本,比如persistent-postgresql..或hdbc-mysql或其他类似的软件包。

如果我运行

cabal install persistent-postgresql
它将安装persistent-postgresql 1.3版本,然后我会收到错误信息“至少缺少以下依赖项:persistent-postgresql >= 1.2 && < 1.3”。 这就是为什么我想安装该软件的早期版本以使其正常工作。或者也许有其他解决方案? 谢谢!

对于这样的问题,您可以从cabal --help或更具体地说是cabal install --help开始查看。在这种情况下,您甚至不必浏览所有选项,因为结尾处的简短“示例”部分显示了如何安装特定版本。 - raymonad
它可能曾经为此提供了示例,但现在不再是这样:没有关于--constraint选项的示例,并且其格式并不明显。 - Arpad Horvath -- Слава Україні
1个回答

26

你可能需要尝试通过cabal安装实际依赖于persistent-postgresql的软件包,这样cabal会自动选择正确的版本。

但是如果你确实需要这样做,一个简单的方法是:

cabal install persistent-postgresql-1.2.1.3

或者更加复杂的:

cabal install persistent-postgresql --constraint 'persistent-postgresql < 1.3'

在这里,您只需不断指定您想要比特定版本早的内容,因为事情无法正常工作而不需要知道确切的下一个版本。如果需要,您还可以对其他软件包进行约束。


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