NixOS初学者:xixad和haskellmode在NixOS 14.04中

med*_*ans 5 xmonad nixos

我正在尝试在haskell中设置一个用于代码开发的NixOS VM,并且在基本安装xmonad和emacs时遇到了麻烦.我的相关部分/etc/nixos/configuration.nix

environment.systemPackages = with pkgs; [
    emacs
    emacs24Packages.haskellMode
    xlibs.xmessage
    haskellPackages.haskellPlatform.ghc
    haskellPackages.xmobar
    haskellPackages.xmonad
    haskellPackages.xmonadContrib
    haskellPackages.xmonadExtras
];
Run Code Online (Sandbox Code Playgroud)
  • xmonad:当我尝试编译代码时,xmonad抱怨它无法找到模块XMonad.Util.EZConfig.xmonad.hs使用ghc 编译是可以的,我也可以将模块加载到ghci中.在#nixos频道上,我被告知使用函数ghcWithPackages,但我无法解决问题.此外,我想首先理解为什么会出现这个问题,因为在我看来这是一个非常简单的用例.xmonad.hs我遇到的最小问题是:

    import XMonad
    import XMonad.Util.EZConfig
    
    main = xmonad $ defaultConfig
      { modMask = mod4Mask
      , terminal = "konsole"
      }
      `additionalKeysP`
      [ ("M-e", spawn "emacs")
      , ("M-f", spawn "firefox")
      ]
    
    Run Code Online (Sandbox Code Playgroud)
  • emacs:在安装包haskellmode之后(查看上面的configuration.nix),我无法在emacs中输入haskell-mode.

我把这些问题放在一起,因为我怀疑它们都是由于我对某些事情的根本不理解造成的,所以原因可能很常见.

grw*_*rwp 2

我现在无法添加评论......但我认为这是阴谋集团本地和全球存储库的问题。

正如我所看到的,“Nix 允许用户在不需要 root 权限的情况下安装软件包,并为每个用户提供自己的已安装软件包集视图。可以同时安装程序或库的多个版本。软件包升级是原子的并且可以回滚。”

也许您可以使用它ghc-pkg list来查看在 root 和普通用户中,软件包是否安装良好。

  • 感谢您的答复。最后我在 #nixos 上好心人的帮助下解决了这个问题。重点是我必须添加行“windowManager.xmonad.enableContribAndExtras = true;”。这是因为 ghc 中安装的软件包与 xmonad 所需的软件包分开,以便即使没有所有 haskell 基础设施也可以安装 xmonad (7认同)
  • @meditans - 如果您将此评论变成答案并将其标记为已接受,这将有助于明确问题已解决。 (5认同)