0

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によって呼び出される関数にすぎません。質問は:

  1. コードにエラーはありますか?
  2. {nixpkgs ? (import <nixpkgs> {} ) }どちらかを使用し{pkgs ? (import <nixpkgs> {})}ましたが、それでも同じエラーが発生しました。これら 2 つに違いはありますか?
  3. ghcwithPackages を除外してもよろしいですか?
4

1 に答える 1