我正在尝试安装HTF。然而,在我cabal install HTF之后,我得到了这样的结果:
Resolving dependencies...
Configuring HTF-0.10.0.7...
Warning: This package indirectly depends on multiple versions of the same
package. This is highly likely to cause a compile failure.
package regex-base-0.93.2 requires mtl-2.0.1.0
package aeson-0.6.0.2 requires mtl-2.1.2
package HTF-0.10.0.7 requires mtl-2.1.2
package mtl-2.0.1.0 requires transformers-0.2.2.0
package transformers-base-0.4.1 requires transformers-0.3.0.0
package mtl-2.1.2 requires transformers-0.3.0.0
package monad-control-0.3.1.4 requires transformers-0.3.0.0
Building HTF-0.10.0.7...
Preprocessing library HTF-0.10.0.7...
ghc: could not execute: cpphs
cabal: Error: some packages failed to install:
HTF-0.10.0.7 failed during the building phase. The exception was:
ExitFailure 1我尝试过安装其他版本,但遇到了不同的问题。例如,使用cabal install 'HTF <= 0.1'时,我得到了以下内容:
Resolving dependencies...
Downloading QuickCheck-1.2.0.1...
Configuring QuickCheck-1.2.0.1...
Building QuickCheck-1.2.0.1...
Preprocessing library QuickCheck-1.2.0.1...
[1 of 8] Compiling Test.QuickCheck ( Test/QuickCheck.hs, dist/build/Test/QuickCheck.o )
[2 of 8] Compiling Test.QuickCheck.Batch ( Test/QuickCheck/Batch.hs, dist/build/Test/QuickCheck/Batch.o )
[3 of 8] Compiling Test.QuickCheck.Utils ( Test/QuickCheck/Utils.hs, dist/build/Test/QuickCheck/Utils.o )
[4 of 8] Compiling Test.QuickCheck.Poly ( Test/QuickCheck/Poly.hs, dist/build/Test/QuickCheck/Poly.o )
[5 of 8] Compiling Debug.QuickCheck.Poly ( Debug/QuickCheck/Poly.hs, dist/build/Debug/QuickCheck/Poly.o )
[6 of 8] Compiling Debug.QuickCheck.Utils ( Debug/QuickCheck/Utils.hs, dist/build/Debug/QuickCheck/Utils.o )
[7 of 8] Compiling Debug.QuickCheck ( Debug/QuickCheck.hs, dist/build/Debug/QuickCheck.o )
[8 of 8] Compiling Debug.QuickCheck.Batch ( Debug/QuickCheck/Batch.hs, dist/build/Debug/QuickCheck/Batch.o )
Registering QuickCheck-1.2.0.1...
Installing library in /home/xxx/.cabal/lib/QuickCheck-1.2.0.1/ghc-7.4.1
Registering QuickCheck-1.2.0.1...
Downloading HTF-0.1...
Configuring HTF-0.1...
Building HTF-0.1...
Preprocessing library HTF-0.1...
[1 of 8] Compiling Test.Framework.Utils ( Test/Framework/Utils.hs, dist/build/Test/Framework/Utils.o )
[2 of 8] Compiling Test.Framework.Process ( Test/Framework/Process.hs, dist/build/Test/Framework/Process.o )
Test/Framework/Process.hs:45:48:
Ambiguous type variable `a0' in the constraints:
(Show a0)
arising from a use of `show' at Test/Framework/Process.hs:45:48-51
(Control.Exception.Exception a0)
arising from a use of `Control.Exception.handle'
at Test/Framework/Process.hs:45:5-28
Probable fix: add a type signature that fixes these type variable(s)
In the expression: show e
In the first argument of `return', namely
`([], show e, error (show e))'
In the expression: return ([], show e, error (show e))
cabal: Error: some packages failed to install:
HTF-0.1 failed during the building phase. The exception was:
ExitFailure 1我也得到了与cabal install 'HTF <= 0.9'之后的第一个相似的结果。我试过ghc-pkg check,它给了我一个损坏包的列表。我重新安装了这些包,并反复尝试再次安装HTF,但结果相同。
发布于 2012-12-31 05:00:29
第一个问题是您有针对mtl-2.0.1.0构建的regex-base,因此
package regex-base-0.93.2 requires mtl-2.0.1.0
package aeson-0.6.0.2 requires mtl-2.1.2HTF将依赖于多个版本的mtl。这很少奏效。
这个问题的解决方案是$ ghc-pkg unregister regex-base。如果ghc-pkg警告说这会破坏其他包,那么您也必须重新构建这些包。如果有太多无法手动完成的包,您可以考虑删除整个用户包-db(我希望所有包都是用户安装的,如果它们是全局安装的,则不能删除整个全局db),并使用cabal install world重新构建所有内容。
删除regex-base之后,将不再依赖于mtl-2.0.1.0,并且依赖关系应该不会引起冲突;在实际安装HTF之前,应该使用以下命令进行检查
cabal install HTF --dry-run如果仍然存在冲突,应该可以检测到它们,您可以通过注销更多的包来帮助解决它们。
下一个问题是
ghc: could not execute: cpphs这看起来好像你的PATH中没有cpphs。要么你还没有安装它,在这种情况下,你需要在安装HTF之前安装它,或者它的安装目录需要添加到PATH中。
https://stackoverflow.com/questions/14094319
复制相似问题