目前,我在使用与 nixpkg 一起安装在另一个依赖它的 Idris 包中的 Idris 包时遇到了一些问题。这两个软件包都在 Debian 系统上进行了测试,所以问题不在于 Idris 代码本身,而在于它们在 NixOS 系统上的安装方式。nix-env -f math.nix -i idris_math
我相信我可以通过调用where来成功安装第一个包,其中math.nix
定义为:
with import <nixpkgs> { };
stdenv.mkDerivation rec {
name = "idris_math";
idris = haskellPackages.idris;
buildDepends = [ idris ];
src = ./.;
preHook = ''
ln -sv ${idris}/share/x86_64-linux-ghc-8.0.1/${idris.name}/libs $PWD/libs
export IDRIS_LIBRARY_PATH=$PWD/libs
'';
configurePhase = ''
export TARGET=$out/lib/${idris.name}
'';
buildPhase = ''
${idris}/bin/idris --build *.ipkg
'';
installPhase = ''
${idris}/bin/idris --install *.ipkg
${idris}/bin/idris --clean *.ipkg
'';
}
然后我可以运行nix-env -q
并查看idris_math
已安装。第二个 nixpkg 看起来与 相同math.nix
,不同之处在于名称已更改并且buildDepends
行现在是buildDepends = [ idris idris_math ]
. 但是,当我尝试构建或安装此软件包时,我遇到了error: undefined variable 'idris_math'
. 有谁知道我做错了什么,或者解决这个问题的方法?