Cabal
此 Cabal Git 仓库包含以下主要软件包:
- Cabal:Cabal 库软件包(许可证)
- Cabal-hooks:为 Cabal
Hooks构建类型提供 API 的库(许可证) - Cabal-syntax:
.cabal文件格式库(许可证) - cabal-install:包含
cabal工具的软件包(许可证) - cabal-install-solver:包含
cabal工具的求解器组件的软件包(许可证)
规范的上游仓库位于 https://github.com/haskell/cabal。
Cabal 项目的提案
提案流程 是开发者获得对 Cabal 生态系统进行较大更改所需共识的机制。
- 它是轻量级的,在 cabal-proposals 仓库中打开并讨论 PR,并设有固定的讨论期。
- 它由开发者主导,最终决定由 Cabal 开发者会议上的开发者做出。
- 它是灵活的,没有正式的投票程序,决定通过粗略共识做出。
获取 cabal-install 二进制文件的方式
-
GHCup(推荐):使用其网站上的说明 获取 GHCup 并运行:
ghcup install --set cabal latest -
从官方网站下载: 适用于您平台的
cabal-install二进制下载应包含cabal可执行文件。
预览版本
获取未发布的 cabal-install 版本: 让您有机会试用尚未发布的功能。
目前,我们仅提供适用于 x86_64 平台的二进制文件。
-
从
master分支尖端构建的 GitHub 预览版本: 从 GitHub 下载 或使用此 GHCup 命令进行安装:ghcup install cabal -u https://github.com/haskell/cabal/releases/download/cabal-head/cabal-head-Linux-x86_64.tar.gz head
根据情况将 "Linux" 替换为 "Windows" 或 "macOS"。
默认的 Linux 构建动态链接到 zlib、gmp 和 glibc。
您需要安装这些库的相应版本才能使用它。
或者,也提供了一个静态链接的 "Linux-static" 二进制文件。
如果由于过时的 Cabal 库导致构建失败,您可能需要在 cabal.project 文件中添加以下内容:
```
allow-newer:
*:Cabal,
*:Cabal-syntax
source-repository-package
type: git
location: https://github.com/haskell/cabal.git
subdir: Cabal Cabal-syntax
```
2. 从 pull request 构建的更前沿的二进制文件始终可用,
可在 GitHub 上的 Validate 工作流页面底部找到,
或从用于静态链接 Linux 构建的 build-alpine 工作流中获取。
日常使用 cabal-install 的构建方式
-
使用 cabal-install: 如果你已有
cabal-install的现有版本,请运行:cabal install cabal-install
以获取 cabal-install 的最新版本。(您可能希望先执行 cabal update。)
-
从 Git: 同样,如果已存在
cabal-install的某个版本, 您可以从 Git 仓库安装最新版本。克隆该 Git 仓库,进入其根目录,并运行:cabal install --project-file=cabal.release.project cabal-install -
自举: 如果你没有现成的
cabal-install版本, 请查看bootstrap目录。
学习如何使用 cabal 并获取支持
cabal 附带了一份详尽的 用户手册。
如果你是 cabal 的新手并希望快速学习基础知识,请查阅
使用 Haskell 和 Cabal 入门。
有问题?请在 Haskell Matrix (在线聊天)或 Haskell Discourse 中提问。
支持窗口
我们对 GHC 的支持窗口为三年(参考),
适用于 Cabal 库和 cabal-install。 即:
- Cabal 库必须能够开箱即用地针对 GHC 附带的 引导库进行构建,适用于自 Cabal 库发布日期起过去三年内发布的任何 GHC 版本。
cabal-install应能够使用bootstrap/bootstrap.py脚本进行构建,适用于自cabal-install发布日期起过去三年内发布的任何 GHC 版本。cabal-install应能够驱动自cabal-install发布日期起过去三年内发布的任何 GHC 主版本的最新次版本。 在此上下文中,“驱动”意味着cabal-install将与用于构建该包的 Cabal 库(通常是随 ghc 版本附带的那个,但并非总是如此)协同工作。
自升级到最新版本(即 cabal install cabal-install)
必须与过去三年内发布的所有 cabal-install 版本兼容。
Cabal 维护者会尝试以最小努力的方式支持三年前的 GHC 版本。
用于开发和对 cabal 做出贡献的构建
参见 CONTRIBUTING.md。
维护者
参见 MAINTAINERS.md。