GHC 8.4.2 не может импортировать System.Random - PullRequest
0 голосов
/ 13 мая 2018

Я использую Ubuntu 18.04 "Bionic Beaver", и у меня есть файл с именем BurgerKing.hs, который импортирует System.Random в пакете random.

GHC 8.0.2, который находится в репозитории Ubuntu «вселенная», может скомпилировать его:

ndos@ndos-desktop:~/Haskell$ ghc BurgerKing.hs -O2
[1 of 1] Compiling Main             ( BurgerKing.hs, BurgerKing.o )

BurgerKing.hs:14:1: warning: [-Wtabs]
    Tab character found here, and in 171 further locations.
    Please use spaces instead.
Linking BurgerKing ...

Но GHC 8.4.2, который находится под PPA Герберта В. Риделя и связан через символическую ссылку, не может скомпилировать его:

ndos@ndos-desktop:~/Haskell$ ./bin/ghc BurgerKing.hs -O2
[1 of 1] Compiling Main             ( BurgerKing.hs, BurgerKing.o )

BurgerKing.hs:10:1: error:
    Could not find module ‘System.Random’
    Use -v to see a list of the files searched for.
   |
10 | import System.Random
   | ^^^^^^^^^^^^^^^^^^^^

Почему?

РЕДАКТИРОВАТЬ: Я попытался переустановить PPA, ghc-8.4.2 и cabal-install-2.2, но проблема остается.

РЕДАКТИРОВАТЬ 2: Я попытался очистить старые версии ghc и cabal, а затем переустановить ghc-8.4.2 и cabal-install-2.2 через sudo apt-get install --reinstall, но проблема остается.

1 Ответ

0 голосов
/ 13 мая 2018

Я решил проблему несколько уродливо.После того, как я удалил старые версии ghc и cabal, я сделал следующее:

ndos@ndos-desktop:/usr/bin$ sudo ln -s /opt/ghc/bin/ghc
ndos@ndos-desktop:/usr/bin$ sudo ln -s /opt/ghc/bin/ghci

Так что cabal найдет ghc, и пакет random может быть успешно загружен:

ndos@ndos-desktop:~/Haskell$ ./bin/cabal install random
Resolving dependencies...
Configuring random-1.1...
Building random-1.1...
Installed random-1.1

И BurgerKing.hs хорошо компилируется:

ndos@ndos-desktop:~/Haskell$ ghc BurgerKing.hs -O2
[1 of 1] Compiling Main             ( BurgerKing.hs, BurgerKing.o )

BurgerKing.hs:14:1: warning: [-Wtabs]
    Tab character found here, and in 171 further locations.
    Please use spaces instead.
   |
14 |         | Menu {price :: Int, name :: String, category :: MenuCategory}
   | ^^^^^^^^
Linking BurgerKing ...
...