首页 > 解决方案 > 如何使用cabal install 进行正则表达式包安装?

问题描述

我正在通过 Real World Haskell 工作,并试图通过简单地运行从 untar[ed] 包安装 regex-posix-0.95.2

cabal install

然后我看到:

Text/Regex/Posix/Wrap.hsc:141:1: error:
    Could not find module ‘Text.Regex.Base.RegexLike’
    There are files missing in the ‘regex-base-0.93.2’ package,
    try running 'ghc-pkg check'.
    Use -v to see a list of the files searched for.
    |
141 | import Text.Regex.Base.RegexLike(RegexOptions(..),RegexMaker(..),RegexContext(..),MatchArray)                     

尽管我可以在 ghci 中加载它

Prelude> :module Text.Regex.Base.RegexLike
Prelude Text.Regex.Base.RegexLike> 
Prelude> import Text.Regex.Base.RegexLike(RegexOptions(..),RegexMaker(..),RegexContext(..),MatchArray)
Prelude Text.Regex.Base.RegexLike> 

并在模块系统中看到它。

[warrick@warrick-pc regex-posix-0.95.2]$ ghc-pkg find-module Text.Regex.Base.RegexLike
/usr/lib/ghc-8.6.2/package.conf.d
    regex-base-0.93.2

为什么会失败?

在尝试调试 cabal 故障时,您会推荐哪些更一般的提示和技巧(因为这是我一直与 Cabal 一起遇到的许多问题的一个实例)?

标签: haskellghccabal

解决方案


这是一个链接问题。例如,像 Arch 这样的一些发行版默认使用动态链接,没有静态库,但没有额外的配置,cabal 尝试静态链接,这会导致您看到的那种消息。欲了解更多信息:https ://wiki.archlinux.org/index.php/Haskell


推荐阅读