如何使用“安装Haskell”;“基础”;规格

如何使用“安装Haskell”;“基础”;规格,haskell,cabal,haskell-stack,Haskell,Cabal,Haskell Stack,我想运行一个需要特定版本的base包的程序。这个版本不是我的操作系统版本的Haskell附带的版本,因此我显然不能使用我的操作系统版本的Haskell conda以Python的方式与Haskell合作,为Haskell的特定版本创建一个环境,这将是一件好事,但事实并非如此。Haskell的sandbox特性也不允许指定base的版本,更不用说Haskell本身了 PS:令人沮丧的是,SE问题“”最终回答了另一个问题,而没有更改标题以反映它所回答的问题 在Haskell中有一个工具比conda更

我想运行一个需要特定版本的
base
包的程序。这个版本不是我的操作系统版本的Haskell附带的版本,因此我显然不能使用我的操作系统版本的Haskell

conda以Python的方式与Haskell合作,为Haskell的特定版本创建一个环境,这将是一件好事,但事实并非如此。Haskell的
sandbox
特性也不允许指定
base
的版本,更不用说Haskell本身了


PS:令人沮丧的是,SE问题“”最终回答了另一个问题,而没有更改标题以反映它所回答的问题

在Haskell中有一个工具比conda更有效,叫做。
base的版本
与安装的ghc版本硬连线。您可以先安装
stack
,它会自动安装您需要的ghc版本:

$ curl -sSL https://get.haskellstack.org/ | sh
此命令将自动安装由解析器指定的ghc-8.6.5,并根据需要为您提供所有软件包,包括

要获取
分解器
规格:

  • 如果所需的
    base
    版本不可用,请在中找到滚动条 单击表格底部并向右滚动,直到找到一个
  • 假设它是
    base-4.11.1.0
    ,然后查看该列的标题以获取更多信息 与此基础一起提供的ghc版本
  • 在本例中,ghc的以下版本之一:8.4.4、8.4.3、, 8.4.2将具有该版本的
    base
  • 在主页上找到 “每个GHC的最新LTS”列表中匹配的最新解析器 版本”
  • 在本例中,任何lts-12都适用于上述基座

  • 最新的
    每晚
    解析器将始终在stackage上提供最新的
    ghc
    base

    通常使用haskell stack来构建/。。。具有给定编译器、库等的项:您可以将其视为类似Python中的某种虚拟环境。base
    base
    的版本链接到GHC编译器的版本。如果您的操作系统的软件包管理器没有GHC的旧版本,您可以访问GHC网站并自行安装。如何将
    base>=4.8&&@user3673转换为我对答案所做的编辑:“How to go from base to resolver”(如何从base转换为resolver)我进一步编辑了这些步骤。但是,在遵循它们之后:
    $stack--resolver lts-6.35 ghc从项目外部运行,使用隐式全局项目配置使用命令行编译器版本不匹配上指定的resolver:lts-6.35,发现ghc-8.0.1(x86_64),但预期次要版本与ghc-7.10.3(x86_64)匹配(基于~/.stack/global project/stack.yaml中的解析器设置)。尝试运行“stack setup”要将正确的GHC安装到~/.stack/programs/x86_64-linux/
    中,如果您只想运行
    GHC
    ,则do
    堆栈--resolver lts-6.35 exec--GHC…
    通常用于处理完整的项目。因此,执行
    堆栈新项目名称
    ,并从那里开始。还要确保您拥有最新版本的
    堆栈
    ,不是操作系统提供的。
    $ stack --resolver lts-14.22 ghci