Difference between pages "Package:Radeon Video Drivers" and "Portage Git Mirror"
(Difference between pages)
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
=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 | |||
<table border="1"> | |||
<tr class="header"> | |||
<th align="left">Terms</th> | |||
<th align="left">Definition</th> | |||
</tr> | |||
<tr class="odd"> | |||
<td align="left">git.lan</td> | |||
<td align="left">The git-daemon local mirror host</td> | |||
</tr> | |||
<tr class="even"> | |||
<td align="left">localhost</td> | |||
<td align="left">Any local host</td> | |||
</tr> | |||
<tr class="odd"> | |||
<td align="left">nobody</td> | |||
<td align="left">Owner user of .git files</td> | |||
</tr> | |||
<tr class="even"> | |||
<td align="left">/home/git-mirrors</td> | |||
<td align="left">Base path of git-daemon</td> | |||
</tr> | |||
</table> | |||
=== | == Local mirror == | ||
==== Prepare directories and get portage tree==== | |||
<console> | |||
###i## mkdir /home/git-mirrors | |||
###i## chown nobody /home/git-mirrors | |||
###i## su -s /bin/sh nobody | |||
$##bl## cd /home/git-mirrors | |||
$##bl## git clone --mirror --bare git://github.com/funtoo/ports-2012.git portage.git | |||
</console> | |||
For a security reason we use a nobody user . | |||
==== git-daemon configuration==== | |||
{{file|name=/etc/conf.d/git-daemon|desc=|body= | |||
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 | |||
}} | }} | ||
=== | ====Service configuration==== | ||
To start daemon with a mirror machine boot add <code>git-daemon</code> to default runlevel | |||
<console> | |||
###i## rc-update add git-daemon default | |||
</console> | |||
To make changes start immediately just run <code>rc</code> | |||
<console> | <console> | ||
###i## | ###i## rc | ||
</console> | </console> | ||
=== Pull from remote === | |||
Add the following to <code>/etc/cron.daily/funtoo-sync.sh</code>: | |||
<pre> | |||
#!/bin/sh | |||
cd /home/git-mirrors/portage.git | |||
su nobody -s "/bin/sh" -c "git pull" | |||
</pre> | |||
== Cloning from local git-daemon == | |||
Local clone from <code>git.lan</code>: | |||
<console> | <console> | ||
# ##i## | ###i## mv /usr/portage /usr/portage.old | ||
###i## git clone git://git.lan/portage.git /usr/portage | |||
###i## cd /usr/portage | |||
###i## git checkout funtoo.org | |||
</console> | </console> | ||
[[Category:HOWTO]] | |||
Revision as of 11:40, December 13, 2014
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
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 pull"
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