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.
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.
Nota: 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.
Il funzionamento di CVSup è controllato da un file di configurazione chiamato supfile. Esistono alcuni esempi di supfile nella directory /usr/share/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.
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
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=
.
Avvertimento: 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 Sezione A.7 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=..
Avvertimento: 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.
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
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.
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
, 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).
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.
Il deposito CVS maestro di FreeBSD, incluso il codice di crittografia.
File relativi alla distribuzione e al mirroring di FreeBSD.
Sorgenti del Manuale di FreeBSD e altra documentazione. Questa collezione non include i file per il sito web di FreeBSD.
La FreeBSD Ports Collection.
Importante: 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.
Importante: 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.
Software per aiutare gli utenti disabili.
Supporto per la lingua araba.
Applicazioni per l'archiviazione.
Applicazioni riguardanti l'astronomia.
Applicazioni di supporto all'audio.
L'infrastruttura della costruzione della collezione dei port - vari file posti nelle sottodirectory Mk/ e Tools/ della directory /usr/ports.
Nota: Per favore vedi l'importante avvertimento qui sopra: dovresti sempre aggiornare questa sotto-collezione ogni volta che aggiorni qualche pezzo della FreeBSD Ports Collection!
Benchmark (applicazioni per valutare le prestazioni del computer).
Biologia.
Applicazioni per la grafica computerizzata.
Supporto alla lingua cinese.
Software per la comunicazione.
Convertitori di codici di caratteri.
Database.
Cose che erano utilizzate sulla scrivania prima che i computer furono inventati.
Utility per il development.
Software relativo al DNS.
Editor.
Emulatori per altri sistemi operativi.
Applicazioni finanziarie, di gestione delle spese e simili.
Server e client FTP.
Giochi.
Supporto alla lingua tedesca.
Utilità per la grafica.
Supporto per la lingua ebraica.
Supporto alla lingua ungherese.
Utilità IRC (Internet Relay Chat).
Supporto alla lingua giapponese.
Utility Java™.
Supporto alla lingua coreana.
Linguaggi di programmazione.
Software di posta.
Software per la computazione numerica.
Applicazioni MBone.
Utility varie.
Software multimediale.
Software di rete.
Software per messaggeria istantanea.
Software di gestione del network.
Rete peer to peer.
Software per USENET.
Software di supporto per i vari Palm™.
Supporto alla lingua polacca.
Supporto alla lingua portoghese.
Software per la stampa.
Supporto alla lingua russa.
Scienzia.
Utility per la sicurezza.
Shell a riga di comando.
Utility di sistema.
Utility per la manipolazione del testo (non include utility per la pubblicazione computerizzata).
Supporto per la lingua ucraina.
Supporto alla lingua vietnamite.
Software relativo al World Wide Web.
Port per il supporto al sistema a finestre X.
Orologi per X11.
Gestori di file per X11.
Font per X11 e relative utility.
Cassette degli attrezzi per X11.
Server X11.
Temi per X11.
Gestori di finestre per X11.
Sorgenti per i progetti di FreeBSD.
I sorgenti correnti di FreeBSD, incluso il codice di crittografia.
Vari file posti in /usr/src.
Utility per l'utente in ambiente mono-utente (/usr/src/bin).
Utility e librerie al di fuori del progetto FreeBSD, sostanzialmente utilizzati senza modifiche (/usr/src/contrib).
Utility e librerie per la crittografia al di fuori del progetto FreeBSD, sostanzialmente utilizzati senza modifiche (/usr/src/crypto).
Kerberos e DES (/usr/src/eBones). Non usati nell'attuale release di FreeBSD.
File di configurazione del sistema (/usr/src/etc).
Giochi (/usr/src/games).
Utility protette dalla licenza pubblica di GNU (/usr/src/gnu).
File header (/usr/src/include).
Pacchetto di sicurezza Kerberos5 (/usr/src/kerberos5).
Pacchetto di sicurezza KerberosIV (/usr/src/kerberosIV).
Librerie (/usr/src/lib).
Programmi di sistema normalmente eseguiti da altri programmi (/usr/src/libexec).
File richiesti per produrre una release di FreeBSD (/usr/src/release).
Utility di sistema per la modalità mono-utente (/usr/src/sbin).
Librerie e comandi per la crittografia (/usr/src/secure).
File che possono essere condivisi tra sistemi multipli (/usr/src/share).
Il kernel (/usr/src/sys).
Codice di crittografia del kernel (/usr/src/sys/crypto).
Vari strumenti per il mantenimento di FreeBSD (/usr/src/tools).
Utility per l'utente (/usr/src/usr.bin).
Utility di sistema (/usr/src/usr.sbin).
I sorgenti per il sito web di FreeBSD.
I file di configurazione del server CVSup. Usati dai siti mirror CVSup.
Il database GNATS per tener traccia dei bug.
Archivio delle mailing list di FreeBSD.
I file pre-processati del sito web di FreeBSD (non i file sorgenti). Usati dai siti mirror WWW.
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>
.
I server CVSup per FreeBSD si trovano ai seguenti siti:
Server Centrali, Siti Mirror Primari, Armenia, Australia, Austria, Brasile, Canada, Cina, Corea, Costa Rica, Danimarca, Estonia, Filippine, Finlandia, Francia, Germania, Giappone, Grecia, Irlanda, Islanda, Israel, Italia, Kuwait, Kyrgyzstan, Lettonia, Lituania, Norvegia, Nuova Zelanda, Olanda, Polonia, Portogallo, Regno Unito, Repubblica Ceca, Repubblica Slovacca, Romania, Russia, San Marino, Slovenia, Spagna, Sud Africa, Svezia, Svizzera, Taiwan, Thailand, Turchia, Ucraina, Ungheria, USA.
(aggiornato al UTC)
cvsup.FreeBSD.org
cvsup1.FreeBSD.org
cvsup2.FreeBSD.org
cvsup3.FreeBSD.org
cvsup4.FreeBSD.org
cvsup5.FreeBSD.org
cvsup6.FreeBSD.org
cvsup7.FreeBSD.org
cvsup8.FreeBSD.org
cvsup9.FreeBSD.org
cvsup10.FreeBSD.org
cvsup11.FreeBSD.org
cvsup12.FreeBSD.org
cvsup13.FreeBSD.org
cvsup14.FreeBSD.org
cvsup15.FreeBSD.org
cvsup16.FreeBSD.org
cvsup18.FreeBSD.org
cvsup1.am.FreeBSD.org
cvsup.au.FreeBSD.org
cvsup.at.FreeBSD.org
cvsup.br.FreeBSD.org
cvsup2.br.FreeBSD.org
cvsup3.br.FreeBSD.org
cvsup4.br.FreeBSD.org
cvsup5.br.FreeBSD.org
cvsup1.ca.FreeBSD.org
cvsup.cn.FreeBSD.org
cvsup2.cn.FreeBSD.org
cvsup.kr.FreeBSD.org
cvsup2.kr.FreeBSD.org
cvsup3.kr.FreeBSD.org
cvsup1.cr.FreeBSD.org
cvsup.dk.FreeBSD.org
cvsup2.dk.FreeBSD.org
cvsup.ee.FreeBSD.org
cvsup1.ph.FreeBSD.org
cvsup.fi.FreeBSD.org
cvsup2.fi.FreeBSD.org
cvsup.fr.FreeBSD.org
cvsup1.fr.FreeBSD.org
cvsup2.fr.FreeBSD.org
cvsup3.fr.FreeBSD.org
cvsup4.fr.FreeBSD.org
cvsup5.fr.FreeBSD.org
cvsup8.fr.FreeBSD.org
cvsup.de.FreeBSD.org
cvsup2.de.FreeBSD.org
cvsup3.de.FreeBSD.org
cvsup4.de.FreeBSD.org
cvsup5.de.FreeBSD.org
cvsup6.de.FreeBSD.org
cvsup7.de.FreeBSD.org
cvsup8.de.FreeBSD.org
cvsup.jp.FreeBSD.org
cvsup2.jp.FreeBSD.org
cvsup3.jp.FreeBSD.org
cvsup4.jp.FreeBSD.org
cvsup5.jp.FreeBSD.org
cvsup6.jp.FreeBSD.org
cvsup.gr.FreeBSD.org
cvsup2.gr.FreeBSD.org
cvsup.ie.FreeBSD.org
cvsup2.ie.FreeBSD.org
cvsup.is.FreeBSD.org
cvsup.il.FreeBSD.org
cvsup.it.FreeBSD.org
cvsup1.kw.FreeBSD.org
cvsup.kg.FreeBSD.org
cvsup.lv.FreeBSD.org
cvsup2.lv.FreeBSD.org
cvsup.lt.FreeBSD.org
cvsup2.lt.FreeBSD.org
cvsup3.lt.FreeBSD.org
cvsup.no.FreeBSD.org
cvsup.nz.FreeBSD.org
cvsup.nl.FreeBSD.org
cvsup2.nl.FreeBSD.org
cvsup3.nl.FreeBSD.org
cvsup.pl.FreeBSD.org
cvsup2.pl.FreeBSD.org
cvsup3.pl.FreeBSD.org
cvsup.pt.FreeBSD.org
cvsup2.pt.FreeBSD.org
cvsup3.pt.FreeBSD.org
cvsup.uk.FreeBSD.org
cvsup2.uk.FreeBSD.org
cvsup3.uk.FreeBSD.org
cvsup4.uk.FreeBSD.org
cvsup.cz.FreeBSD.org
cvsup.sk.FreeBSD.org
cvsup.ro.FreeBSD.org
cvsup1.ro.FreeBSD.org
cvsup2.ro.FreeBSD.org
cvsup3.ro.FreeBSD.org
cvsup.ru.FreeBSD.org
cvsup2.ru.FreeBSD.org
cvsup3.ru.FreeBSD.org
cvsup4.ru.FreeBSD.org
cvsup5.ru.FreeBSD.org
cvsup6.ru.FreeBSD.org
cvsup7.ru.FreeBSD.org
cvsup.sm.FreeBSD.org
cvsup.si.FreeBSD.org
cvsup2.si.FreeBSD.org
cvsup.es.FreeBSD.org
cvsup2.es.FreeBSD.org
cvsup3.es.FreeBSD.org
cvsup.za.FreeBSD.org
cvsup2.za.FreeBSD.org
cvsup.se.FreeBSD.org
cvsup2.se.FreeBSD.org
cvsup.ch.FreeBSD.org
cvsup.tw.FreeBSD.org
cvsup3.tw.FreeBSD.org
cvsup4.tw.FreeBSD.org
cvsup5.tw.FreeBSD.org
cvsup6.tw.FreeBSD.org
cvsup7.tw.FreeBSD.org
cvsup8.tw.FreeBSD.org
cvsup9.tw.FreeBSD.org
cvsup10.tw.FreeBSD.org
cvsup11.tw.FreeBSD.org
cvsup12.tw.FreeBSD.org
cvsup13.tw.FreeBSD.org
cvsup14.tw.FreeBSD.org
cvsup.th.FreeBSD.org
cvsup.tr.FreeBSD.org
cvsup2.tr.FreeBSD.org
cvsup3.ua.FreeBSD.org
cvsup5.ua.FreeBSD.org
cvsup6.ua.FreeBSD.org
cvsup.hu.FreeBSD.org
cvsup1.us.FreeBSD.org
cvsup2.us.FreeBSD.org
cvsup3.us.FreeBSD.org
cvsup4.us.FreeBSD.org
cvsup5.us.FreeBSD.org
cvsup6.us.FreeBSD.org
cvsup7.us.FreeBSD.org
cvsup8.us.FreeBSD.org
cvsup9.us.FreeBSD.org
cvsup10.us.FreeBSD.org
cvsup11.us.FreeBSD.org
cvsup12.us.FreeBSD.org
cvsup13.us.FreeBSD.org
cvsup14.us.FreeBSD.org
cvsup15.us.FreeBSD.org
cvsup16.us.FreeBSD.org
cvsup18.us.FreeBSD.org
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.