【问题标题】:Xmonad can't find module XMonad (or any other)Xmonad 找不到模块 XMonad(或任何其他)
【发布时间】:2017-10-25 22:55:19
【问题描述】:

每当 xmonad 启动、重新启动或重新编译时,我都会收到一条 xmessage:

xmonad.hs:1:8:
Could not find module `XMonad'
 Perhaps you meant
    Monad (needs flag -package haskell98-2.0.0.2)
    CgMonad (needs flag -package ghc-7.6.3)
    DsMonad (needs flag -package ghc-7.6.3)
 Use -v to see a list of the files searched for

这不会阻止它启动,但我只会在系统重新启动时看到 xmonad 或 xmobar 设置的更新。我目前的 xmonad.hs 只是

import XMonad

main = xmonad defaultConfig

它仍然会产生错误。任何导入其他模块的尝试都会产生类似的结果。我从 Arch 存储库安装了 xmonadxmonad-contrib,所以这些模块应该正确地位于 ghc 搜索路径中,对吧?我已经尝试像其他一些来源所建议的那样从 Cabal 重新安装软件包,但它变成了一个完整的混乱,所以我回到了 Arch repos,它应该可以工作。有点不知所措;任何帮助将不胜感激。

编辑:ghc-pkg list xmonad 返回

/usr/lib/ghc-7.6.3/packag.conf.d
    xmonad-0.11
/home/decalis/.ghc/x86_64-linux-7.6.3/package.conf.d

ghc-pkg check 输出在这里:http://pastebin.com/BsCPMn8M。看到这个问题后问题就更清楚了,但我仍然不明白为什么它会在 ~/.cabal 中查找,因为 pacman 从 Arch 存储库中解决了所有包及其依赖项。

【问题讨论】:

  • 请显示ghc-pkg list xmonadghc-pkg check的输出
  • 添加到主要问题的底部。
  • 不,这看起来很正常。您是否安装了任何其他 ghc 版本?您是否创建了任何沙箱?尝试删除(或重命名)~/.cabal~/.ghc 目录,看看是否有帮助。检查您的$PATH 中是否还有其他xmonad 二进制文件。
  • 删除 ~/.ghc 似乎已经修复了所有异常行为。重新启动 XMonad 工作顺利,设置更新适当,ghc-pkg check 现在只抱怨黑线鳕(它总是有)。谢谢您的帮助!如果您想将其发布为答案,我会接受。
  • 如果我知道 为什么 可以解决问题!从您发布的数据来看,您的全局 xmonad 似乎没有被本地 xmonad 或类似的东西遮蔽。好的,我会发布一些关于此类问题的一般性建议。

标签: haskell archlinux xmonad


【解决方案1】:

对我来说,解决方案是运行ghc-pkg recache,因为 ghc 缓存由于某种原因刚刚不同步。在擦除整个 ghc 数据库之前值得一试。

【讨论】:

    【解决方案2】:

    在这种情况下,首先要尝试“从头开始”,即忘记您过去可能安装的所有本地软件包。

    为此,擦除(或重命名/移动)位于~/.ghc/$arch-$os-$ghcver 下的ghc 的包数据库(例如~/.ghc/i386-linux-7.6.3)。或者干脆删除~/.ghc

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多