Difference between revisions of "Cabal/How to install a Cabal package"
< Cabal
Jump to navigation
Jump to search
(Added note about multiple compilers) |
(Added doc for a unix-command to automate installation of missing dependencies) |
||
Line 31: | Line 31: | ||
runghc Setup.hs install |
runghc Setup.hs install |
||
</code> |
</code> |
||
+ | |||
+ | '''Note 2''': If you have missing dependencies when running Setup.sh configure, you will get the following message: |
||
+ | |||
+ | <code> |
||
+ | ... |
||
+ | Setup.hs: At least the following dependencies are missing: |
||
+ | zlib -any, plugins >=1.0, oeis -any |
||
+ | </code> |
||
+ | |||
+ | You may want to use [http://hackage.haskell.org/trac/hackage/wiki/CabalInstall cabal-install] OR on debian systems (debian, ubuntu, etc.), alternatively you can try the following "hack" - please run this ONLY IF YOU KNOW WHAT YOU ARE DOING (understand the command, especially the "-y --force-yes" flags): |
||
+ | <code> |
||
+ | runghc Setup.hs configure 2>&1 | tail -n +3 | awk '{print $1}' | xargs -ijoe sudo apt-get -y --force-yes install libghc6-joe-dev |
||
+ | </code> |
Revision as of 22:11, 15 March 2008
You've found an interesting Haskell package on HackageDB. How do you install it on your system?
- Check whether the package came with your Haskell implementation.
- If your operating system has a packaging system (e.g. most Linux or BSD distributions), check whether it is already packaged there.
- Otherwise, you'll have to build and install the package. A program to automate this process, called cabal-install, is under development. In the meantime, you'll have to do it manually:
- First, ensure that all the packages it depends on are installed (by following these instructions recursively).
- Unpack the tar file (yes, this assumes a Unix system; sorry about that (how to unpack a tar file in windows)):
tar xzf PACKAGE-VERSION.tar.gz
- Move into the directory this creates:
cd PACKAGE-VERSION
- This directory should contain a file
Setup.hs
orSetup.lhs
. In order to install a package globally, perform the following commands for the appropriate file (see the Cabal documentation for more details):runghc Setup.hs configure
runghc Setup.hs build
runghc Setup.hs install
- If instead of installing globally, you just wish to install a package for your normal user account, you could instead use the following
configure
command, which would register the install in the user-specific database and install binaries and libraries in $HOME/bin, $HOME/lib, and so forth:runghc Setup.hs configure --user --prefix=$HOME
- You can get more information about any of these commands by adding
--help
after the command. For example, to see all the options available for theconfigure
step, you could use the following command:runghc Setup.hs configure --help
- Lastly, if you encounter unsatisfied dependencies when you run the configure step, that is when you recurse and first install the missing package.
Note: If you have more than one Haskell compiler on your system,
use the --with-compiler
option for the
configure
step. That will ensure that Cabal
uses the correct compiler during the entire installation process.
For example:
runghc Setup.hs configure --with-compiler=ghc-6.8.2
runghc Setup.hs build
runghc Setup.hs install
Note 2: If you have missing dependencies when running Setup.sh configure, you will get the following message:
...
Setup.hs: At least the following dependencies are missing:
zlib -any, plugins >=1.0, oeis -any
You may want to use cabal-install OR on debian systems (debian, ubuntu, etc.), alternatively you can try the following "hack" - please run this ONLY IF YOU KNOW WHAT YOU ARE DOING (understand the command, especially the "-y --force-yes" flags):
runghc Setup.hs configure 2>&1 | tail -n +3 | awk '{print $1}' | xargs -ijoe sudo apt-get -y --force-yes install libghc6-joe-dev