【问题标题】:NixOS beginner: xmonad and haskellmode in NixOS 14.04NixOS 初学者:NixOS 14.04 中的 xmonad 和 haskellmode
【发布时间】:2014-07-07 13:38:30
【问题描述】:

我正在尝试在 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
];
  • xmonad:当我尝试编译代码时,xmonad 抱怨它找不到模块 XMonad.Util.EZConfig。 用 ghc 编译 xmonad.hs 是可以的,我还可以将模块加载到 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")
      ]
    
  • emacs:安装包haskellmode后(查看上面的configuration.nix),我无法在emacs中进入haskell-mode。

我将这些问题放在一起,因为我怀疑它们都是由代表我对某事的根本不理解引起的,因此原因可能很普遍。

【问题讨论】:

    标签: xmonad nixos


    【解决方案1】:

    只需添加

        windowManager.xmonad.enableContribAndExtras = true;
    

        /etc/nixos/configuration.nix
    

    然后通过您的 .xsession 文件以通常的方式启动 xmonad

    【讨论】:

      【解决方案2】:

      我现在无法添加评论...但我认为这是 cabal 本地和全局存储库的问题。

      如我所见,“Nix 允许用户安装包而不需要 root 权限,并为每个用户提供对已安装包集的自己的视图。可以使用多个版本的程序或库同时安装。包升级是原子的,可以回滚。"

      也许您可以使用ghc-pkg list 来查看是否以root 和普通用户身份安装了软件包。

      【讨论】:

      • 感谢您的回复。最后,我在#nixos 上好心人的帮助下解决了这个问题。关键是我必须添加行windowManager.xmonad.enableContribAndExtras = true;。这是因为安装在 ghc 中的软件包与 xmonad 所需的软件包是分开的,即使没有所有 haskell 基础设施也可以安装 xmonad
      • @meditans - 如果您将此评论转化为答案并将其标记为已接受,这将有助于明确问题已解决。
      猜你喜欢
      • 2018-09-16
      • 2014-12-07
      • 2020-04-06
      • 1970-01-01
      • 2016-06-17
      • 2021-12-25
      • 2021-02-26
      • 2016-06-13
      • 1970-01-01
      相关资源
      最近更新 更多