---
title: Appendice A. Ottenere FreeBSD
part: Parte V. Appendici
prev: books/handbook/partv
next: books/handbook/bibliography
showBookMenu: true
weight: 36
params:
  path: "/books/handbook/mirrors/"
---

[appendix]
[[mirrors]]
= Ottenere FreeBSD
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: A
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/mirrors/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[mirrors-cdrom]]
== Editori di CDROM e DVD

=== Prodotti al Dettaglio Confezionati

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

* CompUSA +
WWW: http://www.compusa.com/

* Frys Electronics +
WWW: http://www.frys.com/

=== Set di CD e DVD

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

* BSD Mall by Daemon News +
PO Box 161 +
Nauvoo, IL 62354 +
Stati Uniti d'America +
Telefono: +1 866 273-6255 +
Fax: +1 217 453-9956 +
Email: <sales@bsdmall.com> +
WWW: http://www.bsdmall.com/freebsd1.html

* BSD-Systems +
Email: <info@bsd-systems.co.uk> +
WWW: http://www.bsd-systems.co.uk

* FreeBSD Mall, Inc. +
3623 Sanford Street +
Concord, CA 94520-1405 +
Stati Uniti d'America +
Telefono: +1 925 674-0783 +
Fax: +1 925 674-0821 +
Email: <info@freebsdmall.com> +
WWW: http://www.freebsdmall.com/

* Hinner EDV +
St. Augustinus-Str. 10 +
D-81825 München +
Germania +
Telefono: (089) 428 419 +
WWW: http://www.hinner.de/linux/freebsd.html

* Ikarios +
22-24 rue Voltaire +
92000 Nanterre +
Francia +
WWW: http://ikarios.com/form/#freebsd

* JMC Software +
Irlanda +
Telefono: 353 1 6291282 +
WWW: http://www.thelinuxmall.com

* Linux CD Mall +
Private Bag MBE N348 +
Auckland 1030 +
Nuova Zelanda +
Telefono: +64 21 866529 +
WWW: http://www.linuxcdmall.co.nz/

* The Linux Emporium +
Hilliard House, Lester Way +
Wallingford +
OX10 9TA +
Regno Unito +
Telefono: +44 1491 837010 +
Fax: +44 1491 837016 +
WWW: http://www.linuxemporium.co.uk/products/freebsd/

* Linux+ DVD Magazine +
Lewartowskiego 6 +
Warsaw +
00-190 +
Polonia +
Telefono: +48 22 860 18 18 +
Email: <editors@lpmagazine.org> +
WWW: http://www.lpmagazine.org/

* Linux System Labs Australia +
21 Ray Drive +
Balwyn North +
VIC - 3104 +
Australia +
Telefono: +61 3 9857 5918 +
Fax: +61 3 9857 8974 +
WWW: http://www.lsl.com.au

* LinuxCenter.Ru +
Galernaya Street, 55 +
Saint-Petersburg +
190000 +
Russia +
Telefono: +7-812-3125208 +
Email: <info@linuxcenter.ru> +
WWW: http://linuxcenter.ru/freebsd

=== Distributori

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

* Cylogistics +
809B Cuesta Dr., #2149 +
Mountain View, CA 94040 +
Stati Uniti d'America +
Telefono: +1 650 694-4949 +
Fax: +1 650 694-4953 +
Email: <sales@cylogistics.com> +
WWW: http://www.cylogistics.com/

* Ingram Micro +
1600 E. St. Andrew Place +
Santa Ana, CA  92705-4926 +
Stati Uniti d'America +
Telefono: 1 (800) 456-8000 +
WWW: http://www.ingrammicro.com/

* Kudzu, LLC +
7375 Washington Ave. S. +
Edina, MN 55439 +
Stati Uniti d'America +
Telefono: +1 952 947-0822 +
Fax: +1 952 947-0876 +
Email: <sales@kudzuenterprises.com>

* LinuxCenter.Ru +
Galernaya Street, 55 +
Saint-Petersburg +
190000 +
Russia +
Phone: +7-812-3125208 +
Email: <info@linuxcenter.ru> +
WWW: http://linuxcenter.ru/freebsd

* Navarre Corp +
7400 49th Ave South +
New Hope, MN 55428 +
Stati Uniti d'America +
Telefono: +1 763 535-8333 +
Fax: +1 763 535-0341 +
WWW: http://www.navarre.com/

[[mirrors-ftp]]
== 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 link:ftp://ftp.FreeBSD.org/pub/FreeBSD/[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 http://mirrorlist.FreeBSD.org/[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.

<<central, {central}>>, <<primary, {mirrors-primary}>>, <<armenia, {mirrors-armenia}>>, <<australia, {mirrors-australia}>>, <<austria, {mirrors-austria}>>, <<brazil, {mirrors-brazil}>>, <<czech-republic, {mirrors-czech}>>, <<denmark, {mirrors-denmark}>>, <<estonia, {mirrors-estonia}>>, <<finland, {mirrors-finland}>>, <<france, {mirrors-france}>>, <<germany, {mirrors-germany}>>, <<greece, {mirrors-greece}>>, <<hong-kong, {mirrors-hongkong}>>, <<ireland, {mirrors-ireland}>>, <<japan, {mirrors-japan}>>, <<korea, {mirrors-korea}>>, <<latvia, {mirrors-latvia}>>, <<lithuania, {mirrors-lithuania}>>, <<netherlands, {mirrors-netherlands}>>, <<new-zealand, {mirrors-new-zealand}>>, <<norway, {mirrors-norway}>>, <<poland, {mirrors-poland}>>, <<russia, {mirrors-russia}>>, <<saudi-arabia, {mirrors-saudi-arabia}>>, <<slovenia, {mirrors-slovenia}>>, <<south-africa, {mirrors-south-africa}>>, <<spain, {mirrors-spain}>>, <<sweden, {mirrors-sweden}>>, <<switzerland, {mirrors-switzerland}>>, <<taiwan, {mirrors-taiwan}>>, <<ukraine, {mirrors-ukraine}>>, <<uk, {mirrors-uk}>>, <<usa, {mirrors-us}>>.

(aggiornato al UTC)

[[central]]
*{central}*

{central-ftp} (ftp / ftpv6 / {central-http} / {central-httpv6}) 

[[primary]]
*{mirrors-primary}*

In case of problems, please contact the hostmaster `<{mirrors-primary-email}>` for this domain.

* {mirrors-primary-ftp1} (ftp)
* {mirrors-primary-ftp2} (ftp)
* {mirrors-primary-ftp3} (ftp)
* {mirrors-primary-ftp4} (ftp / ftpv6 / {mirrors-primary-ftp4-http} / {mirrors-primary-ftp4-httpv6})
* {mirrors-primary-ftp5} (ftp)
* {mirrors-primary-ftp6} (ftp)
* {mirrors-primary-ftp7} (ftp)
* {mirrors-primary-ftp10} (ftp / ftpv6 / {mirrors-primary-ftp10-http} / {mirrors-primary-ftp10-httpv6})
* {mirrors-primary-ftp11} (ftp)
* {mirrors-primary-ftp13} (ftp)
* {mirrors-primary-ftp14} (ftp / {mirrors-primary-ftp14-http}) 

[[armenia]]
*{mirrors-armenia}*

In case of problems, please contact the hostmaster `<{mirrors-armenia-email}>` for this domain.

* {mirrors-armenia-ftp} (ftp / {mirrors-armenia-ftp-http} / rsync) 

[[australia]]
*{mirrors-australia}*

In case of problems, please contact the hostmaster `<{mirrors-australia-email}>` for this domain.

* {mirrors-australia-ftp} (ftp)
* {mirrors-australia-ftp2} (ftp)
* {mirrors-australia-ftp3} (ftp) 

[[austria]]
*{mirrors-austria}*

In case of problems, please contact the hostmaster `<{mirrors-austria-email}>` for this domain.

* {mirrors-austria-ftp} (ftp / ftpv6 / {mirrors-austria-ftp-http} / {mirrors-austria-ftp-httpv6}) 

[[brazil]]
*{mirrors-brazil}*

In case of problems, please contact the hostmaster `<{mirrors-brazil-email}>` for this domain.

* {mirrors-brazil-ftp2} (ftp / {mirrors-brazil-ftp2-http})
* {mirrors-brazil-ftp3} (ftp / rsync)
* {mirrors-brazil-ftp4} (ftp) 

[[czech-republic]]
*{mirrors-czech}*

In case of problems, please contact the hostmaster `<{mirrors-czech-email}>` for this domain.

* {mirrors-czech-ftp} (ftp / {mirrors-czech-ftpv6} / {mirrors-czech-ftp-http} / {mirrors-czech-ftp-httpv6} / rsync / rsyncv6)
* {mirrors-czech-ftp2} (ftp / {mirrors-czech-ftp2-http}) 

[[denmark]]
*{mirrors-denmark}*

In case of problems, please contact the hostmaster `<{mirrors-denmark-email}>` for this domain.

* {mirrors-denmark-ftp} (ftp / ftpv6 / {mirrors-denmark-ftp-http} / {mirrors-denmark-ftp-httpv6}) 

[[estonia]]
*{mirrors-estonia}*

In case of problems, please contact the hostmaster `<{mirrors-estonia-email}>` for this domain.

* {mirrors-estonia-ftp} (ftp) 

[[finland]]
*{mirrors-finland}*

In case of problems, please contact the hostmaster `<{mirrors-finland-email}>` for this domain.

* {mirrors-finland-ftp} (ftp) 

[[france]]
*{mirrors-france}*

In case of problems, please contact the hostmaster `<{mirrors-france-email}>` for this domain.

* {mirrors-france-ftp} (ftp)
* {mirrors-france-ftp1} (ftp / {mirrors-france-ftp1-http} / rsync)
* {mirrors-france-ftp3} (ftp)
* {mirrors-france-ftp5} (ftp)
* {mirrors-france-ftp6} (ftp / rsync)
* {mirrors-france-ftp7} (ftp)
* {mirrors-france-ftp8} (ftp) 

[[germany]]
*{mirrors-germany}*

In case of problems, please contact the hostmaster `<{mirrors-germany-email}>` for this domain.

* ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ (ftp)
* ftp://ftp1.de.FreeBSD.org/freebsd/ (ftp / http://www1.de.FreeBSD.org/freebsd/ / rsync://rsync3.de.FreeBSD.org/freebsd/)
* ftp://ftp2.de.FreeBSD.org/pub/FreeBSD/ (ftp / http://ftp2.de.FreeBSD.org/pub/FreeBSD/ / rsync)
* ftp://ftp4.de.FreeBSD.org/FreeBSD/ (ftp / http://ftp4.de.FreeBSD.org/pub/FreeBSD/)
* ftp://ftp5.de.FreeBSD.org/pub/FreeBSD/ (ftp)
* ftp://ftp7.de.FreeBSD.org/pub/FreeBSD/ (ftp / http://ftp7.de.FreeBSD.org/pub/FreeBSD/)

[[greece]]
*{mirrors-greece}*

In case of problems, please contact the hostmaster `<{mirrors-greece-email}>` for this domain.

* {mirrors-greece-ftp} (ftp)
* {mirrors-greece-ftp2} (ftp) 

[[hong-kong]]
*{mirrors-hongkong}*

{mirrors-hongkong-ftp} (ftp) 

[[ireland]]
*{mirrors-ireland}*

In case of problems, please contact the hostmaster `<{mirrors-ireland-email}>` for this domain.

* {mirrors-ireland-ftp} (ftp / rsync) 

[[japan]]
*{mirrors-japan}*

In case of problems, please contact the hostmaster `<{mirrors-japan-email}>` for this domain.

* {mirrors-japan-ftp} (ftp)
* {mirrors-japan-ftp2} (ftp)
* {mirrors-japan-ftp3} (ftp)
* {mirrors-japan-ftp4} (ftp)
* {mirrors-japan-ftp5} (ftp)
* {mirrors-japan-ftp6} (ftp)
* {mirrors-japan-ftp7} (ftp)
* {mirrors-japan-ftp8} (ftp)
* {mirrors-japan-ftp9} (ftp) 

[[korea]]
*{mirrors-korea}*

In case of problems, please contact the hostmaster `<{mirrors-korea-email}>` for this domain.

* {mirrors-korea-ftp} (ftp / rsync)
* {mirrors-korea-ftp2} (ftp / {mirrors-korea-ftp2-http}) 

[[latvia]]
*{mirrors-latvia}*

In case of problems, please contact the hostmaster `<{mirrors-latvia-email}>` for this domain.

* {mirrors-latvia-ftp} (ftp / {mirrors-latvia-ftp-http}) 

[[lithuania]]
*{mirrors-lithuania}*

In case of problems, please contact the hostmaster `<{mirrors-lithuania-email}>` for this domain.

* {mirrors-lithuania-ftp} (ftp / {mirrors-lithuania-ftp-http}) 

[[netherlands]]
*{mirrors-netherlands}*

In case of problems, please contact the hostmaster `<{mirrors-netherlands-email}>` for this domain.

* {mirrors-netherlands-ftp} (ftp / {mirrors-netherlands-ftp-http} / rsync)
* {mirrors-netherlands-ftp2} (ftp) 

[[new-zealand]]
*{mirrors-new-zealand}*

* {mirrors-new-zealand-ftp} (ftp / {mirrors-new-zealand-ftp-http}) 

[[norway]]
*{mirrors-norway}*

In case of problems, please contact the hostmaster `<{mirrors-norway-email}>` for this domain.

* {mirrors-norway-ftp} (ftp / rsync) 

[[poland]]
*{mirrors-poland}*

In case of problems, please contact the hostmaster `<{mirrors-poland-email}>` for this domain.

* {mirrors-poland-ftp} (ftp)
* ftp2.pl.FreeBSD.org

[[russia]]
*{mirrors-russia}*

In case of problems, please contact the hostmaster `<{mirrors-russia-email}>` for this domain.

* {mirrors-russia-ftp} (ftp / {mirrors-russia-ftp-http} / rsync)
* {mirrors-russia-ftp2} (ftp / {mirrors-russia-ftp2-http} / rsync)
* {mirrors-russia-ftp5} (ftp / {mirrors-russia-ftp5-http} / rsync)
* {mirrors-russia-ftp6} (ftp) 

[[saudi-arabia]]
*{mirrors-saudi-arabia}*

In case of problems, please contact the hostmaster `<{mirrors-saudi-arabia-email}>` for this domain.

* {mirrors-saudi-arabia-ftp} (ftp) 

[[slovenia]]
*{mirrors-slovenia}*

In case of problems, please contact the hostmaster `<{mirrors-slovenia-email}>` for this domain.

* {mirrors-slovenia-ftp} (ftp) 

[[south-africa]]
*{mirrors-south-africa}*

In case of problems, please contact the hostmaster `<{mirrors-south-africa-email}>` for this domain.

* {mirrors-south-africa-ftp} (ftp)
* {mirrors-south-africa-ftp2} (ftp)
* {mirrors-south-africa-ftp4} (ftp) 

[[spain]]
*{mirrors-spain}*

In case of problems, please contact the hostmaster `<{mirrors-spain-email}>` for this domain.

* {mirrors-spain-ftp} (ftp / {mirrors-spain-ftp-http})
* {mirrors-spain-ftp3} (ftp) 

[[sweden]]
*{mirrors-sweden}*

In case of problems, please contact the hostmaster `<{mirrors-sweden-email}>` for this domain.

* {mirrors-sweden-ftp} (ftp)
* {mirrors-sweden-ftp2} (ftp / {mirrors-sweden-ftp2-rsync})
* {mirrors-sweden-ftp3} (ftp)
* {mirrors-sweden-ftp4} (ftp / {mirrors-sweden-ftp4v6} / {mirrors-sweden-ftp4-http} / {mirrors-sweden-ftp4-httpv6} / {mirrors-sweden-ftp4-rsync} / {mirrors-sweden-ftp4-rsyncv6})
* {mirrors-sweden-ftp6} (ftp / {mirrors-sweden-ftp6-http}) 

[[switzerland]]
*{mirrors-switzerland}*

In case of problems, please contact the hostmaster `<{mirrors-switzerland-email}>` for this domain.

* {mirrors-switzerland-ftp} (ftp / {mirrors-switzerland-ftp-http}) 

[[taiwan]]
*{mirrors-taiwan}*

In case of problems, please contact the hostmaster `<{mirrors-taiwan-email}>` for this domain.

* {mirrors-taiwan-ftp} (ftp / {mirrors-taiwan-ftpv6} / rsync / rsyncv6)
* {mirrors-taiwan-ftp2} (ftp / {mirrors-taiwan-ftp2v6} / {mirrors-taiwan-ftp2-http} / {mirrors-taiwan-ftp2-httpv6} / rsync / rsyncv6)
* {mirrors-taiwan-ftp4} (ftp)
* {mirrors-taiwan-ftp5} (ftp)
* {mirrors-taiwan-ftp6} (ftp / {mirrors-taiwan-ftp6v6} / rsync)
* {mirrors-taiwan-ftp7} (ftp)
* {mirrors-taiwan-ftp8} (ftp)
* {mirrors-taiwan-ftp11} (ftp / {mirrors-taiwan-ftp11-http})
* {mirrors-taiwan-ftp12} (ftp)
* {mirrors-taiwan-ftp13} (ftp)
* {mirrors-taiwan-ftp14} (ftp)
* {mirrors-taiwan-ftp15} (ftp) 

[[ukraine]]
*{mirrors-ukraine}*

* {mirrors-ukraine-ftp} (ftp / {mirrors-ukraine-ftp-http})
* {mirrors-ukraine-ftp6} (ftp / {mirrors-ukraine-ftp6-http} / {mirrors-ukraine-ftp6-rsync})
* {mirrors-ukraine-ftp7} (ftp) 

[[uk]]
*{mirrors-uk}*

In case of problems, please contact the hostmaster `<{mirrors-uk-email}>` for this domain.

* {mirrors-uk-ftp} (ftp)
* {mirrors-uk-ftp2} (ftp / {mirrors-uk-ftp2-rsync})
* {mirrors-uk-ftp3} (ftp)
* {mirrors-uk-ftp4} (ftp)
* {mirrors-uk-ftp5} (ftp) 

[[usa]]
*{mirrors-us}*

In case of problems, please contact the hostmaster `<{mirrors-us-email}>` for this domain.

* {mirrors-us-ftp} (ftp)
* {mirrors-us-ftp2} (ftp)
* {mirrors-us-ftp3} (ftp)
* {mirrors-us-ftp4} (ftp / ftpv6 / {mirrors-us-ftp4-http} / {mirrors-us-ftp4-httpv6})
* {mirrors-us-ftp5} (ftp)
* {mirrors-us-ftp6} (ftp)
* {mirrors-us-ftp8} (ftp)
* {mirrors-us-ftp10} (ftp)
* {mirrors-us-ftp11} (ftp)
* {mirrors-us-ftp13} (ftp / {mirrors-us-ftp13-http} / rsync)
* {mirrors-us-ftp14} (ftp / {mirrors-us-ftp14-http})
* {mirrors-us-ftp15} (ftp) 

[[anoncvs]]
== CVS Anonimo

[[anoncvs-intro]]
=== 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 man:cvs[1] per accederci come se fosse un deposito locale.

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

Benché si possa dire che i servizi <<cvsup,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.

[[anoncvs-usage]]
=== Uso del CVS Anonimo

La configurazione di man: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)
+
[.programlisting]
....
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)
+
[.programlisting]
....
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 man: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 <<cvs-tags>> 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 man:cvs[1] per ulteriori dettagli.

=== Esempi

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

.Estrazione di Qualcosa dalla -CURRENT (man:ls[1]):
[example]
====

[source,shell]
....
% setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
% cvs login
Alla richiesta, inserire la password «anoncvs».
% cvs co ls
....

====

.Utilizzo di SSH per estrarre il ramo [.filename]#src/#:
[example]
====

[source,shell]
....
% 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.
....

====

.Estrazione della Versione di man:ls[1] dal Ramo 6-STABLE:
[example]
====

[source,shell]
....
% setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
% cvs login
Alla richiesta, inserire la password «anoncvs».
% cvs co -rRELENG_6 ls
....

====

.Creazione di una Lista di Cambiamenti (come Diff Unificate) di man:ls[1]
[example]
====

[source,shell]
....
% 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
....

====

.Scoperta di Quali Altri Nomi di Moduli Possono Essere Usati
[example]
====

[source,shell]
....
% setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
% cvs login
Alla richiesta, inserire la password «anoncvs».
% cvs co modules
% more modules/modules
....

====

=== Altre Risorse

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

* http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/[CVS Tutorial] dal Cal Poly.
* http://ximbiot.com/cvs/wiki/[CVS Home], la comunità di sviluppo e supporto del CVS.
* http://www.FreeBSD.org/cgi/cvsweb.cgi[CVSWeb] è l'interfaccia web di CVS relativa al progetto FreeBSD.

[[ctm]]
== 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 link:{ctm-users-url}[ctm-users-desc] per avere più informazioni e nel caso voleste usare CTM per altri scopi.

=== 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 crossref:cutting-edge[current,Restare in "current" con FreeBSD].

=== 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 [.filename]#/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:

link:ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/[ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/]

vedi anche la sezione <<mirrors-ctm,mirror>>.

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

Se invece desideri ricevere le delta per email:

Iscriviti ad una delle liste di distribuzione di CTM. link:{ctm-cvs-cur-url}[ctm-cvs-cur-desc] supporta l'interno albero CVS. link:{ctm-src-cur-url}[ctm-src-cur-desc] supporta il ramo di sviluppo current. {ctm-src-4} 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 {mailing-lists-url} 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 [.filename]#/etc/aliases#. Esamina la pagina man di `ctm_rmail` per maggiori dettagli.

[NOTE]
====
Indipendentemente dal metodo che utilizzi per ricevere le delta di CTM, dovresti iscriverti alla mailing list link:{ctm-announce-url}[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.
====

=== 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 [.filename]#src-cur.3210XEmpty.gz#). Il nome che segue la lettera `X` corrisponde all'origine del tuo "seme" iniziale. [.filename]#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 [.filename]#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.

=== Uso di CTM nella Tua Vita Quotidiana

Per applicare le delta, fai come segue:

[source,shell]
....
# 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.

=== 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 [.filename]#foo#, esso cerca [.filename]#foo.ctm#. Se questo file esiste, CTM opererà su di esso piuttosto che su [.filename]#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 [.filename]#.ctm#. Quindi puoi liberamente hackerare il codice, e CTM manterrà aggiornato il file [.filename]#.ctm#.

=== Altre Opzioni Interessanti di CTM

==== 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.

==== 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 [.filename]#backup-file#.

==== 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 [.filename]#lib/libc/Makefile# dalla tua collezione di delta CTM, esegui i comandi seguenti:

[source,shell]
....
# 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.

=== 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.

=== Materiale Vario

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

[[mirrors-ctm]]
=== Mirror CTM

<<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 link:{ctm-users-url}[ctm-users-desc].

California, Bay Area, sorgenti ufficiali::

** link:ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/[ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/]

Sudafrica, server di backup per vecchie delta::

** link:ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/[ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/]

Taiwan/R.O.C.::

** link:ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/[ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/]
** link:ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/[ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/]
** link:ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/[ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/]

Se non trovi un mirror a te vicino o se il mirror è incompleto, prova ad usare qualche motore di ricerca come http://www.alltheweb.com/[alltheweb].

[[cvsup]]
== Uso di CVSup

[[cvsup-intro]]
=== 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.

[[cvsup-install]]
=== Installazione

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

[NOTE]
====
Se hai intenzione di usare CVSup su una macchina sulla quale non sarà installato XFree86(TM) o Xorg, come su un server, assicurati di usare il port che non include la GUI di CVSup, ossia package:net/cvsup-without-gui[].
====

[[cvsup-config]]
=== Configurazione di CVSup

Il funzionamento di CVSup è controllato da un file di configurazione chiamato [.filename]#supfile#. Esistono alcuni esempi di [.filename]#supfile# nella directory link:file://localhost/usr/shared/examples/cvsup/[/usr/shared/examples/cvsup/].

Le informazioni contenute in un [.filename]#supfile# rispondono alle seguenti questioni relative a CVSup:

* <<cvsup-config-files,Quali file vuoi ricevere?>>
* <<cvsup-config-vers,Quali versioni dei file vuoi?>>
* <<cvsup-config-where,Da dove li vuoi prelevare?>>
* <<cvsup-config-dest,Dove li vuoi mettere sulla tua macchina?>>
* <<cvsup-config-status,Dove vuoi memorizzare gli stati dei file?>>

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

Un [.filename]#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 [.filename]#supfile# tipicamente specifica più di un'unica collezione da ricevere. Un modo di strutturare un [.filename]#supfile# è specificare esplicitamente tutti i campi rilevanti per ogni collezione. Tuttavia, ciò tende a creare [.filename]#supfile# troppo lunghi, e ciò è scomodo poichè in un [.filename]#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 [.filename]#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 [.filename]#supfile# per ricevere ed aggiornare l'albero dei sorgenti della crossref:cutting-edge[current,FreeBSD-CURRENT].

* [[cvsup-config-files]]Quali file vuoi ricevere?
+ 
I file disponibili via CVSup sono organizzati in gruppi chiamati "collezioni". Le collezioni che sono disponibili sono descritte nella <<cvsup-collec,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 [.filename]#supfile#, dobbiamo semplicemente elencare le collezioni, una per riga (in questo caso, c'è un'unica riga):
+
[.programlisting]
....
src-all
....

* [[cvsup-config-vers]]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=`.
+
[WARNING]
====

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 <<cvs-tags>> 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=.`.
+
[WARNING]
====

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 man:cvsup[1] spiega come farlo.
+ 
Nel nostro esempio, desideriamo ricevere FreeBSD-CURRENT. Aggiungiamo questa riga all'inizio del nostro [.filename]#supfile#:
+
[.programlisting]
....
*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.
* [[cvsup-config-where]]Da dove li vuoi prelevare?
+ 
Il campo `host=` indica a `cvsup` da dove prelevare i suoi aggiornamenti. Va bene uno qualunque dei <<cvsup-mirrors,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`:
+
[.programlisting]
....
*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_`.
* [[cvsup-config-dest]]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, [.filename]#/usr/src#. La directory [.filename]#src# è già implicita nelle collezioni che vogliamo ricevere, quindi la corretta specifica è questa:
+
[.programlisting]
....
*default prefix=/usr
....

* [[cvsup-config-status]]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, [.filename]#/var/db#:
+
[.programlisting]
....
*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 [.filename]#supfile#:
+ 
C'è un altro settaggio che normalmente deve essere presente in un [.filename]#supfile#:
+
[.programlisting]
....
*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 man: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 [.filename]#supfile# completo per il nostro esempio è il seguente:
+
[.programlisting]
....
*default tag=.
*default host=cvsup99.FreeBSD.org
*default prefix=/usr
*default base=/var/db
*default release=cvs delete use-rel-suffix compress

src-all
....

[[cvsup-refuse-file]]
==== Il File [.filename]#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 [.filename]#doc#, [.filename]#ports#, o [.filename]#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 [.filename]#doc# e [.filename]#www# non hanno collezioni per specifiche lingue, devi usare una delle molte abili caratteristiche di CVSup: il file [.filename]#refuse#.

Il file [.filename]#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 [.filename]#refuse# può essere trovato (o, se non ne hai ancora uno, dovrebbe essere messo) in [.filename]#base/sup/#. _base_ è definita nel tuo [.filename]#supfile#; la nostra _base_ è [.filename]#/var/db#, e quindi di default il file [.filename]#refuse# è [.filename]#/var/db/sup/refuse#.

Il file [.filename]#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 [.filename]#refuse#:

[source,shell]
....
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 http://www.FreeBSD.org/cgi/cvsweb.cgi/[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 [.filename]#refuse# e su altre utili caratteristiche di CVSup, guarda la sua pagina man.

=== Eseguire CVSup

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

[source,shell]
....
# cvsup supfile
....

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

Poichè in questo esempio stai aggiornando il tuo albero dei sorgenti [.filename]#/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:

[source,shell]
....
# 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 [.filename]#/usr/src#, ma non modificherà o cencellerà alcuno di essi. Gli aggiornamenti dei file finiranno invece in [.filename]#/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 [.filename]#/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`:

[source,shell]
....
# 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 man:cron[8]. Ovviamente, non dovresti lasciare che CVSup usi la sua GUI quando lo esegui tramite man:cron[8].

[[cvsup-collec]]
=== 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.
+
[IMPORTANT]
====
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.
====
+
[IMPORTANT]
====
Se hai intenzione di creare localmente una copia di [.filename]#ports/INDEX#, _devi_ includere `ports-all` (l'intero albero dei port). Costruire [.filename]#ports/INDEX# con un albero non completo non è supportato. Consulta la extref:{faq}[FAQ, make-index].
====

`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 [.filename]#Mk/# e [.filename]#Tools/# della directory [.filename]#/usr/ports#.
+
[NOTE]
====
Per favore vedi l'<<cvsup-collec-pbase-warn,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(TM).

`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(TM).

`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 [.filename]#/usr/src#.

`src-bin release=cvs`::::
Utility per l'utente in ambiente mono-utente ([.filename]#/usr/src/bin#).

`src-contrib release=cvs`::::
Utility e librerie al di fuori del progetto FreeBSD, sostanzialmente utilizzati senza modifiche ([.filename]#/usr/src/contrib#).

`src-crypto release=cvs`::::
Utility e librerie per la crittografia al di fuori del progetto FreeBSD, sostanzialmente utilizzati senza modifiche ([.filename]#/usr/src/crypto#).

`src-eBones release=cvs`::::
Kerberos e DES ([.filename]#/usr/src/eBones#). Non usati nell'attuale release di FreeBSD.

`src-etc release=cvs`::::
File di configurazione del sistema ([.filename]#/usr/src/etc#).

`src-games release=cvs`::::
Giochi ([.filename]#/usr/src/games#).

`src-gnu release=cvs`::::
Utility protette dalla licenza pubblica di GNU ([.filename]#/usr/src/gnu#).

`src-include release=cvs`::::
File header ([.filename]#/usr/src/include#).

`src-kerberos5 release=cvs`::::
Pacchetto di sicurezza Kerberos5 ([.filename]#/usr/src/kerberos5#).

`src-kerberosIV release=cvs`::::
Pacchetto di sicurezza KerberosIV ([.filename]#/usr/src/kerberosIV#).

`src-lib release=cvs`::::
Librerie ([.filename]#/usr/src/lib#).

`src-libexec release=cvs`::::
Programmi di sistema normalmente eseguiti da altri programmi ([.filename]#/usr/src/libexec#).

`src-release release=cvs`::::
File richiesti per produrre una release di FreeBSD ([.filename]#/usr/src/release#).

`src-sbin release=cvs`::::
Utility di sistema per la modalità mono-utente ([.filename]#/usr/src/sbin#).

`src-secure release=cvs`::::
Librerie e comandi per la crittografia ([.filename]#/usr/src/secure#).

`src-share release=cvs`::::
File che possono essere condivisi tra sistemi multipli ([.filename]#/usr/src/share#).

`src-sys release=cvs`::::
Il kernel ([.filename]#/usr/src/sys#).

`src-sys-crypto release=cvs`::::
Codice di crittografia del kernel ([.filename]#/usr/src/sys/crypto#).

`src-tools release=cvs`::::
Vari strumenti per il mantenimento di FreeBSD ([.filename]#/usr/src/tools#).

`src-usrbin release=cvs`::::
Utility per l'utente ([.filename]#/usr/src/usr.bin#).

`src-usrsbin release=cvs`::::
Utility di sistema ([.filename]#/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.

=== Per Maggiori Informazioni

Per le FAQ ed altre informazioni di CVSup vedere http://www.polstra.com/projects/freeware/CVSup/[la pagina home di CVSup].

La maggior parte delle discussioni su CVSup inerenti a FreeBSD si svolgono sulla {freebsd-hackers}. In questa mailling list inoltre sono anche annunciate nuove versioni del software, come pure sulla {freebsd-announce}.

Questioni e resoconti di bug dovrebbero essere indirizzati all'autore del programma mailto:cvsup-bugs@polstra.com[cvsup-bugs@polstra.com].

[[cvsup-mirrors]]
=== Siti CVSup

I server <<cvsup,CVSup>> per FreeBSD si trovano ai seguenti siti:

[[portsnap]]
== Usare Portsnap

[[portsnap-intro]]
=== 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 man:portsnap[8] manualmente o schedulare il job con man:cron[8] per scaricare periodicamente gli aggiornamenti in modo automatico.

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

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

[[portsnap-install]]
=== 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 package:sysutils/portsnap[].

[[portsnap-config]]
=== Configurazione di Portsnap

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

[NOTE]
====
Se Portsnap è installato dalla collezione dei port di FreeBSD, userà il file di configurazione posto in [.filename]#/usr/local/etc/portsnap.conf# invece di [.filename]#/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:

[source,shell]
....
# cd /usr/local/etc && cp portsnap.conf.sample portsnap.conf
....

====

=== Eseguire Portsnap per la Prima Volta

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

[source,shell]
....
# portsnap fetch
....

Una volta che la snapshot compressa è stata scaricata, una copia dell'albero dei port può estratta in [.filename]#/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.

[source,shell]
....
# portsnap extract
....

[NOTE]
====
Nell'installazione di default la directory [.filename]#/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`.
====

=== Aggiornare l'Albero dei Port

Dopo che una prima snapshot compressa dell'albero dei port è stata scaricata ed estratta in [.filename]#/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.

[source,shell]
....
# portsnap fetch update
....

[NOTE]
====
Alcune versioni vecchie di `portsnap` non supportano questa sintassi; se fallisce, prova in questo modo:

[source,shell]
....
# portsnap fetch
# portsnap update
....

====

=== Avviare Portsnap tramite cron

Al fine di evitare problemi di "affollamenti istantanei" accedendo ai server di Portsnap, `portsnap fetch` non funziona da un job man: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 [.filename]#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 [.filename]#/etc/crontab#, `portsnap` aggiornerà la snapshot compressa e i file [.filename]#INDEX# in [.filename]#/usr/ports/#, e manderà una email se qualche port installato non è aggiornato:

[.programlisting]
....
0 3 * * * root portsnap -I cron update  pkg_version -vIL=
....

[NOTE]
====
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.
====

[NOTE]
====
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`.
====

[[cvs-tags]]
== 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".

=== Tag di Ramo

Tutti, con l'eccezione di `HEAD` (che è sempre un valido tag), sono relativi all'albero [.filename]#src/#. Gli alberi [.filename]#ports/#, [.filename]#doc/#, e [.filename]#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 `.`.
+
[NOTE]
====
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.

=== 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 link:https://www.FreeBSD.org/releng/[Release Engineering Information] e extref:{releng}[Release Process, release-proc]. L'albero [.filename]#src# usa nomi di tag che iniziano con `RELENG_`. Gli alberi [.filename]#ports# e [.filename]#doc# usano tag il cui nome inizia con `RELEASE`. Infine, l'albero [.filename]#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

[[mirrors-afs]]
== Siti AFS

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

Svezia::
Il percorso dei file è: [.filename]#/afs/stacken.kth.se/ftp/pub/FreeBSD/#
+
[.programlisting]
....
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 mailto:ftp@stacken.kth.se[ftp@stacken.kth.se]

[[mirrors-rsync]]
== Siti rsync

I seguenti siti rendono disponibile FreeBSD tramite il protocollo rsync. L'utility rsync lavora nello stesso modo del comando man: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 package: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.
