OS-specific instructions

Using cabal

As a haskell package, git-annex can be installed using cabal. For example:

cabal install git-annex --bindir=$HOME/bin

The above downloads the latest release. Alternatively, you can download it yourself and manually build with cabal.

Installation by hand

To build and use git-annex, you will need:

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

Is there going to be an update of git-annex in debian squeeze-backports to a version that supports repository version 3? Thx

You can also use Homebrew instead of MacPorts. Homebrew's haskell-platform is up-to-date, too:

brew install haskell-platform git ossp-uuid md5sha1sum coreutils pcre
ln -s /usr/local/include/pcre.h /usr/include/pcre.h

As of this writing, however, Homebrew's md5sha1sum has a broken mirror. I wound up getting that from MacPorts anyway.

Comment by http://www.schleptet.net/~cfm/ Tue Aug 30 14:31:36 2011
Yes, I uploaded it last night.
Comment by http://joey.kitenet.net/ Wed Aug 17 15:34:29 2011

Hi @joey! Perfect!... I'll do that then!

Thanks for your time man!

I try installing with brew because I already had brew setup in my machine, but all run ok but when I try to run cabal install git-annex I got an error with the hinotify-0.3.2 library complaining about a header file.

Full trace:

~~~ sudo cabal install git-annex Resolving dependencies... Configuring hinotify-0.3.2... Building hinotify-0.3.2... Preprocessing library hinotify-0.3.2... INotify.hsc:35:25: error: sys/inotify.h: No such file or directory INotify.hsc: In function ‘main’: INotify.hsc:259: error: invalid use of undefined type ‘struct inotify_event’ INotify.hsc:260: error: invalid use of undefined type ‘struct inotify_event’ INotify.hsc:261: error: invalid use of undefined type ‘struct inotify_event’ INotify.hsc:262: error: invalid use of undefined type ‘struct inotify_event’ INotify.hsc:265: error: invalid use of undefined type ‘struct inotify_event’ INotify.hsc:266: error: invalid application of ‘sizeof’ to incomplete type ‘struct inotify_event’ compiling dist/build/System/INotify_hsc_make.c failed (exit code 1) command was: /usr/bin/gcc -c dist/build/System/INotify_hsc_make.c -o dist/build/System/INotify_hsc_make.o -m64 -fno-stack-protector -m64 -D__GLASGOW_HASKELL__=704 -Ddarwin_BUILD_OS -Ddarwin_HOST_OS -Dx86_64_BUILD_ARCH -Dx86_64_HOST_ARCH -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/directory-1.1.0.2/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/unix-2.5.1.0/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/old-time-1.1.0.0/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/bytestring-0.9.2.1/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/base-4.5.0.0/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/include/ cabal: Error: some packages failed to install: git-annex-3.20120624 depends on hinotify-0.3.2 which failed to install. hinotify-0.3.2 failed during the building phase. The exception was: ExitFailure 1 ~~~

Anyone has an idea how can I solve this.

Thanks for the time!

Agustin

@Agustin you should be able to work around that with: cabal install git-annex --flags=-Inotify

I've fixed it properly for the next release, it should only be using that library on Linux.

Comment by http://joeyh.name/ Mon Jun 25 15:38:44 2012

If you're missing the sha256sum command with Homebrew, it's provided by coreutils. You have to change your $PATH before running cabal install git-annex.cabal:

PATH="$(brew --prefix coreutils)/libexec/gnubin:$PATH"

I got the following error message trying to install git-annex:

cabal: cannot configure git-annex-3.20120418. It requires base >=4.5 && <5
For the dependency on base >=4.5 && <5 there are these packages: base-4.5.0.0.
However none of them are available.
base-4.5.0.0 was excluded because of the top level dependency base -any

These are the steps I performed to make it work

  1. Download Ghc 7.4.
  2. Run sudo cabal install git-annex --bindir=$HOME/bin.
  3. Compilation of the Crypto-4.2.4 dependency failed since it's not updated to work with Ghc 7.4. You need to patch SHA2.hs (steps below).
  4. Run sudo cabal install git-annex --bindir=$HOME/bin a second time.

The steps I did to patch the SHA2.hs file in Crypto-4.2.4:

  1. cabal unpack crypto-4.2.4
  2. cd Crypto-4.2.4
  3. patch -p1 < crypto-4.2.4-ghc-7.4.patch
  4. sudo cabal install.

PS: I used this patchfile. Then I did the last step a third time.

The Haskell Platform installer for OSX uses GHC 7.0.4, which doesn't seem able to support the current version of git-annex.

Cabal throws a very cryptic error about not being able to use the proper base package.

I was able to install it by

  1. cloning the repo
  2. merging the ghc7.0 branch
  3. resolving merge conflicts in git-annex.cabal
  4. cabal install git-annex.cabal

(Note I also tried this with homebrew and had similar results)

$(brew --prefix) should, in most cases, be /usr/local. That's the recommended install location for homebrew.

I already had git installed and homebrew as my package manager - my install steps were as follows:

  1. brew install haskell-platform ossp-uuid md5sha1sum coreutils pcre
  2. PATH="$(brew --prefix coreutils)/libexec/gnubin:$PATH" cabal install git-annex
Comment by http://www.davidhaslem.com/ Tue Jun 19 04:41:27 2012
You did the right thing, although just checking out the ghc-7.0 branch will avoid merge conflicts. I am trying to keep it fairly close to up-to-date.
Comment by http://joey.kitenet.net/ Wed Mar 28 19:18:58 2012
Last night I made it look in /opt/local/libexec/gnubin .. if there's another directory it could look in, let me know. I am reluctant to make it run the brew command directly.
Comment by http://joeyh.name/ Fri Jun 1 17:24:29 2012

Hi Joey! I just comment that I could not install it but the issue is with the last version (the one you just release today, so no problem!! man on sunday?? you're awesome!!!) so I installed the previous one and no problem at all

Thanks for all the efford and if you need me to try os whatever, feel free to ask!

Thanks again

Agustin

Comments on this page are closed.