Debian apt-proxy/apt-mirror auf FreeBSD?

ACE_Map

Member
Ja ginge denn das?

Es wäre gut, wenn das geplante Serversystem unter FreeBSD auch als Paketserver für die anderen Debiankisten dienen könnte.
Gäbe es da eine Möglichkeit das zu bewerkstelligen?
apt-proxy ist in Python geschrieben.
 
apt-proxy/apt-mirror kann ich nicht sagen, aber ich hab in der Arbeit einen Debian-Spiegel via debmirror (Perl) auf FreeBSD am Laufen. Tut einwandfrei.
 
apt-proxy/apt-mirror kann ich nicht sagen, aber ich hab in der Arbeit einen Debian-Spiegel via debmirror (Perl) auf FreeBSD am Laufen. Tut einwandfrei.
Danke für die Antwort, das hört sich doch gut an.
Also den source-tarball heruntergeladen, installiert, konfiguriert und laufen lassen?
Wie gross ist denn der Platzbedarf für einen kompletten Spiegelabzug oder kann debmirror auch nur Teile der Distributionen spiegeln?
Wie oft aktualisierst Du den Spiegel?
 
Zuletzt bearbeitet:
Das debmirror ist ein Perlscript. Ob ich darin was geändert habe, kann ich gerade nicht mehr sagen.
Das debmirror rufe ich mit den gewünschten Parametern aus einem kleinen Shellscript auf.

Platzbedarf hängt davon ab, was du alles spiegeln willst. Ich hab drin main, contrib, non-free für stable, testing, unstable; verzichte auf die Source-Pakete und beschränke mich auf amd64. Glaube, das waren so an die 35GB.

Ich synce einmal die Woche.

Nächste Woche bin ich wieder im Büro, kann dann genauere Infos nachreichen.
 
...Platzbedarf hängt davon ab, was du alles spiegeln willst. Ich hab drin main, contrib, non-free für stable, testing, unstable; verzichte auf die Source-Pakete und beschränke mich auf amd64. Glaube, das waren so an die 35GB.

Ich synce einmal die Woche.

Nächste Woche bin ich wieder im Büro, kann dann genauere Infos nachreichen.

Okay, ich müsste Ubuntu spiegeln. Ich will mir das apt-proxy nochmals genauer anschauen. Bei genauerem Hinsehen dürfte der begrenzende Faktor nicht der Plattenplatz sondern die Downloadbandbreite sein. Andererseits könnte ich das Synchronisieren auch öfters machen und immer nach Mitternacht.

An den genaueren Informationen bin ich interessiert. Wäre toll, wenn Du da noch etwas dazu tun könntest.
 
apt-proxy cached, soweit ich weiss, nur die Pakete, die ein anderer ueber diesen Proxy runterlaedt. Damit duerfte der Bedarf an Plattenplatz und Download Kontingent geringer sein als bei apt-mirror.
 
apt-proxy cached, soweit ich weiss, nur die Pakete, die ein anderer ueber diesen Proxy runterlaedt. Damit duerfte der Bedarf an Plattenplatz und Download Kontingent geringer sein als bei apt-mirror.

Genau. Beim ersten request wird das Paket von einem nur dem apt-proxy bekannten Server (die anderen Systeme haben den apt-proxy-Host als Paketserver eingetragen) heruntergeladen und dann dem anfordernden System zur Verfügung gestellt. Die Verzögerung ist minimal. Dann wird das Paket gecacht. Wenn ich mich recht erinnere lauscht das Python-Skript auf einem vorgegebenen Port und nimmt dort alle Paket-requests entgegen. Ich weiss nicht mehr genau, ob es eine Art garbage collection oder outdated-removal gibt. Ansonsten muss man die alten obsoleten Pakete von Hand aus dem Cache rausschmeissen.
 
apt-cache gibts auch im Portstree unter sysutils/apt
Läuft ganz gut, hab es hier auch mal im Einsatz gehabt.
 
apt-cache gibts auch im Portstree unter sysutils/apt
Läuft ganz gut, hab es hier auch mal im Einsatz gehabt.

Goil.
Apt-cacher kann als Ersatz von apt-proxy verwendet werden, ohne dass die /etc/apt/sources.list-Dateien der Clienten angepasst werden müssen (sogar die Einstellungen und zwischengespeicherten Daten können wiederverwendet werden); auch als Alternative zu approx kann er benutzt werden.
Jetzt muss ich nur noch wieder ins Büro kommen, um endlich FreeBSD auf den Server drauf zu spielen.
 
Hier mal meine Vorgehensweise via debmirror.

Auf einem Debian hole ich mir als erstes das debmirror, kopiere es auf ein FreeBSD und versehe es dort mit Ausführrechten.
Code:
debian# apt-get install debmirror
debian# scp /usr/bin/debmirror freebsd-system:/usr/local/bin/

Auf dem FreeBSD installiere ich dann die Abhängigkeiten nach, die auf dem Debian auch installiert wurden.
Code:
portinstall p5-Compress-Zlib p5-Digest-SHA1 p5-HTML-Parser p5-HTML-Tree p5-LockFile-Simple p5-Log-Agent p5-URI p5-libwww rsync gnupg

Das debmirror wird via Parameter aufgerufen. Dazu mach ich mir ein kleines Shellscript, welches dann letztendlich von cron gestartet wird.
Code:
#!/bin/sh
 
FTPPUB=/usr/home/ftp/pub
DEBMIRROR=/usr/local/bin/debmirror
 
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
HOME=/root
 
# Es wird
#
# - Debian-Stable
# - Debian-Testing
# - Debian-Unstable
# - main
# - contrib
# - non-free
# - fuer Architektur i386 und amd64
# nach $FTPPUB/debian
# - Debian-Security Updates - Stable
# - fuer Architektur i386 und amd64
# nach $FTPPUB/debian-security
# gespiegelt.
 
logger "syncing debian"
$DEBMIRROR $FTPPUB/debian --progress --method=rsync --getcontents --nosource --host=ftp.de.debian.org --root=:debian/ --dist=stable,testing,unstable --section=main,contrib,non-free --arch=i386 --arch=amd64 --cleanup --passive
 
logger "syncing debian-security"
$DEBMIRROR $FTPPUB/debian-security --progress --method=rsync --nosource --host=security.debian.org --root=:debian-security/ --dist=stable/updates --section=main,contrib,non-free --arch=i386 --arch=amd64 --cleanup --passive

Wenn ich das Script jetzt starte, bekomme ich:
Code:
gpg: Signature made Mon Nov 16 15:10:55 2009 UTC using RSA key ID 55BE302B
gpg: Can't check signature: No public key
Release signature does not verify.

Also noch schnell importieren.
Code:
gpg --recv-keys 0x55BE302B

Und schon sollte es rennen. Mit obigen Parametern werden bei mir momentan 74GB belegt.

Anschließend den Spiegel je nach Wunsch via FTP/HTTP veröffentlichen.
 
Klasse. Danke.
Bin gerade beim Aufsetzen des Servers. Ich werde mir die drei Methoden debmirror, apt-cache und apt-proxy nochmals in Ruhe ansehen, um das Passende zu finden.
 
Zurück
Oben