有没有办法使用 Cabal 使 Haskell 包保持最新?
Is there a way to use Cabal to keep Haskell packages up-to-date?
我对 Cabal 的工作方式感到困惑。我已经习惯了包管理器,这些包管理器的核心功能是能够轻松更新所有已更改的包,或者至少可以在我的系统上获取具有可用更新的包列表。但是 Cabal 似乎缺少这个功能。我错过了什么吗?
有没有办法:
- 自动或轻松更新所有过时的软件包;或者,失败的话,
- 获取我的系统上安装的有可用更新的软件包列表?
cabal 中缺少许多标准包管理功能。这是其中之一,而(传递性)删除包是另一个。党的路线是 cabal 旨在成为一个自动构建工具,仅此而已;尽管随着岁月的流逝,那条线变得越来越细。
如果您知道要升级哪些包,您可以;通常 cabal update
和 cabal install those packages
将从 Hackage 获取最新的包列表,并尝试找到一个安装计划来安装所请求包的最新版本。您可以使用 cabal install --dry-run those packages
请求安装计划而不执行它;如果它看起来不像你想要的版本,你可以添加约束,如
cabal install those packages --constraint 'those>=9000'
我对 Cabal 的工作方式感到困惑。我已经习惯了包管理器,这些包管理器的核心功能是能够轻松更新所有已更改的包,或者至少可以在我的系统上获取具有可用更新的包列表。但是 Cabal 似乎缺少这个功能。我错过了什么吗?
有没有办法:
- 自动或轻松更新所有过时的软件包;或者,失败的话,
- 获取我的系统上安装的有可用更新的软件包列表?
cabal 中缺少许多标准包管理功能。这是其中之一,而(传递性)删除包是另一个。党的路线是 cabal 旨在成为一个自动构建工具,仅此而已;尽管随着岁月的流逝,那条线变得越来越细。
如果您知道要升级哪些包,您可以;通常 cabal update
和 cabal install those packages
将从 Hackage 获取最新的包列表,并尝试找到一个安装计划来安装所请求包的最新版本。您可以使用 cabal install --dry-run those packages
请求安装计划而不执行它;如果它看起来不像你想要的版本,你可以添加约束,如
cabal install those packages --constraint 'those>=9000'