How to Install mercurial (and maybe git) on a linux box without root privileges

If you happen to be on a linux box without root privileges you can nevertheless install the two very usefull distributed version control systems, git and mercurial:

=== for mercurial ===
Prerequisites:
a. make should be installed (alternatively you can execute “python setup.py build_py -c -d . build_ext -i build_mo” in step 3.)
b. you will need to have python (>2.4) installed
(alternatively you can install a local phyton: follow the instructions detailed in http://weblogs.java.net/blog/fabriziogiudici/archive/2009/07/installing_merc.html)
1. download the sources: http://mercurial.selenic.com/release/mercurial-2.2.3.tar.gz (or a more recent version)
2. unpack to desired bin directory (tar xf mercurial-2.2.3.tar.gz)
3. make install local
4. add to ~/.bash_profile the lines
PATH=$PATH:/<desired directory>/mercurial
5. reload the PATH settings:
source ~/.bash_profile

Enjoy mercurial!!!
==============

=== for git ===
Installing git did not work out for me, as ‘perl-ExtUtils-MakeMaker’ was missing. Nevertheless, here are the instructions:
Prerequisites:
you will need to have the build-essentials (gcc, make, …) and perl-ExtUtils-MakeMaker installed:
1.: dowload the sources from:
https://github.com/git/git/tags/
(click on “zip” to get all files in a nice zip-ball)
2. unzip and cd into the unzipped directory
3. compile & install:
(faster install, worse performance later)
make configure
./configure --prefix=/<desired directory>
make install

better way (slower install, faster performance later):
(do a profile feedback build)
make prefix=/<desired directory> PROFILE=BUILD all
make prefix=/<desired directory> PROFILE=BUILD install
4. add the git-binary to your path
(e.g.) vi ~/.bash.profile
add PATH=$PATH;<desired directory>/bin/git

Of course, <desired directory> should be replaced by a directory where you want to have the bin files installed to, and which has to be accessible by you (e.g. /local/user/bin/git)!
=======

Leave a Reply

Your email address will not be published. Required fields are marked *