作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 GHC 9.2.1 上安装 aeson。我第一次跑 cabal install --allow-newer --lib aeson
,在构建 attoparsec 时失败了。原来这个问题是already fixed in their Git repo ,但尚未在 Hackage 上发布。然后,我执行了以下步骤以使用修复程序构建本地版本:
git clone https://github.com/haskell/attoparsec.git
cd attoparsec
cabal install --allow-newer --lib .
cd ..
那成功了,但是当我这样做时
cabal install --allow-newer --lib aeson
再次,它试图再次从 Hackage 构建 attoparsec,但再次失败。我怎样才能让 cabal 使用我刚刚构建和安装的东西?
最佳答案
主要有两种方法。
一是创建cabal project这包括 attoparsec 的克隆版本和您正在处理的本地包(可能依赖于 aeson 的包)。它可以很简单
packages: attoparsec yourpackage
事实上,你甚至不需要克隆 repo,你可以使用
source-repository-package
场代替。
repository
声明额外的包存储库。全局 cabal 配置的字段(配置路径显示在
cabal help
的最后一行)。默认情况下,只有 Hackage:
repository hackage.haskell.org
url: http://hackage.haskell.org/
要使本地包存储库优先于 Hackage,您需要使用
active-repositories
字段,无论是在您的全局 Cabal 配置中还是在
cabal.project
中文件。
关于haskell - 如何让 cabal 使用本地版本的包作为 Hackage 包的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69773999/
我是一名优秀的程序员,十分优秀!