Hallo,
vielleicht hat ja jemand so ewtas schon mal gemacht, oder ein ähnliches Problem und kann mir dann ein paar Hinweise geben.
Folgendes Szenario: Mehrere Ubuntu-PCs (Architektur nicht unbedingt einheitlich) sitzen in einem schnellen internen Netz. Diese Rechner werden immer mal wieder ein- und ausgeschaltet. Außerdem hängt auch noch ein Server mit nicht zu hoher Rechenleistung aber sehr ausreichendem Speicherplatz (ebenfalls Ubuntu) im selben Netz. Der Server ist immer an. Alle Rechner können über das Netz auf das Internet zugreifen und wollen auch von dort mit apt-get oder synaptic ihre Updates beziehen. Die Internetanbindung ist langsamer, hat aber keine Volumenbeschränkung. Zusätzlich habe ich die Möglichkeit ab und zu an einer hohen Bandbreite zu saugen (an einer anderen Stelle).
Problem: Verschwendung an Bandbreite, das selbe Update wird x-mal heruntergeladen. Nachts liegt die Bandbreite ganz brach.
Idee: ein lokaler Update-Server lädt den Kram einmal herunter und dann kann er intern schnell auf die PCs gezogen werden.
Lösungsansätze:
apt-cacher: der Server fährt sowieso einen Apache und der apt-cacher legt einfach gezogenen Updates auf einen Haufen und der nächste Anwender kann sie dann einfach aus dem Cache ziehen. Vorteile: einfach zu installieren und mit dem schon existierenden Apache vereinbar Nachteile: Der erste ist der Blöde und muss bei großen Sachen lange warten, analog für die Bandbreitennutzung, existierende heruntergeladene debs können anscheinend nicht importiert werden
apt-proxy: agiert als eigener Server, ist aber ein bisschen komplizierter zu installieren. Vorteile: Installation einfach, man kann schon vorliegende debs importieren Nachteile: Der erste Downloader ist wieder der Gelackmeierte.
apt-mirror oder andere Spiegelsysteme: halten einfach alle Pakete vor und aktualisieren sie. Vorteile: Es liegt auf dem Server immer eine Sammlung aktueller Pakete, von denen schnell und einfach Updates gefahren werden können, man kann die Bandbreite nachts nutzen, um die Sammlung auf dem Server zu aktualisieren Nachteile: der erste Spiegelvorgang dauert ewig (vielleicht verkürzbar, wenn man die ganzen debs herunterlädt und dann auf PLatte schon mal vorhält), man hat viel zu viele Pakete auf der Platte herumliegen und man holt jede Menge überflüssige Updates
Keine der Lösungen hat sich für mich jetzt als DIE Lösung herausgestellt. Ich hätte am liebsten eine Kombination aus einem Spiegel und apt-proxy, also sozusagen einen intelligenten Spiegel. Dieser kann dann folgendes tun:
er tritt als proxy für die Updates und Installationen auf
er legt die Pakete in einen internen Cache und merkt sich, welche Pakete dort sind
nachts wacht er auf (cron oder sonstwie) und aktualisiert die Pakete in seinem cache (so denn Updates vorhanden sind)
wenn ein Paket eine bestimmte Zeit niemanden mehr interessiert, bzw. nach einer Menge an Update-Vorgängen nicht mehr angefragt wird, dann landet es in der Tonne und wird nicht mehr aktualisiert.
Die oben genannte Lösung kann leider nicht mit apt-proxy/apt-cache realisiert werden, da diese Anwendungen zwar einen cache anlegen, aber die debs nicht so ablegen, dass man sie mit einer Art Spiegelsystem direkt aktualisieren kann.
Wenn also jemand eine Lösung oder Ideen hat, wie man diese Anforderungen erfüllen kann, dann wäre das eine schöne Sache. Falls es bisher keine Lösung gibt, das Problem direkt mit vorhandenen Programmen zu lösen und andere noch interessiert sind, dann kann man sich ja auch überlegen, ob man nicht mal ein paar Dinge mit Skripten erbastelt, die man dann verwenden kann. Allerdings denke ich, dass es sich hier um ein Problem handelt, das eigentlich jeden interessieren könnte, der einen Internetzugang mit wenig Bandbreite und einen durchlaufenden Rechner, sowie weitere nicht durchlaufende Rechner besitzt.
MfG, WvBraun.