使用nix

时间:2017-12-14 23:46:19

标签: haskell haskell-stack nix

在我的项目中,我使用的库依赖于两个C包:sqlite3libsqlite3-dev。我使用apt-get install安装它们,然后使用stack build构建项目,一切正常。

但是,stack build在与nix一起使用时失败,并显示错误消息“* Missing C library:sqlite3”。我知道nix环境是孤立的,我必须在那里安装它。我尝试使用nix-env -i sqlite3安装它,但它返回error: selector ‘sqlite3’ matches no derivations。它看起来在通道中缺失(使用nixpkgs-unstable)。

有没有什么方法可以在通道中缺少使用堆栈和nix的C库?

由于bug in IHaskell我正在使用nix,否则我只能使用堆栈。

1 个答案:

答案 0 :(得分:3)

您需要将sqlite添加到stack.yaml中的包部分,如下所示:

nix:
  enable: false
  packages:
    - sqlite

enable: false是存在的,因此默认情况下Stack不会尝试使用Nix构建。如果您需要此行为,请删除该行。

有一个例子here