NixOS で独自の nix-shell 環境を構築しようとしています。default.nix と shell.nix の 2 つの .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> {})}
ましたが、それでも同じエラーが発生しました。これら 2 つに違いはありますか?- ghcwithPackages を除外してもよろしいですか?