Appendice A. Ottenere FreeBSD

A.1. Editori di CDROM e DVD

A.1.1. Prodotti al Dettaglio Confezionati

FreeBSD è disponibile in confezioni (i CD di FreeBSD, del software aggiuntivo, e la documentazione cartacea) presso svariati rivenditori:

A.1.2. Set di CD e DVD

I set di CD e DVD di FreeBSD sono disponibili presso molti rivenditori on-line:

A.1.3. Distributori

Se sei un rivenditore e vuoi vendere i CDROM di FreeBSD, contatta uno dei distributori seguenti:

A.2. Siti FTP

I sorgenti ufficiali di FreeBSD sono disponibili via FTP anonimo da una serie di siti mirror sparsi in tutto il mondo. Il sito ftp://ftp.FreeBSD.org/pub/FreeBSD/ è ben gestito e permette un gran numero di connessioni, ma ti conviene probabilmente trovare un sito mirror a te "più vicino" (soprattutto se decidi di configurare una sorta di sito mirror).

Il database dei siti mirror di FreeBSD è più preciso della lista contenuta in questo manuale, poichè ottiene le informazioni direttamente dal DNS anziché affidarsi a una lista statica di host.

Inoltre, FreeBSD è disponibile via FTP anonimo dai seguenti siti mirror. Se decidi di procurarti FreeBSD via FTP anonimo, usa per favore un sito a te vicino. I siti mirror elencati come "Siti Mirror Primari" hanno tipicamente l’intero archivio di FreeBSD (tutte le versioni oggi disponibili per ognuna delle architetture) ma probabilmente scaricherai più velocemente da un sito che è nel tuo stato o regione. I siti di ogni stato contengono le versioni più recenti per le architetture più popolari ma potrebbero non contenere l’intero archivio di FreeBSD. Tutti i siti permettono l’accesso tramite FTP anonimo e alcuni permettono l’accesso anche con altri metodi. I metodi di accesso disponibili per ogni sito sono elencati fra parentesi dopo il nome dell’host.

(aggiornato al UTC)

Central Servers

Primary Mirror Sites

In case of problems, please contact the hostmaster <mirror-admin@FreeBSD.org> for this domain.

Armenia

In case of problems, please contact the hostmaster <hostmaster@am.FreeBSD.org> for this domain.

Australia

In case of problems, please contact the hostmaster <hostmaster@au.FreeBSD.org> for this domain.

Austria

In case of problems, please contact the hostmaster <hostmaster@at.FreeBSD.org> for this domain.

Brazil

In case of problems, please contact the hostmaster <hostmaster@br.FreeBSD.org> for this domain.

Czech Republic

In case of problems, please contact the hostmaster <hostmaster@cz.FreeBSD.org> for this domain.

Denmark

In case of problems, please contact the hostmaster <hostmaster@dk.FreeBSD.org> for this domain.

Estonia

In case of problems, please contact the hostmaster <hostmaster@ee.FreeBSD.org> for this domain.

Finland

In case of problems, please contact the hostmaster <hostmaster@fi.FreeBSD.org> for this domain.

France

In case of problems, please contact the hostmaster <hostmaster@fr.FreeBSD.org> for this domain.

Germany

In case of problems, please contact the hostmaster <de-bsd-hubs@de.FreeBSD.org> for this domain.

Greece

In case of problems, please contact the hostmaster <hostmaster@gr.FreeBSD.org> for this domain.

Hong Kong

Ireland

In case of problems, please contact the hostmaster <hostmaster@ie.FreeBSD.org> for this domain.

Japan

In case of problems, please contact the hostmaster <hostmaster@ie.FreeBSD.org> for this domain.

Korea

In case of problems, please contact the hostmaster <hostmaster@kr.FreeBSD.org> for this domain.

Latvia

In case of problems, please contact the hostmaster <hostmaster@lv.FreeBSD.org> for this domain.

Lithuania

In case of problems, please contact the hostmaster <hostmaster@lt.FreeBSD.org> for this domain.

Netherlands

In case of problems, please contact the hostmaster <hostmaster@nl.FreeBSD.org> for this domain.

New Zealand

Norway

In case of problems, please contact the hostmaster <hostmaster@no.FreeBSD.org> for this domain.

Poland

In case of problems, please contact the hostmaster <hostmaster@pl.FreeBSD.org> for this domain.

Russia

In case of problems, please contact the hostmaster <hostmaster@ru.FreeBSD.org> for this domain.

Saudi Arabia

In case of problems, please contact the hostmaster <ftpadmin@isu.net.sa> for this domain.

Slovenia

In case of problems, please contact the hostmaster <hostmaster@si.FreeBSD.org> for this domain.

South Africa

In case of problems, please contact the hostmaster <hostmaster@za.FreeBSD.org> for this domain.

Spain

In case of problems, please contact the hostmaster <hostmaster@es.FreeBSD.org> for this domain.

Sweden

In case of problems, please contact the hostmaster <hostmaster@se.FreeBSD.org> for this domain.

Switzerland

In case of problems, please contact the hostmaster <hostmaster@ch.FreeBSD.org> for this domain.

Taiwan

In case of problems, please contact the hostmaster <hostmaster@tw.FreeBSD.org> for this domain.

Ukraine

United Kingdom

In case of problems, please contact the hostmaster <hostmaster@uk.FreeBSD.org> for this domain.

United States of America

In case of problems, please contact the hostmaster <hostmaster@us.FreeBSD.org> for this domain.

A.3. CVS Anonimo

A.3.1. Introduzione

Il CVS Anonimo (anche conosciuto come anoncvs) è una caratteristica del programma di utilità CVS contenuto in FreeBSD che serve per sincronizzarsi con un deposito CVS remoto (in gergo repository CVS). Tra le altre cose, permette agli utenti di FreeBSD di realizzare, senza avere particolari permessi, operazioni CVS in sola lettura su uno dei server anoncvs ufficiali del progetto FreeBSD. Per utilizzarlo è sufficiente impostare la variabile di ambiente CVSROOT facendola puntare al server anoncvs appropriato, immettere la password "anoncvs" con il comando cvs login, e poi usare il comando cvs(1) per accederci come se fosse un deposito locale.

Il comando cvs login memorizza le password utilizzate per l’autenticazione con il server CVS in un file chiamato .cvspass nella tua directory HOME. Se questo file non esiste, potresti ricevere un errore alla prima esecuzione di cvs login. Crea un file .cvspass vuoto e riprova il login.

Benché si possa dire che i servizi CVSup e anoncvs realizzino sostanzialmente le stesse funzioni, ci sono vari particolari che possono influenzare la scelta di un metodo di sincronizzazione piuttosto dell’altro. Per dirla in breve, CVSup è più efficiente nell’uso delle risorse di rete ed è il più avanzato tecnicamente tra i due, ma tutto questo ha un prezzo. Per usare CVSup, bisogna installare e configurare un client speciale prima di poter scaricare qualcosa, e si può scaricare solo blocchi piuttosto grossi che CVSup chiama collezioni.

Anoncvs, al contrario, può essere usato per esaminare qualunque cosa a partire da un singolo file fino a uno specifico programma (come ls o grep) specificando il nome del modulo CVS. Ovviamente, anoncvs è adatto solo per operazioni di sola lettura sul deposito CVS, quindi se hai intenzione di supportare lo sviluppo locale in uno dei depositi condivisi del progetto FreeBSD allora CVSup è in realtà l’unica opzione.

A.3.2. Uso del CVS Anonimo

La configurazione di cvs(1) per usare un deposito CVS Anonimo è semplicemente una questione di impostare la variabile di ambiente CVSROOT affinché punti a uno dei server anoncvs del progetto FreeBSD. Al momento della stesura di questo testo sono disponibili i seguenti server:

  • Austria: :pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs (Usa cvs login ed inserisci qualunque password quando richiesta.)

  • Francia: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs (pserver (password "anoncvs"), ssh (nessuna password))

  • Germania: :pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs (Usa cvs login ed inserisci la password "anoncvs" quando richiesta.)

  • Germania: :pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs (rsh, pserver, ssh, ssh/2022)

  • Giappone: :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs (Usa cvs login ed inserisci la password "anoncvs" quando richiesta.)

  • USA: freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs (solo ssh - nessuna password)

    SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 root@sanmateo.ecn.purdue.edu
    SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pub
  • USA: anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (solo ssh - nessuna password)

    SSH HostKey: 1024 8b:c4:6f:9a:7e:65:8a:eb:50:50:29:7c:a1:47:03:bc root@ender.liquidneon.com
    SSH2 HostKey: 2048 4d:59:19:7b:ea:9b:76:0b:ca:ee:da:26:e2:3a:83:b8 ssh_host_dsa_key.pub

Dato che CVS permette di estrarre (nel suo gergo: "check out") qualsiasi versione dei sorgenti di FreeBSD che sia mai esistita (o, in alcuni casi, che esisterà), è bene familiarizzare con il parametro revisione (-r) di cvs(1) e sapere quali valori può assumere nel deposito del progetto FreeBSD.

Ci sono due tipi di tag, i tag di revisione e i tag di ramo. Un tag di revisione fa riferimento ad una revisione specifica. Il suo significato rimane lo stesso di giorno in giorno. Un tag di ramo, d’altro canto, si riferisce sempre all’ultima revisione relativa a una specifica linea di sviluppo. Dato che un tag di ramo non si riferisce ad una revisione specifica, esso potrebbe avere un significato diverso da un giorno con l’altro.

La Tag CVS contiene i tag di revisione che possono essere interessanti per gli utenti. Tuttavia, nessuno di questi tag è valido per la collezione dei port poichè questa non ha revisioni multiple.

Quando specifichi un tag di ramo, normalmente ricevi l’ultima versione dei file relativa a quella linea di sviluppo. Se vuoi ricevere una versione precedente, puoi farlo specificando la data con il parametro -D date. Si rimanda alla pagina man di cvs(1) per ulteriori dettagli.

A.3.3. Esempi

Benché sia consigliata un’attenta lettura della pagina man di cvs(1) prima di fare qualsiasi cosa, seguono alcuni veloci esempi che spiegano in modo essenziale l’uso del CVS Anonimo:

Esempio 1. Estrazione di Qualcosa dalla -CURRENT (ls(1)):
% setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
% cvs login
Alla richiesta, inserire la password «anoncvs».
% cvs co ls
Esempio 2. Utilizzo di SSH per estrarre il ramo src/:
% cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.
Esempio 3. Estrazione della Versione di ls(1) dal Ramo 6-STABLE:
% setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
% cvs login
Alla richiesta, inserire la password «anoncvs».
% cvs co -rRELENG_6 ls
Esempio 4. Creazione di una Lista di Cambiamenti (come Diff Unificate) di ls(1)
% setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
% cvs login
Alla richiesta, inserire la password «anoncvs».
% cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls
Esempio 5. Scoperta di Quali Altri Nomi di Moduli Possono Essere Usati
% setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
% cvs login
Alla richiesta, inserire la password «anoncvs».
% cvs co modules
% more modules/modules

A.3.4. Altre Risorse

Le seguenti risorse addizionali possono essere utili nell’apprendimento del CVS:

  • CVS Tutorial dal Cal Poly.

  • CVS Home, la comunità di sviluppo e supporto del CVS.

  • CVSWeb è l’interfaccia web di CVS relativa al progetto FreeBSD.

A.4. Uso di CTM

CTM è un metodo per mantenere sincronizzati un albero di directory remoto e uno centralizzato. È stato sviluppato per l’albero dei sorgenti di FreeBSD, anche se con il passare del tempo, altre persone lo hanno trovano utile per altri scopi. A tutt’oggi esiste pochissima documentazione sul processo della creazione delle delta, quindi contattate la mailing list ctm-users-desc per avere più informazioni e nel caso voleste usare CTM per altri scopi.

A.4.1. Perché Dovrei Usare CTM?

CTM fornisce una copia locale dell’albero dei sorgenti di FreeBSD. Ci sono molte "varietà" di alberi disponibili. Che tu voglia seguire l’intero albero CVS o solo uno dei rami, CTM può fornirti i dati che ti servono. Se sei uno sviluppatore attivo di FreeBSD, ma hai una connettività TCP/IP di bassa qualità o non esistente, o semplicemente desideri ricevere le modifiche in modo automatico, CTM fa al caso tuo. Riceverai fino a tre delta giornaliere per i rami più attivi. Tuttavia, puoi considerare che li puoi avere attraverso l’invio automatico di email. Le dimensioni degli aggiornamenti sono sempre più piccole possibile. Questi sono in genere meno di 5K, con occasionali (uno su dieci) aggiornamenti da 10-50K e qualcuno più grande (100K o più) di tanto in tanto.

Devi anche essere cosciente delle varie insidie relativi all’uso di sorgenti in via di sviluppo e non provenienti da release pronte. Questo è vero in particolare per i sorgenti "current" (correnti). È raccomandata la lettura di Restare in "current" con FreeBSD.

A.4.2. Cosa Serve per l’Uso di CTM?

Ti servono due cose: il programma CTM, e le delta iniziali da dargli in pasto (per arrivare ai livelli della "current").

Il programma CTM fa parte di FreeBSD fin dalla release della versione 2.0 e, se hai una copia dei sorgenti disponibile, risiede in /usr/src/usr.sbin/ctm.

Le "delta" da dare in pasto a CTM si possono avere in due modi: tramite FTP o email. Se puoi utilizzare FTP via Internet allora i seguenti siti supportano l’accesso a CTM:

vedi anche la sezione mirror.

Entra via FTP nella directory giusta e, da lì, inizia col trasferire il file README.

Se invece desideri ricevere le delta per email:

Iscriviti ad una delle liste di distribuzione di CTM. ctm-cvs-cur-desc supporta l’interno albero CVS. ctm-src-cur-desc supporta il ramo di sviluppo current. mailing list di distribuzione CTM del ramo src 4-STABLE supporta il ramo della release 4.X, ecc. (Se non sai come iscriverti a una lista, clicca sul nome della lista o raggiungi la pagina http://lists.freebsd.org/mailman/listinfo e clicca sulla lista a cui ti vuoi iscrivere. La pagina della lista dovrebbe contenere tutte le informazioni necessarie per l’iscrizione.)

Quando inizierai a ricevere gli aggiornamenti CTM via email, puoi usare il programma ctm_rmail per scompattarli e per applicarli. In realtà, se vuoi avere un processo completamente automatizzato, puoi usare il programma ctm_rmail direttamente in un elemento di /etc/aliases. Esamina la pagina man di ctm_rmail per maggiori dettagli.

Indipendentemente dal metodo che utilizzi per ricevere le delta di CTM, dovresti iscriverti alla mailing list ctm-announce-desc. In futuro, questo sarà l’unico posto dove saranno postati gli annunci riguardanti il funzionamento del sistema CTM. Clicca sul nome della lista e segui le istruzioni per iscriverti.

A.4.3. Uso di CTM per la Prima Volta

Prima che tu possa servirti delle delta di CTM, hai bisogno di un punto di partenza dal quale successivamente costruire le delta.

Innanzitutto dovresti determinare ciò che hai. Si può iniziare da un directory "vuota". Devi usare una delta iniziale "Empty" per iniziare il tuo albero CTM. Qualche volta può succedere che una di queste delta "iniziali" sia distribuita su un CD per tua convenienza, ma comunque, questo generalmente non avviene.

Poichè gli alberi sono molte decine di megabyte, puoi iniziare da qualcosa che hai a portata di mano. Se hai un CD di una release, puoi copiare o estrarre i sorgenti da lì. Questo salverà un significativo trasferimento di dati.

Puoi riconoscere queste delta "iniziali" dalla lettera X preceduta da un numero (per esempio src-cur.3210XEmpty.gz). Il nome che segue la lettera X corrisponde all’origine del tuo "seme" iniziale. Empty è una directory vuota. Di solito una transizione base a partire da Empty è prodotta ogni 100 delta. Strada facendo, queste avranno grandi dimensioni! Le dimensioni comuni per le delta XEmpty vanno dai 70 a 80 Megabyte di dati compressi con gzip.

Una volta che ti sei procurato una delta base come punto di partenza, avrai bisogno anche di tutte le delta successive aventi un numero maggiore.

A.4.4. Uso di CTM nella Tua Vita Quotidiana

Per applicare le delta, fai come segue:

# cd /where/ever/you/want/the/stuff
# ctm -v -v /where/you/store/your/deltas/src-xxx.*

CTM decifra le delta compresse tramite il comando gzip, quindi non hai bisogno di decomprimerle con gunzip, e ciò salva spazio su disco.

Tranne in alcune circostanze, CTM non toccherà il tuo albero. Per verificare una delta puoi usare l’opzione -c e di fatto CTM non toccherà il tuo albero; verificherà soltanto l’integrità della delta e se questa può essere applicata in modo pulito al tuo albero attuale.

Ci sono altre opzioni di CTM, guarda la pagina man o ispeziona i sorgenti per maggiori dettagli.

Questo è davvero tutto ciò che devi sapere. Ogni volta che ottieni una delta, esegui CTM per aggiornare i tuoi sorgenti.

È meglio non rimuovere le delta che richiedono grandi tempi di scaricamento. Nel caso succeda qualche disgrazia non dovrai riscaricarle. Anche se hai solo dischetti floppy, considera l’uso di fdwrite per crearne una copia.

A.4.5. Mantenimento delle Tue Modifiche Locali

Allo stesso modo di uno sviluppatore potresti voler sperimentare delle modifiche nell’albero dei sorgenti. CTM supporta le modifiche locali in modo limitato: prima di verificare la presenza di un file foo, esso cerca foo.ctm. Se questo file esiste, CTM opererà su di esso piuttosto che su foo.

Questo comportamento offre un semplice modo per mantenere le modifiche locali: copia semplicemente il file che desideri modificare in un file con lo stesso nome e suffisso .ctm. Quindi puoi liberamente hackerare il codice, e CTM manterrà aggiornato il file .ctm.

A.4.6. Altre Opzioni Interessanti di CTM

A.4.6.1. Scoprire con Precisione Ciò che Dovrebbe Essere Aggiornato

Puoi determinare la lista delle modifiche che CTM apporterà ai tuoi sorgenti usando l’opzione -l di CTM.

Questo è utile se vuoi mantenere dei log delle modifiche, prima o dopo aver modificato in qualche modo i file, o solo perchè ti senti un pò paranoico.

A.4.6.2. Creare dei Backup Prima di Aggiornare

Qualche volta potresti voler creare dei backup di tutti i file che saranno modificati da un aggiornamento di CTM.

Specificando l’opzione -B backup-file, CTM effettuerà il backup di tutti i file che saranno modificati da una certa delta CTM nel file backup-file.

A.4.6.3. Limitare i File che Devono Essere Aggiornati

Qualche volta potresti volere restringere la portata di un certo aggiornamento CTM, o potresti essere interessato ad estrarre solo pochi file da una serie di delta.

Puoi controllare la lista dei file sui quali CTM opererà specificando un’espressione regolare usando le opzioni -e e -x.

Per esempio, per estrarre una copia aggiornata del file lib/libc/Makefile dalla tua collezione di delta CTM, esegui i comandi seguenti:

# cd /dove/vuoi/estrarre/
# ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*

Per ogni file specificato in una delta CTM, le opzioni -e e -x sono applicate nello stesso ordine in cui compaiono sulla riga di comando. Il file è processato da CTM solo se risulta idoneo a tutte le opzioni -e e -x ad esso applicate.

A.4.7. Piani Futuri per CTM

I più importanti:

  • Usare qualche tipo di autenticazione nel sistema CTM, in modo tale da permette l’identificazione di aggiornamenti CTM contraffatti.

  • Ripulire le opzioni di CTM, che confondono e sono tutt’altro che intuitive.

A.4.8. Materiale Vario

Esiste una serie di delta per la collezione dei ports, ma è ancora di poco interesse.

A.4.9. Mirror CTM

CTM/FreeBSD è disponibile via FTP anonimo dai siti mirror seguenti. Se decidi di procurarti CTM via FTP anonimo, per favore usa un sito a te vicino.

In caso di problemi, contatta la mailing list ctm-users-desc.

Se non trovi un mirror a te vicino o se il mirror è incompleto, prova ad usare qualche motore di ricerca come alltheweb.

A.5. Uso di CVSup

A.5.1. Introduzione

CVSup è un pacchetto di software per distribuire ed aggiornare alberi di sorgenti da un deposito centrale CVS posto su un server remoto. I sorgenti di FreeBSD sono mantenuti in un deposito CVS su una macchina centrale di sviluppo situata in California. Con CVSup, gli utenti di FreeBSD possono facilmente mantenere aggiornati i loro alberi di sorgenti.

CVSup usa il cosiddetto modello ad estrazione per aggiornare. In questo modello, è compito del client chiedere al server gli aggiornamenti. Il server attente passivamente le richieste di aggiornamento dai suoi client. In questo modo tutti gli aggiornamenti sono incitati dal client. Il server non invia mai degli aggiornamenti che non sono stati richiesti. Gli utenti devono eseguire il client CVSup manualmente per ottenere un aggiornamento, oppure possono usare cron per eseguire automaticamente queste operazioni secondo stabilite regole.

Il termine CVSup, scritto in quel modo, si riferisce all’intero pacchetto di software. I suoi componenti principali sono il client cvsup che viene eseguito su ogni macchina degli utenti, e il server cvsupd che viene eseguito su ogni sito mirror di FreeBSD.

Leggendo la documentazione di FreeBSD e le mailling list, potresti notare dei riferimenti a sup. Sup è il predecessore di CVSup, e serviva per un simile scopo. CVSup sostanzialmente è usato allo stesso modo di sup e, di fatto, i suoi file di configurazione sono compatibili con sup. Sup non viene più utilizzato nel progetto FreeBSD, poichè CVSup è più veloce e più flessibile.

A.5.2. Installazione

Il modo più semplice per installare CVSup è usare il package precompilato net/cvsup della collezione dei package di FreeBSD. Se preferisci costruire CVSup partendo dal sorgente, allora puoi usare il port net/cvsup. Ma sei avvisato: il port net/cvsup dipende dal sistema Modula-3, che richiede una consistente quantità di tempo e di spazio su disco per scaricarlo e costruirlo.

Se hai intenzione di usare CVSup su una macchina sulla quale non sarà installato XFree86™ o Xorg, come su un server, assicurati di usare il port che non include la GUI di CVSup, ossia net/cvsup-without-gui.

A.5.3. Configurazione di CVSup

Il funzionamento di CVSup è controllato da un file di configurazione chiamato supfile. Esistono alcuni esempi di supfile nella directory /usr/shared/examples/cvsup/.

Le informazioni contenute in un supfile rispondono alle seguenti questioni relative a CVSup:

Nelle seguenti sezioni, costruiremo un tipico supfile per rispondere a turno ad ognuna di queste questioni. Incominciamo però col descrivere la struttura globale di un supfile.

Un supfile è un file di testo. I commenti iniziano con un # e si estendono fino alle fine della riga. Le righe bianche e le righe che contengono solo commenti sono ignorate.

Ogni altra riga descrive un insieme di file che l’utente vuole ricevere. Una riga inizia con il nome di una "collezione", un nome di un gruppo logico di file definiti dal server. Il nome della collezione indica al server i file che vuoi ricevere. Dopo il nome della collezione seguono zero o più campi, separati da spazi bianchi. Questi campi rispondono alle questioni citate in precedenza. Ci sono due tipi di campi: campo opzione e campo valore. Un campo opzione consiste di una parola chiave a se stante, es. delete o compress. Anche un campo valore inizia con una parola chiave, ma questa è seguita dal simbolo =, senza spazi bianchi intermedi, e da un seconda parola. Ad esempio, release=cvs è un campo valore.

Un supfile tipicamente specifica più di un’unica collezione da ricevere. Un modo di strutturare un supfile è specificare esplicitamente tutti i campi rilevanti per ogni collezione. Tuttavia, ciò tende a creare supfile troppo lunghi, e ciò è scomodo poichè in un supfile la maggior parte dei campi sono gli stessi per tutte le collezioni. CVSup fornisce un meccanismo per aggirare questi problemi. Le linee che iniziano con il nome speciale di pseudo-collezione *default possono essere usate per inizializzare opzioni e valori che saranno utilizzati come default per le successive collezioni definite nel supfile. Un valore di default può essere sovrascritto da una singola collezione, specificando un valore diverso per la collezione stessa. Inoltre i valori di default possono essere modificati in mezzo al supfile tramite linee *default aggiuntive.

Con queste conoscenze, possiamo ora procedere alla costruzione di un supfile per ricevere ed aggiornare l’albero dei sorgenti della FreeBSD-CURRENT.

  • Quali file vuoi ricevere?

    I file disponibili via CVSup sono organizzati in gruppi chiamati "collezioni". Le collezioni che sono disponibili sono descritte nella prossima sezione. In questo esempio, desideriamo ricevere per intero l’albero corrente dei sorgenti del sistema FreeBSD. C’è un’unica e vasta collezione src-all che ci permette di ricevere tutto ciò. Come prima fase nella costruzione del nostro supfile, dobbiamo semplicemente elencare le collezioni, una per riga (in questo caso, c’è un’unica riga):

    src-all
  • Quali versioni dei file vuoi?

    Con CVSup, hai la possibilità di ricevere qualsiasi versione dei sorgenti che sia mai esistita. Questo è possibile poichè il server cvsupd lavora direttamente sul deposito CVS, che contiene tutte le versioni. Puoi specificare la versione che vuoi usando i campi valori tag= e date=.

    Stai molto attento a specificare i campi tag= in modo corretto. Alcuni tag sono validi solo per certe collezioni di file. Se specifichi un tag non corretto, CVSup cancellerà file che tu non vorresti eliminare. In particolare, usa solamente tag=. per le collezioni ports-*.

    Il campo tag= richiama un tag simbolico nel deposito. Ci sono due tipi di tag, i tag di revisione e i tag di ramo. Un tag di revisione fa riferimento ad una revisione specifica. Il suo significato rimane lo stesso di giorno in giorno. Un tag di ramo, d’altro canto, si riferisce sempre all’ultima revisione relativa ad una specifica linea di sviluppo. Dato che un tag di ramo non si riferisce ad una revisione specifica, esso potrebbe avere un significato diverso da un giorno con l’altro.

    La Tag CVS contiene tag di ramo che potrebbero interessare gli utenti. Quando si specifica un tag in un file di configurazione di CVSup, esso dovrebbe essere preceduto da tag= (RELENG_4 diviene tag=RELENG_4). Tieni presente che per la collezione dei port è rilevante solo tag=..

    Sii molto attento a digitare il nome del tag nel modo esatto. CVSup non è in grado di riconoscere tag errati. Se digiti in modo sbagliato un tag, CVSup si comporterà come se tu avessi specificato un tag valido che non riguarda nessun file. In questo caso i tuoi sorgenti saranno eliminati.

    Quando specifichi un tag di ramo, normalmente ricevi le ultime versioni dei file di quella linea di sviluppo. Se vuoi ricevere versioni precedenti, puoi specificare una data con il campo valore date=. La pagina man di cvsup(1) spiega come farlo.

    Nel nostro esempio, desideriamo ricevere FreeBSD-CURRENT. Aggiungiamo questa riga all’inizio del nostro supfile:

    *default tag=.

    C’è un importante caso speciale che entra in gioco se non specifichi ne un campo tag= ne un campo date=. In questo caso, ricevi i file RCS attuali direttamente dal deposito CVS del server, invece di ricevere una versione particolare. Gli sviluppatori in genere preferiscono questa modalità di funzionamento. Mantenendo una copia del deposito stesso sui loro sistemi, essi sono in grado di navigare attraverso la storia delle revisioni e di esaminare le versioni precedenti dei file. Comunque questo vantaggio è realizzabile al costo di un ingente quantità di spazio su disco.

  • Da dove li vuoi prelevare?

    Il campo host= indica a cvsup da dove prelevare i suoi aggiornamenti. Va bene uno qualunque dei siti mirror di CVSup, anche se dovresti provare a selezionarne uno che sia a te vicino nel ciberspazio. In questo esempio useremo un sito di distribuzione di FreeBSD fittizio, cvsup99.FreeBSD.org:

    *default host=cvsup99.FreeBSD.org

    Devi cambiare l’host in uno che esiste realmente prima di eseguire CVSup. Il settaggio dell’host può essere sovrascritto su riga di comando eseguendo cvsup con l’opzione -h hostname.

  • Dove li vuoi mettere sulla tua macchina?

    Il campo prefix= indica a cvsup dove mettere i file che riceve. In questo esempio, metteremo i file sorgenti direttamente nel nostro albero dei sorgenti, /usr/src. La directory src è già implicita nelle collezioni che vogliamo ricevere, quindi la corretta specifica è questa:

    *default prefix=/usr
  • Dove cvsup dovrebbe mantenere i suoi file di stato?

    Il client di CVSup mantiene certi file di stato in ciò che è chiamata directory "base". Questi file aiutano CVSup a lavorare in modo più efficace, mantenendo traccia di quali aggiornamenti sono stati già ricevuti. Useremo la directory base standard, /var/db:

    *default base=/var/db

    Se la tua directory base non esiste, potrebbe essere una buona idea crearla subito. Il client cvsup interrompe l’esecuzione se la tua directory base non esiste.

  • Settaggi vari di supfile:

    C’è un altro settaggio che normalmente deve essere presente in un supfile:

    *default release=cvs delete use-rel-suffix compress

    release=cvs indica che il server dovrebbe prendere le sue informazioni dal deposito CVS principale di FreeBSD. In genere questa è la normalità, ma esistono altre possibilità che vanno oltre lo scopo di questa sezione.

    delete dà a CVSup il permesso di cancellare file. Dovresti sempre specificare questa opzione, in modo che CVSup possa mantenere il tuo albero dei sorgenti del tutto aggiornato. CVSup è attento nel cancellare solamente quei file dei quali è responsabile. Altri file extra verranno lasciati intatti.

    use-rel-suffix è …​ arcano. Se vuoi realmente saperne di più, guarda la pagina man di cvsup(1). Altrimenti, specificala senza preoccupartene troppo.

    compress abilita l’uso di una compressione stile gzip sul canale di comunicazione. Se hai una connessione T1 o più veloce, non dovresti usare la compressione. Diversamente, può essere veramente d’aiuto.

  • Ricapitolazione di tutti settaggi:

    Il supfile completo per il nostro esempio è il seguente:

    *default tag=.
    *default host=cvsup99.FreeBSD.org
    *default prefix=/usr
    *default base=/var/db
    *default release=cvs delete use-rel-suffix compress
    
    src-all

A.5.3.1. Il File refuse

Come menzionato in precedenza, CVSup usa un modello ad estrazione. Sostanzialmente, questo significa che ti connetti al server CVSup, lui dice, "Ecco ciò che puoi scaricare …​", ed il tuo client risponde "OK, prenderò questo, questo, questo e questo." Nella configurazione di default, il client CVSup prenderà ogni file associato alla collezione e al tag che hai specificato nel file di configurazione. Tuttavia, questo non è sempre ciò che vuoi, specialmente se stai sincronizzando gli alberi doc, ports, o www - molte persone non sono in grado di leggere quattro o cinque lingue, e quindi esse non hanno bisogno di scaricare i file di certe lingue. Se stai sincronizzando con CVSup la collezione dei port, puoi specificare collezioni individuali (es., ports-astrology, ports-biology, ecc. invece di specificare semplicemente ports-all). Tuttavia, poichè gli alberi doc e www non hanno collezioni per specifiche lingue, devi usare una delle molte abili caratteristiche di CVSup: il file refuse.

Il file refuse sostanzialmente indica a CVSup che non dovrebbe prendere ogni singolo file da una collezione; in altre parole, esso dice al client di rifiutare certi file dal server. Il file refuse può essere trovato (o, se non ne hai ancora uno, dovrebbe essere messo) in base/sup/. base è definita nel tuo supfile; la nostra base è /var/db, e quindi di default il file refuse è /var/db/sup/refuse.

Il file refuse ha veramente un formato molto semplice; esso contiene semplicemente i nomi dei file o delle directory che non desideri scaricare. Per esempio, se non parli altre lingue oltre all’inglese e al tedesco, e non hai la necessità di leggere la traduzione in tedesco della documentazione, puoi mettere le seguenti righe nel tuo file refuse:

doc/bn_*
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/it_*
doc/ja_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/tr_*
doc/zh_*

e così via per altre lingue (puoi ottenere la lista completa esplorando il deposito CVS di FreeBSD).

Con questa utile funzionalità, quegli utenti che hanno una connessione lenta o pagano ogni minuto di connessione Internet potranno risparmiare tempo prezioso poichè non dovranno più scaricare file che non usano mai. Per maggiori dettagli sul file refuse e su altre utili caratteristiche di CVSup, guarda la sua pagina man.

A.5.4. Eseguire CVSup

Sei ora pronto per provare un aggiornamento. La riga di comando per farlo è molto semplice:

# cvsup supfile

dove supfile è naturalmente il nome del supfile che hai creato. Assumendo che stai lavorando sotto X11, cvsup visualizzarà una GUI con alcuni bottoni adibiti ad operazioni usuali. Premi il bottone go, e stai a guardare l’esecuzione.

Poichè in questo esempio stai aggiornando il tuo albero dei sorgenti /usr/src, avrai bisogno di eseguire il programma come root affinchè cvsup abbia i permessi necessari per aggiornare i tuoi file. Avendo appena creato il tuo file di configurazione, e non avendo mai usato questo programma prima ad ora, tutto ciò potrebbe renderti un pò nervoso. Esiste un semplice modo per provare la sincronizzazione senza toccare i tuoi preziosi file. Crea una directory vuota in qualche posto, e richiamala come argomento sulla riga di comando:

# mkdir /var/tmp/dest
# cvsup supfile /var/tmp/dest

La directory che hai specificato sarà usata come directory di destinazione per tutti gli aggiornamenti dei file. CVSup esaminerà i tuoi file usuali in /usr/src, ma non modificherà o cencellerà alcuno di essi. Gli aggiornamenti dei file finiranno invece in /var/tmp/dest/usr/src. Inoltre CVSup lascerà intatta la sua directory base contenente gli stati dei file quando viene eseguito in questo modo. Le nuove versioni di questi file saranno scritte nella directory specificata. A condizione che tu abbia l’accesso di lettura in /usr/src, non hai bisogno di essere root per realizzare questo tipo di giro di prova.

Se non stai utilizzando X11 o se non ti piacciono le GUI, dovresti aggiungere un paio di opzioni alla riga di comando quando esegui cvsup:

# cvsup -g -L 2 supfile

L’opzione -g indica a CVSup di non usare la sua GUI. Ciò è automatico se non stai utilizzando X11, ma se lo stai facendo allora la devi specificare.

L’opzione -L 2 indica a CVSup di visualizzare i dettagli di tutti gli aggiornamenti dei file che avvengono. Esistono tre livelli di verbosità, da -L 0 a -L 2. Il default è 0, che significa silenzio totale eccetto per i messaggi di errore.

Ci sono molte altre opzione disponibili. Per una breve lista di esse, digita cvsup -H. Per una descrizione più dettagliata, guarda la relativa pagina man.

Una volta che sei soddisfatto di come avvengono gli aggiornamenti, puoi organizzare esecuzioni regolari di CVSup usando cron(8). Ovviamente, non dovresti lasciare che CVSup usi la sua GUI quando lo esegui tramite cron(8).

A.5.5. Collezioni di File di CVSup

Le collezioni di file disponibili via CVSup sono organizzate gerarchicamente. Ci sono poche collezioni grandi, le quali sono divise in piccole sotto-collezioni. Ricevere una grande collezione è equivalente a ricevere ogni sua sotto-collezione. Le relazioni gerarchiche tra le collezioni riflettono l’uso dell’identazione nella lista qui sotto.

Le collezioni maggiormente usate sono src-all, e ports-all. Le altre collezioni sono usate solo da piccoli gruppi di persone per scopi speciali, e alcuni siti mirror potrebbero non contenerle tutte.

cvs-all release=cvs

Il deposito CVS maestro di FreeBSD, incluso il codice di crittografia.

distrib release=cvs

File relativi alla distribuzione e al mirroring di FreeBSD.

doc-all release=cvs

Sorgenti del Manuale di FreeBSD e altra documentazione. Questa collezione non include i file per il sito web di FreeBSD.

ports-all release=cvs

La FreeBSD Ports Collection.

Se non vuoi aggiornare per intero ports-all (l’interno albero dei port), ma usare una delle sotto-collezioni listate qui sotto, assicurati di aggiornare sempre la sotto-collezione ports-base! Ogni volta che qualcosa cambia nell’infrastruttura della costruzione dei port rappresentata da ports-base, è praticamente certo che quei cambiamenti saranno usati dai port "reali" in un brevissimo arco di tempo. Quindi, se aggiorni solo i port "reali" e questi usano alcune delle nuove caratteristiche, c’è un’alta probabilità che la loro costruzione fallirà con alcuni misteriosi messaggi di errore. La primissima cosa da fare in questi casi è assicurarsi che la propria sotto-collezione ports-base sia aggiornata.

Se hai intenzione di creare localmente una copia di ports/INDEX, devi includere ports-all (l’intero albero dei port). Costruire ports/INDEX con un albero non completo non è supportato. Consulta la FAQ.

ports-accessibility release=cvs

Software per aiutare gli utenti disabili.

ports-arabic release=cvs

Supporto per la lingua araba.

ports-archivers release=cvs

Applicazioni per l’archiviazione.

ports-astro release=cvs

Applicazioni riguardanti l’astronomia.

ports-audio release=cvs

Applicazioni di supporto all’audio.

ports-base release=cvs

L’infrastruttura della costruzione della collezione dei port - vari file posti nelle sottodirectory Mk/ e Tools/ della directory /usr/ports.

Per favore vedi l'importante avvertimento qui sopra: dovresti sempre aggiornare questa sotto-collezione ogni volta che aggiorni qualche pezzo della FreeBSD Ports Collection!

ports-benchmarks release=cvs

Benchmark (applicazioni per valutare le prestazioni del computer).

ports-biology release=cvs

Biologia.

ports-cad release=cvs

Applicazioni per la grafica computerizzata.

ports-chinese release=cvs

Supporto alla lingua cinese.

ports-comms release=cvs

Software per la comunicazione.

ports-converters release=cvs

Convertitori di codici di caratteri.

ports-databases release=cvs

Database.

ports-deskutils release=cvs

Cose che erano utilizzate sulla scrivania prima che i computer furono inventati.

ports-devel release=cvs

Utility per il development.

ports-dns release=cvs

Software relativo al DNS.

ports-editors release=cvs

Editor.

ports-emulators release=cvs

Emulatori per altri sistemi operativi.

ports-finance release=cvs

Applicazioni finanziarie, di gestione delle spese e simili.

ports-ftp release=cvs

Server e client FTP.

ports-games release=cvs

Giochi.

ports-german release=cvs

Supporto alla lingua tedesca.

ports-graphics release=cvs

Utilità per la grafica.

ports-hebrew release=cvs

Supporto per la lingua ebraica.

ports-hungarian release=cvs

Supporto alla lingua ungherese.

ports-irc release=cvs

Utilità IRC (Internet Relay Chat).

ports-japanese release=cvs

Supporto alla lingua giapponese.

ports-java release=cvs

Utility Java™.

ports-korean release=cvs

Supporto alla lingua coreana.

ports-lang release=cvs

Linguaggi di programmazione.

ports-mail release=cvs

Software di posta.

ports-math release=cvs

Software per la computazione numerica.

ports-mbone release=cvs

Applicazioni MBone.

ports-misc release=cvs

Utility varie.

ports-multimedia release=cvs

Software multimediale.

ports-net release=cvs

Software di rete.

ports-net-im release=cvs

Software per messaggeria istantanea.

ports-net-mgmt release=cvs

Software di gestione del network.

ports-net-p2p release=cvs

Rete peer to peer.

ports-news release=cvs

Software per USENET.

ports-palm release=cvs

Software di supporto per i vari Palm™.

ports-polish release=cvs

Supporto alla lingua polacca.

ports-portuguese release=cvs

Supporto alla lingua portoghese.

ports-print release=cvs

Software per la stampa.

ports-russian release=cvs

Supporto alla lingua russa.

ports-science release=cvs

Scienzia.

ports-security release=cvs

Utility per la sicurezza.

ports-shells release=cvs

Shell a riga di comando.

ports-sysutils release=cvs

Utility di sistema.

ports-textproc release=cvs

Utility per la manipolazione del testo (non include utility per la pubblicazione computerizzata).

ports-ukrainian release=cvs

Supporto per la lingua ucraina.

ports-vietnamese release=cvs

Supporto alla lingua vietnamite.

ports-www release=cvs

Software relativo al World Wide Web.

ports-x11 release=cvs

Port per il supporto al sistema a finestre X.

ports-x11-clocks release=cvs

Orologi per X11.

ports-x11-fm release=cvs

Gestori di file per X11.

ports-x11-fonts release=cvs

Font per X11 e relative utility.

ports-x11-toolkits release=cvs

Cassette degli attrezzi per X11.

ports-x11-servers release=cvs

Server X11.

ports-x11-themes release=cvs

Temi per X11.

ports-x11-wm release=cvs

Gestori di finestre per X11.

projects-all release=cvs

Sorgenti per i progetti di FreeBSD.

src-all release=cvs

I sorgenti correnti di FreeBSD, incluso il codice di crittografia.

src-base release=cvs

Vari file posti in /usr/src.

src-bin release=cvs

Utility per l’utente in ambiente mono-utente (/usr/src/bin).

src-contrib release=cvs

Utility e librerie al di fuori del progetto FreeBSD, sostanzialmente utilizzati senza modifiche (/usr/src/contrib).

src-crypto release=cvs

Utility e librerie per la crittografia al di fuori del progetto FreeBSD, sostanzialmente utilizzati senza modifiche (/usr/src/crypto).

src-eBones release=cvs

Kerberos e DES (/usr/src/eBones). Non usati nell’attuale release di FreeBSD.

src-etc release=cvs

File di configurazione del sistema (/usr/src/etc).

src-games release=cvs

Giochi (/usr/src/games).

src-gnu release=cvs

Utility protette dalla licenza pubblica di GNU (/usr/src/gnu).

src-include release=cvs

File header (/usr/src/include).

src-kerberos5 release=cvs

Pacchetto di sicurezza Kerberos5 (/usr/src/kerberos5).

src-kerberosIV release=cvs

Pacchetto di sicurezza KerberosIV (/usr/src/kerberosIV).

src-lib release=cvs

Librerie (/usr/src/lib).

src-libexec release=cvs

Programmi di sistema normalmente eseguiti da altri programmi (/usr/src/libexec).

src-release release=cvs

File richiesti per produrre una release di FreeBSD (/usr/src/release).

src-sbin release=cvs

Utility di sistema per la modalità mono-utente (/usr/src/sbin).

src-secure release=cvs

Librerie e comandi per la crittografia (/usr/src/secure).

src-share release=cvs

File che possono essere condivisi tra sistemi multipli (/usr/src/share).

src-sys release=cvs

Il kernel (/usr/src/sys).

src-sys-crypto release=cvs

Codice di crittografia del kernel (/usr/src/sys/crypto).

src-tools release=cvs

Vari strumenti per il mantenimento di FreeBSD (/usr/src/tools).

src-usrbin release=cvs

Utility per l’utente (/usr/src/usr.bin).

src-usrsbin release=cvs

Utility di sistema (/usr/src/usr.sbin).

www release=cvs

I sorgenti per il sito web di FreeBSD.

distrib release=self

I file di configurazione del server CVSup. Usati dai siti mirror CVSup.

gnats release=current

Il database GNATS per tener traccia dei bug.

mail-archive release=current

Archivio delle mailing list di FreeBSD.

www release=current

I file pre-processati del sito web di FreeBSD (non i file sorgenti). Usati dai siti mirror WWW.

A.5.6. Per Maggiori Informazioni

Per le FAQ ed altre informazioni di CVSup vedere la pagina home di CVSup.

La maggior parte delle discussioni su CVSup inerenti a FreeBSD si svolgono sulla mailing list di discussioni tecniche su FreeBSD. In questa mailling list inoltre sono anche annunciate nuove versioni del software, come pure sulla mailing list di annunci su FreeBSD.

Questioni e resoconti di bug dovrebbero essere indirizzati all’autore del programma cvsup-bugs@polstra.com.

A.5.7. Siti CVSup

I server CVSup per FreeBSD si trovano ai seguenti siti:

A.6. Usare Portsnap

A.6.1. Introduzione

Portsnap è un sistema per distribuire in modo sicuro l’albero dei port di FreeBSD. Circa ogni ora, viene generata una "snapshot" dell’albero dei port, che viene impacchettata e firmata criptograficamente. I file risultanti sono quindi distribuiti via HTTP.

Come CVSup, Portsnap usa un modello di aggiornamento a rchiesta: gli alberi dei port impacchettati e firmati sono messi sul server web che attende in modo passivo le richieste dei client. Gli utenti devono eseguire portsnap(8) manualmente o schedulare il job con cron(8) per scaricare periodicamente gli aggiornamenti in modo automatico.

Per ragioni tecniche, Portsnap non aggiorna direttamente il "reale" albero dei port in /usr/ports/; invece, lavora con una copia compressa dell’albero dei port memorizzata di default in /var/db/portsnap/. Questa copia compressa viene quindi usata per aggiornare l’albero dei port effettivo.

Se Portsnap è installato dalla collezione dei port di FreeBSD, la locazione di default per la sua snapshot compressa è /usr/local/portsnap/ invece di /var/db/portsnap/.

A.6.2. Instalazione

Su FreeBSD 6.0 e versioni più recenti, Portsnap è contenuto nel sistema base. Su versioni di FreeBSD più datate, può essere installato usando il port sysutils/portsnap.

A.6.3. Configurazione di Portsnap

Il funzionamento di Portsnap è controllato dal file di configurazione /etc/portsnap.conf. Per la maggior parte degli utenti, la configurazione di default sarà sufficiente; per maggiori dettagli, consultare la pagina man portsnap.conf(5).

Se Portsnap è installato dalla collezione dei port di FreeBSD, userà il file di configurazione posto in /usr/local/etc/portsnap.conf invece di /etc/portsnap.conf. Questo file di configurazione non viene creato quando viene installato il port, ma viene dato un file di configurazione di base; per copiarlo nella giusta posizione, esegui il comando seguente:

# cd /usr/local/etc && cp portsnap.conf.sample portsnap.conf

A.6.4. Eseguire Portsnap per la Prima Volta

La prima volta che portsnap(8) viene eseguito, ha bisogno di scaricare una snapshot compressa dell’intero albero dei port in /var/db/portsnap/ (o /usr/local/portsnap/ se Portsnap è stato installato dalla collezione dei port). Dall’inizio del 2006 la sua dimensione è di circa 41 MB.

# portsnap fetch

Una volta che la snapshot compressa è stata scaricata, una copia dell’albero dei port può estratta in /usr/ports/. Questo è necessario perfino se l’albero dei port è già stato creato in quella directory (es., usando CVSup), poichè stabilisce un punto di inizio dal qualche portsnap può determinare quale parte dell’albero dei port necessita di essere aggiornata.

# portsnap extract

Nell’installazione di default la directory /usr/ports non viene creata. Se usi FreeBSD 6.0-RELEASE, la directory dovrebbe essere creata prima di usare portsnap. Su versioni di FreeBSD e Portsnap più recenti questa operazione viene fatta in automatico al primo utilizzo del comando portsnap.

A.6.5. Aggiornare l’Albero dei Port

Dopo che una prima snapshot compressa dell’albero dei port è stata scaricata ed estratta in /usr/ports/, l’aggiornamento dell’albero dei port consiste in due passi: scaricando gli aggiornamenti della snapshot compressa, e usare questi per aggiornare l’albero dei port effettivo. Questi due passi possono essere specificati a portsnap con un comando singolo.

# portsnap fetch update

Alcune versioni vecchie di portsnap non supportano questa sintassi; se fallisce, prova in questo modo:

# portsnap fetch
# portsnap update

A.6.6. Avviare Portsnap tramite cron

Al fine di evitare problemi di "affollamenti istantanei" accedendo ai server di Portsnap, portsnap fetch non funziona da un job cron(8). Esiste invece un comando apposito portsnap cron, che attende una durata random fino a 3600 secondi prima di scaricare gli aggiornamenti.

Inoltre, è fortemente racomandato che portsnap update non sia eseguito da un job cron, poichè è soggetto a causare problemi se viene avviato allo stesso tempo di compilazione o installazione di un port. Ad ogni modo, è possibile aggiornare i file INDEX dei port, e può essere fatto passando il flag -I a portsnap. (Ovviamente, se portsnap -I update viene eseguito da cron, sarà necessario eseguire successivamnte portsnap update senza la flag -I al fine di aggiornare il resto dell’albero.)

Aggiungendo la riga seguente in /etc/crontab, portsnap aggiornerà la snapshot compressa e i file INDEX in /usr/ports/, e manderà una email se qualche port installato non è aggiornato:

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

Se l’ora di sistema non è settata all’ora locale, sostituisci 3 con un valore random tra 0 e 23, al fine di disporre il carico sui server Portsnap in modo uniforme.

Alcune versioni datate di portsnap non supportano l’elenco di comandi multipli (es., cron update) nella stessa invocazione di portsnap. Se la riga di comando precedente fallisce, prova a sostituire portsnap -I cron update con portsnap cron portsnap -I update.

A.7. Tag CVS

Quando ricevi o aggiorni dei sorgenti usando cvs o CVSup, devi specificare un tag di revisione. Un tag di revisione si riferisce sia ad una particolare linea di sviluppo di FreeBSD, sia ad un specifico periodo di tempo. I primi tipi sono chiamati "tag di ramo", mentre i secondi "tag di release".

A.7.1. Tag di Ramo

Tutti, con l’eccezione di HEAD (che è sempre un valido tag), sono relativi all’albero src/. Gli alberi ports/, doc/, e www/ non sono ramificati.

HEAD

Nome simbolico per la linea di sviluppo corrente, FreeBSD-CURRENT. È anche il tag di default se nessun tag di revisione è specificato.

In CVSup, questo tag è rappresentato dal simbolo ..

In CVS, questo è il settaggio di default se nessun tag di revisione è stato specificato. In genere non è una buona idea aggiornare i sorgenti a CURRENT su una macchina STABLE, a meno che sai cosa stai facendo.

RELENG_6

La linea di sviluppo per FreeBSD-6.X, anche conosciuta come FreeBSD 6-STABLE.

RELENG_6_1

Il ramo di release per FreeBSD-6.1, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_6_0

Il ramo di release per FreeBSD-6.0, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_5

La linea di sviluppo per FreeBSD-5.X, anche conosciuta come FreeBSD-STABLE.

RELENG_5_5

Il ramo di release per FreeBSD-5.5, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_5_4

Il ramo di release per FreeBSD-5.4, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_5_3

Il ramo di release per FreeBSD-5.3, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_5_2

Il ramo di release per FreeBSD-5.2 e FreeBSD-5.2.1, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_5_1

Il ramo di release per FreeBSD-5.1, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_5_0

Il ramo di release per FreeBSD-5.0, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_4

La linea di sviluppo per FreeBSD-4.X, anche conosciuta come FreeBSD 4-STABLE.

RELENG_4_11

Il ramo di release per FreeBSD-4.11, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_4_10

Il ramo di release per FreeBSD-4.10, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_4_9

Il ramo di release per FreeBSD-4.9, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_4_8

Il ramo di release per FreeBSD-4.8, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_4_7

Il ramo di release per FreeBSD-4.7, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_4_6

Il ramo di release per FreeBSD-4.6 e FreeBSD-4.6.2, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_4_5

Il ramo di release per FreeBSD-4.5, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_4_4

Il ramo di release per FreeBSD-4.4, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_4_3

Il ramo di release per FreeBSD-4.3, usato solo per aggiornamenti relativi alla sicurezza e per altri fix cruciali.

RELENG_3

La line di sviluppo per FreeBSD-3.X, anche conosciuta come 3.X-STABLE.

RELENG_2_2

La linea di sviluppo per FreeBSD-2.2.X, anche conosciuta come 2.2-STABLE. Questo ramo è per la maggior parte obsoleto.

A.7.2. Tag di Release

Questi tag si riferiscono a un preciso istante di tempo quando una versione di FreeBSD è stata rilasciata. Il processo di release engineering è documentato in dettaglio dai documenti Release Engineering Information e Release Process. L’albero src usa nomi di tag che iniziano con RELENG_. Gli alberi ports e doc usano tag il cui nome inizia con RELEASE. Infine, l’albero www non viene taggato con alcun nome particolare per le release.

RELENG_6_1_0_RELEASE

FreeBSD 6.1

RELENG_6_0_0_RELEASE

FreeBSD 6.0

RELENG_5_5_0_RELEASE

FreeBSD 5.5

RELENG_5_4_0_RELEASE

FreeBSD 5.4

RELENG_4_11_0_RELEASE

FreeBSD 4.11

RELENG_5_3_0_RELEASE

FreeBSD 5.3

RELENG_4_10_0_RELEASE

FreeBSD 4.10

RELENG_5_2_1_RELEASE

FreeBSD 5.2.1

RELENG_5_2_0_RELEASE

FreeBSD 5.2

RELENG_4_9_0_RELEASE

FreeBSD 4.9

RELENG_5_1_0_RELEASE

FreeBSD 5.1

RELENG_4_8_0_RELEASE

FreeBSD 4.8

RELENG_5_0_0_RELEASE

FreeBSD 5.0

RELENG_4_7_0_RELEASE

FreeBSD 4.7

RELENG_4_6_2_RELEASE

FreeBSD 4.6.2

RELENG_4_6_1_RELEASE

FreeBSD 4.6.1

RELENG_4_6_0_RELEASE

FreeBSD 4.6

RELENG_4_5_0_RELEASE

FreeBSD 4.5

RELENG_4_4_0_RELEASE

FreeBSD 4.4

RELENG_4_3_0_RELEASE

FreeBSD 4.3

RELENG_4_2_0_RELEASE

FreeBSD 4.2

RELENG_4_1_1_RELEASE

FreeBSD 4.1.1

RELENG_4_1_0_RELEASE

FreeBSD 4.1

RELENG_4_0_0_RELEASE

FreeBSD 4.0

RELENG_3_5_0_RELEASE

FreeBSD-3.5

RELENG_3_4_0_RELEASE

FreeBSD-3.4

RELENG_3_3_0_RELEASE

FreeBSD-3.3

RELENG_3_2_0_RELEASE

FreeBSD-3.2

RELENG_3_1_0_RELEASE

FreeBSD-3.1

RELENG_3_0_0_RELEASE

FreeBSD-3.0

RELENG_2_2_8_RELEASE

FreeBSD-2.2.8

RELENG_2_2_7_RELEASE

FreeBSD-2.2.7

RELENG_2_2_6_RELEASE

FreeBSD-2.2.6

RELENG_2_2_5_RELEASE

FreeBSD-2.2.5

RELENG_2_2_2_RELEASE

FreeBSD-2.2.2

RELENG_2_2_1_RELEASE

FreeBSD-2.2.1

RELENG_2_2_0_RELEASE

FreeBSD-2.2.0

A.8. Siti AFS

I server AFS per FreeBSD sono in esecuzione nei seguenti siti:

Svezia

Il percorso dei file è: /afs/stacken.kth.se/ftp/pub/FreeBSD/

stacken.kth.se         # Stacken Computer Club, KTH, Svezia
130.237.234.43         #hot.stacken.kth.se
130.237.237.230        #fishburger.stacken.kth.se
130.237.234.3          #milko.stacken.kth.se

Il maintainer ftp@stacken.kth.se

A.9. Siti rsync

I seguenti siti rendono disponibile FreeBSD tramite il protocollo rsync. L’utility rsync lavora nello stesso modo del comando rcp(1), ma ha più opzioni e usa il protocollo rsync per aggiornamenti remoti il quale trasferisce solo le differenze tra i due set di file, e di conseguenza accelera fortemente la sincronizzazione su rete. Questo è molto utile se hai un sito mirror del server FTP di FreeBSD, o del deposito CVS. La suite rsync è disponibile per molti sistemi operativi e, su FreeBSD, puoi usare il port net/rsync o il rispettivo package.

Repubblica Ceca

rsync://ftp.cz.FreeBSD.org/

Collezioni disponibili:

  • ftp: Un mirror parziale del server FTP di FreeBSD.

  • FreeBSD: Un mirror completo del server FTP di FreeBSD.

Germania

rsync://grappa.unix-ag.uni-kl.de/

Collezioni disponibili:

  • freebsd-cvs: Il completo deposito CVS di FreeBSD.

Questa macchina fa da mirror anche per il deposito CVS dei progetti NetBSD e OpenBSD, tra gli altri.

Olanda

rsync://ftp.nl.FreeBSD.org/

Collezioni disponibili:

  • vol/4/freebsd-core: Un completo mirror del server FTP di FreeBSD.

Regno Unito

rsync://rsync.mirror.ac.uk/

Collezioni disponibili:

  • ftp.FreeBSD.org: Un completo mirror del server FTP di FreeBSD.

Stati Uniti d’America

rsync://ftp-master.FreeBSD.org/

Questo server può essere usato solo dai siti mirror primari di FreeBSD.

Collezioni disponibili:

  • FreeBSD: L’archivio master del server FTP di FreeBSD.

  • acl: La lista master delle ACL di FreeBSD.

    rsync://ftp13.FreeBSD.org/

    Collezioni disponibili:

  • FreeBSD: Un completo mirror del server FTP di FreeBSD.


Questo, ed altri documenti, possono essere scaricati da https://download.freebsd.org/ftp/doc/

Per domande su FreeBSD, leggi la documentazione prima di contattare <freebsd-questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <freebsd-doc@FreeBSD.org>.