无法通过 cabal install 安装机器人
Unable to install robot via cabal install
我正在尝试通过 cabal 安装来安装 robot。
每当我尝试通过 cabal 安装 robot 或在克隆 git repo 后,我都会收到以下错误消息。
Resolving dependencies...
cabal: Entering directory '/tmp/cabal-tmp-6435/xhb-0.6.2015.8.1'
Configuring xhb-0.6.2015.8.1...
Building xhb-0.6.2015.8.1...
Preprocessing library xhb-0.6.2015.8.1...
[ 1 of 61] Compiling Graphics.XHB.Shared ( Graphics/XHB/Shared.hs, dist/build/Graphics/XHB/Shared.o )
Graphics/XHB/Shared.hs:271:17: error:
Ambiguous occurrence ‘putInt8’
It could refer to either ‘Data.Binary.Put.putInt8’,
imported from ‘Data.Binary.Put’ at Graphics/XHB/Shared.hs:9:1-22
or ‘Graphics.XHB.Shared.putInt8’,
defined at Graphics/XHB/Shared.hs:309:1
Graphics/XHB/Shared.hs:275:19: error:
Ambiguous occurrence ‘getInt8’
It could refer to either ‘Data.Binary.Get.getInt8’,
imported from ‘Data.Binary.Get’ at Graphics/XHB/Shared.hs:10:1-22
or ‘Graphics.XHB.Shared.getInt8’,
defined at Graphics/XHB/Shared.hs:312:1
Graphics/XHB/Shared.hs:279:17: error:
Ambiguous occurrence ‘putInt16host’
It could refer to either ‘Data.Binary.Put.putInt16host’,
imported from ‘Data.Binary.Put’ at Graphics/XHB/Shared.hs:9:1-22
or ‘Graphics.XHB.Shared.putInt16host’,
defined at Graphics/XHB/Shared.hs:315:1
Graphics/XHB/Shared.hs:283:19: error:
Ambiguous occurrence ‘getInt16host’
It could refer to either ‘Data.Binary.Get.getInt16host’,
imported from ‘Data.Binary.Get’ at Graphics/XHB/Shared.hs:10:1-22
or ‘Graphics.XHB.Shared.getInt16host’,
defined at Graphics/XHB/Shared.hs:318:1
Graphics/XHB/Shared.hs:287:17: error:
Ambiguous occurrence ‘putInt32host’
It could refer to either ‘Data.Binary.Put.putInt32host’,
imported from ‘Data.Binary.Put’ at Graphics/XHB/Shared.hs:9:1-22
or ‘Graphics.XHB.Shared.putInt32host’,
defined at Graphics/XHB/Shared.hs:321:1
Graphics/XHB/Shared.hs:291:19: error:
Ambiguous occurrence ‘getInt32host’
It could refer to either ‘Data.Binary.Get.getInt32host’,
imported from ‘Data.Binary.Get’ at Graphics/XHB/Shared.hs:10:1-22
or ‘Graphics.XHB.Shared.getInt32host’,
defined at Graphics/XHB/Shared.hs:324:1
cabal: Leaving directory '/tmp/cabal-tmp-6435/xhb-0.6.2015.8.1'
Failed to install xhb-0.6.2015.8.1
cabal: Error: some packages failed to install:
xhb-0.6.2015.8.1 failed during the building phase. The exception was:
ExitFailure 1
谁能指导我如何进行。
好的,所以问题是 binary-0.8 导出了很多 binary-0.7 没有的原语。比较 http://hackage.haskell.org/package/binary-0.7.5.0/docs/Data-Binary-Put.html#g:3 vs http://hackage.haskell.org/package/binary-0.8.5.1/docs/Data-Binary-Put.html#g:3.
+ putInt8 :: Int8 -> Put
+ putWord64be :: Word64 -> Put
+ putInt16be :: Int16 -> Put
...
在 xhb
中,这些函数是单独导入的,这会导致在使用 binary-0.8 时发生名称冲突。
解决此问题的最安全方法:fork xhb
,将 import Data.Binary.{Put|Get}
导入 qualified
,然后明确说明您希望每次使用哪个模块 putInt8
等..
您可以在完成后提交拉取请求。
或者,您可以通过添加约束 binary < 0.8
来完成安装,但这只是一种解决方法。
cabal install xhb --constraint="binary<0.8"
安装 xhb
后,robot
的安装应该不会出现问题。
我正在尝试通过 cabal 安装来安装 robot。
每当我尝试通过 cabal 安装 robot 或在克隆 git repo 后,我都会收到以下错误消息。
Resolving dependencies... cabal: Entering directory '/tmp/cabal-tmp-6435/xhb-0.6.2015.8.1' Configuring xhb-0.6.2015.8.1... Building xhb-0.6.2015.8.1... Preprocessing library xhb-0.6.2015.8.1... [ 1 of 61] Compiling Graphics.XHB.Shared ( Graphics/XHB/Shared.hs, dist/build/Graphics/XHB/Shared.o ) Graphics/XHB/Shared.hs:271:17: error: Ambiguous occurrence ‘putInt8’ It could refer to either ‘Data.Binary.Put.putInt8’, imported from ‘Data.Binary.Put’ at Graphics/XHB/Shared.hs:9:1-22 or ‘Graphics.XHB.Shared.putInt8’, defined at Graphics/XHB/Shared.hs:309:1 Graphics/XHB/Shared.hs:275:19: error: Ambiguous occurrence ‘getInt8’ It could refer to either ‘Data.Binary.Get.getInt8’, imported from ‘Data.Binary.Get’ at Graphics/XHB/Shared.hs:10:1-22 or ‘Graphics.XHB.Shared.getInt8’, defined at Graphics/XHB/Shared.hs:312:1 Graphics/XHB/Shared.hs:279:17: error: Ambiguous occurrence ‘putInt16host’ It could refer to either ‘Data.Binary.Put.putInt16host’, imported from ‘Data.Binary.Put’ at Graphics/XHB/Shared.hs:9:1-22 or ‘Graphics.XHB.Shared.putInt16host’, defined at Graphics/XHB/Shared.hs:315:1 Graphics/XHB/Shared.hs:283:19: error: Ambiguous occurrence ‘getInt16host’ It could refer to either ‘Data.Binary.Get.getInt16host’, imported from ‘Data.Binary.Get’ at Graphics/XHB/Shared.hs:10:1-22 or ‘Graphics.XHB.Shared.getInt16host’, defined at Graphics/XHB/Shared.hs:318:1 Graphics/XHB/Shared.hs:287:17: error: Ambiguous occurrence ‘putInt32host’ It could refer to either ‘Data.Binary.Put.putInt32host’, imported from ‘Data.Binary.Put’ at Graphics/XHB/Shared.hs:9:1-22 or ‘Graphics.XHB.Shared.putInt32host’, defined at Graphics/XHB/Shared.hs:321:1 Graphics/XHB/Shared.hs:291:19: error: Ambiguous occurrence ‘getInt32host’ It could refer to either ‘Data.Binary.Get.getInt32host’, imported from ‘Data.Binary.Get’ at Graphics/XHB/Shared.hs:10:1-22 or ‘Graphics.XHB.Shared.getInt32host’, defined at Graphics/XHB/Shared.hs:324:1 cabal: Leaving directory '/tmp/cabal-tmp-6435/xhb-0.6.2015.8.1' Failed to install xhb-0.6.2015.8.1 cabal: Error: some packages failed to install: xhb-0.6.2015.8.1 failed during the building phase. The exception was: ExitFailure 1
谁能指导我如何进行。
好的,所以问题是 binary-0.8 导出了很多 binary-0.7 没有的原语。比较 http://hackage.haskell.org/package/binary-0.7.5.0/docs/Data-Binary-Put.html#g:3 vs http://hackage.haskell.org/package/binary-0.8.5.1/docs/Data-Binary-Put.html#g:3.
+ putInt8 :: Int8 -> Put
+ putWord64be :: Word64 -> Put
+ putInt16be :: Int16 -> Put
...
在 xhb
中,这些函数是单独导入的,这会导致在使用 binary-0.8 时发生名称冲突。
解决此问题的最安全方法:fork xhb
,将 import Data.Binary.{Put|Get}
导入 qualified
,然后明确说明您希望每次使用哪个模块 putInt8
等..
您可以在完成后提交拉取请求。
或者,您可以通过添加约束 binary < 0.8
来完成安装,但这只是一种解决方法。
cabal install xhb --constraint="binary<0.8"
安装 xhb
后,robot
的安装应该不会出现问题。