Невозможно скомпилировать файл xmonad.hs

Я использую xmonad поверх системы на основе арки. Но после обновления я не могу скомпилировать файл xmonad.hs через

$ xmonad --recompile

Кажется, я получаю ошибку в каждом модуле xmonad, даже импорт XMonad, похоже, не работает. Если кто-то как-то исправил эту проблему, дайте мне знать.

Сообщения об ошибках:

Error detected while loading xmonad configuration file: 
/home/arya/.xmonad/xmonad.hs

xmonad.hs:2:1: error:
    Could not find module ‘XMonad’
    Use -v to see a list of the files searched for.
  |
2 | import XMonad
  | ^^^^^^^^^^^^^

xmonad.hs:3:1: error:
    Could not find module ‘XMonad.Config.Mate’
    Use -v to see a list of the files searched for.
  |
3 | import XMonad.Config.Mate
  | ^^^^^^^^^^^^^^^^^^^^^^^^^

xmonad.hs:5:1: error:
    Could not find module ‘XMonad.StackSet’
    Use -v to see a list of the files searched for.
  |
5 | import qualified XMonad.StackSet as W
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

xmonad.hs:8:1: error:
    Could not find module ‘XMonad.Hooks.ManageDocks’
    Use -v to see a list of the files searched for.
  |
8 | import XMonad.Hooks.ManageDocks
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

xmonad.hs:9:1: error:
    Could not find module ‘XMonad.Hooks.EwmhDesktops’
    Use -v to see a list of the files searched for.
  |
9 | import XMonad.Hooks.EwmhDesktops
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

xmonad.hs:10:1: error:
    Could not find module ‘XMonad.Layout.Minimize’
    Use -v to see a list of the files searched for.
   |
10 | import XMonad.Layout.Minimize
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Please check the file for errors.

[arya@localhost ~]$ Warning: Missing charsets in String to FontSet 
conversion
[arya@localhost ~]$ 
monad.hs:9:1: error:
    Could not find module ‘XMonad.Hooks.EwmhDesktops’
    Use -v to see a list of the files searched for.
  |
9 | import XMonad.Hooks.EwmhDesktops
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

xmonad.hs:10:1: error:
    Could not find module ‘XMonad.Layout.Minimize’
    Use -v to see a list of the files searched for.
   |
10 | import XMonad.Layout.Minimize
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Выход:

$ type -a ghc

ghc is /usr/local/bin/ghc
ghc is /usr/bin/ghc

Выход $ ghc-pkg list :

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

Вывод для pacman -Ql xmonad:

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

Какие у вас сообщения об ошибках, как вы устанавливали xmonad?

Cubic 01.05.2018 17:51

Странный. Это случилось со мной несколько раз, когда я пытался перекомпилировать с помощью привязки клавиш. После этого я попробовал его с терминала, и он работал нормально, и теперь привязка клавиш снова работает.

DarthFennec 01.05.2018 20:48

Я установил xmonad и xmonad -contrib через pacman. Я также попытался собрать xmonad со стеком и предоставить абсолютный путь к построенному xmonad в xsession, что, похоже, не решило проблему.

sidharth arya 02.05.2018 01:35

Может быть, связано? stackoverflow.com/questions/22390858/…

DarthFennec 02.05.2018 18:59

@DarthFennec связанных .. да. но ни одно из решений не работает.

sidharth arya 03.05.2018 22:13

Сколько у вас ghcs и какой из них находится в вашем PATH? Что говорит type -a ghc?

melpomene 06.05.2018 16:26

@melpomene я добавил вывод.

sidharth arya 06.05.2018 19:26

@sidhartharya Тогда, если вы установили xmonad с помощью pacman, он будет виден только /usr/bin/ghc (системный ghc), а не /usr/local/bin/ghc (тот, который вы получите, когда вы просто запустите ghc в командной строке).

melpomene 06.05.2018 19:44

@melpomene, так что я должен удалить / usr / local / bin / ghc ???

sidharth arya 07.05.2018 21:36

@sidhartharya Почему у вас вообще /usr/local/bin/ghc? Возможно, вы также можете установить XMonad в свой локальный ghc.

melpomene 07.05.2018 21:39

@melpomene понятия не имею. потому что стек и кабала устанавливают его в домашний каталог. это должно быть вещь pacman, или, может быть, я пытался собрать из исходников. Спасибо, хотя я попробую ваше решение.

sidharth arya 07.05.2018 23:45

Не похоже, что Xmonad установлен. Что на выходе pacman -Ql xmonad?

Chris Stryczynski 11.05.2018 10:43

@ChrisStryczynski добавил

sidharth arya 13.05.2018 23:55
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
13
1 929
2

Ответы 2

Вероятно, какая-то проблема с пакетом XMonad в Arch linux.

В качестве альтернативы вы можете попробовать pacman -s haskell-cabal и cabal install xmonad.

Я попробовал установить кабалу и установить стек. Я все еще не могу исправить проблему.

sidharth arya 06.05.2018 19:26

какой вывод ghc-pkg list?

Chris Stryczynski 06.05.2018 20:49

Я добавил вывод списка ghc-pkg

sidharth arya 07.05.2018 21:34

СЛАБО СВЯЗАННЫЙ,

При новой установке УБУНТУ 20.10 у меня возникла эта проблема, когда я установил xmonad через apt с sudo apt install xmonad. Я думаю, что это также установило xmonad-contrib, который находится здесь libghc-xmonad-contrib-dev, потому что он у меня уже был, когда я пытался установить его, чтобы посмотреть, исправлено ли оно. Что в конечном итоге исправило это, так это установка cabal xmonad и xmonad-contrib с cabal install xmonad, затем cabal install --lib xmonad-contrib, а также создание команды сборки в ~/.xmonad/build.

Содержимое ~/.xmonad/build:

ghc -package xmonad -package xmonad-contrib --make xmonad.hs -i -ilib -main-is main -fforce-recomp -o xmonad

Вот моя история команд, если это поможет:

 1912  ghc-pkg list # to check the output, just as in the question
 1913  cabal install xmonad
 1914  xmonad --recompile
 1915  cabal install xmonad-contrib
 1916  cabal install --lib xmonad-contrib # the previous line gave a warning, so I issued a corrected command.
 1917  xmonad --recompile
 1918  ghc -package xmonad ~/.xmonad/monad.hs
 1919  ghc -package xmonad ~/.xmonad/xmonad.hs # the previous line had a typo, so I had to issue the command again.
 1920  xmonad --recompile
 1921  nano .xmonad/build # when I tried the previous command, it said something about creating the following file, so I created it.
 1922  xmonad --recompile
 1923  chmod u+x .xmonad/build # when I tried the previous command, it complained about the file not being executable and recommended those permissions.
 1924  xmonad --recompile # worked!!!

Другие вопросы по теме