Portsnap

Aus UUGRN

Portsnap ist ein nützliches Werkzeug für die FreeBSD Softwarepflege. Es dient der speicherplatz- und zeiteffizienten Synchronisation des Portsbaums mit dem offiziellen Portsbaum. Auf speziellen Servern werden sogenannte Deltas bereitgestellt und vom portsnap-Client heruntergeladen. Diese Deltas werden danach zur Aktualisierung des lokalen Portsbaums verwendet. Ein weiterer Vorteil ist, dass die Index-Dateien (/usr/ports/INDEX*) ebenfalls mitaktualisiert werden und nicht selbst erzeugt oder heruntergeladen werden müssen.

Im Gegensatz zu CVS und davon abgeleiteten Methoden kann nicht ein bestimmter Zustand ausgewählt werden, man erhält stets einen Snapshot des aktuellen Portsbaums.

Portsnap ist seit FreeBSD Version 6.1 Bestandteil des Basissystems, für ältere Releases kann es aus dem Port sysutils/portsnap(cvs) nachistalliert werden. Danach sollte noch ein Blick auf (/usr/local)/etc/portsnap.conf geworfen werden, darin kann man beispielsweise bestimmte Teile des Portsbaums ausklammern, die garantiert nicht benötigt werden, wie beispielsweise die Sprach-Teilbäume für nicht benötigte Sprachen.

Erstmalige Verwendung[Bearbeiten]

Zunächst müssen sämtliche verfügbaren Deltas heruntergeladen und ein evtl. vorhandener anderweitig beschaffter Portsbaum weggeräumt werden. Anschließend kann man mit portsnap den neuen Portsbaum extrahieren.

portsnap fetch
mv -f /usr/ports /usr/ports.old
portsnap extract

Danach kann der nicht mehr benötigte, alte Portsbaum unter /usr/ports.old gelöscht werden. Es ist unter Umständen sinnvoll die zwischenzeitlich angesammelten Distfiles und Packages aus dem alten Portsbaum in den neuen zu verschieben:

mv -f /usr/ports.old/{distfiles|packages} /usr/ports
rm -rf /usr/ports.old

Um diese Kommandos ausführen zu können braucht man Schreibrechte auf den Portsbaum und das Spool-Verzeichnis für die heruntergeladenen Deltas.

Spätere Aktualisierung[Bearbeiten]

portsnap fetch
portsnap update

Siehe auch[Bearbeiten]