GNU/Linux >> LINUX-Kenntnisse >  >> FreeBSD

Verwenden von Portsnap zum Aktualisieren der FreeBSD-Ports-Tree-Sammlung

Portsnap ist ein alternatives System zum sicheren Verteilen und Aktualisieren des FreeBSD-Ports-Baums, das einfacher zu verwenden ist als CVSup. Portsnap war erstmals in FreeBSD 6.0 enthalten. Wie CVSup verwendet Portsnap ein Pull-Modell der Aktualisierung:Die gepackten und signierten Ports-Bäume werden auf einem Webserver abgelegt, der passiv darauf wartet, dass Clients Dateien anfordern, indem er entweder portsnap manuell von Benutzern ausführt oder einen Cron-Job einrichtet, um Updates automatisch auf einen herunterzuladen regelmäßig.

Auf älteren FreeBSD-Systemen ist Portsnap nicht automatisch enthalten, aber es kann von sysutils/portsnap port mit folgendem Befehl installiert werden:

# pkg_add -r portsnap

Portsnap holt und aktualisiert zuerst komprimiert Snapshots des FreeBSD-Ports-Baums, die standardmäßig in /var/db/portsnap/ gespeichert sind (in /usr/local/portsnap/, wenn Portsnap von der FreeBSD Ports Collection installiert wird), und extrahiert und aktualisiert dann nur die unkomprimierten Live-Ports-Baum unter /usr/ports.

Das Verhalten und der Betrieb von Portsnap wird durch die Konfigurationsdatei portsnap.conf gesteuert, die sich in /etc befindet (in /usr/local/etc/, wenn Portsnap aus der FreeBSD Ports Collection installiert wird, und die Konfigurationsdatei wird stattdessen nicht automatisch generiert, wenn sie neu installiert wird finden Sie portsnap.conf.sample, kopieren Sie es einfach als portsnap.conf). Im Allgemeinen erledigt die Standardkonfigurationsdatei ihre Aufgaben.

Auf der Befehlszeile werden die folgenden Optionen unterstützt, obwohl sie meistens nicht verwendet werden müssen, einige können in der Konfigurationsdatei selbst konfiguriert werden:

-d Arbeitsverzeichnis :Arbeitsdateien (z. B. heruntergeladene Updates) in Arbeitsverzeichnis speichern. (Standard:/var/db/portsnap, oder wie in der Konfigurationsdatei angegeben)

-f conffile :Liest die Konfiguration von from conffile. (Standard:/etc/portsnap.conf)

-I :Aktualisiere für den Update-Befehl die INDEX-Dateien, aber nicht den Rest des Ports-Baums.

-k KEY :Erwarte einen öffentlichen Schlüssel mit gegebenem SHA256-Hash. (Standard:Wert aus Konfigurationsdatei lesen)

-p portsdir :Wenn Sie einen unkomprimierten Snapshot extrahieren oder aktualisieren, bearbeiten Sie das Verzeichnis portsdir. (Standard:/usr/ports/, oder wie in der Konfigurationsdatei angegeben.)

-s server :Dateien vom angegebenen Server oder Serverpool abrufen. (Standard:portsnap.FreeBSD.org , oder wie in der Konfigurationsdatei angegeben.)

path :Nur für den Extract-Befehl, nur auf Teile des Ports-Baums wirken, die mit path beginnen. (Beispiel:portsnap sysutils/port würde sysutils/portsman, sysutils/portsnap, sysutils/portupgrade usw. extrahieren)

Die Zusammenfassung für die Portsnap-Befehlszeile lautet:

portsnap [-I] [-d Arbeitsverzeichnis] ​​[-f conffile] [-k KEY] [-p Portverzeichnis] ​​[-s Server] Befehl … [Pfad]

Verwendung von Portsnap

  1. Erstellen Sie ein leeres Verzeichnis /usr/ports, falls es nicht existiert.
    # mkdir /usr/ports
  2. Holen und laden Sie einen komprimierten Snapshot der Ports-Sammlung in /var/db/portsnap (oder einen anderen in der Konfigurationsdatei angegebenen Speicherort) herunter. Zu diesem Zeitpunkt ist eine Internetverbindung erforderlich) und aktualisieren Sie den vorhandenen Snapshot.
    # portsnap fetch
  3. Wenn Sie Portsnap zum ersten Mal ausführen (selbst wenn ein Ports-Baum bereits erstellt oder gefüllt wurde, lassen Sie Portsnap eine Baseline erstellen, anhand derer Portsnap bestimmen kann, welche Teile des Ports-Baums aktualisiert werden müssen) oder /usr /ports wurde nicht ausgefüllt, entpackt den Snapshot und ersetzt die vorhandenen Dateien und Verzeichnisse und richtet den von Portsnap gepflegten Ports-Baum in /usr/ports ein:
    # portsnap extract

    Dieser Schritt kann übersprungen werden, wenn Sie nur den Ports-Baum aktualisieren.

  4. Wenn Sie bereits ein gefülltes /usr/ports haben und nur aktualisieren, führen Sie stattdessen den folgenden Befehl aus:
    # portsnap update

Hinweis:Zur Aktualisierung des FreeBSD Ports Tree können Schritt 1 und 3 in einem einzigen Befehl kombiniert werden:portsnap fetch update (keine Unterstützung in älteren Versionen von Portsnap).

Portsnap als Cron-Job ausführen

portsnap fetch kann nicht von einem Cron-Job ausgeführt werden, um die Belastung durch einen plötzlichen Anstieg von Download-Anforderungen an Portsnap-Server zu vermeiden. Stattdessen existiert ein spezieller portsnap-cron-Befehl, der für eine zufällige Dauer von bis zu 3600 Sekunden wartet und schläft, bevor er Updates holt, als ob der fetch-Befehl angegeben wäre.

Um portsnap automatisch mit dem Cron-Job auszuführen, fügen Sie einfach die Zeile in /etc/crontab hinzu (die Zeile stellt die Zeit jeden Tag auf 3 Uhr morgens ein, Sie können Ihr eigenes Timing wählen):

0 3 * * * root /usr/sbin/portsnap cron

Dadurch wird sichergestellt, dass der FreeBSD-Snapshot der Ports-Sammlung immer aktuell ist und schnell nach /usr/ports extrahiert werden kann.

Hinweis:Ausführen von Portsnap-Update von Cron wird nicht empfohlen, da dies zu Problemen führen kann, wenn die Installation oder Aktualisierung eines Ports zum Zeitpunkt der Ausführung des Cron-Jobs erfolgt. Portsnap aktualisiert oder entfernt Dateien, die vom Port-Build verwendet werden. Wenn Sie jedoch portsnap -I update ausführen ein Update der Ports-Index-Dateien ist möglich und kann zusammen mit portversion verwendet werden, um installierte Software zu identifizieren, die veraltet ist.

Um den komprimierten Port-Snapshot und die INDEX-Dateien in /usr/ports/ zu aktualisieren und eine E-Mail zu senden, wenn installierte Ports veraltet sind, verwenden Sie die folgende Zeile in /etc/crontab:

0 3 * * * root portsnap -I cron update && pkg_version -vIL=

Hinweis:Ältere Versionen von portsnap unterstützen nicht das Auflisten mehrerer Befehle (z. B. cron update) im selben Aufruf von portsnap. Wenn die obige Zeile fehlschlägt, versuchen Sie, portsnap -I cron update durch portsnap cron &&portsnap -I update zu ersetzen .


FreeBSD
  1. 15 nützliche „Sockstat-Befehlsbeispiele“, um offene Ports in FreeBSD zu finden

  2. FreeBSD 11.1 Installationshandbuch

  3. So aktualisieren/aktualisieren Sie Debian/Ubuntu Linux mit Ansible

  4. So ändern Sie die WordPress-Site-Adresse in phpmyadmin mit SQL

  5. Suche nach Anwendung in der Ports-Sammlung von FreeBSD

So überprüfen Sie, ob Remote-Ports mit dem Befehl „nc“ erreichbar sind

So aktualisieren Sie die Firmware unter Ubuntu mit fwupd

So aktualisieren Sie elementare Betriebssysteme offline mit Camicri Cube Server

So aktualisieren Sie das openSUSE-Linux-System

So installieren Sie Gnome unter FreeBSD 13

So aktualisieren Sie FreeBSD 12 auf 13