Difference between revisions of "Cabal/How to install a Cabal package"

From HaskellWiki
Jump to navigation Jump to search
(Added note about multiple compilers)
(only the manual installation section is outdated)
(19 intermediate revisions by 13 users not shown)
Line 1: Line 1:
 
[[Category:How to]]
 
[[Category:How to]]
You've found an interesting Haskell package on [http://hackage.haskell.org/packages/archive/pkg-list.html HackageDB]. How do you install it on your system?
 
   
 
There's an interesting Haskell package on [http://hackage.haskell.org/packages/archive/pkg-list.html Hackage] you'd like to try. How do you install it on your system?
# Check whether the package came with your Haskell implementation.
 
# If your [[:Category:OS|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 [http://hackage.haskell.org/trac/hackage/wiki/CabalInstall ''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]])):
 
##:<code>tar xzf PACKAGE-VERSION.tar.gz</code>
 
## Move into the directory this creates:
 
##:<code>cd PACKAGE-VERSION</code>
 
## This directory should contain a file <code>Setup.hs</code> or <code>Setup.lhs</code>. In order to install a package globally, perform the following commands for the appropriate file (see the [http://www.haskell.org/ghc/docs/latest/html/Cabal/builders.html Cabal documentation] for more details):
 
##:<code>runghc Setup.hs configure</code>
 
##:<code>runghc Setup.hs build</code>
 
##:<code>runghc Setup.hs install</code>
 
#: If instead of installing globally, you just wish to install a package for your normal user account, you could instead use the following <code>configure</code> command, which would register the install in the user-specific database and install binaries and libraries in $HOME/bin, $HOME/lib, and so forth:
 
#::<code>runghc Setup.hs configure --user --prefix=$HOME</code>
 
#: You can get more information about any of these commands by adding <code>--help</code> after the command. For example, to see all the options available for the <code>configure</code> step, you could use the following command:
 
#::<code>runghc Setup.hs configure --help</code>
 
#: Lastly, if you encounter unsatisfied dependencies when you run the configure step, that is when you recurse and first install the missing package.
 
   
  +
== Installing packages using cabal ==
'''Note''': If you have more than one Haskell compiler on your system,
 
  +
By far the easiest way is to use the <code>cabal</code> command line tool to install a new package and its dependencies. The command is provided by a package called cabal-install. It can be installed using [https://haskell.org/ghcup ghcup], and <code>cabal</code> is also part of the [http://haskell.org/platform Haskell Platform], other methods are listed at [[Distributions]]. The [[Cabal-Install]] page explains how to use <code>cabal</code>.
use the <code>--with-compiler</code> option for the
 
<code>configure</code> step. That will ensure that Cabal
 
uses the correct compiler during the entire installation process.
 
For example:
 
   
  +
<code>
 
  +
If you so wish, you can still install packages manually -- see the section below.
runghc Setup.hs configure --with-compiler=ghc-6.8.2
 
  +
runghc Setup.hs build
 
  +
== Installing packages manually ==
runghc Setup.hs install
 
  +
<span style="color: red; font-weight:bold; text-transform:uppercase">[WARNING: This rest of this page is extremely outdated and likely obsolete. It has barely been edited since 2013.]</span>
</code>
 
  +
 
# First, ensure that all the packages it depends on are installed (by following these instructions recursively).
 
# Unpack the tar file (Windows users: read [[How to unpack a tar file in Windows]] first):
 
#:<code>tar xzf PACKAGE-VERSION.tar.gz</code>
 
# Move into the directory this creates:
 
#:<code>cd PACKAGE-VERSION</code>
 
# In order to install a package globally, perform the following commands (see the [http://www.haskell.org/cabal/users-guide/ Cabal documentation] for more details):
 
#:<code>runhaskell Setup configure</code>
 
#:<code>runhaskell Setup build</code>
  +
#:On a Unix or Linux system:
  +
#:<code>sudo runhaskell Setup install</code>
  +
#:
  +
#:Windows (login with administrator rights):
 
#:<code>runhaskell Setup install</code>
  +
  +
=== Notes ===
 
# If instead of installing globally, you just wish to install a package for your normal user account, you could instead use the following <code>configure</code> command, which would register the install in the user-specific database and install binaries and libraries in $HOME/bin, $HOME/lib, and so forth (Windows users replace $HOME with %home%):
 
#:<code>runhaskell Setup configure --user --prefix=$HOME</code>
  +
#: (Note that in Cabal 1.4 onwards, you may omit the <code>--prefix=$HOME</code>, since <code>--prefix=$HOME/.cabal</code> is now implied by <code>--user</code>. Also note that you can omit <code>sudo</code> in the install statement if you use this method.)
 
# You can get more information about any of these commands by adding <code>--help</code> after the command. For example, to see all the options available for the <code>configure</code> step, you could use the following command:
 
#:<code>runhaskell Setup configure --help</code>
 
# If you encounter unsatisfied dependencies when you run the configure step, that is when you recurse and first install the missing package.
  +
# If you have more than one Haskell compiler on your system, use the <code>--with-compiler</code> option for the <code>configure</code> step. That will ensure that Cabal uses the correct compiler during the entire installation process. For example:
 
#: <code>runhaskell Setup configure --with-compiler=ghc-6.8.2</code>
  +
#: <code>runhaskell Setup build</code>
  +
#: On a Unix or Linux system:
  +
#: <code>sudo runhaskell Setup install</code>
  +
#:
  +
#: Windows (login with administrator rights):
  +
#: <code>runhaskell Setup install</code>

Revision as of 00:25, 12 December 2020


There's an interesting Haskell package on Hackage you'd like to try. How do you install it on your system?

Installing packages using cabal

By far the easiest way is to use the cabal command line tool to install a new package and its dependencies. The command is provided by a package called cabal-install. It can be installed using ghcup, and cabal is also part of the Haskell Platform, other methods are listed at Distributions. The Cabal-Install page explains how to use cabal.


If you so wish, you can still install packages manually -- see the section below.

Installing packages manually

[WARNING: This rest of this page is extremely outdated and likely obsolete. It has barely been edited since 2013.]

  1. First, ensure that all the packages it depends on are installed (by following these instructions recursively).
  2. Unpack the tar file (Windows users: read How to unpack a tar file in Windows first):
    tar xzf PACKAGE-VERSION.tar.gz
  3. Move into the directory this creates:
    cd PACKAGE-VERSION
  4. In order to install a package globally, perform the following commands (see the Cabal documentation for more details):
    runhaskell Setup configure
    runhaskell Setup build
    On a Unix or Linux system:
    sudo runhaskell Setup install
    Windows (login with administrator rights):
    runhaskell Setup install

Notes

  1. 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 (Windows users replace $HOME with %home%):
    runhaskell Setup configure --user --prefix=$HOME
    (Note that in Cabal 1.4 onwards, you may omit the --prefix=$HOME, since --prefix=$HOME/.cabal is now implied by --user. Also note that you can omit sudo in the install statement if you use this method.)
  2. 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 the configure step, you could use the following command:
    runhaskell Setup configure --help
  3. If you encounter unsatisfied dependencies when you run the configure step, that is when you recurse and first install the missing package.
  4. 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:
    runhaskell Setup configure --with-compiler=ghc-6.8.2
    runhaskell Setup build
    On a Unix or Linux system:
    sudo runhaskell Setup install
    Windows (login with administrator rights):
    runhaskell Setup install