Portage Git Mirror
Jump to navigation
Jump to search
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
Git-daemon configuration
Prepare directories and clone portage-mini from github::
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/portage-2012.git portage.git
Configure git-daemon in /etc/conf.d/git-daemon
:
root # nano /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" GIT_USER="nobody" GIT_GROUP="nobody"
Start the daemon:
root@git.lan# /etc/init.d/git-daemon start root@git.lan# rc-update add git-daemon default
Pull from remote
Add the following to /etc/cron.daily/funtoo-sync.sh
:
root # nano /etc/cron.daily/funtoo-sync.sh root #!/bin/sh cd /home/git-mirrors/portage.git su nobody -s "/bin/sh" -c "git fetch --all"
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