Haskell 如何解决此依赖性问题?

Haskell 如何解决此依赖性问题?,haskell,cabal-install,bytestring,aeson,Haskell,Cabal Install,Bytestring,Aeson,在重置~/.ghc和~/.cabal后,我正在尝试安装aeson cabal install aeson向我显示以下错误消息: Resolving dependencies... cabal: Could not resolve dependencies: next goal: aeson (user goal) rejecting: aeson-0.9.0.1, 0.9.0.0, 0.8.1.1, 0.8.1.0 (global constraint requires ==0.8.0.2) t

在重置
~/.ghc
~/.cabal
后,我正在尝试安装
aeson

cabal install aeson
向我显示以下错误消息:

Resolving dependencies...
cabal: Could not resolve dependencies:
next goal: aeson (user goal)
rejecting: aeson-0.9.0.1, 0.9.0.0, 0.8.1.1, 0.8.1.0 (global constraint
requires ==0.8.0.2)
trying: aeson-0.8.0.2
next goal: bytestring (user goal)
rejecting: bytestring-0.10.6.0, 0.10.4.1, 0.10.4.0, 0.10.2.0 (global
constraint requires installed instance)
rejecting: bytestring-0.10.0.2/installed-4f9... (conflict: aeson =>
bytestring>=0.10.4.0)
rejecting: bytestring-0.10.0.2, 0.10.0.1, 0.10.0.0, 0.9.2.1, 0.9.2.0,
0.9.1.10, 0.9.1.9, 0.9.1.8, 0.9.1.7, 0.9.1.6, 0.9.1.5, 0.9.1.4, 0.9.1.3,
0.9.1.2, 0.9.1.1, 0.9.1.0, 0.9.0.4, 0.9.0.3, 0.9.0.2, 0.9.0.1, 0.9 (global
constraint requires installed instance)
Dependency tree exhaustively searched.
在我的系统中,
bytestring
包的当前版本是
0.10.2.0
。我尝试了
cabalinstallbytestring——重新安装
,这样我就可以拥有一个更新版本的bytestring(从而解决了aeson依赖性问题)。但这返回了一个非常奇怪的错误:

Resolving dependencies...
cabal: Could not resolve dependencies:
next goal: bytestring (user goal)
rejecting: bytestring-0.10.6.0, 0.10.4.1, 0.10.4.0, 0.10.2.0, 0.10.0.2,
0.10.0.1, 0.10.0.0, 0.9.2.1, 0.9.2.0, 0.9.1.10, 0.9.1.9, 0.9.1.8, 0.9.1.7,
0.9.1.6, 0.9.1.5, 0.9.1.4, 0.9.1.3, 0.9.1.2, 0.9.1.1, 0.9.1.0, 0.9.0.4,
0.9.0.3, 0.9.0.2, 0.9.0.1, 0.9 (global constraint requires installed instance)
Dependency tree exhaustively searched.
我可以用沙箱解决这个问题。但是我想知道是否有更好的方法来解决依赖性问题


更新:根据建议,我通过
ghc pkg unregister-force bytestring
删除了
bytestring
,这破坏了一些软件包,仍然无法安装aeson

以下是ghc pkg列表的输出:。

您的约束(
全局约束)在哪里
要求==0.8.0.2
)来自

~/prog$ cd
~$ mkdir sbox
~$ cd sbox
~/sbox$ HOME=`pwd`
~$ export HOME
~$ cabal install bytestring
Config file path source is default config file.
Config file /home/novadenizen/sbox/.cabal/config not found.
Writing default configuration to /home/novadenizen/sbox/.cabal/config
Warning: The package list for 'hackage.haskell.org' does not exist. Run 'cabal
update' to download it.
cabal: There is no package named 'bytestring'.
You may need to run 'cabal update' to get the latest list of available
packages.
~$ cabal update
Downloading the latest package list from hackage.haskell.org
~$ cabal install aeson
Resolving dependencies...
Downloading bytestring-0.10.6.0...
Downloading dlist-0.7.1.1...
Configuring dlist-0.7.1.1...
Downloading syb-0.5.1...
Downloading transformers-0.4.3.0...
Configuring syb-0.5.1...
Building dlist-0.7.1.1...
Building syb-0.5.1...
Installed dlist-0.7.1.1
Configuring bytestring-0.10.6.0...
Building bytestring-0.10.6.0...
Configuring transformers-0.4.3.0...
Installed syb-0.5.1
Building transformers-0.4.3.0...
Installed transformers-0.4.3.0
Downloading mtl-2.2.1...
Downloading primitive-0.6...
Configuring primitive-0.6...
Building primitive-0.6...
Configuring mtl-2.2.1...
Installed primitive-0.6
Downloading vector-0.10.12.3...
Building mtl-2.2.1...
Configuring vector-0.10.12.3...
Installed mtl-2.2.1
Building vector-0.10.12.3...
Installed bytestring-0.10.6.0
Downloading binary-0.7.5.0...
Configuring binary-0.7.5.0...
Building binary-0.7.5.0...
Installed binary-0.7.5.0
Downloading text-1.2.1.1...
Configuring text-1.2.1.1...
Building text-1.2.1.1...
Installed vector-0.10.12.3
Installed text-1.2.1.1
Downloading hashable-1.2.3.2...
Configuring hashable-1.2.3.2...
Building hashable-1.2.3.2...
Installed hashable-1.2.3.2
Downloading scientific-0.3.3.8...
Downloading unordered-containers-0.2.5.1...
Configuring scientific-0.3.3.8...
Configuring unordered-containers-0.2.5.1...
Building scientific-0.3.3.8...
Building unordered-containers-0.2.5.1...
Installed scientific-0.3.3.8
Downloading attoparsec-0.13.0.0...
Configuring attoparsec-0.13.0.0...
Building attoparsec-0.13.0.0...
Installed unordered-containers-0.2.5.1
Installed attoparsec-0.13.0.0
Downloading aeson-0.9.0.1...
Configuring aeson-0.9.0.1...
Building aeson-0.9.0.1...
Installed aeson-0.9.0.1
~$

bytestring
aeson
的依赖项。因此,删除
bytestring
并安装
aeson
本身。@Sibi,我删除了bytestring。现在
cabal install aeson
将向我指出第二个错误(与bytestring相关)。有什么建议吗?尝试
cabal安装--重新安装--强制重新安装aeson
您是否使用约束修改了~/.cabal/config文件(可能来自堆栈快照)?看起来您有与您正在使用的GHC版本不兼容的约束。在正常情况下,
cabal
不会对
bytestring
应用约束以使用已安装的实例。这个约束必须来自某个地方。阴谋集团配置文件、沙箱或命令行标志,或。。。