Wie baue ich mir meinen eigenen Apt Rpm Server? =============================================== Diese Anleitung soll kurz und buendig naeher bringen wie man sich seine eigenen apt-rpm faehigen repository aufsetzt und pflegt. Ich erklaere das ganze am Beispiel von RedHat 8.0 generell ist die Anleitung aber fuer alle gaengigen rpm basierten Distributionen gueltig. Achtung: Diese Informationen sind _nicht_ fuer Debian basierte Distributionen zu gebrauchen! Zuerst einmal muessen wir uns auf dem Server ein Verzeichniss erstellen auf das wir spaeter per ftp oder http zugreifen koennen. In diesem Verzeichniss erstellen wir uns folgende Verzeichnisstrucktur wobei man auf die Architektur durchaus verzichten kann wenn man nur Packete fuer i386 pflegt. Das eigentliche Verzeichniss in dem die rpms liegen _muss_ am Anfang ein gross geschriebenes RPMS. oder SRPMS. (je nachdem ob es sich um rpms oder source rpms handelt) tragen und darauf folgt der Namen, in unserem Falle erscheinen os und os-update sinnvoll. Das generelle Schema sieht aus wie folgt: ////(S)RPMS./ Wir belassen es der Einfachheit halber bei /ftp/dists/redhat/8.0/RPMS.os /ftp/dists/redhat/8.0/RPMS.os-update Wenn wir auch Source rpms mit einpflegen wollen benoetigen wir noch folgende Verzeichnisse: /ftp/dists/redhat/8.0/SRPMS.os /ftp/dists/redhat/8.0/SRPMS.os-update In das Verzeichniss RPMS.os kopieren wir nun von allen RH CD's die rpms aus dem Verzeichniss RedHat/RPMS in unserem Beispiel cp /mnt/cdrom/RedHat/RPMS/*.rpm /ftp/dists/redhat/8.0/RPMS.os/ Mit den source RPMs wird bei Bedarf genauso verfahren wobei das Ziel Verzeichniss dann natuerlich SRPMS.os ist. Die Update-Packete koennen per ftp von jedem RedHat Mirror bezogen werden. Es ist zu empfehlen die Updates automatisiert mit hilfe von mirror.pl oder rsync zu pflegen. Mirror Homepage: http://sunsite.org.uk/packages/mirror/ Rsync ist in RedHat als Packet enthalten. Jetzt benoetigen wir nur noch die apt-rpm Tools um die passenden Package files zu generieren. Aktuelle Packete fuer RedHat 8.0 gibt es von Matthias Saou auf seiner Website freshrpms.net Das rpm Packet kann wie gewohnt mit rpm -i installiert werden. In diesem Packet befindet sich u.a. das Tool genbasedir das fuer die Generierung der Packetlisten zustaendig ist. Fuer unser Archiv sieht das ganze in etwa so aus: /usr/bin/genbasedir --bloat --flat /ftp/dists/redhat/8.0/ Wer moechte kann auch noch ein --progess mit einfuegen. Aufgeschluesselt bedeuten die Paramter folgendes: --bloat Wird fuer die meisten nicht Conectiva Distributionen benoetigt da dort Abhaengigkeiten auf Dateien anders angeben werden und sonst nicht in den Datenbanken auftauchen wuerden. --flat Kennzeichnet die Verwendung eines Archives wo die RPMS und SRPMS repository im gleichen Verzeichniss liegen. Die Alte Variante (ohne --flat) wuerde in etwa so aussehen: /redhat/8.0/SRPMS.os /redhat/8.0/redhat/RPMS.os --progress Eine einfache Fortschrittsanzeige So und schon ist unser eigenes Repository fertig und wir koennen bei Bedarf weitere RPMS.* ud SRPMS.* Ordner erzeugen um Distributionsfremde Packete wie z.B. die von freshrpms.net mit einzupflegen. Zu beachten ist nur das auf dem Server nach jeder Aenderung in den Archiven genbasedir gestartet werden muss um die Aenderungen fuer die Clients sichtbar zu machen. Ausserdem wird immer wieder vergessen das die Clients sich erst mittels apt-get update die neuen Packetlisten holen muessen bevor sie von den Aenderungen am Archiv etwas mitbekommen. Unser Server kann nun auf den Clients mit einem entsprechenden Eintrag in die /etc/apt/sources.list mit eingebunden werden. Der Eintrag sollte in etwa so aussehen (wobei "/ftp" "/" auf dem Server ist): rpm ftp://mein.server.de/dists/ redhat/8.0/ os os-update sven@timegate.de last change: 11.11.2002