Difference between revisions of "Cabal/How to install a Cabal package"
< Cabal
Jump to navigation
Jump to search
(Added some more detail, including info on how to install as user-only in case people don't have administrative rights on a machine.) |
RossPaterson (talk | contribs) m (remove numbering from extra comments) |
||
Line 3: | Line 3: | ||
# Check whether the package came with your Haskell implementation. |
# Check whether the package came with your Haskell implementation. |
||
− | # If [[:Category:OS| |
+ | # 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: |
# 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). |
## First, ensure that all the packages it depends on are installed (by following these instructions recursively). |
||
Line 14: | Line 14: | ||
##:<code>runghc Setup.hs build</code> |
##:<code>runghc Setup.hs build</code> |
||
##:<code>runghc Setup.hs install</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. |
Revision as of 16:32, 24 October 2007
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):
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.