cabal新安装hakyll无法建立依赖关系

问题描述

在安装ghcup之后,我尝试使用命令hakyll安装cabal new-install hakyll。 这会导致依赖项text-conversions库中的构建错误:

Failed to build text-conversions-0.3.0.
Build log (
/home/me/.cabal/logs/ghc-8.8.4/text-conversions-0.3.0-e3c3dbd414a885ff0e8ec81ad4c2c319c5dff5772ce6392ac561833941ecfd06.log
):
Configuring library for text-conversions-0.3.0..
Preprocessing library for text-conversions-0.3.0..
Building library for text-conversions-0.3.0..
[1 of 1] Compiling Data.Text.Conversions ( src/Data/Text/Conversions.hs,dist/build/Data/Text/Conversions.o )

src/Data/Text/Conversions.hs:152:5: error:
    • Couldn't match expected type ‘Either String B.ByteString’
                  with actual type ‘(B.ByteString,[Char])’
    • In the pattern: (bs,"")
      In a case alternative: (bs,"") -> Just $ Base16 bs
      In the expression:
        case Base16.decode (T.encodeUtf8 txt) of
          (bs,"") -> Just $ Base16 bs
          (_,_) -> Nothing
    |
152 |     (bs,"") -> Just $ Base16 bs
    |     ^^^^^^^^

src/Data/Text/Conversions.hs:153:5: error:
    • Couldn't match expected type ‘Either String B.ByteString’
                  with actual type ‘(a1,b1)’
    • In the pattern: (_,_)
      In a case alternative: (_,_) -> Nothing
      In the expression:
        case Base16.decode (T.encodeUtf8 txt) of
          (bs,_) -> Nothing
    |
153 |     (_,_)  -> Nothing
    |     ^^^^^^^

src/Data/Text/Conversions.hs:164:5: error:
    • Couldn't match expected type ‘Either String BL.ByteString’
                  with actual type ‘(BL.ByteString,"") -> Just $ Base16 bs
      In the expression:
        case Base16L.decode (TL.encodeUtf8 $ TL.fromStrict txt) of
          (bs,_) -> Nothing
    |
164 |     (bs,"") -> Just $ Base16 bs
    |     ^^^^^^^^

src/Data/Text/Conversions.hs:165:5: error:
    • Couldn't match expected type ‘Either String BL.ByteString’
                  with actual type ‘(a0,b0)’
    • In the pattern: (_,_) -> Nothing
      In the expression:
        case Base16L.decode (TL.encodeUtf8 $ TL.fromStrict txt) of
          (bs,_) -> Nothing
    |
165 |     (_,_)  -> Nothing
    |     ^^^^^^^
cabal: Failed to build text-conversions-0.3.0 (which is required by
exe:hakyll-init from hakyll-4.13.4.0). See the build log above for details.

任何想法都出了什么问题以及如何解决?

解决方法

text-conversions软件包与本周发布的最新版本的base16-bytestring不兼容。因此构建失败。

一个短期解决方案是使用--constraint="base16-bytestring < 1"命令中的标志cabal install或将行constraints: base16-bytestring < 1添加到文件~/.cabal/config中来添加约束。 (Link to relevant section of the cabal documentation

从长远来看,必须修复text-conversions软件包才能在依赖项base16-bytestring < 1上添加版本上限。您可以在以下问题中询问事物的状态:

理想情况下(不一定),应该发布与text-conversions兼容的base16-bytestring-1.0.0.0的新版本,但是仍然有必要修复现有版本的界限,以免拾取损坏的构建计划。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...