Travis CI上的Haskell失败,在本地传递

时间:2014-06-07 15:26:40

标签: haskell cabal travis-ci

https://travis-ci.org/Fresheyeball/fbatch

Preprocessing library monad-parallel-0.5...
Control/Monad/Parallel.hs:67:8:
    Could not find module `Control.Monad.Identity'
    It is a member of the hidden package `mtl-2.2.1'.
    Perhaps you need to add `mtl' to the build-depends in your .cabal file.
    Use -v to see a list of the files searched for.
cabal: Error: some packages failed to install:
monad-parallel-0.5 failed during the building phase. The exception was:
ExitFailure 1

我是haskell的新手,似乎无法超越这个。我尽可能地使用.cabal文件进行修改,每次都对Travis的子依赖失败。

请帮忙。

1 个答案:

答案 0 :(得分:3)

如果构建在解析依赖项时失败,那么值得查看该软件包的安装版本。通常情况下,cabal应该默认为最新的,如果维护良好应该安装正常。较旧的版本当然通常意味着麻烦,如果他们的某些依赖现在已经安装了更新的,不兼容的版本。

在您的情况下,cabal尝试安装一些古老的monad-parallel-0.5,它会导入transformers中不存在的模块(即Control.Monad.Identity)。更新版本0.7.1.2不会尝试此操作,因此可以成功构建。您可以通过为.cabal文件中的依赖项设置下限来强制执行此类最近的安装,在本例中为monad-parallel >= 0.7