【问题标题】:Failed to install darcs via Nix无法通过 Nix 安装 darcs
【发布时间】:2019-01-15 12:49:52
【问题描述】:

刚开始使用 Nix(2.2.1 版),在安装 darcs(2.14.1 版)时遇到了第一个问题:我收到以下错误消息(前面是调用堆栈):

Setup: Encountered missing dependencies:
base >=4.9 && <4.12,
network >=2.6 && <2.8,
stm >=2.1 && <2.5,
zip-archive ==0.3.*

我安装了 haskell 工具堆栈以及全局 ghc(尽管我认为构建 darcs 不需要两者)。

使用 'apt' 安装 darcs 也没有问题

我犯了一个经典的 nix 初学者错误还是这里发生了什么?

【问题讨论】:

    标签: installation nix darcs


    【解决方案1】:

    Nix 与像“apt”这样的包管理器非常不同。派生(类似于包)被设计为在隔离环境中构建,派生负责通过引用其他派生来提供自己的依赖项。因此,您无需显式安装任何内容即可构建包。

    还要注意,虽然 Nixpkgs 使用 Cabal 库来构建 Haskell 包,但通过 Nix 安装包与使用 cabal-install 安装完全不同。事实上它更接近 Stack,因为 Nixpkgs 定义了它的 haskellPackages 基于堆栈,它避免了 cabal 风格的依赖解析。但是,它确实允许您使用 Cabal 求解器来检查依赖项是否与 cabal 文件中指定的版本匹配。可以使用 Nixpkgs 中的 doJailbreak 函数禁用此检查。

    我认为我们不需要深入了解 Nixpkgs 中 Haskell 打包的细节,因为您应该能够从 nixos-18.09 频道获得预构建的 darcs。 nixos-unstable 中的 Nix 表达式会准确生成您的错误消息。

    我建议您使用最新的发布频道nixos-18.09,因为nixos-unstable 会定期中断。请参阅 Nix 手册以获取 changing your channel configuration.

    【讨论】:

    • 感谢您的回复。我尝试使用nixos-18.09 频道(为了确定,我还取消订阅了所有其他频道),但我仍然收到完全相同的错误消息。
    • 你运行nix-channel --update了吗?我认为手册应该对此有更突出的警告。
    猜你喜欢
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 2016-05-18
    • 2021-04-21
    • 2016-05-11
    • 2018-04-29
    • 2016-06-14
    • 2016-06-14
    相关资源
    最近更新 更多