Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 哈斯克尔阴谋集团:如何忽略依赖关系_Haskell_Dependencies_Cabal - Fatal编程技术网

Haskell 哈斯克尔阴谋集团:如何忽略依赖关系

Haskell 哈斯克尔阴谋集团:如何忽略依赖关系,haskell,dependencies,cabal,Haskell,Dependencies,Cabal,我正在尝试安装一个软件包(碰巧是nymphaea)。这取决于base的早期版本,而不是我的版本。我不想降级我的基本库,所以我想试着忽略这种依赖性,看看事情是怎么发展的 有没有办法告诉阴谋集团错过一个特殊的依赖 更新:编辑阴谋集团文件后,我该如何处理它?据我所知,阴谋集团并没有一个明显的方式将其指向一个文件,也并没有任何我可以手动放置阴谋集团文件的地方 [如下所示,显然我应该在包含已编辑的阴谋集团文件的目录中调用cabal install。] 更新2:不幸的是,cabal给了我一个关于所需软件包版

我正在尝试安装一个软件包(碰巧是nymphaea)。这取决于base的早期版本,而不是我的版本。我不想降级我的基本库,所以我想试着忽略这种依赖性,看看事情是怎么发展的

有没有办法告诉阴谋集团错过一个特殊的依赖

更新:编辑阴谋集团文件后,我该如何处理它?据我所知,阴谋集团并没有一个明显的方式将其指向一个文件,也并没有任何我可以手动放置阴谋集团文件的地方

[如下所示,显然我应该在包含已编辑的阴谋集团文件的目录中调用
cabal install
。]

更新2:不幸的是,cabal给了我一个关于所需软件包版本的奇怪错误,我似乎有:

$ cabal install -v --upgrade-dependencies time
Reading available packages...
Resolving dependencies...
In order, the following would be installed:
time-1.2.0.5 (new version)
Extracting
C:\Users\Marcin\AppData\Roaming\cabal\packages\hackage.haskell.org\time\1.2.0.5\time-1.2.0.5.tar.gz
to C:\Users\Marcin\time-1.2.0.54736...
Creating C:\Users\Marcin\time-1.2.0.54736\time-1.2.0.5\dist\setup (and its
parents)
C:\Program Files (x86)\Haskell Platform\2011.2.0.1\bin\ghc.exe --make C:\Users\Marcin\time-1.2.0.54736\time-1.2.0.5\Setu
p.hs -o C:\Users\Marcin\time-1.2.0.54736\time-1.2.0.5\dist\setup\setup.exe -odir C:\Users\Marcin\time-1.2.0.54736\time-1
.2.0.5\dist\setup -hidir C:\Users\Marcin\time-1.2.0.54736\time-1.2.0.5\dist\setup -i -iC:\Users\Marcin\time-1.2.0.54736\
time-1.2.0.5 -package Cabal-1.10.1.0
<command line>: cannot satisfy -package Cabal-1.10.1.0:
    Cabal-1.10.1.0-55f781465ee9f32289755ad706c71f0f is unusable due to missing or recursive dependencies:
      directory-1.1.0.0-3a2367d72569467a8af8a231656ff1b8 process-1.0.1.5-b3dded8e54a2e13d22af410bdcfafff4
    (use -v for more information)
World file is already up to date.
cabal.exe: Error: some packages failed to install:
time-1.2.0.5 failed during the configure step. The exception was:
ExitFailure 1
$cabal安装-v--升级依赖项时间
正在阅读可用的软件包。。。
正在解析依赖项。。。
为此,将安装以下设备:
time-1.2.0.5(新版本)
提取
C:\Users\Marcin\AppData\Roaming\cabal\packages\hackage.haskell.org\time\1.2.0.5\time-1.2.0.5.tar.gz
到C:\Users\Marcin\time-1.2.0.54736。。。
创建C:\Users\Marcin\time-1.2.0.54736\time-1.2.0.5\dist\setup(及其
(家长)
C:\ProgramFiles(x86)\Haskell Platform\2011.2.0.1\bin\ghc.exe--使C:\Users\Marcin\time-1.2.0.54736\time-1.2.0.5\Setu
p、 hs-o C:\Users\Marcin\time-1.2.0.54736\time-1.2.0.5\dist\setup\setup.exe-odir C:\Users\Marcin\time-1.2.0.54736\time-1
.2.0.5\dist\setup-hidir C:\Users\Marcin\time-1.2.0.54736\time-1.2.0.5\dist\setup-i-iC:\Users\Marcin\time-1.2.0.54736\
时间-1.2.0.5-机组控制室-1.10.1.0
:无法满足-package Cabal-1.10.1.0:
Cabal-1.10.1.0-55f781465ee9f32289755ad706c71f0f因缺少或递归依赖项而不可用:
目录-1.1.0.0-3a2367d72569467a8af8a231656ff1b8过程-1.0.1.5-B3DDED8E54A2E13D22AF410BDCFAFF4
(有关详细信息,请使用-v)
世界文件已经是最新的。
cabal.exe:错误:某些程序包安装失败:
time-1.2.0.5在配置步骤中失败。例外情况是:
退出失败1

您必须编辑与包关联的.cabal文件,并删除您看到的任何基础约束。比如说,

base < 3
base<3

base>=3&&<5

看看它是否编译。如果有效,您可能会修改版本并让维护人员知道。如果他们没有回应,你可能会上传固定版本,自己进行黑客攻击。

要跟进对don答案的评论:

首先,从Hackage中获取软件包

$ cabal unpack nymphaea
然后编辑.cabal文件并更改
base 3&&<5

$ cd nymphaea-0.3
$ vim nymphaea.cabal
现在,尝试安装它

$ cabal install

在安装了所需的Debian软件包之后,我在UbuntuNatty上使用Haskell Platform 2011.2.0.1实现了这一更改。

这是nymphaea.cabal的实际行:
build dependens:base=0.10.0,glade,cairo
是的,这是错误的,因为它依赖于较小的转速。试试
base>3&&<5
怎么了?这是从下载时包含的实际文件中复制粘贴的。哦,等等,你是说那种基础依赖于小修改是错误的吗?这是有道理的。好的,谢谢,但还有一个问题-阴谋集团的文件住在哪里/我该怎么做才能让阴谋集团注意到我的新文件?谢谢-但对我来说,它仍然无法工作,因为另一个神秘的错误(显然时间不会建立,因为它取决于我似乎已经拥有的软件包?!)@Marcin:如果没有看到错误消息,很难判断,但大多数情况下,此类错误是由于缺少非Haskell包,或者编译器无法找到它们而导致的。我必须安装
libglade2-dev
,但可能还有我已经安装的其他依赖项。@Marcin:我记得在意外升级
time
软件包之前,它也有类似的问题。我最终只是重新安装了Haskell平台。
$ cabal install