如何使用cabal install进行正则表达式软件包安装?

时间:2019-01-27 18:45:19

标签: haskell ghc cabal

我正在研究真实世界中的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

为什么会失败?

尝试调试您建议的阴谋失败时,有哪些更通用的提示和技巧(因为这是我在阴谋问题上始终遇到的许多问题之一)?

1 个答案:

答案 0 :(得分:1)

这是一个链接问题。例如,某些发行版(例如Arch)默认情况下使用动态链接,没有静态库,但没有其他配置,cabal会尝试静态链接,这会导致您看到这种消息。有关更多信息:https://wiki.archlinux.org/index.php/Haskell