Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 每当我尝试安装某些东西时,堆栈抛出错误_Haskell_Haskell Stack - Fatal编程技术网

Haskell 每当我尝试安装某些东西时,堆栈抛出错误

Haskell 每当我尝试安装某些东西时,堆栈抛出错误,haskell,haskell-stack,Haskell,Haskell Stack,每当我尝试使用堆栈安装某些东西时,例如$stack install hip,$stack install Gifcurry,以及其他几个软件包,它们都会抛出相同的错误: Downloaded lts-12.9 build plan. AesonException "Error in $.packages.cassava.constraints.flags['bytestring--lt-0_10_4']: Invalid flag name: \"bytestring--lt-0_10_4\""

每当我尝试使用
堆栈
安装某些东西时,例如
$stack install hip
$stack install Gifcurry
,以及其他几个软件包,它们都会抛出相同的错误:

Downloaded lts-12.9 build plan.
AesonException "Error in $.packages.cassava.constraints.flags['bytestring--lt-0_10_4']: Invalid flag name: \"bytestring--lt-0_10_4\""
这是我第一次尝试使用
stack
安装任何东西,所以我不知道该怎么办。在执行此操作之前,我确实运行了
$stack upgrade


堆栈版本是
1.5.1 x86_64
,它位于目录
usr/bin/Stack

我认为这是一个常见的问题,但要找到一个直接解决它的StackOverflow答案有点困难,所以这里有一个尝试

在Linux上,有两种主要的初始安装堆栈的方法:

  • 如果您的发行版有一个“堆栈”包,您可以安装它。这通常会将
    堆栈
    二进制文件放入
    /usr/bin/stack

  • 如果您按照
    haskellstack.org
    上的说明操作,它将告诉您通过
    curl
    检索安装脚本,并通过shell将其导入:
    curl-sSLhttps://get.haskellstack.org/ |sh
    。默认情况下,这会将
    stack
    放入
    /usr/local/bin/stack

  • 大多数人在他们的路径中已经有了这些目录,所以无论是哪种情况,他们在安装后运行
    stack
    都不会有任何问题

    但是,如果以后按照使用
    堆栈升级
    命令升级堆栈的说明进行操作,这将在主目录下的
    ~/.local/bin/Stack
    下安装升级的二进制文件。
    /usr/bin/stack
    /usr/local/bin/stack
    中的旧版本将保持不变

    由于许多人的路径中没有
    ~/.local/bin/
    ,他们可能会发现,在假定升级堆栈后尝试运行堆栈仍将运行旧版本。如果您运行:

    $ which stack
    /usr/local/bin/stack
    
    看到路径是全局安装的版本,而不是主目录下的某个版本,如
    /home/xxx/.local/bin/stack
    ,那么您可能仍在运行旧版本

    如果您尝试跑步:

    $ ~/.local/bin/stack install hip
    

    这是有效的,那么这将证实这是你的问题。您必须在全局路径之前将
    $HOME/.local/bin
    添加到您的路径中,才能选择
    堆栈的正确版本。(如果您以前没有做过这种事情,请搜索“添加目录路径”和您的Linux发行版。例如,这里是Ask Ubuntu StackExchange站点上的一些。)

    我认为这是一个常见问题,但要找到直接解决它的StackOverflow答案有点困难,所以这里有一个尝试

    在Linux上,有两种主要的初始安装堆栈的方法:

  • 如果您的发行版有一个“堆栈”包,您可以安装它。这通常会将
    堆栈
    二进制文件放入
    /usr/bin/stack

  • 如果您按照
    haskellstack.org
    上的说明操作,它将告诉您通过
    curl
    检索安装脚本,并通过shell将其导入:
    curl-sSLhttps://get.haskellstack.org/ |sh
    。默认情况下,这会将
    stack
    放入
    /usr/local/bin/stack

  • 大多数人在他们的路径中已经有了这些目录,所以无论是哪种情况,他们在安装后运行
    stack
    都不会有任何问题

    但是,如果以后按照使用
    堆栈升级
    命令升级堆栈的说明进行操作,这将在主目录下的
    ~/.local/bin/Stack
    下安装升级的二进制文件。
    /usr/bin/stack
    /usr/local/bin/stack
    中的旧版本将保持不变

    由于许多人的路径中没有
    ~/.local/bin/
    ,他们可能会发现,在假定升级堆栈后尝试运行堆栈仍将运行旧版本。如果您运行:

    $ which stack
    /usr/local/bin/stack
    
    看到路径是全局安装的版本,而不是主目录下的某个版本,如
    /home/xxx/.local/bin/stack
    ,那么您可能仍在运行旧版本

    如果您尝试跑步:

    $ ~/.local/bin/stack install hip
    

    这是有效的,那么这将证实这是你的问题。您必须在全局路径之前将
    $HOME/.local/bin
    添加到您的路径中,才能选择
    堆栈的正确版本。(如果您以前没有做过这种事情,请搜索“添加目录路径”和您的Linux发行版。例如,下面是Ask Ubuntu StackExchange站点上的一些。)

    如果您运行
    哪个堆栈和
    堆栈--version
    ,它会显示什么?一个潜在的问题是
    堆栈升级
    通常在
    ~/.local/bin/stack
    中安装新版本,但您可能在
    /usr/local/bin/stack
    或类似的地方使用旧版本。@K.A.Buhr版本是
    1.5.1 x86\u 64
    ,文件夹是
    usr/bin/stack
    ,您需要更新版本的堆栈(1.6.1或以上).Cf.@duplode谢谢,如果不是通过
    堆栈升级
    ,我如何获得新版本?
    堆栈升级
    ~/.local/bin
    中安装堆栈。似乎全局安装的版本比本地安装的版本要早,所以您可能需要查看路径。如果运行
    哪个堆栈
    堆栈--version
    ,它显示了什么?一个潜在的问题是,
    堆栈升级
    通常在
    ~/.local/bin/stack
    中安装新版本,但您可能在
    /usr/local/bin/stack
    或类似的地方使用旧版本。@K.A.Buhr版本是
    1.5.1 x86\u 64
    ,文件夹是
    usr/bin/stack
    较新版本的Stack(1.6.1或更高版本)。Cf.@duplode谢谢,如果不是通过
    堆栈升级
    堆栈升级
    ~/.local/bin
    中安装Stack。看起来