我在沙箱中有一个应用程序。Cabal依赖没有限制,所以cabal install --only-dependencies给了我最新的包。在一段时间后,我想将我的依赖项升级到最新版本,但在此之前,我想看看哪些依赖项实际上已更改为新版本。当然,我可以手动检查所有这些内容。但我更愿意看到一个很好的列表,上面列出了需要升级的东西。
我假设cabal install --upgrade-dependencies --only-dependencies --dry-run就是这样做的。我希望它能给出比我沙箱中的包更新版本的所有包的列表。但它永远不会起作用!我的意思是,它只是说所有依赖项都是最新的,而它们显然不是最新的。我是不是做错了什么,或者遗漏了什么?
如果我完全销毁我的沙箱,重新运行cabal install --only-dependencies并比较冻结文件,那么我就可以看到哪些包被撞到了。但这是愚蠢的。那么,如何才能让cabal install --upgrade-dependencies --only-dependencies --dry-run正常工作,并打印出所有要升级的包,而不会破坏沙箱呢?如果这些选项在阴谋中不起作用,为什么不直接删除它们以避免混淆?
谢谢。
发布于 2015-05-24 14:17:37
您可以使用cabal list --installed比较"Default available version“和"Installed versions”。
不幸的是,cabal的--simple-output开关没有包含这些信息,所以要自动化它,你需要一个小的脚本。
https://stackoverflow.com/questions/30388949
复制相似问题