GHC 8.4.2无法导入System.Random

时间:2018-05-13 00:33:35

标签: ubuntu haskell random ghc symlink

我正在使用Ubuntu 18.04" Bionic Beaver",我有一个名为BurgerKing.hs的文件,可在System.Random包中导入random

GHC 8.0.2,属于Ubuntu' universe'存储库,可以编译它:

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属于Herbert V. Riedel的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.2cabal-install-2.2,但问题仍然存在。

编辑2 :我尝试清除旧版ghccabal,然后通过{{1}重新安装ghc-8.4.2cabal-install-2.2但问题仍然存在。

1 个答案:

答案 0 :(得分:0)

我以某种丑陋的方式解决了这个问题。清除旧版ghccabal后,我执行了以下操作:

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 ...