【发布时间】:2016-06-17 11:54:41
【问题描述】:
我正在尝试在我的 NixOS 中构建自己的 nix-shell 环境。我有 2 个 .nix 文件,default.nix 和 shell.nix,这是配置:
default.nix:
{ stdenv, haskellngPackages}:
let
env = haskellngPackages (p: with p; [
aeson
bytestring
conduit
snap
ghcjs
text
wai
warp
yaml
haskell.packages.lts-4_01.ghc
]);
in
stdenv.mkDerivation {
name = "RiziLab";
buildInputs = [
glpk
pcre
env
];
STACK_IN_NIX_EXTRA_ARGS
= " --extra-lib-dirs=${glpk}/lib"
+ " --extra-include-dirs=${pglpk}/include"
+ " --extra-lib-dirs=${pcre}/lib"
+ " --extra-include-dirs=${pcre}/include"
;
}
shell.nix:
{ pkgs ? (import <nixpkgs> {} ) }:
(import ./default.nix) {
stdenv = pkgs.stdenv;
haskellngPackages = pkgs.haskellngPackages;
}
但是当我做 nix-shell 时,我得到了这个错误:
error: undefined variable ‘glpk’
据我了解,default.nix 只是一个由 shell.nix、cmiiw 调用的函数。问题是:
- 我的代码有错误吗?
- 我使用了
{nixpkgs ? (import <nixpkgs> {} ) }和{pkgs ? (import <nixpkgs> {})},但仍然出现同样的错误,这两者有什么不同吗? - 可以排除 ghcwithPackages 吗?
【问题讨论】: