78 lines
2.5 KiB
Markdown
78 lines
2.5 KiB
Markdown
So you want to build git-annex from source. This is encouraged for
|
|
users with experience building code from source. But the build may
|
|
require some care and feeding. This page will start with the easy
|
|
methods and work up to the harder ones.
|
|
|
|
## prerequisites
|
|
|
|
Start by installing the
|
|
[Haskell Platform](http://hackage.haskell.org/platform/).
|
|
|
|
In Debian, this is as simple as:
|
|
|
|
sudo apt-get install haskell-platform
|
|
|
|
## downloading the source code
|
|
|
|
The easiest way is using git; see [[download]] or just:
|
|
|
|
git clone git://git-annex.branchable.com/ git-annex
|
|
|
|
Or, you can use cabal to get the source code:
|
|
|
|
cabal update; cabal unpack git-annex
|
|
|
|
## building from source on Debian
|
|
|
|
This is the method used by git-annex's author, and so it's the one most
|
|
likely to work without problems.
|
|
|
|
First, install everything git-annex needs to build:
|
|
|
|
sudo apt-get build-dep git-annex
|
|
|
|
Now you can build git-annex by running either `make` or `cabal build`
|
|
inside the source tree.
|
|
|
|
## minimal build with cabal and stackage
|
|
|
|
This can be done anywhere, and builds git-annex without some optional features
|
|
that require harder-to-install C libraries. This is plenty to let you get started with
|
|
git-annex, but it does not include the assistant or webapp.
|
|
|
|
Be warned that this involves building a lot of Haskell libraries from
|
|
source, and so it has a lot of moving parts, and it's not uncommon for it
|
|
to be broken from time to time. A nice way to avoid such breakage is to
|
|
[configure cabal to use the Stackage repository](http://www.stackage.org/),
|
|
which is a more stable and consistent version of the Hackage repository.
|
|
|
|
Inside the source tree, run:
|
|
|
|
cabal configure -f"-assistant -webapp -webdav -pairing -xmpp -dns"
|
|
cabal install -j -f"-assistant -webapp -webdav -pairing -xmpp -dns" --only-dependencies
|
|
cabal build -j
|
|
PATH=$HOME/bin:$PATH
|
|
cabal install --bindir=$HOME/bin
|
|
|
|
## full build with cabal and stackage
|
|
|
|
To build with all features enabled, including the assistant and webapp,
|
|
you will need to install several C libraries and their headers,
|
|
including libgnutls, libgsasl, libxml2, and zlib. How to do that for
|
|
your OS is beyond the scope of this page.
|
|
|
|
Using [Stackage](http://www.stackage.org/) is again a good idea here!
|
|
|
|
Once the C libraries are installed, run inside the source tree:
|
|
|
|
cabal configure
|
|
cabal install -j --only-dependencies
|
|
cabal build -j
|
|
PATH=$HOME/bin:$PATH
|
|
cabal install --bindir=$HOME/bin
|
|
|
|
## EKG
|
|
|
|
When building with cabal, you can optionally enable the
|
|
[[EKG monitoring interface|ekg]]. This is great for debugging resource
|
|
usage problems. Just pass `-f+EKG` to `cabal configure`
|