GNU/Linux >> Linux Esercitazione >  >> FreeBSD

Usare Portsnap per aggiornare la raccolta dell'albero dei port di FreeBSD

Portsnap è un sistema alternativo per distribuire e aggiornare in modo sicuro l'albero dei port di FreeBSD, che è più facile da usare rispetto a CVSup. Portsnap è stato incluso per la prima volta in FreeBSD 6.0. Come CVSup, Portsnap utilizza un modello pull di aggiornamento:gli alberi delle porte pacchettizzati e firmati vengono posizionati su un server Web che attende passivamente che i client richiedano file eseguendo portsnap manualmente dagli utenti o impostando un lavoro cron per scaricare automaticamente gli aggiornamenti su un su base regolare.

Sui vecchi sistemi FreeBSD, Portsnap non è incluso automaticamente, ma può essere installato da sysutils/portsnap port usando il comando:

# pkg_add -r portsnap

Portsnap prima preleva e aggiorna comprime gli snapshot dell'albero dei port di FreeBSD archiviato in /var/db/portsnap/ (in /usr/local/portsnap/ se Portsnap è installato da FreeBSD Ports Collection) per impostazione predefinita, quindi estrae e aggiorna solo il file non compresso albero delle porte live in /usr/ports.

Il comportamento e il funzionamento di Portsnap sono controllati dal file di configurazione portsnap.conf che si trova in /etc (in /usr/local/etc/ se Portsnap è installato dalla FreeBSD Ports Collection e il file di configurazione non viene generato automaticamente quando è appena installato, invece troverai portsnap.conf.sample, basta copiarlo come portsnap.conf). In genere, il file di configurazione predefinito fa il suo lavoro.

A riga di comando, sono supportate le seguenti opzioni, anche se la maggior parte delle volte non è necessario utilizzarle, alcune possono essere configurate nel file di configurazione stesso:

-d workdir :archivia i file di lavoro (ad es. aggiornamenti scaricati) in workdir. (predefinito:/var/db/portsnap, o come indicato nel file di configurazione)

-f conffile :legge la configurazione da conffile. (predefinito:/etc/portsnap.conf)

-I :per il comando update, aggiorna i file INDEX, ma non il resto dell'albero delle porte.

-k KEY :aspettati una chiave pubblica con un hash SHA256 specificato. (predefinito:legge il valore dal file di configurazione)

-p portsdir :quando si estrae o si aggiorna uno snapshot non compresso, operare sulla directory portsdir. (predefinito:/usr/ports/, o come indicato nel file di configurazione.)

-s server :recupera i file dal server o dal pool di server specificato. (predefinito:portsnap.FreeBSD.org o come indicato nel file di configurazione.)

percorso:solo per il comando di estrazione, operare solo su parti dell'albero delle porte che iniziano con percorso. (ad es. portsnap sysutils/port estrae sysutils/portsman, sysutils/portsnap, sysutils/portupgrade, ecc.)

La sinossi della riga di comando di Portsnap è:

portsnap [-I] [-d workdir] [-f conffile] [-k KEY] [-p portsdir] [-s server] comando … [percorso]

Utilizzo di Portsnap

  1. Crea una directory vuota /usr/ports se non esiste.
    # mkdir /usr/ports
  2. Recupera e scarica un'istantanea compressa della raccolta di porte in /var/db/portsnap (o in qualsiasi altra posizione specificata nel file di configurazione). Connessione Internet necessaria in questa fase) e aggiorna lo snapshot esistente.
    # portsnap fetch
  3. Se stai eseguendo Portsnap per la prima volta (anche se è già stato creato o popolato un albero di porte, per consentire a Portsnap di stabilire una linea di base da cui portsnap può determinare quali parti dell'albero di porte devono essere aggiornate) o /usr /ports non è stato popolato, estrae lo snapshot e sostituisce i file e le directory esistenti e stabilisce l'albero delle porte mantenuto da Portsnap in /usr/ports:
    # portsnap extract

    Questo passaggio può essere saltato se stai solo aggiornando l'albero delle porte.

  4. Se hai già una /usr/ports popolata e stai solo aggiornando, esegui invece il seguente comando:
    # portsnap update

Nota:per aggiornare FreeBSD Ports Tree, i passaggi 1 e 3 possono essere combinati in un unico comando:portsnap fetch update (non supportato nella versione precedente di Portsnap).

Eseguire Portsnap come Cron Job

portsnap fetch non sarà in grado di essere eseguito da un lavoro cron per evitare il carico di improvvisi picchi di download delle richieste sui server Portsnap. Invece, esiste uno speciale comando portsnap cron, che attende e dorme per una durata casuale fino a 3600 secondi prima di recuperare gli aggiornamenti, come se fosse specificato il comando fetch.

Per eseguire automaticamente portsnap con cron job, aggiungi semplicemente la linea in /etc/crontab (la linea imposta l'ora alle 3 del mattino ogni giorno, puoi scegliere la tua ora):

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

Ciò assicurerà che lo snapshot di FreeBSD della raccolta dei port sia sempre aggiornato e possa essere estratto rapidamente in /usr/ports.

Nota:esecuzione di aggiornamento di portsnap from cron non è raccomandato in quanto potrebbe causare problemi se l'installazione o l'aggiornamento di una porta avviene nel momento in cui viene eseguito il lavoro cron. Portsnap aggiornerà o rimuoverà i file utilizzati dalla build del port. Tuttavia, eseguendo portsnap -I update per aggiornare i file di indice delle porte è possibile e può essere utilizzato insieme a portversion per identificare il software installato che non è aggiornato.

Per aggiornare lo snapshot compresso delle porte e i file INDEX in /usr/ports/ e inviare un'e-mail se alcune porte installate non sono aggiornate, utilizzare la riga seguente in /etc/crontab:

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

Nota:la versione precedente di portsnap non supporta l'elenco di più comandi (ad es. cron update) nella stessa chiamata di portsnap. Se la riga precedente non riesce, prova a sostituire portsnap -I cron update con portsnap cron &&portsnap -I cron update .


FreeBSD
  1. 15 Utili "esempi di comandi Sockstat" per trovare porte aperte in FreeBSD

  2. Guida all'installazione di FreeBSD 11.1

  3. Come aggiornare/aggiornare Debian/Ubuntu Linux usando Ansible

  4. Come modificare l'indirizzo del sito WordPress in phpmyadmin utilizzando SQL

  5. Freebsd - Come esportare una cartella in una sottorete usando Nfs in Freebsd 9.0?

Come aggiornare il firmware su Ubuntu usando fwupd

Come aggiornare offline il sistema operativo elementare utilizzando Camicri Cube Server

Come aggiornare il sistema Linux openSUSE

Come installare Gnome su FreeBSD 13

Come aggiornare FreeBSD da 12 a 13

Come monitorare lo switch di rete e le porte utilizzando Nagios