在NixOS中构建Haskell Stack示例时出现“ ghc-cabal:无此文件或目录”错误

营养餐

A)我正在尝试在NixOS(channels / nixos-18.03)上用Stack创建ii)Haskell项目。遵循用户指南中HelloWorld示例构建项目时,出现错误ghc-cabal: No such file or directory

$ stack new helloworld new-template
$ cd helloworld
$ sudo stack build
...
Running /run/current-system/sw/bin/make install in directory /root/.stack/programs/x86_64-linux/ghc-8.6.4.temp/ghc-8.6.4/ exited with ExitFailure 2
...
utils/ghc-cabal/dist-install/build/tmp/ghc-cabal-bindist: line 3: /root/.stack/programs/x86_64-linux/ghc-8.6.4.temp/ghc-8.6.4/utils/ghc-cabal/dist-install/build/tmp/ghc-cabal: No such file or directory
make[1]: *** [ghc.mk:990: install_packages] Error 127
make: *** [Makefile:51: install] Error 2

Error: Error encountered while installing GHC with
         make install
         run in /root/.stack/programs/x86_64-linux/ghc-8.6.4.temp/ghc-8.6.4/

       The following directories may now contain files, but won't be used by stack:
         - /root/.stack/programs/x86_64-linux/ghc-8.6.4.temp/
         - /root/.stack/programs/x86_64-linux/ghc-8.6.4/

B)反复地,我建立了/etc/nixos/configuration.nix文件,看起来像这样。在结果系统中,确实没有ghc-cabal二进制文件。cabal,但没有ghc-cabal

  environment.systemPackages = with pkgs; [
    wget vim emacs
    pkgs.firefoxWrapper pkgs.chromium

    stack
    haskellPackages.ghc
    haskellPackages.cabal-install
    haskellPackages.cabal2nix
    haskellPackages.hdevtools

    tree gnumake which binutils gcc clang coreutils gnutar
    tmux silver-searcher gitAndTools.gitFull
  ];

C)我还遵循了Stack的Nix Integration部分中的步骤但无济于事。

安装什么软件包ghc-cabal有之间的不匹配stackhaskellPackages.cabal-install我想念什么?

编辑

我做了一些挖掘,发现了一些有用的资源。特别是,本文指出,我的问题可能是由于未解决的动态库引起的。

确实,当查询加载的库中的二进制文件时,我得到以下结果。

$ ldd ~/.stack/programs/x86_64-linux/ghc-8.6.4.temp/ghc-8.6.4/utils/ghc-cabal/dist-install/build/tmp/ghc-cabal
    linux-vdso.so.1 (0x00007fff0ab01000)
    libm.so.6 => /nix/store/681354n3k44r8z90m35hm8945vsp95h1-glibc-2.27/lib/libm.so.6 (0x00007fe82c07f000)
    libHSCabal-2.4.0.1-ghc8.6.4.so => not found
    libHSprocess-1.6.5.0-ghc8.6.4.so => not found
    libHSpretty-1.1.3.6-ghc8.6.4.so => not found
    libHSparsec-3.1.13.0-ghc8.6.4.so => not found
    libHStext-1.2.3.1-ghc8.6.4.so => not found
    libHSmtl-2.2.2-ghc8.6.4.so => not found
    libHStransformers-0.5.6.2-ghc8.6.4.so => not found
    libHSdirectory-1.3.3.0-ghc8.6.4.so => not found
    libHSunix-2.7.2.2-ghc8.6.4.so => not found
    libHStime-1.8.0.2-ghc8.6.4.so => not found
    libHSfilepath-1.4.2.1-ghc8.6.4.so => not found
    libHSbinary-0.8.6.0-ghc8.6.4.so => not found
    libHScontainers-0.6.0.1-ghc8.6.4.so => not found
    libHSbytestring-0.10.8.2-ghc8.6.4.so => not found
    libHSdeepseq-1.4.4.0-ghc8.6.4.so => not found
    libHSarray-0.5.3.0-ghc8.6.4.so => not found
    libHSbase-4.12.0.0-ghc8.6.4.so => not found
    libHSinteger-gmp-1.0.2.0-ghc8.6.4.so => not found
    libHSghc-prim-0.5.3-ghc8.6.4.so => not found
    libHSrts-ghc8.6.4.so => not found
    libffi.so.7 => not found
    librt.so.1 => /nix/store/681354n3k44r8z90m35hm8945vsp95h1-glibc-2.27/lib/librt.so.1 (0x00007fe82c06d000)
    libutil.so.1 => /nix/store/681354n3k44r8z90m35hm8945vsp95h1-glibc-2.27/lib/libutil.so.1 (0x00007fe82c068000)
    libdl.so.2 => /nix/store/681354n3k44r8z90m35hm8945vsp95h1-glibc-2.27/lib/libdl.so.2 (0x00007fe82c063000)
    libpthread.so.0 => /nix/store/681354n3k44r8z90m35hm8945vsp95h1-glibc-2.27/lib/libpthread.so.0 (0x00007fe82c042000)
    libgmp.so.10 => not found
    libc.so.6 => /nix/store/681354n3k44r8z90m35hm8945vsp95h1-glibc-2.27/lib/libc.so.6 (0x00007fe82be8a000)
    /lib64/ld-linux-x86-64.so.2 => /nix/store/681354n3k44r8z90m35hm8945vsp95h1-glibc-2.27/lib64/ld-linux-x86-64.so.2 (0x00007fe82c219000)

我试图解决失踪库,通过增加haskellPackages.stdiohaskellPackages.stdf对configuration.nix。但是,由此产生了更多上游错误(例如:我无法将aeson添加为environment.systemPackages依赖项)。所以我还没有找到合适的组合。

CallStack (from HasCallStack):
  die', called at libraries/Cabal/Cabal/Distribution/Simple/Configure.hs:950:20 in Cabal-2.4.0.1:Distribution.Simple.Configure
  configureFinalizedPackage, called at libraries/Cabal/Cabal/Distribution/Simple/Configure.hs:460:12 in Cabal-2.4.0.1:Distribution.Simple.Configure
  configure, called at libraries/Cabal/Cabal/Distribution/Simple.hs:596:20 in Cabal-2.4.0.1:Distribution.Simple
  confHook, called at libraries/Cabal/Cabal/Distribution/Simple/UserHooks.hs:67:5 in Cabal-2.4.0.1:Distribution.Simple.UserHooks
  configureAction, called at libraries/Cabal/Cabal/Distribution/Simple.hs:178:19 in Cabal-2.4.0.1:Distribution.Simple
  defaultMainHelper, called at libraries/Cabal/Cabal/Distribution/Simple.hs:115:27 in Cabal-2.4.0.1:Distribution.Simple
  defaultMain, called at Setup.hs:2:8 in main:Main
Setup: Encountered missing dependencies:
aeson ==0.8.*, base ==4.7.*, binary ==0.7.*, text ==1.1.*
营养餐

所以,我解决了这个的帮助下基里尔Zaborskycommercialhaskell/stack问题线索错误的原因(在stack new和中stack build)是旧的Stack版本。具体来说,我的本地用户使用的堆栈(1.6.5)比root(1.9.3还旧

1.6.5版使用Cabal-2.0,从那时起Cabal(ex base-noprelude)使用领先的逗号引入了新功能,该功能在2.2附带的haskell / cabal#4953中实现因此,Stack无法使用新的格式功能来解析cabal文件。

详细信息在commercialhaskell/stack问题线程中升级本地用户的堆栈(nix-env --upgrade stack)可以解决此问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在bash脚本中查找命令仅导致目录出现“无此文件或目录”错误?

执行二进制文件时出现“无此文件或目录”错误

终端在打开时显示“无此文件或目录”

配置Nginx和uwsgi时出现“无此文件或目录”错误

GHC-mod在错误的目录中查找设置文件

Haskell ghc-mod失败并显示错误

错误:ENOENT:无此文件或目录,在ionic2中打开

在ASP.NET Core中构建docker:“无此文件或目录”错误

添加失败:构建docker映像时无此文件/目录

在ASP.NET Core中构建docker:“无此文件或目录”错误

在Opensuse 42.3上为haskell堆栈设置ghc-8.2.1时ghc完整性检查错误

尝试将csv从一个目录复制到另一个目录时出现HDFS“无此文件或目录”错误

当我在Docker容器中执行Shell脚本时,错误是“无此文件或目录”

为什么会出现“无此文件或目录”异常?

在构建时,Haskell堆栈会忽略-Wall -Werror cabal ghc-options标志

上载经过改造的文件时出现错误(无此文件或目录)

使用Applovin SDK和Google Admob中介进行构建时,如何解决“无此文件或目录”警告

从存储库中以编程方式安装pip会导致错误“无此文件或目录”

在python中使用“ cat”时出现“无此文件或目录”错误

如何在收到“无此文件或目录”错误消息时从brew中删除virtualbox

尝试包含头文件时,为什么会出现错误“无此文件或目录”?

在Windows上构建GHC时出错

尝试简单的单例示例时出现模板Haskell错误

执行二进制文件时出现“无此文件或目录”错误,还显示权限被拒绝

travis-ci:构建期间发生错误(无此文件或目录)

从远程实例到本地实例的scp时出现“无此文件或目录”错误

在Flask中使用os.chdir时出现错误“无此文件或目录”

尝试构建示例代码时出现编译错误

在 postgres 中运行 sql 文件时出错 | 无此文件或目录