Haskell内置库,它去哪里了?

Haskell内置库,它去哪里了?,haskell,ghc,bytestring,Haskell,Ghc,Bytestring,在我的/home/sk/.ghc/x86_64-linux-7.8.4/package.conf.d文件夹中,有一个bytestringpackage as的条目 bytestring-0.10.6.0-7682cf7d45ee92d104399a67f3bce6ba.conf 在我的/opt/ghc/7.8.4/lib/ghc-7.8.4/package.conf.d文件夹中,有一个bytestring条目,如下所示: bytestring-0.10.4.0-d6f1d17d717e8652

在我的
/home/sk/.ghc/x86_64-linux-7.8.4/package.conf.d
文件夹中,有一个
bytestring
package as的条目

bytestring-0.10.6.0-7682cf7d45ee92d104399a67f3bce6ba.conf
在我的
/opt/ghc/7.8.4/lib/ghc-7.8.4/package.conf.d
文件夹中,有一个bytestring条目,如下所示:

bytestring-0.10.4.0-d6f1d17d717e8652498cab8269a0acd5.conf
为什么haskell在两个不同的地方存储
bytestring
库。由于类型/版本不匹配,这将导致编译错误

我如何确保在我的Ubuntu14.04机器上一次只存储和使用任何库的一个版本

为什么haskell在两个不同的地方存储
bytestring
库。由于类型/版本不匹配,这将导致编译错误

没有。问题是您安装了两个版本的
bytestring
库。它们是否在同一个包数据库中并不重要

您应该使用
ghc pkg unregister by testring-0.10.6.0
(首先注销任何可能中断的包,如果有的话),然后添加一行代码来修复此问题

constraint: bytestring installed
发送到您的
~/.cabal/config
,以防止再次发生。您可能希望对GHC附带的其他包执行相同的操作,至少是
GHC
包的所有依赖项(请参见
GHC pkg description GHC


我不知道是否有办法告诉阴谋集团永远不要安装任何软件包的第二个版本。(在实践中,我发现临时安装多个版本的软件包非常有用,我会觉得这比帮助更烦人。)

我的猜测:您已经安装了两个软件包-一个是全局安装的,一个是每个用户安装的。您应该能够使用
ghc pkg
helper来管理这些软件包-如果所有其他方法都失败,您可以随时重置安装:(