我正在使用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
答案 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
查看包数据库的当前状态,默认情况下会报告有关这两者的信息。