如何安装 system.random。也许是堆栈版本 8 中的 cabal 问题
How to install system.random. Maybe cabal issue in version 8 of stack
我正在使用堆栈 ghci 版本 8 开发 Ubuntu 16.04。我想在 Haskell 中导入 System.Random 但似乎我遇到了可能涉及 Cabal 的问题。我在这个网站上看到过类似的帖子,但他们通常说这是因为版本较旧,但我使用的是版本 8。
我收到错误:
Failed to load interface for ‘System.Random’
Use -v to see a list of the files searched for.
这告诉我 System.Random 有问题。上网查了一下,发现需要先安装Cabal
当我输入
Cabal --version
我明白了
cabal-install version 1.22.6.0
using version 1.22.5.0 of the Cabal library
这告诉我我已经拥有它了。所以当我尝试使用
更新时
sudo apt-get install cabal-install cabal update
我明白了
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package cabal
E: Unable to locate package update
这很奇怪。如果我忽略它并尝试通过
随机安装
cabal install random
我明白了
Resolving dependencies...
All the requested packages are already installed:
random-1.1
Use --reinstall if you want to reinstall anyway.
看来我还有cabal的随机包。但是我无法使用
加载程序
import System.Random
命令。
编辑:看来我有 stack ghci 版本 8.0.1 和 ghci 版本 7.10.3。
System.random 在 ghci 中加载但不在堆栈 ghci 中加载。
当我尝试加载堆栈中的文件时,我也得到以下信息。进入
stack ghci R.hs
我明白了
Warning: Couldn't find a component for file target /home/aa/workspace/share/haskell/chenw/hw4/R.hs. Attempting to load anyway.
Configuring GHCi with the following packages:
GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/aa/.ghc/ghci.conf
Loaded GHCi configuration from /tmp/ghci19674/ghci-script
这是否意味着我安装的堆栈有问题?
如果您想使用 stack
,并假设您有一个可用的 stack
,则不必通过 apt-get
.
安装任何东西
首先,更新您的 stack
stack update
确保您的包裹resolver
version number正确
- 如果你想全局使用堆栈,即
stack ghci <source.hs>
。检查 ~/.stack/global-project/stack.yaml
。
- 如果您使用
stack
管理您的项目,即。 stack new <project>
、stack build
。检查项目的 stack.yaml
全局(任何地方)使用stack
- 通过
stack install random
随机安装
- 通过
stack ghci
和 :load <source.hs>
使用 GHCi
- 通过
stack ghc <source.hs>
编译源代码
- 运行 你的程序
stack exec <executable_name>
您可以使用 --resolver=
.
强制堆栈使用特定的解析器
示例:使用最新的 lts
$ stack --resolver=lts setup
$ stack --resolver=lts install random
$ stack --resolver=lts ghci
要在项目目录(stack.yaml
存在)中使用stack
,您不需要手动安装包;如果需要,stack
会在 stack build
时为您安装。但是你必须编辑 <project.cabal>
build-depends: base >= 4.7 && < 5
, random
我正在使用堆栈 ghci 版本 8 开发 Ubuntu 16.04。我想在 Haskell 中导入 System.Random 但似乎我遇到了可能涉及 Cabal 的问题。我在这个网站上看到过类似的帖子,但他们通常说这是因为版本较旧,但我使用的是版本 8。
我收到错误:
Failed to load interface for ‘System.Random’
Use -v to see a list of the files searched for.
这告诉我 System.Random 有问题。上网查了一下,发现需要先安装Cabal
当我输入
Cabal --version
我明白了
cabal-install version 1.22.6.0
using version 1.22.5.0 of the Cabal library
这告诉我我已经拥有它了。所以当我尝试使用
更新时sudo apt-get install cabal-install cabal update
我明白了
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package cabal
E: Unable to locate package update
这很奇怪。如果我忽略它并尝试通过
随机安装cabal install random
我明白了
Resolving dependencies...
All the requested packages are already installed:
random-1.1
Use --reinstall if you want to reinstall anyway.
看来我还有cabal的随机包。但是我无法使用
加载程序import System.Random
命令。
编辑:看来我有 stack ghci 版本 8.0.1 和 ghci 版本 7.10.3。 System.random 在 ghci 中加载但不在堆栈 ghci 中加载。
当我尝试加载堆栈中的文件时,我也得到以下信息。进入
stack ghci R.hs
我明白了
Warning: Couldn't find a component for file target /home/aa/workspace/share/haskell/chenw/hw4/R.hs. Attempting to load anyway.
Configuring GHCi with the following packages:
GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/aa/.ghc/ghci.conf
Loaded GHCi configuration from /tmp/ghci19674/ghci-script
这是否意味着我安装的堆栈有问题?
如果您想使用 stack
,并假设您有一个可用的 stack
,则不必通过 apt-get
.
首先,更新您的 stack
stack update
确保您的包裹resolver
version number正确
- 如果你想全局使用堆栈,即
stack ghci <source.hs>
。检查~/.stack/global-project/stack.yaml
。 - 如果您使用
stack
管理您的项目,即。stack new <project>
、stack build
。检查项目的 stack.yaml
全局(任何地方)使用stack
- 通过
stack install random
随机安装
- 通过
stack ghci
和:load <source.hs>
使用 GHCi
- 通过
stack ghc <source.hs>
编译源代码
- 运行 你的程序
stack exec <executable_name>
您可以使用 --resolver=
.
示例:使用最新的 lts
$ stack --resolver=lts setup
$ stack --resolver=lts install random
$ stack --resolver=lts ghci
要在项目目录(stack.yaml
存在)中使用stack
,您不需要手动安装包;如果需要,stack
会在 stack build
时为您安装。但是你必须编辑 <project.cabal>
build-depends: base >= 4.7 && < 5
, random