Cabal安装报告包已安装,但安装程序配置将其报告为缺失

时间:2014-12-16 00:20:12

标签: haskell cabal-install

我正在使用ghc-7.6.3 cabal-install版本1.18.0.5使用1.18.1.3库的Cabal版本。我的操作系统是Debian Wheezy 7.5。 我有一个新的cabal安装,我已从我的主目录中删除.ghc。 之后我更改了cabal config文件并设置:

remote-repo: stackage-nightly-2014-12-15:http://www.stackage.org/snapshot/nightly-2014-12-15

之后我做了(this documentation之后)

$ cabal update
$ cabal install alex happy yesod-bin

并且构建抱怨它无法构建包system-filepath-0.4.12

所以,我正在尝试手动构建包system-filepath-0.4.12。解压缩归档后,我cd - 转到解压缩的文件夹并输入:

$ ghc -o Setup Setup.hs
$ ./Setup configure

给出:

Configuring system-filepath-0.4.12...
Setup: At least the following dependencies are missing:
text >=0.7.1

但是

$ cabal install text

给出:

Resolving dependencies...
All the requested packages are already installed:
text-1.1.1.3
Use --reinstall if you want to reinstall anyway.

如何将包报告为同时安装和丢失? 我是否应该寻找更稳定的remote-repo配置,我可以检查哪些内容可以修复丢失的text包吗?请注意,我没有使用沙箱。

修改

感谢您指出有两个包数据库。 我现在已经尝试了两个

$ cabal configure
$ cabal build

$ Setup configure --user
$ Setup build

在配置期间,两者都不会出错,但在构建阶段会出现以下错误:

Building system-filepath-0.4.12...
Preprocessing library system-filepath-0.4.12...
/usr/bin/ld: cannot find -lHStext-1.1.1.3-ghc7.8.3
collect2: error: ld returned 1 exit status

2 个答案:

答案 0 :(得分:1)

试试这个

cd system-filepath--0.4.12
cabal configure

我不知道为什么,但这对我有用,而Setup.hs给了我同样的错误(说实话,我总是以cabal configure的方式做,并且我不确定你的方式是否也应该工作)。

答案 1 :(得分:1)

(至少)有两个包数据库:一个可供所有用户使用的全局数据库,以及一个特定于用户的数据库数据库。默认情况下,Setup.hs查找(并安装)全局的,并且cabal-install查找(并安装)特定于用户的那个。您可以使用--user--global手动选择其中一个;所以,你可以通过使用

解决这个问题
./Setup configure --user

cabal install text --global

您可以使用ghc-pkg查看包数据库的当前状态,默认情况下会报告有关这两者的信息。