Yi failed to install - haskell

Would love to try the Yi editor, but unfortunately, it keeps failing during the installation.
First I get:
> cabal install yi
haskell-src-exts-1.13.0 failed during the configure step. The exception was:
ExitFailure 1
yi-0.6.5.0 depends on haskell-src-exts-1.13.0 which failed to install.
then when I try to install haskell-src-exts I am stumped by this:
setup: The program happy version >=1.17 is required but it could not be found.
cabal: Error: some packages failed to install:
haskell-src-exts-1.13.0 failed during the configure step. The exception was:
ExitFailure 1
installing happy cabal install happy (version 1.18.9 at that) does not help, as it still produces the error above!
I am trying to get this going on ArchLinux. Also, Windows installation didn't work either.
Any ideas?

cabal installs programs to ~/.cabal/bin (on Unix; no idea about Windows) if they are not already installed, and does not warn you to add it to your $PATH; it also (unless you have the latest unreleased version, built from its repo) does not know that it has done so, because it only tracks libraries, not executables. You will need to manually add $HOME/.cabal/bin to your $PATH so that it will be found
(edit be pedantic)

On ubuntu I installed happy using apt-get instead of through cabal, which worked.

Here is what I have done to install Yi with GTK+ under ArchLinux.
First, I tried cabal install yi and I got the same error as you.
To solve this error, I installed happy using this command:
yaourt -S happy
Then, I got another error because the alex package was needed. So, I installed it with:
yaourt -S alex
After that, I got some errors because of gtk2hs packages missing. I installed them with:
yaourt -S haskell-cairo haskell-glib haskell-gtk haskell-pango
Finally, I was able to install Yi with:
cabal install yi -fvty -fpango

I had the same issue in installing hprotoc which has a dependency on haskell-src-exts. The issue I believe was that I was running the sudo command which was modifying the path. When I took the recommended action in the following Q&A, it resolved the issue of finding happy.
sudo changes PATH - why?

Leksah uses Yi as a component, try installing leksah instead. I had similar error messages at one point, the haskell-src-exts error is due to running out of memory. Reboot your computer, have nothing else running except the console, and try again.

Related

cabal install ghc impossible happened: heap overflow

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

can't build lambdabot with ghc-7.8 (# haskell-src-exts)

I was trying to install lambdabot with ghc-7.8.2, but encountered an error while installing haskell-src-exts. To diagnose the issue, I tried
cabal install haskell-src-exts -v3
and get the following errors. I am using Windows XP 64-bit. I don't know if this has anything to do with spaces in windows directory names. Any ideas/pointer how to fix the problem?
...
[_18] next goal: array (dependency of haskell-src-exts-1.15.0.1)
[_18] trying: array-0.5.0.0/installed-d6d...
[_19] done
Ready to install haskell-src-exts-1.15.0.1
Extracting C:\Documents and Settings\ting\Application
Waiting for install task to finish...
Data\cabal\packages\hackage.haskell.org\haskell-src-exts\1.15.0.1\haskell-src-exts-1.15.0.1.tar.gz
to C:\DOCUME~1\ting\LOCALS~1\Temp\haskell-src-exts-1.15.0.1-3008...
Renaming
'C:\DOCUME~1\ting\LOCALS~1\Temp\haskell-src-exts-1.15.0.1-3008\haskell-src-exts-1.15.0.1\dist'
to
'C:\DOCUME~1\ting\LOCALS~1\Temp\haskell-src-exts-1.15.0.1-3008\haskell-src-exts-1.15.0.1\dist-tmp'.
creating
C:\DOCUME~1\ting\LOCALS~1\Temp\haskell-src-exts-1.15.0.1-3008\haskell-src-exts-1.15.0.1\dist
Renaming
'C:\DOCUME~1\ting\LOCALS~1\Temp\haskell-src-exts-1.15.0.1-3008\haskell-src-exts-1.15.0.1\dist-tmp'
to
'C:\DOCUME~1\ting\LOCALS~1\Temp\haskell-src-exts-1.15.0.1-3008\haskell-src-exts-1.15.0.1\dist'.
Failed to install haskell-src-exts-1.15.0.1
Last 10 lines of the build log ( C:\Documents and Settings\ting\Application Data\cabal\logs\haskell-src-exts-1.15.0.1.log ):
cabal.exe: C:\Documents and Settings\ting\Application
Data\cabal\logs\haskell-src-exts-1.15.0.1.log: does not exist
I figured it out. I tried to locate the log file as the comments suggested. However, in the cabal/log folder, there are only two log files for hashtable and haskline after running cabal-install lambdabot on a fresh ghc-7.8 installation.
To see if this error has anything to do with the spaces in the default cabal directory, I used a folder without spaces and did manual installation:
$ cd /d/temp
$ cabal get haskell-src-exts
Unpacking to haskell-src-exts-1.15.0.1\
$ cd haskell-src-exts-1.15.0.1/ && cabal configure
Resolving dependencies...
[1 of 1] Compiling Main ( dist\setup\setup.hs, dist\setup\Main.o )
Linking .\dist\setup\setup.exe ...
Configuring haskell-src-exts-1.15.0.1...
setup.exe: The program 'happy' version >=1.17 is required but it could not be
found.
So, happy in the dependency is somehow missing and undetected by cabal. It turns out happy too has an issue using the default cabal install command, and it can be overcome by a manual installation in, e.g., /d/temp,
cabal get happy && cd happy* && cabal configure && cabal install
This installs happy and doing the same for haskell-src-exts installs the package correctly. But there are other errors along the way for installing lambdabot, none of which seems to like the one encountered here with haskell-src-exts and happy.

cabal install bnfc missing directory

I'm new to Haskell, trying to write a program for compiler construction class.
I installed the haskell-platform package on my ubuntu 13.10, and then (without messing around with anything after installing haskell platform) tried to run the following command:
$ sudo cabal install bnfc
which results with:
Resolving dependencies...
Configuring BNFC-2.6.0.3...
cabal: The following installed packages are broken because other packages they
depend on are missing. These broken packages must be rebuilt before they can
be used.
package process-1.1.0.2 is broken due to missing package
directory-1.2.0.1-508733a890139bbedb8aa76468431462
Failed to install BNFC-2.6.0.3
cabal: Error: some packages failed to install:
BNFC-2.6.0.3 failed during the configure step. The exception was:
ExitFailure 1
As I try installing package directory it says the package is already installed.
Can anyone help?
I also am using Ubuntu 13.10 with the haskell platform package, and bnfc installs for me.
There are a few things you can check....
Don't use sudo with cabal install (by default cabal installs packages in your own home directory, using sudo might be causing trouble by giving the wrong file ownerships, or perhaps trying to put files in /root, or even overwriting /usr stuff)
Rename ~/.cabal/ and ~/.ghc/, and rebuild them by running "cabal update" (You may need to re-add ~/.cabal/bin/cabal from the moved location after the move). These hold installed packages and their info.... Since you have a new vanilla install, these should basically be empty, although the meta info in them may be corrupt. (if for some reason this makes things worse, you can always restore the original directory.... If it solves the problem, you can delete the original .cabal and .ghc)
You can get more info about why a package isn't installing by doing the following
cabal unpack bnfc #This will download and unpack the source code
cd BNFC-2.6.0.3 #enter the newly created source directory
cabal configure #This checks that all system dependencies are met
cabal build #This builds the package
cabal install #This installs the package in ~/.cabal/
(You may have to iterate to another package if a dependency isn't met)
I think 2. may solve your problem, as the error message you showed implies that the build process is hooked on finding a very specific version of the directory package, rather than the latest one. This happened to me once and cleaning out .cabal solved the problem for me.

Problems installing Yesod for Haskell

I'm trying to install Haskell and Yesod for Mac following this guide. Everything goes fine until the last step, when I receive this error message. I've tried to manually install the hfsevebts-0.1.4 but it gives me the same error.
gcc-4.8: error: language objective-c not recognized
gcc-4.8: error: language objective-c not recognized
cabal: Error: some packages failed to install:
fsnotify-0.0.11 depends on hfsevents-0.1.4 which failed to install.
hfsevents-0.1.4 failed during the building phase. The exception was:
ExitFailure 1
yesod-bin-1.2.3.4 depends on hfsevents-0.1.4 which failed to install.
How shall I proceed in order to install Yesod?
I think this fixed it for me:
$ brew uninstall gcc48
$ brew install gcc48 --enable-all-languages
Presumably the default gcc48 doesn't include Objective-C.
I ran into that same error—among many others—trying to install yesod on 10.8.5. I had some luck uninstalling the package from Haskell and installing Haskell via Homebrew. I did upgrade to 10.9 and everything still works (but I had to re-install Xcode command line tools)
I documented installing yesod on os x on my site if you need details.

installing reactive banana-wx or wx on redhat based linux with ghc 7.0.4

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.

Resources