首页 文章

Cabal-install默认安装旧软件包版本

提问于
浏览
2

我刚刚升级到最新版本的cabal-install,即1.20 . 我不确定它是否相关,但是出于某种原因,cabal开始提取旧版本的软件包 .

在我的cabal文件中,指定了所有依赖项而没有版本号 . 所以我相信,除非存在冲突,否则cabal应该获取最新版本,对吗?

如果我在沙盒环境中运行 cabal install --only-dependencies ,cabal会提取所有类型的垃圾和旧包版本,例如mongoDB-1.2.2而不是1.4.4和scotty-0.5而不是0.7.2 . 如果我运行像 cabal install scotty 这样的特定软件包安装,那么它会获取最新版本,一切都很好 . 因此,我必须手动安装所有依赖项以获取最新版本 - 逐个 . 烦人 . 到底是怎么回事?谷歌没有给我任何打击 .

如果cabal有某种变化,它是什么?如何在沙箱中提取所有最新的依赖项 .

谢谢 .

1 回答

  • 2

    您的某些依赖项具有强制使用给定包的旧版本的上限 . 可能有帮助的一件事是重新开始 . 删除你的包存储库(linux机器上的〜/ .ghc),并保持一个规则完全在沙箱中工作 . 使用您的软件包管理器来安装您需要的全局内容,开发项目的沙箱,并且可以避免出现此问题的大部分原因 . 也就是说,如果你真的依赖于一个没有更新其上限的项目,那么你就会使用较旧的软件包,而不是向库作者提交补丁或者切换到不同的依赖项 .

相关问题