我想让GHC 7.8.3成为默认的系统范围的Haskell编译器,而且我不想安装整个平台;这是我的configurarion.nix
文件的一部分:
{
environment.systemPackages = with pkgs; [
haskellPackages_ghc783_profiling.alex
haskellPackages_ghc783_profiling.happy
# ghc.ghc783 -- not sure about this one
haskellPackages_ghc783_profiling.ghc
haskellPackages_ghc783_profiling.cabalInstall
];
}
然而,版本7.6.3默认显示,我无法想象它来自哪里......
$ ghc --verion
$ The Glorious Glasgow Haskell Compilation System, version 7.6.3
我在Wiki pages找到了一些提示:
pkgs : {
packageOverrides = self : rec {
hsEnv = self.haskellPackages.ghcWithPackages (self : [
self.haskellPlatform
# add more packages here
#
# I tried to replace `self.haskellPlatform`
# with `self:ghc783`,
# with `self:haskellPackages.ghc_783_profiling.ghc`, and
# with `self:ghc`, but all that produces errors.
]);
};
}
那么,将7.8.3版本作为默认值的正确方法是什么?
答案 0 :(得分:1)
要在系统范围内使用特定的GHC版本,我使用模块like this one:
使用nixpkgs.config.packageOverrides
将haskellPackages
重命名为所需版本并添加haskell环境:
nixpkgs.config.cabal.libraryProfiling = true;
nixpkgs.config.packageOverrides = in_pkgs : rec
{
haskellPackages = in_pkgs.haskellPackages_ghc784_profiling;
hsEnv = in_pkgs.haskellPackages_ghc784_profiling.ghcWithPackages hsPkgs;
}
将hsPkgs
定义为包列表构造函数:
将hsEnv
添加到environment.systemPackages
:
environment.systemPackages = [ hsEnv ];
答案 1 :(得分:0)
也许您已将其安装在您的用户nix环境中?试试nix-env -q
。