标签: cabal-install

使用相互依赖的cabal管理两个库

我有以下问题:

我有两个相互依赖的Haskell库,这两个库都是由cabal管理的.相应的cabal文件如下所示:

图书馆1:

name:           Lib1
version:        0.1
cabal-version:  >=1.2
build-type:     Simple
author:         Matthias

library
  hs-source-dirs:  src
  build-depends:   
               base >= 4,
               Lib2
  ghc-options:     -Wall
  exposed-modules:   <...>
Run Code Online (Sandbox Code Playgroud)

图书馆2:

name:           Lib2
version:        0.1
cabal-version:  >=1.2
build-type:     Simple
author:         Matthias

library
  hs-source-dirs:  src
  build-depends:   
               base >= 4,
               Lib1
  ghc-options:     -Wall
  exposed-modules: <...>
Run Code Online (Sandbox Code Playgroud)

使用cabal install作品安装其中一个库(此处为库2):

Resolving dependencies...
In order, the following will be installed:
Lib2-0.1 (reinstall)
Warning: Note that reinstalls are always dangerous. Continuing anyway...
Configuring Lib2-0.1...
Building Lib2-0.1...
Preprocessing library Lib2-0.1...
Registering …
Run Code Online (Sandbox Code Playgroud)

recursion haskell cabal libraries cabal-install

2
推荐指数
1
解决办法
403
查看次数

如何安装`帽子`

我试图获得Hat调试器.当我尝试:

cabal install hat 要么 cabal install hat -v

最后我得到:

configure: error: in `/tmp/terminfo-0.4.0.0-17745/terminfo-0.4.0.0':
configure: error: curses headers could not be found, so this package cannot be built
See `config.log' for more details
Failed to install terminfo-0.4.0.0
cabal: Error: some packages failed to install:
haskeline-0.7.1.3 depends on terminfo-0.4.0.0 which failed to install.
hat-2.8.0.0 depends on terminfo-0.4.0.0 which failed to install.
terminfo-0.4.0.0 failed during the configure step. The exception was:
ExitFailure 1
Run Code Online (Sandbox Code Playgroud)

所以麻烦我尝试:

cabal install terminfo
Run Code Online (Sandbox Code Playgroud)

得到:

configure: error: …
Run Code Online (Sandbox Code Playgroud)

debugging haskell hat cabal cabal-install

2
推荐指数
1
解决办法
709
查看次数

Cabal无法安装依赖项,但如果直接询问则可以安装它们

我看到一个非常奇怪的反复出现的问题,Cabal干扰了我获得可重复的Haskell构建的能力.我有一个带沙盒的cabal项目.如果我这样做cabal install,我会得到表格的错误

Y failed during the building phase. The exception was: ExitFailure 1 X depends on Y which failed to install.

其中X是我项目的直接依赖,Y是一些传递依赖.但是,如果我只是键入cabal install X,那么它的工作原理!

这是一个具体的例子:我的项目取决于interpolate包.当我这样做时cabal install --allow-newer,我得到这样的错误:

Resolving dependencies...
Configuring haskell-src-meta-0.6.0.9...
Building haskell-src-meta-0.6.0.9...
Preprocessing library haskell-src-meta-0.6.0.9...
[1 of 6] Compiling Language.Haskell.TH.Instances.Lift ( src/Language/Haskell/TH/Instances/Lift.hs, dist/dist-sandbox-d2861272/build/Language/Haskell/TH/Instances/Lift.o )
[2 of 6] Compiling Language.Haskell.Meta.Syntax.Translate ( src/Language/Haskell/Meta/Syntax/Translate.hs, dist/dist-sandbox-d2861272/build/Language/Haskell/Meta/Syntax/Translate.o )
[3 of 6] Compiling Language.Haskell.Meta.Parse ( src/Language/Haskell/Meta/Parse.hs, dist/dist-sandbox-d2861272/build/Language/Haskell/Meta/Parse.o )
[4 of 6] Compiling Language.Haskell.Meta.Parse.Careful ( src/Language/Haskell/Meta/Parse/Careful.hs, dist/dist-sandbox-d2861272/build/Language/Haskell/Meta/Parse/Careful.o ) …
Run Code Online (Sandbox Code Playgroud)

haskell cabal cabal-install

2
推荐指数
1
解决办法
347
查看次数

我可以复制 nix-build 对 nix-shell 和 cabal build 的作用吗?

我正在使用出色的 Haskell 库Miso,它推荐使用 Nix。自述文件引导我们完成一个简单的项目,该项目可以使用nix-build. 味噌的文档提示我可以做:

nix-shell -A env
cabal configure --ghcjs
cabal build
Run Code Online (Sandbox Code Playgroud)

这也构建了项目,尽管它将结果放在了不同的地方。

nix-buildcabal buildnix-shell 内是否保证产生相同的输出?更一般地说,给定一个.nix表达式,我将如何锻炼需要哪些步骤(例如 cabal configure)来复制它的行为?

haskell cabal cabal-install nix

2
推荐指数
1
解决办法
173
查看次数

无法通过 cabal 安装“System.Random”

我尝试通过 Powershell 和 Git Bash 通过 cabal 安装“System.Random”。

得到这个结果。

PS C:\Users\xxx> cabal install random
Resolving dependencies...
Up to date
Warning: You asked to install executables, but there are no executables in
target: random. Perhaps you want to use --lib to install libraries instead.
Run Code Online (Sandbox Code Playgroud)

然后我尝试像这样输入

cabal install --lib random
Resolving dependencies...

and 

cabal install random --lib
Run Code Online (Sandbox Code Playgroud)

两个输出 解决依赖关系... 最新没有警告。但 ghci 找不到模块“System.Random”

输入 cabal install random 仍然有相同的结果和警告。

haskell cabal cabal-install

2
推荐指数
1
解决办法
1232
查看次数

当没有任何改变时,如何阻止 GHC 重新编译模块?

我有以下目录结构:

  • libgs - 基本的全局脚本抽象机和标准库
  • gsi - 全局脚本解释器
  • gs2hs - Haskell 编译器的全局脚本

大部分(当然不是全部)代码是用全局脚本编写的,并由 Haskell 程序 hsgs2hs 转换为 Haskell。

因此,gsi 和 gs2hs 中的代码都依赖于 libgs 中的模块。

由于我的代码组织有些草率,gs2hs 中的编译器还依赖于 gsi 目录中的前端模块(解析器、类型检查器等)。

撇开法律不谈:如果重要的话:我的代码可以在线免费获得,但不是开源的,并且其许可证不允许通过Hackage 重新分发。结束合法性。

我可以通过运行使这个目录结构工作

ghc --make -i../libgs gsi.hs -o gsi
Run Code Online (Sandbox Code Playgroud)

在 gsi 目录中,以及

ghc --make -i../libgs -i ../gsi gs2hs.hs -o gs2hs
Run Code Online (Sandbox Code Playgroud)

在 gs2hs 目录中。

这有一个问题,每次我按顺序进行两个构建时,GHC 都会重新编译 libgs 目录中的每个模块以及 gsi 目录中的每个共享模块,告诉我“标志已更改”。

我想,好吧,我可能应该在 Haskell 中使用包来重用代码,对吗?所以我将 libgs 转换为包:

  • 将 libgs.cabal 文件添加到该目录,将所有模块列为公开模块。
  • 添加一个 libgs/install-all 脚本,在构建 gsi 和 gs2hs 之前运行cabal install --lib --package-env $REPO_ROOT/package.env …

haskell ghc cabal cabal-install

2
推荐指数
1
解决办法
199
查看次数

重新安装cabal-dev的行为

我一直在使用的最新cabal-install(0.13.3,来自darcs repo)很不错; 它会告诉您何时可以通过重新安装来破坏GHC安装.我想知道的是:假设一个人cabal install foo 重新安装破坏我的GHC.如果我cabal-dev install foo反而会怎么样?我能避免打破GHC吗?我真的可以foo在cabal-dev沙箱中使用该软件包,还是只是一个破碎的沙箱?

示例:yesod,GHC 7.4.1,cabal-dev 0.9由github源码构建,Cabal 1.14.0库.

haskell ghc cabal-install

1
推荐指数
1
解决办法
315
查看次数

任何人在安装Control.Pipe时遇到问题?

我有当前版本的cabal和跑步cabal install Pipe给了我没有问题.但我尝试了这两种进口:

import Control.Proxy
import Control.Pipe
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

Could not find module `Control.Pipe'
It is not a module in the current program, or in any known package.
Run Code Online (Sandbox Code Playgroud)

代理相同.

有任何想法吗?

haskell ghc ghci cabal cabal-install

1
推荐指数
1
解决办法
207
查看次数

cabal:遇到缺少的依赖项:z3 &gt;=4.1.0

我试图从它的存储库安装窃听工具。当我cabal configure从文件夹内部运行时,我得到:

cabal: Encountered missing dependencies:
z3 >=4.1.0
Run Code Online (Sandbox Code Playgroud)

我已经使用sudo apt-get install z3. 我添加/usr/bin到路径变量,其中似乎安装了 z3。当我跑步时z3 -version,我得到了Z3 version 4.8.0 - 64 bit。配置命令仍然给出错误。

cabal cabal-install

1
推荐指数
1
解决办法
2134
查看次数

如何将 lib 从一个 cabal 包导入到另一个 cabal 包

所以我的文件夹结构是这样的

\n
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 eulerlibs\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 EulerLibs\n\xe2\x94\x82  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 eulerlibs.cabal\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flake.lock\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flake.nix\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 p001\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Main.hs\n\xe2\x94\x82  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 p001.cabal\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 p002\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Main.hs\n\xe2\x94\x82  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 p002.cabal\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 p003\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Main.hs\n\xe2\x94\x82  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 p003.cabal\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 p004\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Main.hs\n\xe2\x94\x82  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 p004.cabal\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 p005\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Main.hs\n\xe2\x94\x82  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 p005.cabal\n
Run Code Online (Sandbox Code Playgroud)\n

我想做的是将./eulerlibs(库)cabal 目录中的库模块导入到./p005(可执行)cabal 目录
\n我确实明白我可以包含构建的库(*.so),但找不到链接两个库的方法cabal 项目
\n我对 cabal 和 haskell 都很陌生,所以一些见解将不胜感激。如果没有任何效果,我将不得不将库添加到 p005 本身,这是我真正想避免的。

\n

haskell cabal cabal-install cabal-new

1
推荐指数
1
解决办法
694
查看次数

Haskell平台+ Cabal地狱+套餐位置?

我最近按照这些步骤在CentOS 6.4上安装了Haskell

  1. wget http://www.haskell.org/ghc/dist/7.6.3/ghc-7.6.3-x86_64-unknown-linux.tar.bz2&& tar -xf ghc-7.6.3-x86_64-unknown-linux. tar.bz2 && cd ghc-7.6.3 && ./configure&& make install && cd ..
  2. yum install freeglut-devel mesa-libGLU-devel mesa-libGL-devel
  3. wget http://lambda.haskell.org/platform/download/2013.2.0.0/haskell-platform-2013.2.0.0.tar.gz&& tar -xf haskell-platform-2013.2.0.0.tar.gz && cd haskell-platform -2013.2.0.0 && ./configure&& make && make install

请注意我没有介绍任何花哨的旗帜.结果是以下包位于/ usr/local/lib:

async-2.0.1.4
attoparsec-0.10.4.0
case-insensitive-1.0.0.1
cgi-3001.1.7.5
fgl-5.4.2.4
GLURaw-1.3.0.0
GLUT-2.4.0.0
hashable-1.1.2.5
haskell-src-1.0.1.5
html-1.0.1.2
HTTP-4000.2.8
HUnit-1.2.5.2
mtl-2.1.2
network-2.4.1.2
OpenGL-2.8.0.0
OpenGLRaw-1.3.0.0
parallel-3.2.0.3
parsec-3.1.3
primitive-0.5.0.1
QuickCheck-2.6
random-1.0.1.1
regex-base-0.93.2
regex-compat-0.95.1
regex-posix-0.95.2
split-0.2.2
stm-2.4.2
syb-0.4.0
text-0.11.3.1
transformers-0.3.0.0
unordered-containers-0.2.3.0
vector-0.10.0.1
xhtml-3000.2.1
zlib-0.5.4.1
Run Code Online (Sandbox Code Playgroud)

以下内容位于/usr/local/lib/ghc-7.6.3下:

array-0.4.0.1
base-4.6.0.1 …
Run Code Online (Sandbox Code Playgroud)

haskell centos configure cabal cabal-install

0
推荐指数
1
解决办法
1316
查看次数

标签 统计

cabal-install ×11

cabal ×10

haskell ×10

ghc ×3

cabal-new ×1

centos ×1

configure ×1

debugging ×1

ghci ×1

hat ×1

libraries ×1

nix ×1

recursion ×1