无法编译 xmonad.hs 文件

sid*_*rya 5 haskell window-managers xmonad archlinux

我在基于 arch 的系统上使用 xmonad。但升级后我无法通过编译我的 xmonad.hs 文件

\n\n

$ xmonad --recompile

\n\n

我似乎在 xmonad 的每个模块上都遇到错误,甚至 import XMonad 似乎也不起作用。\n如果有人以某种方式解决了这个问题,请告诉我。

\n\n

错误消息:

\n\n
Error detected while loading xmonad configuration file: \n/home/arya/.xmonad/xmonad.hs\n\nxmonad.hs:2:1: error:\n    Could not find module \xe2\x80\x98XMonad\xe2\x80\x99\n    Use -v to see a list of the files searched for.\n  |\n2 | import XMonad\n  | ^^^^^^^^^^^^^\n\nxmonad.hs:3:1: error:\n    Could not find module \xe2\x80\x98XMonad.Config.Mate\xe2\x80\x99\n    Use -v to see a list of the files searched for.\n  |\n3 | import XMonad.Config.Mate\n  | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nxmonad.hs:5:1: error:\n    Could not find module \xe2\x80\x98XMonad.StackSet\xe2\x80\x99\n    Use -v to see a list of the files searched for.\n  |\n5 | import qualified XMonad.StackSet as W\n  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nxmonad.hs:8:1: error:\n    Could not find module \xe2\x80\x98XMonad.Hooks.ManageDocks\xe2\x80\x99\n    Use -v to see a list of the files searched for.\n  |\n8 | import XMonad.Hooks.ManageDocks\n  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nxmonad.hs:9:1: error:\n    Could not find module \xe2\x80\x98XMonad.Hooks.EwmhDesktops\xe2\x80\x99\n    Use -v to see a list of the files searched for.\n  |\n9 | import XMonad.Hooks.EwmhDesktops\n  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nxmonad.hs:10:1: error:\n    Could not find module \xe2\x80\x98XMonad.Layout.Minimize\xe2\x80\x99\n    Use -v to see a list of the files searched for.\n   |\n10 | import XMonad.Layout.Minimize\n   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nPlease check the file for errors.\n\n[arya@localhost ~]$ Warning: Missing charsets in String to FontSet \nconversion\n[arya@localhost ~]$ \nmonad.hs:9:1: error:\n    Could not find module \xe2\x80\x98XMonad.Hooks.EwmhDesktops\xe2\x80\x99\n    Use -v to see a list of the files searched for.\n  |\n9 | import XMonad.Hooks.EwmhDesktops\n  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nxmonad.hs:10:1: error:\n    Could not find module \xe2\x80\x98XMonad.Layout.Minimize\xe2\x80\x99\n    Use -v to see a list of the files searched for.\n   |\n10 | import XMonad.Layout.Minimize\n   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出:

\n\n

$ type -a ghc

\n\n
ghc is /usr/local/bin/ghc\nghc is /usr/bin/ghc\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出\n $ ghc-pkg list\n:

\n\n
 /usr/local/haskell/ghc-8.2.2-x86_64/lib/ghc-8.2.2/package.conf.d\n    Cabal-2.0.1.0\n    array-0.5.2.0\n    base-4.10.1.0\n    binary-0.8.5.1\n    bytestring-0.10.8.2\n    containers-0.5.10.2\n    deepseq-1.4.3.0\n    directory-1.3.0.2\n    filepath-1.4.1.2\n    (ghc-8.2.2)\n    ghc-boot-8.2.2\n    ghc-boot-th-8.2.2\n    ghc-compact-0.1.0.0\n    ghc-prim-0.5.1.1\n    ghci-8.2.2\n    haskeline-0.7.4.0\n    hoopl-3.10.2.2\n    hpc-0.6.0.3\n    integer-gmp-1.0.1.0\n    pretty-1.1.3.3\n    process-1.6.1.0\n    rts-1.0\n    template-haskell-2.12.0.0\n    terminfo-0.4.1.0\n    time-1.8.0.2\n    transformers-0.5.2.0\n    unix-2.7.2.2\n    xhtml-3000.2.2\n
Run Code Online (Sandbox Code Playgroud)\n\n

pacman -Ql xmonad 的输出:

\n\n
xmonad /usr/\nxmonad /usr/bin/\nxmonad /usr/bin/xmonad\nxmonad /usr/lib/\nxmonad /usr/lib/ghc-8.2.2/\nxmonad /usr/lib/ghc-8.2.2/site-local/\nxmonad /usr/lib/ghc-8.2.2/site-local/xmonad-0.13/\nxmonad /usr/lib/ghc-8.2.2/site-local/xmonad-0.13/Paths_xmonad.dyn_hi\nxmonad /usr/lib/ghc-8.2.2/site-local/xmonad-0.13/XMonad.dyn_hi\nxmonad /usr/lib/ghc-8.2.2/site-local/xmonad-0.13/XMonad/\nxmonad /usr/lib/ghc-8.2.2/site-local/xmonad-0.13/XMonad/Config.dyn_hi\nxmonad /usr/lib/ghc-8.2.2/site-local/xmonad-0.13/XMonad/Core.dyn_hi\nxmonad /usr/lib/ghc-8.2.2/site-local/xmonad-0.13/XMonad/Layout.dyn_hi\nxmonad /usr/lib/ghc-8.2.2/site-local/xmonad-0.13/XMonad/Main.dyn_hi\nxmonad /usr/lib/ghc-8.2.2/site-local/xmonad-0.13/XMonad/ManageHook.dyn_hi\nxmonad /usr/lib/ghc-8.2.2/site-local/xmonad-0.13/XMonad/Operations.dyn_hi\nxmonad /usr/lib/ghc-8.2.2/site-local/xmonad-0.13/XMonad/StackSet.dyn_hi\nxmonad /usr/lib/libHSxmonad-0.13-K842KXy8eLK2djQHd55ZyZ-ghc8.2.2.so\nxmonad /usr/share/\nxmonad /usr/share/doc/\nxmonad /usr/share/doc/xmonad/\nxmonad /usr/share/doc/xmonad/LICENSE\nxmonad /usr/share/haskell/\nxmonad /usr/share/haskell/register/\nxmonad /usr/share/haskell/register/xmonad.sh\nxmonad /usr/share/haskell/unregister/\nxmonad /usr/share/haskell/unregister/xmonad.sh\nxmonad /usr/share/licenses/\nxmonad /usr/share/licenses/xmonad/\nxmonad /usr/share/licenses/xmonad/LICENSE\nxmonad /usr/share/man/\nxmonad /usr/share/man/man1/\nxmonad /usr/share/man/man1/xmonad.1.gz\nxmonad /usr/share/pixmaps/\nxmonad /usr/share/pixmaps/xmonad.svg\nxmonad /usr/share/xmonad/\nxmonad /usr/share/xmonad/man/\nxmonad /usr/share/xmonad/man/xmonad.1\nxmonad /usr/share/xmonad/man/xmonad.1.html\nxmonad /usr/share/xmonad/man/xmonad.hs\nxmonad /usr/share/xsessions/\nxmonad /usr/share/xsessions/xmonad.desktop\n
Run Code Online (Sandbox Code Playgroud)\n

Chr*_*ski 0

可能是 Arch linux 上的 XMonad 软件包存在一些问题。

作为替代方案,您可以尝试pacman -s haskell-cabalcabal install xmonad