Portage Git Mirror
Revision as of 10:47, December 17, 2014 by Threesixes (talk | contribs) (found the --sync settings for portage in the install guide)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Setting up local git mirror
This tutorial explains how to save bandwidth when several local computers need to pull updates from a single remote git repository.
Use case
This tutorial will be about hosting a local mirror of funtoo git based portage tree.
Following terms should be adapted
Terms | Definition |
---|---|
git.lan | The git-daemon local mirror host |
localhost | Any local host |
nobody | Owner user of .git files |
/home/git-mirrors | Base path of git-daemon |
Local mirror
Prepare directories and get portage tree
root # mkdir /home/git-mirrors root # chown nobody /home/git-mirrors root # su -s /bin/sh nobody user $ cd /home/git-mirrors user $ git clone --mirror --bare git://github.com/funtoo/ports-2012.git portage.git
For a security reason we use a nobody user .
git-daemon configuration
/etc/conf.d/git-daemon
GITDAEMON_OPTS="--syslog --verbose --enable=receive-pack --export-all"
GITDAEMON_OPTS="${GITDAEMON_OPTS} --base-path=/home/git-mirrors /home/git-mirrors --interpolated-path=/home/git-mirrors"
GIT_USER=nobody
GIT_GROUP=nobody
Service configuration
To start daemon with a mirror machine boot add git-daemon
to default runlevel
root # rc-update add git-daemon default
To make changes start immediately just run rc
root # rc
Pull from remote
Add the following to /etc/cron.daily/funtoo-sync.sh
:
#!/bin/sh cd /home/git-mirrors/portage.git su nobody -s "/bin/sh" -c "git fetch"
Cloning from local git-daemon
Local clone from git.lan
:
root # mv /usr/portage /usr/portage.old root # git clone git://git.lan/portage.git /usr/portage root # cd /usr/portage root # git checkout funtoo.org
Downstream Clients Settings
/etc/portage/make.conf
- define client sync source for emerge --syncSYNC="git://git.lan/portage.git"