View previous topic :: View next topic |
Author |
Message |
Dirk_G Tux's lil' helper
Joined: 09 Nov 2003 Posts: 144 Location: Wallerfangen
|
Posted: Fri Jun 11, 2004 11:48 am Post subject: localer gentoo mirror |
|
|
Hi zusammen
Habe mir auf einen Server Gentoo installiert den ich auch als mirror für mein locales Netz nutzen will. Rsync für den Portagetree und ein kleiner FTP Server für die Distfiles und den Snapshot laufen schon. Was mir jetzt noch fehlt sind die Distfiles. Aus Platzgründen kann ich aber nicht alle Distfiles laden, sondern wollte mir nur die wichtigsten hohlen, wie system, X, KDE, Gnome, Mozilla, OpenOffice und so. Aber wie macht man das?
Reicht es wenn ich mir ein Script oder cron schreibe mit
emerge -f system xfree kde gnome usw.
Läd mir das dann auch ALLE Abhänigkeiten mit, zumal der Server ja ohne X und den Krempel auskommt! Währe für jeden Tip dankbar den ihr mir gibt.
Dirk |
|
Back to top |
|
|
thm Tux's lil' helper
Joined: 15 Dec 2003 Posts: 77 Location: Munich
|
Posted: Fri Jun 11, 2004 12:47 pm Post subject: |
|
|
Ja und nein. emerge -f berechnet zwar die Abhängigkeiten und holt die distfiles, jedoch nur gemäss der USE-Einstellung auf dem Server. Dadurch würden ziemlich sicher einige Pakete und Dateien rausfallen. Besser ist wahrscheinlich: Code: | USE="..." emerge -f <Pakete> | wobei ... hinreichend grosszügig gewählt werden muss, damit alle Clients das finden was sie suchen.
Ich habe etwas Ähnliches vor und würde mich für deine config-Dateien zu rsync und ftp interessieren. _________________ Thomas |
|
Back to top |
|
|
Dirk_G Tux's lil' helper
Joined: 09 Nov 2003 Posts: 144 Location: Wallerfangen
|
Posted: Fri Jun 11, 2004 1:13 pm Post subject: |
|
|
Hi
Bin schon etwas weiter...
Nachdem ich mich in die englische Beschreibung von emerge eingelesen hab, hab ich die Option -ef gefunden. Soweit ich das verstanden hab nimmt der dann alles. Währe aber nett wenn mir das noch einer der echt Ahnung und englisch kann mir das mal erklärt besonders ob ich dann die USE noch brauche oder nicht?
Was ich auch noch nicht weiß, wie sieht es mit den alten Distfiles aus, werden die automatisch gelöscht?
So, jetzt zu meiner rsync config:
Code: | cat /etc/rsync/rsyncd.conf
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-admin/gentoo-rsync-mirror/files/rsyncd.conf,v 1.5 2004/06/06 14:14:26 klieber Exp $
uid = nobody
gid = nobody
use chroot = yes
max connections = 20
pid file = /var/run/rsyncd.pid
motd file = /etc/rsync/rsyncd.motd
transfer logging = no
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[gentoo-x86-portage]
#this entry is for compatibility
path = /opt/gentoo-rsync/portage
comment = Gentoo Linux Portage tree
[gentoo-portage]
#modern versions of portage use this entry
path = /opt/gentoo-rsync/portage
comment = Gentoo Linux Portage tree mirror
exclude = distfiles |
Als ftp-server hab ich oftpd. Der ist so einfach das wirklich jeder damit klar kommt!
cu
Dirk |
|
Back to top |
|
|
thm Tux's lil' helper
Joined: 15 Dec 2003 Posts: 77 Location: Munich
|
Posted: Fri Jun 11, 2004 1:52 pm Post subject: |
|
|
Der Manpage text gibt leider nicht her, wie sich --emptytree auf die verwendeten USE-Keywords auswirkt. Nach einigem Ausprobieren erscheint es mir, dass USE dann maximiert wird (vermutlich anhand der "Deklaration" im jeweiligen ebuild. Man kann allerdings einzelne Keywords ausschliessen, z.B.: Code: | USE="-readline" emerge -ep parted |
Kurz: -ef scheint in erster Näherung auszureichen.
Danke für die rsync.conf _________________ Thomas |
|
Back to top |
|
|
amne Bodhisattva
Joined: 17 Nov 2002 Posts: 6378 Location: Graz / EU
|
Posted: Fri Jun 11, 2004 3:24 pm Post subject: |
|
|
Hier steht auch ein bisschen was zum Thema:
[PORTAGE] Einen Portageserver für mehrere Rechner
Prinzipiell ist es vermutlich sinnvoller, das ganze so aufzuziehen, dass die Distfiles erst geladen werden, wenn sie wirklich benötigt werden - das soll angeblich der TSP-Cache gut können. Ansonsten würdest du nur einen haufen Files ziehen, die dann keiner mehr braucht weil neuere Versionen kommen - und das soll ja wohl nicht der Sinn des Mirrors sein. _________________ Dinosaur week! (Ok, this thread is so last week) |
|
Back to top |
|
|
Dirk_G Tux's lil' helper
Joined: 09 Nov 2003 Posts: 144 Location: Wallerfangen
|
Posted: Sat Jun 12, 2004 2:29 pm Post subject: |
|
|
Hi
So, hab jetzt ein wenig rumprobiert und es scheit das es mit
zu geht. Sollte dann noch die ein oder ander Datei fehlen ist das nicht so schlimm. Werd ich aber noch ausgibig testen können...
Das zweite Problem mit den alten Distfiles hab ich glaube ich auch gelößt. Hab mir einfach ein Script geschriben. Was besseres hab ich nicht (noch nicht) gefunden.
Hier mal das Script
Code: | cat distfiles.clean.sh
#!/bin/bash
PATH_DISTFILES="/usr/portage/distfiles"
PATH_PORTAGE="/usr/portage"
echo "Start cleannig at `date`"
echo -ne "\tGenerating new Database of $PATH_PORTAGE"
locate -U $PATH_PORTAGE
echo -e "\r\t\t\t\t\t\t\t\t\t\tok"
count=0
for distfile in `ls $PATH_DISTFILES`
do
echo -ne "\tSearch ebuild for --> $distfile"
ebuild="/`echo $distfile | sed 's/.tar.*//g'`"
if [ "`locate $ebuild | grep ebuild`" = "" ];then
echo -e "\r\t\t\t\t\t\t\t\t\t\tdeleting"
rm $"$PATH_DISTFILES/$distfile"
else
echo -e "\r\t\t\t\t\t\t\t\t\t\tok"
fi
done
echo "End cleanning at `date`" |
Ist nichts wildes und auch noch nicht so elegant, aber ich denke es erfüllt seinen Zweck. Ich gehe einfach davon aus, das wenn es kein Ebuild mehr gibt kann ich auch dieses Package nicht mehr emergen! --> Und wenn das nicht geht brauche ich es nicht mehr.
Dummerweise gibt es aber Distfiles die kein Ebuild haben. Die werden dann gleich mit gelöscht.
Na ja, was solls. Die sind eh nur ein paar 100k groß und sind schnell wieder gezogen!
Dirk |
|
Back to top |
|
|
Chacabaou n00b
Joined: 12 Jun 2004 Posts: 30 Location: Erlangen/Germany
|
Posted: Sat Jun 12, 2004 6:57 pm Post subject: |
|
|
Hallo Dirk,
ich hatte bei mir mal genau dasselbe vor, und habe es mittlerweile recht elegant (IMHO) gelöst.
Der Portagetree besorge ich mir auf einen zentralen Rechner mit gentoo-rsync-mirror (sollte klar sein), von dort wird er dann allen anderen zur Verfügung gestellt.
Bei den distfiles musste ich eine Weile rumrätseln, bis ich dann das (AFAIK) einzige Programm gefunden hatte, was dieser Aufgabe wirklich gerecht wird: apt-proxy.
Eigentlich ist es ein Tool für Debian, da es aber letztlich nur aus einem großen Shellscript besteht, kann man sich das leicht klauen.
Der Vorteil von apt-proxy ist, dass es perfekt mit der Herausforderung des Caching umgeht. Andere Programme hatten ausnahmslos Probleme damit, distfiles nicht mehrmals runter zu laden, sie IMMER aus dem Cache zu holen, wenn sie da sind, usw.
Mit apt-proxy ist es mir möglich, auf einem Client einen distfiles-download jederzeit zu beginnen und zu stoppen, emerge hängt sich immer wieder in den Download ein und apt-proxy schickt mir durch, was es bisher schon hat, ohne den Download neu zu starten, oder derartige Sperenzchen.
Mittlerweile gibt es übrigens auch ein ebuild zu apt-proxy, allerdings erinnere ich mich, dass ich den Source ein klein wenig abändern musste, damit auch stinknormale distfiles (das Teil ist ja in der Lage DEBs unter Beachtung ihrer Versionen zu verarbeiten, und so) geladen werden können.
HTH,
Daniel. _________________ "You win again, gravity!" -- Zapp Brannigan |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|