Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installing Cabal has missing modules

Tags:

haskell

cabal

My ghc install was out of date so I decided to reinstall ghc and cabal to hopefully fix some problems. I started out following the steps here. GHC is now version 7.8.3.

I then removed ~/.cabal and tried to install using the steps but it fails. So I removed .cabal again and tried the steps here but when I run sh bootstrap.sh it runs into missing modules:

Using local tarball for parsec-3.1.6.
[1 of 1] Compiling Main             ( Setup.hs, Setup.o )
Linking Setup ...
Configuring parsec-3.1.6...
Building parsec-3.1.6...
Preprocessing library parsec-3.1.6...

Text/Parsec/Prim.hs:80:8:
Could not find module ‘Control.Monad.Trans’
There are files missing in the ‘mtl-2.2.1’ package,
try running 'ghc-pkg check'.
Use -v to see a list of the files searched for.

Text/Parsec/Prim.hs:81:8:
Could not find module ‘Control.Monad.Identity’
There are files missing in the ‘mtl-2.2.1’ package,
try running 'ghc-pkg check'.
Use -v to see a list of the files searched for.

Text/Parsec/Prim.hs:83:8:
Could not find module ‘Control.Monad.Reader.Class’
There are files missing in the ‘mtl-2.2.1’ package,
try running 'ghc-pkg check'.
Use -v to see a list of the files searched for.

Text/Parsec/Prim.hs:84:8:
Could not find module ‘Control.Monad.State.Class’
There are files missing in the ‘mtl-2.2.1’ package,
try running 'ghc-pkg check'.
Use -v to see a list of the files searched for.

Text/Parsec/Prim.hs:85:8:
Could not find module ‘Control.Monad.Cont.Class’
There are files missing in the ‘mtl-2.2.1’ package,
try running 'ghc-pkg check'.
Use -v to see a list of the files searched for.

Text/Parsec/Prim.hs:86:8:
Could not find module ‘Control.Monad.Error.Class’
There are files missing in the ‘mtl-2.2.1’ package,
try running 'ghc-pkg check'.
Use -v to see a list of the files searched for.

Text/Parsec/Text.hs:19:18:
Could not find module ‘Data.Text’
There are files missing in the ‘text-1.2.0.0’ package,
try running 'ghc-pkg check'.
Use -v to see a list of the files searched for.

Text/Parsec/Text/Lazy.hs:19:18:
Could not find module ‘Data.Text.Lazy’
There are files missing in the ‘text-1.2.0.0’ package,
try running 'ghc-pkg check'.
Use -v to see a list of the files searched for.

Error during cabal-install bootstrap:
Building the parsec package failed.

When I run ghc-pkg check I get a WHOLE lot of stuff like this:

cannot find any of ["libHSOpenGLRaw-1.5.0.0.a","libHSOpenGLRaw-1.5.0.0.p_a","libHSOpenGLRaw-1.5.0.0-ghc7.8.3.so","libHSOpenGLRaw-1.5.0.0-ghc7.8.3.dylib","HSOpenGLRaw-1.5.0.0-ghc7.8.3.dll"] on library path
 Warning: haddock-interfaces: /usr/local/share/doc/x86_64-linux-ghc-7.8.3/Cabal-1.21.1.0/html/Cabal.haddock doesn't exist or isn't a file
Warning: haddock-html: /usr/local/share/doc/x86_64-linux-ghc-7.8.3/Cabal-1.21.1.0/html doesn't exist or isn't a directory

and then this:

The following packages are broken, either because they have a problem
listed above, or because they depend on a broken package.
text-1.1.0.1
Cabal-1.20.0.2
zlib-0.5.4.1
contravariant-1.2
void-0.6.1
netwire-5.0.0
semigroups-0.15.3
unordered-containers-0.2.5.0
transformers-compat-0.3.3.4
exceptions-0.6.1
MonadRandom-0.3
mtl-2.2.1
transformers-0.4.1.0
cpphs-1.18.5
polyparse-1.9
nats-0.2
hashable-1.2.2.0
OpenGL-2.9.2.0
text-1.2.0.0
tagged-0.7.2
stb-image-0.2.1
split-0.2.2
reflection-1.5.1
random-1.0.1.1
primitive-0.5.3.0
prelude-extras-0.4
parallel-3.2.0.4
bitmap-0.0.2
bindings-DSL-1.0.21
GLURaw-1.4.0.1
OpenGLRaw-1.5.0.0
like image 704
Jake Sellers Avatar asked Oct 09 '14 06:10

Jake Sellers


2 Answers

You can either use ghc-pkg unregister on each of the broken packages to clean them out properly, or possibly blow away the whole ~/.ghc folder and start again. You may need to use --force to avoid having to respect the dependency order of the packages.

like image 165
GS - Apologise to Monica Avatar answered Sep 28 '22 05:09

GS - Apologise to Monica


Did you also remove ~/.ghc when you removed ~/.cabal? If not, I suggest you try that, since if I understand correctly, the first may contain references to packages installed in the second.

like image 41
Dominique Devriese Avatar answered Sep 28 '22 07:09

Dominique Devriese