You are looking at historical revision 19356 of this page. It may differ significantly from its current revision.

The easiest way to create a mirror of the chicken egg repository is with svnsync and Apache's mod_svn.

Let's imagine we're putting a mirror in /home/chicken/eggs-mirror. The following commands (which will take a while) will create an initial mirror:

svnsync initialize file:///home/chicken/eggs-mirror
snvsync synchronize file:///home/chicken/eggs-mirror

Having done that, make it available via SVN-over-HTTP by installing/enabling mod_svn in your Apache, then adding something like the following:

<VirtualHost *>
        DocumentRoot "/home/chicken/public_html"
        ErrorLog /home/chicken/error_log
        CustomLog /home/chicken/access_log combined

        <Location /svn>
        DAV svn
        SVNPath /home/chicken/egg-mirror
                Deny from all

That will mean you can use as a read-only SVN repository. Once that's working, set up a cronjob (we recommend hourly) to run:

snvsync synchronize file:///home/chicken/eggs-mirror

...which will quickly bring in any recent changes.

You can now install via your local repo with a command like:

chicken-install -l -t svn <name of egg>

The next level of awesome is to install a copy of the henrietta CGI on the server, to enable chicken-install to install directly from it without having to talk svn directly. henrietta.scm can be found in the chicken core sources under the scripts directory. Compile it with csc to obtain an executable, and place it in /home/chicken/bin. Then place the following into /home/chicken/public_html/henrietta.cgi and make it executable:


export HENRIETTA=/home/chicken/bin/henrietta
export LOGFILE=/home/chicken/henrietta.log

exec "$HENRIETTA" -l "$EGG_REPOSITORY" -t svn 2>>"$LOGFILE"

You will now be able to install eggs a lot faster, with a command like:

chicken-install -l -t http <name of egg>

If you would like to help the Chicken community by offering your mirror up for public usage, please contact the Chicken core team. Thanks!