有没有一种方法可以使用Cabal来保持Haskell软件包的最新状态?

62lalag4  于 2023-11-18  发布在  其他
关注(0)|答案(1)|浏览(98)

我对Cabal的工作方式感到困惑。我习惯了软件包管理器的核心功能之一是能够轻松地更新所有已更改的软件包,或者至少获得系统上有可用更新的软件包列表。但Cabal似乎缺乏此功能。我错过了什么吗?
是否有办法:
1.自动或轻松地更新所有过期的软件包;或者,如果做不到这一点,
1.获取我的系统上安装的有可用更新的软件包列表?

y3bcpkx1

y3bcpkx11#

**警告:**由于某些原因,这个问题似乎在2023年再次获得一些流量。请记住,这个答案是在阴谋集团的nix风格构建设备存在之前写的。这个问题的现代答案是这个问题不应该存在;你仍然可以安装可执行文件,但是安装库不再是首选的使用模式,所以升级所有已安装的库也消失了。相反,每个包都构建在Haskell世界中自己独立的小空间中,其中库依赖性独立于当前安装的内容来解决。

cabal缺少了许多标准的包管理功能。这是其中之一,(可传递的)删除包是另一个。党的路线是,cabal旨在成为一个自动构建工具,仅此而已;尽管随着时间的推移,这条线变得越来越薄。
如果你知道你想要升级哪些软件包,你可以升级;通常cabal updatecabal install those packages会从Hackage获取最新的软件包列表,并试图找到一个安装计划来安装所请求软件包的最新版本。你可以在不执行cabal install --dry-run those packages的情况下请求安装计划;如果它看起来不像是选择了你想要的版本,你可以添加限制,如

cabal install those packages --constraint 'those>=9000'

字符串

相关问题