Попытка установить Xmonad - пакет скрыт
Вероятно, это просто большой случай PICNIC, но когда я пытался установить Xmonad, я получаю сообщение об ошибке
Could not load module ‘XMonad’
It is a member of the hidden package ‘xmonad-0.15’.
You can run ‘:set -package xmonad’ to expose it.
(Note: this unloads all the modules in the current scope.)
Locations searched:
XMonad.hs
XMonad.lhs
XMonad.hsig
XMonad.lhsig
Как я могу заставить эти ошибки уйти? Я забыл какие-нибудь шаги? и т.п.
Я установил Haskell и Xmonad через:
ghcup install
ghcup set
ghcup install-cabal
cabal new-update
cabal new-install cabal-install
cabal new-install xmonad
cabal new-install xmonad-contrib --lib
# Other possibly relevant info
ghc-pkg list # does not show xmonad or -contrib
ghc --version # 8.6.3
cabal --version # 2.4.1.0
xmonad --version # 0.15
0 ответов
Не уверен, что это поможет вам, но я получал аналогичную ошибку при попытке перекомпилировать xmonad в OS X:
$ xmonad --recompile
XMonad will use ghc to recompile, because "/Users/scifisamurai/.xmonad/build" does not exist.
Error detected while loading xmonad configuration file: /Users/scifisamurai/.xmonad/xmonad.hs
Loaded package environment from /Users/scifisamurai/.ghc/x86_64-darwin-8.6.5/environments/default
xmonad.hs:10:1: error:
Could not load module ‘XMonad’
It is a member of the hidden package ‘xmonad-0.15’.
You can run ‘:set -package xmonad’ to expose it.
(Note: this unloads all the modules in the current scope.)
Use -v to see a list of the files searched for.
|
10 | import XMonad
| ^^^^^^^^^^^^^
xmonad.hs:20:1: error:
Could not load module ‘XMonad.StackSet’
It is a member of the hidden package ‘xmonad-0.15’.
You can run ‘:set -package xmonad’ to expose it.
(Note: this unloads all the modules in the current scope.)
Use -v to see a list of the files searched for.
|
20 | import qualified XMonad.StackSet as W
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Please check the file for errors.
Однако я использую версию кабалы 3.0.0. Однако я также использую new-install.
Для меня исправление заключалось в добавлении --lib в команду установки, как упоминалось здесь (хотя они просто используют
cabal install
скорее, чем
cabal new-install
): https://github.com/xmonad/xmonad/issues/199#issue-490757289
LIBRARY_PATH=/opt/X11/lib:$LIBRARY_PATH cabal new-install --lib xmonad xmonad-contrib
Затем попробуйте снова перекомпилировать:
$ xmonad --recompile
XMonad will use ghc to recompile, because "/Users/scifisamurai/.xmonad/build" does not exist.
XMonad recompilation process exited with success!
Надеюсь, это кому-то поможет.
Боковые примечания:
- Я также не вижу xmonad или xmonad-contrib в выводе
ghc-pkg list
. Здесь есть полезная информация: https://github.com/haskell/cabal/issues/6262#issuecomment-541124411 которой объясняется, почему это происходит, и для поиска библиотеки в package.db, которая действительно работала для меня:
$ ghc-pkg list -f ~/.cabal/store/ghc-8.6.5/package.db|egrep 'X11|xmonad'
X11-1.9.1
xmonad-0.15
xmonad-contrib-0.16
- Я устанавливаю LIBRARY_PATH в приведенной выше команде, поскольку X11 не удалось построить на OS X, когда я некоторое время назад пытался собрать xmonad, и это было исправление согласно: https://github.com/xmonad/X11/issues/24#issuecomment-47996753
Это может больше не понадобиться.
В моей виртуальной машине Arch Linux я использую pacman для установки xmonad, у которого нет вышеуказанных проблем. Если вы используете Linux, я бы подумал, что есть аналогичный способ установить это с помощью диспетчера пакетов. При этом клика должна работать...