无法在尼克斯岛安装 GHC



我在vm上安装了最低版本的nixos,然后安装一些pkg,比如i3、firefox、代码。。。

但是当我想安装haskell的ghc编译器时,我遇到了一个问题

我使用官方网站上的ghcup来安装haskell生态系统它需要一些需求,比如python3、gcc,。。。。,我安装了所有的

我成功安装了ghcup,但当我想安装ghc时发生此错误:

checking for -ar ... no
checkinf for ar ... no
configure: error: cannot find ar in your PATH, no idea how to make a library

我安装了一些类似binutils的pkg,但错误仍然存在。

到目前为止,ghcup在NixOS上不起作用。我确实打开了一个与此相关的上游问题:https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/174

如果你想在Nix上安装ghc,你有几个选项:

  • 使用通过nixpkgs提供的:
❯ nix-shell -p ghc
❯ ghc --version                                                                                                                                                                                                                     
The Glorious Glasgow Haskell Compilation System, version 8.10.7

如果您想要GHC版本,而您正在使用的nixpkgs中不存在该版本,则必须使用具有适当版本的修订集。有几种方法可以找到它:

  • 检查Nix软件包搜索页面中是否有可用版本:https://search.nixos.org/packages
  • 在nix软件包版本中搜索ghc:https://lazamar.co.uk/nix-versions/查询示例:https://lazamar.co.uk/nix-versions/?channel=nixos-19.09&包装=ghc
  • 使用nixhub查找正确的修订版:https://www.nixhub.io/
  • 使用程绍创建的列表查找版本:https://github.com/TerrorJack/old-ghc-nix

我主要使用上面的第二种方法。假设我想要GHC 8.10.4,我可以从那里的搜索中找到修订集。一旦我有了它,我就创建一个shell.nix文件,如下所示:

let
  pkgs = import (builtins.fetchTarball {
    url =
      "https://github.com/NixOS/nixpkgs/archive/9986226d5182c368b7be1db1ab2f7488508b5a87.tar.gz";
  }) { };
in pkgs.stdenv.mkDerivation {
  name = "my-project";
  buildInputs = [ pkgs.zlib pkgs.ghc ];
}

然后你可以做以下事情:

$ nix-shell -v
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.10.4

请注意,除了上面使用的nix-shell之外,您还可以使用其他技术。

相关内容

  • 没有找到相关文章

最新更新