无法通过Nix安装darcs

时间:2019-01-15 12:49:52

标签: installation nix darcs

刚开始使用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初学者错误还是这是怎么回事?

1 个答案:

答案 0 :(得分:1)

Nix与“ apt”之类的软件包管理器有很大不同。派生工具(类似于程序包)被设计为在隔离的环境中构建,在该环境中,派生工具负责通过引用其他派生工具提供自己的依赖关系。因此,您无需显式安装任何程序即可构建软件包。

还要注意,尽管Nixpkgs使用Cabal库来构建Haskell软件包,但通过Nix安装软件包与使用cabal-install进行安装却大不相同。实际上,它更接近于Stack,因为Nixpkgs基于堆栈定义了haskellPackages,并且避免了阴谋式的依赖性解析。但是,它确实允许您使用Cabal求解器来检查依赖项是否与Cabal文件中指定的版本匹配。可以使用Nixpkgs中的doJailbreak功能禁用此检查。

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

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