Install git on a shared webhost
posted on 2009-09-07
Introduction
Recently I ran into an article about using git to upload your site
(see links at the bottom how to). But off course, this requires to
have git
installed on your hosting. My host (via TurtleHost.be) does
not have it. So I was thinking, why not install it myself. Idea
sounded more simple than doing it… .
Requirements
- You need to have ssh access to your server.
Finding git
Before we can download git
, we need to know which Linux distribution
your server is using. This is required so the git
executable will be
able to use the correct libraries. To find out which kernel your
server is running, log in to your server via ssh and type the command:
cat /etc/*-release
On my server this returned CentOS release 5.3 (Final)
. Next thing we
need to know if your server is running 32bit or 64bit. This we can
verify with the command:
uname -p
x86_64
indicates the server has 64bit kernel running.i386
/i486
/i586
/i686
means it is a 32bit kernel.
Downloading git
Next we need to download git
from somewhere. Probably you can find
it by searching it on a RPM repository. I found one on
rpm.pbone.net. This site has a great search engine where you can find
git
version for your server distro. After finding a download link,
again log in to your server via ssh and type the following commands:
mkdir ~/git-download
cd ~/git-download
wget ftp://the.download.link/of/repo/containing/git-1.6.x.x.rpm
Now you have the .rpm
on your server.
Installing git
This rpm
needs to be installed, but you won’t be able to use the
regular rpm
installer because this requires root access. You can
extract the rpm
file with the command:
rpm2cpio git-1.6.x.x.rpm | cpio -imdv
This will create a usr/
directory in currect directory. You best
move this directory to your home root:
mv usr ~/usr
Now we are almost there, we only need to add the directory to $PATH
variable. Doing this will make it possible to execute the command
git
from anywhere. Open your ~/.bashrc
file with your favorite
editor (vim
or pico
) and add the following line:
export PATH=$PATH:$HOME/usr/bin:$HOME/usr/libexec/git-core
And that’s it. To activate this change, run source ~/.bashrc
or log
out and in again.
Note
You can use git
just by typing the git
command. But git init
might give a warning:
warning: templates not found /usr/share/git-core/templates
To avoid this warning I’ve added an alias to ~/.bashrc
:
alias git-init='git init --template=$HOME/usr/share/git-core/templates'
This git-init
command is an alternative to git init
and will take
the correct path for templates.
Possible problems
One problem caused me a headache when using git
to upload my site
was het error:
git: 'index-pack' is not a git-command.
The reason for this problem was that $HOME/usr/libexec/git-core
was
not added to the $PATH
variable.
Further reading
So now you have git
up and running on your server and you can use it
to upload your site. Read about it:
- Websites updaten met git - in Dutch
- Using Git to manage a web site - original article in English