注意:
The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Portage Git Mirror
Jump to navigation
Jump to search
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@git.lan # mkdir /home/git-mirrors root@git.lan # chown nobody /home/git-mirrors root@git.lan # su -s /bin/sh nobody nobody $ cd /home/git-mirrors nobody $ git clone --mirror --bare git://github.com/funtoo/portage-mini-2011.git portage.git
Configure git-daemon in /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 Daemon::
root@git.lan # /etc/init.d/git-daemon start root@git.lan # rc-update add git-daemon default
Pull from remote
Add to /etc/cron.daily/funtoo-sync.sh::
#!/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@localhost # mv /usr/portage /usr/portage.old root@localhost # git clone git://git.lan/portage.git /usr/portage root@localhost # cd /usr/portage root@localhost # git checkout funtoo.org