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

6
编辑:昨天我升级了macOS Catalina并用zsh替换了bash。需要注意的一点是,stack命令之前可以使用,但尽管进行了所有调整,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"现在似乎一切都正常了(我从未重新安装过stack,但我认为在学习语言基础知识时可以将其放在一边)。
我昨天安装了Haskell平台,但是在正确使用它方面遇到了困难。
我所做的第一步是:
  1. 运行以下命令安装Haskell Stack:curl -sSL https://get.haskellstack.org/ | sh
  2. 运行以下命令安装GHCup:curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
在第一步中,指令要求将/Users/.../.local/bin添加到PATH变量中(我在/etc/paths中完成了此操作)。在第二步中,当安装必要的命令行工具时,脚本应该弹出对话框(但没有弹出)。它还说要在完成后重新运行脚本(我已经这样做了)。脚本还说我应该调整我的PATH变量,并在我的shell配置中使用/Users/.../.ghcup/env。它尝试自动执行此操作,但未找到~/.bashrc文件而失败。 (我读到在Mac上与Linux相反,只有.bash_profile在打开终端窗口时加载,因此我手动在那里调整了路径变量。)我花了很长时间来搞清楚路径变量,每次尝试运行“$ ghci”时,我都会收到相同的-bash: ghci: command not found错误消息。如果有人有解决这个问题的方法,我将非常感激答案。如果没有,能否有一个在他们的计算机上有工作的Haskell分发的人向我展示他们的路径变量是什么样子的?谢谢!

1
你尝试过只执行 export PATH=$PATH:/dir/to/ghci 吗?如果在执行其他步骤之前,你使用 echo $PATH 和 which ghci 命令,它是否有效? - bob dylan
1
你能否编辑你的问题,添加$PATH的值并展示你对配置文件所做的更改? - tgdavies
3个回答

8

一个简单的解决方案就是 重新启动你的终端,然后你就可以开始工作了。


7
在新的Catalina操作系统上第一次安装Haskell平台后,我也遇到了以下问题:
~> ghci
zsh: command not found: ghci

在我的情况下有效的方法是,使用与纯ghci不同的方式,
stack ghci

为了恢复熟悉的行为,我在我的主目录中创建了一个名为 .zshrc 的文件,其中包含以下内容。
alias ghci='stack ghci'

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

我很想知道是否有另一种解决方案。


1

检查ghcup命令是否正常工作。

  1. 如果不行,请确保.zshrc文件中有执行ghcup命令的命令。它应该长这样 -

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

  • 如果文件存在,只需重新启动终端即可。
  • 如果仍然不起作用,请使用ghcup将GHC设置为默认值 - 参考此文

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接