To install git-annex from scratch, you need a lot of stuff. Really
quite a lot.

* Haskell stuff
  * [The Haskell Platform](http://haskell.org/platform/) (GHC 7.4 or newer)
  * [mtl](http://hackage.haskell.org.package/mtl) (2.1.1 or newer)
  * [MissingH](http://github.com/jgoerzen/missingh/wiki)
  * [utf8-string](http://hackage.haskell.org/package/utf8-string)
  * [SHA](http://hackage.haskell.org/package/SHA)
  * [cryptohash](http://hackage.haskell.org/package/cryptohash) (optional but recommended)
  * [dataenc](http://hackage.haskell.org/package/dataenc)
  * [monad-control](http://hackage.haskell.org/package/monad-control)
  * [QuickCheck 2](http://hackage.haskell.org/package/QuickCheck)
  * [json](http://hackage.haskell.org/package/json)
  * [aeson](http://hackage.haskell.org/package/aeson)
  * [IfElse](http://hackage.haskell.org/package/IfElse)
  * [dlist](http://hackage.haskell.org/package/dlist)
  * [bloomfilter](http://hackage.haskell.org/package/bloomfilter)
  * [edit-distance](http://hackage.haskell.org/package/edit-distance)
  * [hS3](http://hackage.haskell.org/package/hS3) (optional)
  * [DAV](http://hackage.haskell.org/package/DAV) (optional)
  * [SafeSemaphore](http://hackage.haskell.org/package/SafeSemaphore)
  * [UUID](http://hackage.haskell.org/package/uuid)
  * [regex-tdfa](http://hackage.haskell.org/package/regex-tdfa)
  * [extensible-exceptions](http://hackage.haskell.org/package/extensible-exceptions)
  * [feed](http://hackage.haskell.org/package/feed)
  * [async](http://hackage.haskell.org/package/async)
* Optional haskell stuff, used by the [[assistant]] and its webapp
  * [stm](http://hackage.haskell.org/package/stm)
    (version 2.3 or newer)
  * [hinotify](http://hackage.haskell.org/package/hinotify)
    (Linux only)
  * [dbus](http://hackage.haskell.org/package/dbus)
  * [yesod](http://hackage.haskell.org/package/yesod)
  * [yesod-static](http://hackage.haskell.org/package/yesod-static)
  * [yesod-default](http://hackage.haskell.org/package/yesod-default)
  * [data-default](http://hackage.haskell.org/package/data-default)
  * [case-insensitive](http://hackage.haskell.org/package/case-insensitive)
  * [http-types](http://hackage.haskell.org/package/http-types)
  * [wai](http://hackage.haskell.org/package/wai)
  * [wai-logger](http://hackage.haskell.org/package/wai-logger)
  * [warp](http://hackage.haskell.org/package/warp)
  * [blaze-builder](http://hackage.haskell.org/package/blaze-builder)
  * [crypto-api](http://hackage.haskell.org/package/crypto-api)
  * [hamlet](http://hackage.haskell.org/package/hamlet)
  * [clientsession](http://hackage.haskell.org/package/clientsession)
  * [network-multicast](http://hackage.haskell.org/package/network-multicast)
  * [network-info](http://hackage.haskell.org/package/network-info)
  * [network-protocol-xmpp](http://hackage.haskell.org/package/network-protocol-xmpp)
  * [dns](http://hackage.haskell.org/package/dns)
  * [xml-types](http://hackage.haskell.org/package/xml-types)
  * [HTTP](http://hackage.haskell.org/package/HTTP)
  * [unix-compat](http://hackage.haskell.org/package/unix-compat)
  * [MonadCatchIO-transformers](http://hackage.haskell.org/package/MonadCatchIO-transformers)
* Shell commands
  * [git](http://git-scm.com/)
  * [xargs](http://savannah.gnu.org/projects/findutils/)
  * [rsync](http://rsync.samba.org/)
  * [curl](http://http://curl.haxx.se/) (optional, but recommended)
  * [wget](http://www.gnu.org/software/wget/) (optional)
  * [sha1sum](ftp://ftp.gnu.org/gnu/coreutils/) (optional, but recommended;
    a sha1 command will also do)
  * [gpg](http://gnupg.org/) (optional; needed for encryption)
  * [lsof](ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/)
    (optional; recommended for watch mode)
  * [gcrypt](https://github.com/joeyh/git-remote-gcrypt)
    (optional)
  * multicast DNS support, provided on linux by [nss-mdns](http://www.0pointer.de/lennart/projects/nss-mdns/)
    (optional; recommended for the assistant to support pairing well)
  * [ikiwiki](http://ikiwiki.info) (optional; used to build the docs)

Then just [[download]] git-annex and run: `make; make install`
