Difference between pages "Portage Git Mirror" and "Template:ArticleFooter"

(Difference between pages)
m (found the --sync settings for portage in the install guide)
 
 
Line 1: Line 1:
=Setting up local git mirror =
+
{{#vardefine:Next|{{#show:{{FULLPAGENAME}}|?Next in Series|link=none}}}}
 
+
{{#if:{{#var:Next|}}|'''Read the next article in this series: [[{{#var:Next}}]]'''}}
This tutorial explains how to save bandwidth when several local computers need to pull updates from a single remote git repository.
+
{{Tip|[[Support Funtoo]] and help us grow! '''Donate $15 per month and get a free SSD-based [[Funtoo Hosting|Funtoo Virtual Container]].'''}}
 
+
</div><div class="col-xs-12 col-md-3">{{#vardefine:Summary|{{#show:{{FULLPAGENAME}}|?Summary}}}}
== Use case ==
+
{{#vardefine:Author|{{#show:{{FULLPAGENAME}}|?Author|link=none}}}}
 
+
{{#vardefine:Icon|{{#show:{{FULLPAGENAME}}|?Icon}}}}
This tutorial will be about hosting a local mirror of funtoo git based portage tree.
+
{{#if:{{#var:Author|}}|{{#widget:ArticleBio|body={{#show: {{#var:Author}} | ?Bio }}|user={{#var:Author|}}|icon_url={{#if:{{#var:Icon|}}|{{filepath:{{#sub:{{#var:Icon}}|5}}|80}}|http://www.gravatar.com/avatar/{{#show: {{FULLPAGENAME}} | ?Gravatar MD5}}/?s=80&d=retro&r=g}}}}}}
 
+
<div class="bs-head" style="text-decoration: underline; margin-bottom: 15px;">Got Funtoo?</div>
Following terms should be adapted
+
Have you installed Funtoo Linux yet? Discover the power of a from-source meta-distribution optimized for your hardware! See our [[Funtoo Linux Installation|installation instructions]] and [[Subarches|browse our CPU-optimized builds]].
 
+
<div class="bs-head" style="text-decoration: underline; margin-bottom: 15px;">More Articles</div>
{{TableStart}}
+
Browse all our Linux-related articles, below:
<tr class="header">
+
{{#ask:[[Category:Articles]]
<th align="left">Terms</th>
+
|format=category
<th align="left">Definition</th>
+
|link=all
</tr>
+
|headers=show
<tr class="odd">
+
|searchlabel=... further results
<td align="left">git.lan</td>
+
|columns=1
<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>
+
{{TableEnd}}
+
 
+
== 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 --interpolated-path=/home/git-mirrors"
+
GIT_USER=nobody
+
GIT_GROUP=nobody
+
 
}}
 
}}
 
+
__NOEDITSECTION__
====Service configuration====
+
</div></div></div>
To start daemon with a mirror machine boot add <code>git-daemon</code> to default runlevel
+
[[Category:Articles]]
<console>
+
###i## rc-update add git-daemon default
+
</console>
+
To make changes start immediately just run <code>rc</code>
+
<console>
+
###i## rc
+
</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 fetch"
+
</pre>
+
 
+
== Cloning from local git-daemon ==
+
 
+
Local clone from <code>git.lan</code>:
+
<console>
+
###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>
+
 
+
== Downstream Clients Settings ==
+
{{file|name=/etc/portage/make.conf|lang=|desc=define client sync source for emerge --sync|body=
+
SYNC="git://git.lan/portage.git"}}
+
 
+
[[Category:HOWTO]]
+

Revision as of 01:09, January 2, 2015

Read the next article in this series: [[{{#show:Template:ArticleFooter|?Next in Series|link=none}}]]

Tip

Support Funtoo and help us grow! Donate $15 per month and get a free SSD-based Funtoo Virtual Container.

</div>


About the Author

{{#show: {{#show:Template:ArticleFooter|?Author|link=none}} | ?Bio }}

Got Funtoo?

Have you installed Funtoo Linux yet? Discover the power of a from-source meta-distribution optimized for your hardware! See our installation instructions and browse our CPU-optimized builds.

More Articles

Browse all our Linux-related articles, below: {{#ask: |format=category |link=all |headers=show |searchlabel=... further results |columns=1 }}

</div></div>