2013-11-15 80 views
0

我是Haskell的新手,试图编写一个编译器构建类的程序。cabal安装bnfc缺失目录

我安装的是哈斯克尔平台包在我的Ubuntu 13.10,然后(不带安装哈斯克尔平台后什么乱搞)试图运行下面的命令:

$ sudo cabal install bnfc 

与结果:

Resolving dependencies... 
Configuring BNFC-2.6.0.3... 
cabal: The following installed packages are broken because other packages they 
depend on are missing. These broken packages must be rebuilt before they can 
be used. 
package process-1.1.0.2 is broken due to missing package 
directory-1.2.0.1-508733a890139bbedb8aa76468431462 
Failed to install BNFC-2.6.0.3 
cabal: Error: some packages failed to install: 
BNFC-2.6.0.3 failed during the configure step. The exception was: 
ExitFailure 1 

当我尝试安装软件包目录时说它已经安装了软件包。 任何人都可以帮忙吗?

+0

您是否尝试过'cabal update'? –

+0

是的,我试过 – niczka

+0

避免在'cabal'中使用'sudo'。通过'cabal install'来重建'process'和'directory'。 – 2013-11-15 18:36:41

回答

1

我也使用Ubuntu 13.10与haskell平台包,并为我安装bnfc。

有您可以检查一些东西....

  1. 不要使用带有阴谋须藤安装(默认为小集团安装包在自己的主目录,使用sudo可能通过会造成麻烦提供错误的文件所有权,或者尝试将文件放入/ root,甚至覆盖/ usr内容)

  2. 重命名〜/ .cabal /和〜/ .ghc /,并通过运行“cabal update” (您可能需要在移动后从移动的位置重新添加〜/ .cabal/bin/cabal)。这些包含已安装的软件包和它们的信息....因为你有一个新的香草安装,这些基本上应该是空的,尽管它们中的元信息可能已经损坏。 (如果由于某种原因,这会让事情变得更糟,您可以随时恢复原始目录....如果它解决了问题,则可以删除原始.cabal和.ghc)

  3. 您可以获得更多关于原因的信息一包没有做安装以下

    阴谋解压BNFC#这将下载并解压缩源代码CD BNFC-2.6.0.3#进入新创建的源目录 阴谋配置#此检查所有系统的依赖是否符合 cabal build #This构建包 cabal install #This安装包在〜/ .cabal/

(您可能需要遍历到另一个包,如果不满足相关性)

我觉得2.可以解决你的问题,因为你显示错误消息意味着构建过程是在寻找上钩目录包的一个非常具体的版本,而不是最新版本。这发生在我身上一次,清理出来.cabal解决了我的问题。