-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。应该注意的一件事是 stack
command 以前工作过,但尽管所有的修补都不是 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 的命令。它应该看起来像这样 -
如果文件存在,只需重启终端即可。 如果不是,使用 ghcup 将 GHC 设置为默认值 - 关注 this[ -f "/Users/myusername/.ghcup/env" ] && source "/Users/myusername/.ghcup/env" # ghcup-env
【讨论】:
以上是关于-bash: ghci: 找不到命令(Haskell 交互式 shell,Haskell 安装)的主要内容,如果未能解决你的问题,请参考以下文章