我在使用 cabal-install
时遇到了许多问题:
1:每次我执行 cabal update
命令时,它都告诉我要执行 cabal install cabal-install
命令,所以我就执行了,然后再次运行 cabal update
命令,它又会提示同样的信息。
2:当我尝试从 hackage 安装 ghc-mod
时,它给我返回了以下错误:
[username@arch ~]$ cabal install ghc-mod
In order, the following will be installed:
haskell-src-exts-1.14.0 (reinstall) changes: pretty-1.1.1.1 -> 1.1.1.0
hlint-1.8.55 (reinstall)
ghc-mod-3.1.4
setup: The program happy version >=1.17 is required but it could not be found.
ghc-mod-3.1.4 depends on haskell-src-exts-1.14.0 which failed to install.
haskell-src-exts-1.14.0 failed during the configure step.
hlint-1.8.55 depends on haskell-src-exts-1.14.0 which failed to install.
所以问题是The program happy version >=1.17 is required but it could not be found.
,因此我使用cabal install happy
安装了happy 1.19.2
,没有出现问题。我再次尝试了
cabal install ghc-mod
,但仍然报错,所以我尝试了cabal install haskell-src-exts --reinstall --force-reinstalls
。它给了我以下错误:[username@arch ~]$ cabal install haskell-src-exts --reinstall --force-reinstalls
Configuring haskell-src-exts-1.14.0...
setup: The program happy version >=1.17 is required but it could not be found.
Failed to install haskell-src-exts-1.14.0
cabal: Error: some packages failed to install:
haskell-src-exts-1.14.0 failed during the configure step. The exception was:
ExitFailure 1
基本上需要 happy版本 >=1.17
,但找不到它。所以问题又出现在happy上了吗?
我还尝试从hackage下载tar.gz
文件并对.cabal
文件使用cabal install
,也修改了.cabal
文件以忽略依赖项,但仍然失败。
$HOME/.cabal/bin
添加到了我的$PATH中,但是它不起作用!只有在我用~
替换$HOME
后才开始工作——真的很有趣,因为我使用变量是担心波浪号不起作用。第二件事:即使系统看到了路径,并且很“高兴”,但cabal仍然没有工作!只有在我执行了这个答案中的命令之后,它才开始工作。我猜想cabal也不理解波浪号... - Hi-Angel:$HOME/.cabal/bin
(带有波浪号的变体)添加到$PATH中的/etc/environment
后,两种情况下的cabal都认为tilde或*$HOME*是路径的一部分(它也是有效的路径)。要使其正常工作,必须在/etc/environment
中编写到具有二进制文件的目录的完整路径。 - Hi-Angel