-bash: ghci: 找不到命令(Haskell 交互式 shell,Haskell 安装)

Posted

技术标签:

【中文标题】-bash: ghci: 找不到命令(Haskell 交互式 shell,Haskell 安装)【英文标题】:-bash: ghci: command not found (Haskell interactive shell, Haskell installation ) 【发布时间】:2020-12-08 11:29:18 【问题描述】:

edit :我昨天最终升级到 macOS Catalina,并用 zsh 替换了 bash。应该注意的一件事是 stackcommand 以前工作过,但尽管所有的修补都不是 ghci 删除所有与 Haskell 有任何关系的文件后,我重新尝试运行 curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh 这第二次命令行工具出现错误,所以我不得不使用xcode-select --install 手动安装它们。重新运行 curl 后,我手动将环境文件的路径添加到我的 zsh 配置文件中: . "$HOME/.ghcup/env"\ echo '. $HOME/.ghcup/env' >> "$HOME/.zshrc" 这是 env 文件的内容:export PATH="$HOME/.cabal/bin:/Users/agnel/.ghcup/bin:$PATH" 现在一切似乎都正常了(我从未重新安装堆栈,但我想我可能会在学习该语言的基础知识时将其搁置一旁)。

我昨天安装了 Haskell 平台,但很难让它正常工作。

我做的第一步是:

    卷曲-sSLhttps://get.haskellstack.org/ |嘘 curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org |嘘

在第 1 步中,说明说要附加 /Users/.../.local/bin PATH 变量(我在 /etc/paths 中做过。在第 2 步中,脚本应该在安装时弹出一个对话框(但没有)必要的命令行工具。它还说在完成后重新运行脚本(我这样做了)。脚本还说我应该调整我的 PATH 变量,并在我的 shell 配置中源 /Users/.../.ghcup/env。它自动询问但没有失败找到了~/.bashrc 文件。(我在Mac 上读到,与linux 不同,在打开终端窗口时只加载.bash_profile,所以我手动调整了路径变量。我一直在搞乱路径变量每次我尝试运行“$ ghci”时,我都会收到相同的-bash: ghci: command not found 错误消息。如果有人有解决此问题的方法,我将非常感谢您的回答。如果没有,可以使用 Haskell 的有效发行版他们的计算机向我展示了他们的路径变量是什么样的? 谢谢!

【问题讨论】:

您是否尝试过只做export PATH=$PATH:/dir/to/ghci ?如果你回显 $PATH 并输入哪个 ghci(在其他步骤之前)它可以工作吗? 您能否编辑您的问题以添加 $PATH 的值并向我们展示您对配置文件所做的更改? 【参考方案1】:

在新的mac上用Catalina第一次安装Haskell平台后,我也得到了

~> ghci
zsh: command not found: ghci

在我的情况下起作用的是使用,而不是普通的ghci

stack ghci

为了恢复熟悉的行为,我在我的主目录中创建了一个名为 .zshrc 的文件,其中包含

alias ghci='stack ghci'

如果你打开一个新的终端,这个文件会自动执行。

我很想知道是否有其他解决方案。

【讨论】:

【参考方案2】:

一个简单的解决方案就是restart your terminal,你很高兴。

【讨论】:

【参考方案3】:

检查ghcup 命令是否有效。

    如果没有,请确保.zshrc 文件有执行 ghcup 的命令。它应该看起来像这样 -

[ -f "/Users/myusername/.ghcup/env" ] && source "/Users/myusername/.ghcup/env" # ghcup-env

如果文件存在,只需重启终端即可。 如果不是,使用 ghcup 将 GHC 设置为默认值 - 关注 this

【讨论】:

以上是关于-bash: ghci: 找不到命令(Haskell 交互式 shell,Haskell 安装)的主要内容,如果未能解决你的问题,请参考以下文章

如何让 ghci 查看我从 cabal 安装的软件包?

在 shell 脚本中编写 ghci 会话

GHCi“让”——它有啥作用?

ghci 仅显示类型类方法

Windows10下ghci无法使用的解决方案

func = elem [1..10]在GHCi中有效,但无法编译