代码之家  ›  专栏  ›  技术社区  ›  Eben Kadile

每当我试图安装某些东西时,都会抛出堆栈错误

  •  0
  • Eben Kadile  · 技术社区  · 6 年前

    每当我试图用 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 upgrade 在这样做之前。

    1.5.1 x86_64 它在目录里 usr/bin/stack

    1 回复  |  直到 6 年前
        1
  •  4
  •   K. A. Buhr    6 年前

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

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

    1. 如果您的发行版有一个“stack”包,您可以安装它。这通常会使 stack /usr/bin/stack .

    2. haskellstack.org ,它将告诉您通过 curl curl -sSL https://get.haskellstack.org/ | sh . 默认情况下 堆栈 在里面 /usr/local/bin/stack .

    堆栈

    然而 ,如果以后按照使用 stack upgrade 命令,这将在您的主目录下安装升级的二进制文件 ~/.local/bin/stack . 中的旧版本 /usr/箱/栈

    因为很多人 ~/.local/bin/

    $ which stack
    /usr/local/bin/stack
    

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

    如果你试着跑步:

    $ ~/.local/bin/stack install hip
    

    这是可行的,然后这将证实这是你的问题。你得加上 $HOME/.local/bin 走你的路 选择正确版本的全局路径 堆栈 . (如果您以前没有做过这种事情,请搜索“addingdirectorypath”和您的Linux发行版。例如,这里有一些 instructions for Ubuntu 在Ask Ubuntu StackExchange网站上。)