cabal缺少了许多标准的包管理功能。这是其中之一,(可传递的)删除包是另一个。党的路线是,cabal旨在成为一个自动构建工具,仅此而已;尽管随着时间的推移,这条线变得越来越薄。 如果你知道你想要升级哪些软件包,你可以升级;通常cabal update和cabal install those packages会从Hackage获取最新的软件包列表,并试图找到一个安装计划来安装所请求软件包的最新版本。你可以在不执行cabal install --dry-run those packages的情况下请求安装计划;如果它看起来不像是选择了你想要的版本,你可以添加限制,如
cabal install those packages --constraint 'those>=9000'
1条答案
按热度按时间y3bcpkx11#
**警告:**由于某些原因,这个问题似乎在2023年再次获得一些流量。请记住,这个答案是在阴谋集团的nix风格构建设备存在之前写的。这个问题的现代答案是这个问题不应该存在;你仍然可以安装可执行文件,但是安装库不再是首选的使用模式,所以升级所有已安装的库也消失了。相反,每个包都构建在Haskell世界中自己独立的小空间中,其中库依赖性独立于当前安装的内容来解决。
cabal缺少了许多标准的包管理功能。这是其中之一,(可传递的)删除包是另一个。党的路线是,cabal旨在成为一个自动构建工具,仅此而已;尽管随着时间的推移,这条线变得越来越薄。
如果你知道你想要升级哪些软件包,你可以升级;通常
cabal update
和cabal install those packages
会从Hackage获取最新的软件包列表,并试图找到一个安装计划来安装所请求软件包的最新版本。你可以在不执行cabal install --dry-run those packages
的情况下请求安装计划;如果它看起来不像是选择了你想要的版本,你可以添加限制,如字符串