haskell cabal沙盒如何安装包?
haskell cabal sandbox how to install packages?
我希望有人告诉我在沙箱中安装 gloss-examples
及其所有依赖项所需的步骤。
这是我尝试做的:
我从 hackage 下载了 gloss-examples
包。
当我用运行命令后,变成了~/gloss/gloss-examples-1.9.4.1
~/gloss/gloss-examples-1.9.4.1$cabal sandbox init
成功了,所以我发出了命令
~/gloss/gloss-examples-1.9.4.1$cabal install --only-dependencies
但随后出现以下错误:
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: gloss-examples-1.9.4.1 (user goal)
next goal: base (dependency of gloss-examples-1.9.4.1)
rejecting: base-4.5.0.0/installed-c8e... (conflict: gloss-examples =>
base==4.8.*)
rejecting: base-4.8.1.0, base-4.8.0.0, base-4.7.0.2, base-4.7.0.1,
base-4.7.0.0, base-4.6.0.1, base-4.6.0.0, base-4.5.1.0, base-4.5.0.0,
base-4.4.1.0, base-4.4.0.0, base-4.3.1.0, base-4.3.0.0, base-4.2.0.2,
base-4.2.0.1, base-4.2.0.0, base-4.1.0.0, base-4.0.0.0, base-3.0.3.2,
base-3.0.3.1 (constraint from non-upgradeable package requires installed
instance)
Dependency tree exhaustively searched.
Note: when using a sandbox, all packages are required to have consistent
dependencies. Try reinstalling/unregistering the offending packages or
recreating the sandbox.
如何仅在沙箱目录中安装此软件包 gloss-examples
及其所有依赖项?我想我明白 cabal 沙箱允许你安装任何任意包,所有依赖项(一些或全部与全局安装的包冲突)安装在一个单独的目录中。
这可能吗?
我想我错过了什么。这是 cabal 沙箱的正确用例吗?
看到下面
Note: when using a sandbox, all packages are required to have consistent dependencies.
conflicting dependencies
和not consistent dependencies
有区别吗?
我尝试了很多教程,包括 this,但无法理解如何使用 cabal 沙箱。
在我看来,您下载的 gloss-examples
版本与您的 base
库版本不兼容。有两种方法可以解决此问题:
下载与您的 base
库兼容的版本(可能是旧版本)。 The contents page for the package on Hackage 在顶部附近有一长串可用版本。也可以使用 cabal fetch
来做到这一点——我不确定。
升级 GHC 以获得更新的 base
。一般不升级 GHC 就无法升级 base
。
我希望有人告诉我在沙箱中安装 gloss-examples
及其所有依赖项所需的步骤。
这是我尝试做的:
我从 hackage 下载了 gloss-examples
包。
当我用运行命令后,变成了~/gloss/gloss-examples-1.9.4.1
~/gloss/gloss-examples-1.9.4.1$cabal sandbox init
成功了,所以我发出了命令
~/gloss/gloss-examples-1.9.4.1$cabal install --only-dependencies
但随后出现以下错误:
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: gloss-examples-1.9.4.1 (user goal)
next goal: base (dependency of gloss-examples-1.9.4.1)
rejecting: base-4.5.0.0/installed-c8e... (conflict: gloss-examples =>
base==4.8.*)
rejecting: base-4.8.1.0, base-4.8.0.0, base-4.7.0.2, base-4.7.0.1,
base-4.7.0.0, base-4.6.0.1, base-4.6.0.0, base-4.5.1.0, base-4.5.0.0,
base-4.4.1.0, base-4.4.0.0, base-4.3.1.0, base-4.3.0.0, base-4.2.0.2,
base-4.2.0.1, base-4.2.0.0, base-4.1.0.0, base-4.0.0.0, base-3.0.3.2,
base-3.0.3.1 (constraint from non-upgradeable package requires installed
instance)
Dependency tree exhaustively searched.
Note: when using a sandbox, all packages are required to have consistent
dependencies. Try reinstalling/unregistering the offending packages or
recreating the sandbox.
如何仅在沙箱目录中安装此软件包 gloss-examples
及其所有依赖项?我想我明白 cabal 沙箱允许你安装任何任意包,所有依赖项(一些或全部与全局安装的包冲突)安装在一个单独的目录中。
这可能吗?
我想我错过了什么。这是 cabal 沙箱的正确用例吗?
看到下面
Note: when using a sandbox, all packages are required to have consistent dependencies.
conflicting dependencies
和not consistent dependencies
有区别吗?
我尝试了很多教程,包括 this,但无法理解如何使用 cabal 沙箱。
在我看来,您下载的 gloss-examples
版本与您的 base
库版本不兼容。有两种方法可以解决此问题:
下载与您的
base
库兼容的版本(可能是旧版本)。 The contents page for the package on Hackage 在顶部附近有一长串可用版本。也可以使用cabal fetch
来做到这一点——我不确定。升级 GHC 以获得更新的
base
。一般不升级 GHC 就无法升级base
。