每当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存储库安装了xmonad
和xmonad-contrib
,因此模块应该在ghc搜索路径中正确,对吧?我尝试重新安装Cabal的软件包,就像其他一些消息来源所建议的那样,但它变成了一个完整的snafu,所以我回到了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。看到这个问题之后,这个问题会更加清晰,但是当所有的软件包及其依赖关系都是通过pacman从Arch回购中解决时,我仍然无法理解为什么它会在~/.cabal
中查找。 / p>
答案 0 :(得分:3)
在这种情况下,首先要尝试的是“从头开始”,即忘记过去可能安装的所有本地软件包。
要执行此操作,请擦除(或重命名/移动)ghc的包数据库,该数据库位于~/.ghc/$arch-$os-$ghcver
下(例如~/.ghc/i386-linux-7.6.3
)。或者只删除~/.ghc
。
答案 1 :(得分:3)
对我来说,解决方案是运行ghc-pkg recache
,因为ghc缓存由于某种原因刚刚不同步。在擦除整个ghc数据库之前,值得尝试。