I'd like to do some graphing in my Haskell program, but when I try to install plot I get the following error.
Preprocessing library plot-0.2.3.4...
lib/Graphics/Rendering/Plot/Figure/Simple.hs:37:8:
Could not find module ‘Numeric.Container’
Use -v to see a list of the files searched for.
lib/Graphics/Rendering/Plot/Types.hs:25:8:
Could not find module ‘Data.Packed.Vector’
Use -v to see a list of the files searched for.
lib/Graphics/Rendering/Plot/Types.hs:26:8:
Could not find module ‘Data.Packed.Matrix’
Use -v to see a list of the files searched for.
cabal: Error: some packages failed to install:
plot-0.2.3.4 failed during the building phase. The exception was:
ExitFailure 1
Following this issue I updated hmatrix to version 0.17.0.1 but still get the same error. Any ideas?
Are you managing the project with cabal, or are you just installing into the global package space?
I would move to either using cabal or stack to manage the dependencies.
FWIW I've verified that plot-0.2.3.4 will compile with hmatrix-0.16.1.5 using the stack resolver lts-3.7 so I don't think it's a problem with hmatrix.
If you are using cabal, post your cabal file and we can figure out how to make it work. Otherwise, I would recommend creating a stack project, eg.
run stack new project-name
edit project-name.cabal and add plot to the build-depends: fields
run stack build
Configuring hmatrix-0.16.1.5...
setup-Simple-Cabal-1.22.4.0-x86_64-linux-ghc-7.10.2: Missing dependencies on
foreign libraries:
* Missing C libraries: blas, lapack
Found the libblas library I needed via:
sudo apt-cache search blas | grep dev
from: https://github.com/albertoruiz/hmatrix/blob/master/INSTALL.md#linux
sudo apt-get install libblas-dev libgsl0-dev liblapack-dev libatlas-base-dev
setup: The pkg-config package 'cairo' version >=1.2.0 is required but it could
not be found.
After some putzing around on the wiki pages for gtk2hs
sudo apt-get install libghc-gtk-dev
Now it should install successfully.
stack install plot
Intermediate errors are from me re-attempting stack install plot. These instructions assume Ubuntu 14.04 but you can translate what packages you need to Mac OS X / Windows.
As the other poster said, this was with the 0.16 version of hmatrix.
Related
I'm trying to follow along with the Plutus Pioneer lectures, and I'm getting this error
My system:
Ubuntu Linux Docker image running on MacOS.
I installed the Haskell package on the image from here: https://www.haskell.org/platform/linux.html
using this line in my Dockerfile: RUN apt-get install -y haskell-platform
This seems to install Cabal version 2.4.
When I clone the code repository for the lectures: https://github.com/input-output-hk/plutus-pioneer-program and then go to the week01 directory and try cabal build like in the lecture, I get dependencies not found errors. The first missing dependency is 'aeson', which seems to install if I run cabal install aeson.
The subsequent build attempts fail on dependency 'base' being the wrong version.
Then I thought maybe if I update Cabal to version 3.4 it might help, so I tried cabal install cabal-install, but this also has errors:
Theexception was:ExitFailure (-9)
This may be due to an out-of-memory condition.
So I googled some more and tried this command line: cabal install --ghc-options="+RTS -M600M" -j1 cabal-install from here https://stackoverflow.com/a/46148345/52236
This seems to get further, but now I'm at this error:
ghc: panic! (the 'impossible' happened)
(GHC version 8.6.5 for x86_64-unknown-linux): heap overflow
If anyone has any idea how to fix this it would be appreciated. Do I need to add more RAM to my Docker Ubuntu image? It currently has 1.9GB of memory and 1.7GB free.
thanks,
m
I fixed this by increasing the RTS param:
cabal install --ghc-options="+RTS -M1000M" -j1 cabal-install
Well, actually it compiled everything, but cabal --version still says 2.4, not 3.4. There was this warning too:
Warning: could not create a symlink in /root/.cabal/bin for cabal because the
file exists there already but is not managed by cabal. You can create a
symlink for this executable manually if you wish. The executable file has been
installed at /root/.cabal/bin/cabal
I am trying to install wx by cabal install wx
Configuring wxc to build against wxWidgets 3.0
setup: Missing dependency on a foreign library:
* Missing C library: wx_gtk2u_webview-3.0
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
cabal: Error: some packages failed to install :
wx-0.92.0.0 depends on wxc-0.92.0.0 which failed to install.
wxc-0.92.0.0 failed during the configure step. The exception was:
ExitFailure 1
wxcore-0.92.0.0 depends on wxc-0.92.0.0 which failed to install.
but I have following files in /usr/lib :
/usr/lib/libwx_gtk2u_webview-3.0.so
/usr/lib/libwx_gtk2u_webview-3.0.so.0
/usr/lib/libwx_gtk2u_webview-3.0.so.0.2.0
I have also tried cabal install --extra-lib-dirs=/usr/lib/ wx but to no avail.
I have also tried all the suggestions in cabal install wx Missing C library
I am on archlinux and I have both wxgtk-3.0 and wxgtk-2.8 multilib and normal versions. I also tried reinstalling them.
I just ran into the same problem on Arch; when I tried running cabal with --verbose=3, it looked like libwx_gtk2u_webview-3.0 was present, but it was complaining about libwebkitgtk-1.0 being missing. After I installed the webkitgtk2 package, which provides libwebkitgtk-1.0, wxHaskell installed with no problems.
Try "sudo apt-get install libwxgtk-webview3.0-dev". It worked for me.
hi i'm trying to install, (without having to update or install the latest compiler),reactive-banana-wx and one of the requirement's are failing
cabal install reactive-banana-wx
and heres the error
Configuring wxc-0.90.0.4...
setup: failed
cabal: Error: some packages failed to install:
reactive-banana-wx-0.6.0.1 depends on wxc-0.90.0.4 which failed to install.
wx-0.90.0.1 depends on wxc-0.90.0.4 which failed to install.
wxc-0.90.0.4 failed during the configure step. The exception was:
ExitFailure 1
wxcore-0.90.0.3 depends on wxc-0.90.0.4 which failed to install
when i try to cabal install wxcore ,wx or wxc they all say failed and point towards wxc being required.
here's the error
cabal install wxc
Resolving dependencies...
[1 of 1] Compiling Main ( /tmp/wxc-0.90.0.419410/wxc-0.90.0.4/Setup.hs, /tmp/wxc-0.90.0.419410/wxc-0.90.0.4/dist/setup/Main.o )
Linking /tmp/wxc-0.90.0.419410/wxc-0.90.0.4/dist/setup/setup ...
Configuring wxc-0.90.0.4...
setup: failed
cabal: Error: some packages failed to install:
wxc-0.90.0.4 failed during the configure step. The exception was:
ExitFailure 1
here's my compiler info if it would be useful
ghc -v
Glasgow Haskell Compiler, Version 7.0.4, for Haskell 98, stage 2 booted by GHC version 7.0.4
I've got the same error trying to install phooey with ghc 7.4.1 on Debian tonight. The reason is a bug in the package wxc-0.90.0.4 and it should affect all wxHaskell-based packages. You can fix it, there is no need to downgrade your wxc package...
The easiest way to reproduce it is to do
cabal install wxc
or
cabal install glade
It might be a good idea to make sure that all prerequisites are in place, before you do it. wxc depends on a number of cabal and Linux packages and all of them should be installed and compiled... I did it in the most stupid way possible, just by running
cabal install wxc
and reading error messages which it spills out. This sweetie usually tells you what it wants... For instance, if it complains about cabal package x, just do cabal install x. If it complains about Linux package y, then use your Linux package manager and install the development version of this package, which is called normally lib<y>-dev in Debian. So, for instance, if
cabal install wxc
gives you an error saying that package gtk+2.0 is missing, you want to do
apt-get install libgtk2.0-dev
The same story with cairo, glade2 and other GTK-related libraries
When you are green with all prerequisites, you want to install wxWidgets-2.9, which is currently in the Development stage... so, it doesn't have any binaries for Linux and you should build it yourself. Download the source code from wxWidgets website and build it. It is pretty easy to do, just:
untar/unzip the source code to your favorite directory
run ./config
run ./make
If you are on wxc-0.90.0.4, at this moment you should encounter our little bug... To keep the long story short, it is in the file eljpen.cpp, which you can find in
~/.cabal/packages/hackage.haskell.org/wxc/0.90.0.4/wxc-0.90.0.4.tar.gz
Open the archive, go to the line 159 in the file and replace *_ref = NULL; with _ref = NULL or anything else what makes more sense. Then recreate the archive in the same place with the fixed eljpen.cpp file in it.
run ./make
It should work now.
run sudo make install (normally, you should have root privileges to insatll wxWidgets library...).
after it is done try to do
cabal install wx
again. It should be working now. I guess, after that you can enjoy your reactive-banana-wx, wxHaskell, phooey, etc.
PS http://sourceforge.net/tracker/index.php?func=detail&aid=3576397&group_id=73133&atid=536845. Why didn't I find it earlier? :/
I'v solved this problem on Lubuntu 12.10 so:
sudo cabal info wx
Synopsis: wxHaskell
Versions available: 0.11.1.2, 0.12.1.4, 0.12.1.5, 0.12.1.6, 0.13.2,
0.13.2.1, 0.13.2.3, 0.90, 0.90.0.1 (and 11 others)
I picked out different versions of wxHaskell, but only 0.13.2.3 was right.
sudo cabal install wx-0.13.2.3
...and everything has compiled and installed. Then I could install:
sudo cabal install reactive-banana-wx -fbuildExamples
That's no depends on the version of your Glasgow Haskell Compiler or the sort of your Linux.
I am trying to install hmatrix on my Ubuntu Linux machine (don't know if this is necessary, but it may help) and no matter what I do it will not work.
I run cabal install hmatrix and get this:
Configuring hmatrix-0.13.1.0...
Checking foreign libraries... FAIL
*** Sorry, I can't link GSL.
*** Please make sure that the appropriate -dev packages are installed.
*** You can also specify the required libraries using
*** cabal install hmatrix --configure-option=link:lib1,lib2,lib3,etc.
setup: Package hmatrix-0.13.1.0 can't be built on this system.
cabal: Error: some packages failed to install:
hmatrix-0.13.1.0 failed during the building phase. The exception was:
ExitFailure 1
Apparently the ExitFailure 1 thing is a leftover from the original program.
When I run cabal configure I get
Warning: 'hs-source-dirs: lib' directory does not exist.
Checking foreign libraries... FAIL
*** Sorry, I can't link GSL.
*** Please make sure that the appropriate -dev packages are installed.
*** You can also specify the required libraries using
*** cabal install hmatrix --configure-option=link:lib1,lib2,lib3,etc.
Any help would be greatly appreciated and thank you for reading.
You have to install the C libraries, something like libgsl-dev (or -devel), and libgsl itself, but that should be pulled in by the dev package. hmatrix is a binding to a C library, so you need that installed to be able to install hmatrix.
On my box, ghc-pkg describe hmatrix lists
extra-libraries: gsl lapack gslcblas
I'm not sure all of them are actually required for building hmatrix, but it wouldn't harm to also install the dev packages for lapack and BLAS (which may be something else than gslcblas on Ubuntu).
On Ubuntu some of the required libraries can be loaded with apt-get command. Try this,
sudo apt-get install libblas-dev libatlas-dev liblapack-dev
Referring to this file installation on Ubuntu is done using:
sudo apt-get install libgsl0-dev liblapack-dev
cabal install hmatrix
I install wxWidgets with macports then ran the command: sudo cabal install wx which output included:
/bin/sh: wxdirect: command not found
/bin/sh: wxdirect: command not found
/bin/sh: wxdirect: command not found
/bin/sh: wxdirect: command not found
Configuring wxcore-0.12.1.6...
setup: Missing dependency on a foreign library:
* Missing C library: wx_macu-2.8
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
cabal: Error: some packages failed to install:
wx-0.12.1.6 depends on wxcore-0.12.1.6 which failed to install.
wxcore-0.12.1.6 failed during the configure step. The exception was:
ExitFailure 1
I got the same error when I used this command: sudo cabal install wx --extra-include-dirs=/opt/local --extra-lib-dirs=/opt/local. How can I install wx_macu-2.8, or do what I need to do to fix this problem?
This is saying that you are missing a C library, not a Haskell library. Cabal can't install arbitrary C libraries.
Check the package manager for your distribution to make sure you have everything to do with wxWidgets-2.8, including any developer packages.