gpt4 book ai didi

haskell - Yesod-平台安装因 Alex 包而失败

转载 作者:行者123 更新时间:2023-12-04 17:03:50 26 4
gpt4 key购买 nike

我正在尝试将 yesod 平台更新到最新版本。为此,我执行了以下命令:

cabal update
cabal install yesod-platform yesod-bin

我最终得到以下错误:

Resolving dependencies...
Configuring language-javascript-0.5.13...
cabal: The program alex version >=3.0.5 is required but the version found at /usr/bin/alex is version 3.0.1
cabal: Error: some packages failed to install:
hjsmin-0.1.4.6 depends on language-javascript-0.5.13 which failed to install
language-javascript-0.5.13 failed during the configure step. The exception was:
ExitFailure 1
yesod-platform-1.2.12.2 depends on language-javascript-0.5.13 which failed to install
yesod-static-1.2.4 depends on language-javascript-0.5.13 which failed to install

经过一番研究,我偶然发现了 following post其中提到我应该在执行 cabal install yesod-platform yesod-bin 之前手动安装更多依赖项命令。这些依赖项包括 alex在其他人中。不幸的是,这并没有帮助,因为当我再次尝试时遇到了同样的错误。

然后我注意到 alex 的版本在我的/usr/bin/alex手动安装alex后仍然是3.0.1版本3.0.5。经过一番研究后,似乎在安装该软件包时,它会将其安装在 $HOME/.cabal/bin 中那条路不在我的 $PATH 中变量,所以我将其添加到/etc/environment中条目 /usr/bin/ 之前的文件。重新启动服务器后,我再次尝试,但仍然遇到相同的错误。

即使我添加了 $HOME/.cabal/bin之前/usr/bin/ ,仍然在后者中寻找alex ,这似乎是问题所在。除了复制 alex 的可执行文件之外版本 3.0.5 来自 $HOME/.cabal/bin/usr/bin/手动(我担心这会给我带来一些问题,并且在将来想要更新时会感到头疼),我能做什么?这是真正的问题吗?

另外,作为一个附带问题,当我 echo $PATH ,$HOME 未解析为 /home/<myusername> (我看到 $HOME/... ),这正常吗?

编辑:尝试重命名 alexalex.bak/usr/bin/尝试“强制”ubuntu 从 $HOME/.cabal/bin 获取一个,但现在找不到任何名为 alex 的程序。为什么在 $HOME/.cabal/bin 中找不到它?

最佳答案

事实证明,问题只是常见的路径问题。Cabal 将新的可执行文件(如 alex)安装到

Linux 上的

/home/[you]/.cabal/bin(或 ~/.cabal/bin)

所以你应该先设置你的路径来查看那里。

您可以通过编写此临时内容

在执行任何 Haskell 操作之前,在终端中

export PATH=/home/[you]/.cabal/bin:$PATH 但通常你可能需要添加此内容到登录脚本。

最好的位置是 IMO /home/[you]/.profile (或 ~/.profile),因此编辑此文件(或创建它,如果它不存在)并将这些行添加到文件末尾:

if [ -d "$HOME/.cabal/bin" ] ; then
PATH="$HOME/.cabal/bin:$PATH"
fi

由于这个负责处理 $HOME var,所以它应该可以正常工作。当然这个只有重新登录后才有效。

您可以使用它进行测试

whereis alexalex --ver - 第一个也应该指向此路径,第二个应该打印出您当前的 alex 版本。

玩得开心。

PS:当然,在 Linux 中将 [you] 替换为你的名字;)

关于haskell - Yesod-平台安装因 Alex 包而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25019521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com