问题
Whenever xmonad starts, restarts, or is recompiled, I get an 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
This doesn't stop it from starting, but I only see updates to xmonad or xmobar settings on system reboot. My current xmonad.hs is just
import XMonad
main = xmonad defaultConfig
and it still produces the error. Any attempts to import other modules give similar results. I have both xmonad
and xmonad-contrib
installed from the Arch repositories, so the modules should be properly in the ghc search path, right? I've tried reinstalling the packages from Cabal like some other sources have suggested, but it turned into a complete snafu, so I went back to the Arch repos, which ought to work. Kind of at a loss for where to go from here; any help would be greatly appreciated.
EDIT: ghc-pkg list xmonad
returns
/usr/lib/ghc-7.6.3/packag.conf.d
xmonad-0.11
/home/decalis/.ghc/x86_64-linux-7.6.3/package.conf.d
and ghc-pkg check
output is here: http://pastebin.com/BsCPMn8M. The issue is a little clearer after seeing that, but I still don't get why it's looking in ~/.cabal
when all of the packages and their dependencies were resolved from the Arch repos by pacman.
回答1:
In cases like this one of the first things to try is to "start from scratch", i.e. forget about all the local packages that you might have installed in the past.
To do this, wipe (or rename/move) ghc's package database, which is under ~/.ghc/$arch-$os-$ghcver
(such as ~/.ghc/i386-linux-7.6.3
). Or just remove ~/.ghc
altogether.
回答2:
For me the solution was to run ghc-pkg recache
since the ghc cache was just out of sync for some reason. It's worth trying before wiping the whole ghc database.
来源:https://stackoverflow.com/questions/22390858/xmonad-cant-find-module-xmonad-or-any-other