Changes

Jump to: navigation, search

Portage Git Mirror

987 bytes added, 2 years ago
Changes to obviate the /usr/portage.old requirement, restructured verbiage, updated stale wiki-isms
== Use case ==
This tutorial The more local funtoo instances you are maintaining, the more useful this will be about hosting to you. This -- along with a local mirror of [[Portage_Distfiles_Mirror]] -- can make maintaining multiple funtoo git based portage treeinstances much faster, much more bandwidth efficient, and much less burdensome to upstream resources===Terminology used herein===
Following terms should be adapted
== Local mirror ==
==== Prepare directories and get portage tree====<{{console>|body=
###i## mkdir /home/git-mirrors
###i## chown nobody /home/git-mirrors
$##bl## cd /home/git-mirrors
$##bl## git clone --mirror --bare git://github.com/funtoo/ports-2012.git portage.git
</console>}}For a security reason purposes we will use a the {{c|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
}}
====Service configuration====To start daemon with a mirror machine boot add <code>{{c|git-daemon</code> }} to default runlevel<{{console>|body=
###i## rc-update add git-daemon default
</console>}}
To make changes start immediately just run <code>rc</code>
<{{console>|body=
###i## rc
</console>}}
=== Pull from remote ===
Add If desired, the following to <code>/etc/local mirror can be updated periodically using {{c|cron}}.This example updates daily/funtoo-sync.sh</code>:
<pre>{{file|name=/etc/cron.daily/funtoo-sync.sh|desc=|body=
#!/bin/sh
cd /home/git-mirrors/portage.git
su nobody -s "/bin/sh" -c "git fetch"
<}} Then make the file executable:{{console|body=###i## chmod +x /pre>etc/cron.daily/funtoo-sync.sh}} You can also update the local mirror using {{c|emerge --sync}} or {{c|eix-sync}} if you have {{c|app-portage/eix}} installed. = Cloning from the local git mirror =
== Cloning from In order to get a funtoo instance to sync with the local git-daemon ==mirror, the instance's portage directory will need some work.
Local clone from <code>The following is used with any funtoo instance you wish to use your local git mirror for its tree. This will change the git remote origin to point to your local {{c|git.lan</code>:<console>###i## mv }} origin, and then start using it. (This is an updated method which obviates the need to create a {{c|/usr/portage .old}} copy of the existing {{C|/usr/portage}} directory.old) ###i## git Local clone git://from {{c|git.lan/portage.git /usr/portage}}:{{console|body=
###i## cd /usr/portage
###i## git checkout funtooremote show origin###i## git remote rm origin###i## git remote add origin git://git.lan/portage.orggit###i## git remote show origin<###i## git clone --depth 1 git://git.lan/console>portage.git tmp###i## rm -r .git###i## mv tmp/.git .###i## git reset --hard###i## chown -R portage:portage /usr/portage###i## eix-sync}}
== Downstream Clients Settings ==machines previously syncing to upstream mirrors need their {{note|Use {{c|emerge --sync}} if you do not have {{c|app-portage moved:<console>###i## mv /usr/portage /usr/portageeix}} installed.old</console>}}
{{file|name=/etc/portage/make.conf|lang=|desc=define client sync source for emerge --sync|body=
SYNC="git://git.lan/portage.git"}}
[[Category:HOWTO]]
wiki-users
4
edits

Navigation menu