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 https://code.call-cc.org/svn/chicken-eggs
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 *>
        ServerAdmin webmaster@example.com
        DocumentRoot "/home/chicken/public_html"
        ServerName chicken-mirror.example.com
        ErrorLog /home/chicken/error_log
        CustomLog /home/chicken/access_log combined

        <Location /svn>
        DAV svn
        SVNPath /home/chicken/egg-mirror
        <LimitExcept GET PROPFIND OPTIONS REPORT>
                Deny from all
        </LimitExcept>
        </Location>
</VirtualHost>

That will mean you can use http://chicken-mirror.example.com/svn 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 http://chicken-mirror.example.com/svn/release/4 -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:

#!/bin/sh

export HENRIETTA=/home/chicken/bin/henrietta
export EGG_REPOSITORY=http://chicken-mirror.example.com/svn/release/4
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 http://chicken-mirror.example.com/henrietta.cgi -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!