## Index → Getting started → Installation

## Installation from GitHub

The latest, bleeding edge Cherokee release can always be retrieved via Git. Note that this is the development release and could very well be unstable. In general it is not recommended to run this release in production environments.

Briefly, Git is a system tool used to store and maintain files and a history of their changes over time, and it is an invaluable development tool. The Cherokee source code and related files are kept in a Git repository on GitHub.

You can read more about Git at git-scm.com.

To download the Git repository you will need a special piece of software called a Git client. On a Linux-based system, the official command-line client, simply named ``git``, can typically be installed from repositories. For instance, on an Ubuntu or Debian-based system install using:

    sudo apt-get install git

or on a Yum-based system, such as Fedora, RHEL or CentOS install using:

    sudo yum install git-core

### Cloning the sources

To take a copy of the sources for the first time from the repository, use this command:

    git clone --recursive git://github.com/cherokee/webserver cherokee

If you are on a system with a version of Git earlier than 1.6.5, then you will also need to manually update the Git submodules for this repository:

    git clone git://github.com/cherokee/webserver cherokee
    cd cherokee
    git submodule update --init

### Updating the sources

To update the source with latest changes, you use this command within your local repository:

    git pull -u

### Compiling and installing

Once you have downloaded the latest source from Git, you will need to follow the installation instructions for your specific platform.

Note that some of the files present in a release tarball are not present in Git - the most notable of which is the `./configure` file that will be needed for the compilation and installation process.

To generate the missing files simply run this command within your local repository:

    ./autogen.sh

As optional parameters, you can specify any option you want passed to `./configure`. This way you can avoid issuing another command for the configuration.

For instance, this line will configure your local copy with the four specified parameters:

    ./autogen.sh --prefix=/usr        --sysconfdir=/etc \
                 --localstatedir=/var --enable-trace

Once you have done this, you are now ready to proceed with the standard compilation process for your platform:

- Unix installation

- Windows installation