---
title: Annexe A. Se procurer FreeBSD
part: Partie V. Annexes
prev: books/handbook/partv
next: books/handbook/bibliography
showBookMenu: true
weight: 39
params:
  path: "/books/handbook/mirrors/"
---

[appendix]
[[mirrors]]
= Se procurer 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]]
== Editeurs de CD-ROMs et DVDs

=== Produits vendus en boîte

Des versions en boîte de FreeBSD sont disponibles (CDs de FreeBSD, logiciels supplémentaires, et documentation papier) auprès de plusieurs revendeurs:

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

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

=== CDs et DVDs

Les CDs et DVDs de FreeBSD sont disponibles auprès de nombreux revendeurs en ligne:

* BSD Mall by Daemon News +
PO Box 161 +
Nauvoo, IL 62354 +
USA +
Phone: +1 866 273-6255 +
Fax: +1 217 453-9956 +
Email: <sales@bsdmall.com> +
WWW: http://www.bsdmall.com/

* 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 +
USA +
Phone: +1 925 240-6652 +
Fax: +1 925 674-0821 +
Email: <info@freebsdmall.com> +
WWW: http://www.freebsdmall.com/

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

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

* JMC Software +
Ireland +
Phone: 353 1 6291282 +
WWW: http://www.thelinuxmall.com

* Linux CD Mall +
Private Bag MBE N348 +
Auckland 1030 +
New Zealand +
Phone: +64 21 866529 +
WWW: http://www.linuxcdmall.co.nz/

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

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

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

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

=== Distributeurs

Si vous êtes un revendeur et désirez vendre des CDROMs de FreeBSD, veuillez contacter un distributeur:

* Cylogistics +
809B Cuesta Dr., #2149 +
Mountain View, CA 94040 +
USA +
Phone: +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 +
USA +
Phone: 1 (800) 456-8000 +
WWW: http://www.ingrammicro.com/

* Kudzu, LLC +
7375 Washington Ave. S. +
Edina, MN 55439 +
USA +
Phone: +1 952 947-0822 +
Fax: +1 952 947-0876 +
Email: <sales@kudzuenterprises.com>

* Navarre Corp +
7400 49th Ave South +
New Hope, MN 55428 +
USA +
Phone: +1 763 535-8333 +
Fax: +1 763 535-0341 +
WWW: http://www.navarre.com/

[[mirrors-ftp]]
== Sites FTP

Les sources officielles de FreeBSD sont disponibles via FTP anonyme à partir d'un ensemble de sites miroir. Le site link:ftp://ftp.FreeBSD.org/pub/FreeBSD/[ftp://ftp.FreeBSD.org/pub/FreeBSD/] dispose d'une bonne connectivité et autorise un grand nombre de connexions, mais vous avez intérêt à trouver plutôt un site miroir "plus proche" (tout particulièrement si vous décidez de mettre en place une sorte de miroir à votre tour).

La http://mirrorlist.FreeBSD.org/[base de données des sites miroir FreeBSD] est plus à jour que la liste de ce Manuel, parce qu'elle tire ses informations du DNS plutôt que se reposer sur une liste statique de machines.

De plus, FreeBSD est disponible via FTP anonyme à partir des sites miroir ci-dessous. Si vous décidez de vous procurer FreeBSD via FTP anonyme, essayez si possible d'utiliser un site proche de vous. Les sites miroir listés en tant que "sites miroir primaires" disposent généralement de l'intégralité de l'archive FreeBSD (toutes les versions actuellement disponibles pour chacune des architectures) mais vous obtiendrez les temps de téléchargements les plus courts à partir d'un site situé dans votre pays ou votre région. Les sites régionaux proposent les versions les plus récentes des architectures les plus populaires mais pourraient ne pas proposer l'intégralité de l'archive de FreeBSD. Tous les sites proposent un accès FTP anonyme mais certains sites fournissent également un accès suivant d'autres méthodes. Les méthodes d'accès disponibles pour chaque site sont données entre parenthèses après le nom de la machine.

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

(as of 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 anonyme

[[anoncvs-intro]]
=== Introduction

CVS anonyme (ou comme on l'appelle également, _anoncvs_) est une de fonctionnalité des utilitaires CVS livrés avec FreeBSD qui permet la synchronisation avec un référentiel CVS sur une machine distante. Elle permet, entre autres, aux utilisateurs de FreeBSD, de lire, sans autorisation particulière, les archives disponibles sur l'un des serveurs anoncvs officiels du projet FreeBSD. Pour l'utiliser, il suffit simplement de définir la variable d'environnement `CVSROOT` pour qu'elle pointe sur le serveur anoncvs approprié, fournir le fameux mot de passe "anoncvs" avec la commande `cvs login`, puis ensuite utiliser la commande man:cvs[1] pour y accéder de la même manière qu'à un référentiel local.

[NOTE]
====
La commande `cvs login`, stocke les mots de passe utilisés pour authentification sur le serveur CVS dans un fichier appelé [.filename]#.cvspass# dans votre répertoire `HOME`. Si ce fichier n'existe pas, vous pourrez obtenir une erreur quand vous essaierez d'utiliser `cvs login` pour la première fois. Créez juste un fichier [.filename]#.cvspass# vide, et relancez la commande.
====

Bien que l'on puisse aussi dire que <<cvsup,CVSup>> et anoncvs assurent globalement la même fonction, il y a diverses nuances qui peuvent influencer l'utilisateur dans son choix d'une méthode de synchronisation. En résumé, CVSup utilise plus efficacement les ressources réseau et est de loin la méthode la plus sophistiquée des deux, mais cela a un prix. Pour employer CVSup, il faut d'abord installer et configurer un programme client spécialisé avant de pouvoir récupérer quoi que ce soit, et il faut ensuite travailler par sous-ensemble relativement importants, que CVSup appelle _catalogues_.

anoncvs, au contraire, peut être utilisé pour examiner n'importe quoi, d'un seul fichier à un programme particulier (tel que `ls` ou `grep`) en faisant référence au nom du module CVS. Bien sûr, anoncvs n'est bon qu'à lire un référentiel CVS, si vous avez donc l'intention de développer localement sur un référentiel partagé avec le projet FreeBSD, alors vous n'avez d'autre choix que d'utiliser CVSup.

[[anoncvs-usage]]
=== Utiliser CVS anonyme

Configurer man:cvs[1] pour utiliser un référentiel CVS anonyme consiste simplement à définir la variable d'environnement `CVSROOT` pour qu'elle pointe sur l'un des serveurs anoncvs du projet FreeBSD. A la date de rédaction de ce document, les serveurs suivants sont disponibles:

* _Autriche_: :pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs (Utilisez `cvs login` et entrez le mot de passe "anoncvs" quand on vous le demandera.)
* _France_: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs (pserver (mot de passe "anoncvs"), ssh (aucun mot de passe)) 
* _Allemagne_: :pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs (rsh, pserver, ssh, ssh/2022) 
* _Japon_: :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs (Utilisez `cvs login` et entrez le mot de passe "anoncvs" quand on vous le demandera.)
* _Taiwan_: :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs (pserver (utilisez `cvs login` and entrez n'importe quel mot de passe quand on vous le demandera), ssh (pas de mot de passe))
+
[.programlisting]
....
SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub
....

* _USA_: freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs (ssh uniquement - pas de mot de passe)
+
[.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 (ssh2 uniquement - pas de mot de passe)
+
[.programlisting]
....
SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub
....

Comme CVS vous permet de récupérer ("check out") pratiquement n'importe quelle version des sources de FreeBSD ayant existé (ou, dans certains cas, à venir), vous devez maîtriser l'indicateur de révision (`-r`) de man:cvs[1] et connaître les valeurs qu'il peut prendre dans le référentiel du projet FreeBSD.

Il y a deux sortes d'étiquettes, les étiquettes de révision et les étiquettes de branches. Les étiquettes de révision s'appliquent à une révision particulière. Leur signification ne varie pas d'un jour à l'autre. Les étiquettes de branche, à l'inverse, se rapportent à la dernière révision sur une branche particulière à un moment donné. Comme les étiquettes de branche ne se rapportent pas à une révision particulière, elles peuvent désigner demain quelque chose de différent de ce qu'elles référencent aujourd'hui.

<<cvs-tags>> présente les étiquettes de révision qui peuvent intéresser l'utilisateur. Encore une fois, aucune ne s'applique au catalogue des logiciels portés puisque ce dernier ne présente pas de multiples branches de développement.

Quand vous précisez une étiquette de branche, vous obtenez normalement la dernière version des fichiers de cette branche de développement. Si vous voulez une version antérieure, vous pouvez l'obtenir en précisant une date avec l'indicateur `-D date`. Reportez-vous aux pages de manuel man:cvs[1] pour plus de détails.

=== Exemples

Bien qu'il soit vraiment recommandé de lire attentivement les pages de manuel de man:cvs[1] avant de faire quoi que ce soit, voici quelques exemples rapides qui vous montrent essentiellement comment utiliser CVS anonyme:

.Récupérer quelque chose de -CURRENT (man:ls[1]):
[example]
====

[source,shell]
....
% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
At the prompt, enter any word for « password ».
% cvs co ls
....

====

.Utiliser SSH pour récupérer l'arborescence [.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.
....

====

.Récupérer la version 6-STABLE de man:ls[1]:
[example]
====

[source,shell]
....
% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
At the prompt, enter any word for « password ».
% cvs co -rRELENG_6 ls
....

====

.Générer la liste des différences concernant man:ls[1] (sous forme de "diffs unifiés") entre différentes versions de FreeBSD
[example]
====

[source,shell]
....
% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
At the prompt, enter any word for « password ».
% cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls
....

====

.Savoir quels autres noms de modules peuvent être utilisés:
[example]
====

[source,shell]
....
% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
At the prompt, enter any word for « password ».
% cvs co modules
% more modules/modules
....

====

=== Autres ressources

Les ressources supplémentaires suivantes peuvent être utiles pour apprendre à se servir de CVS:

* http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/[Guide CVS] de Cal Poly.
* http://ximbiot.com/cvs/wiki/[CVS Home], la communauté de développement et de support de CVS.
* http://www.FreeBSD.org/cgi/cvsweb.cgi[CVSweb] est l'interface Web pour CVS du projet FreeBSD.

[[ctm]]
== Utiliser CTM

CTM est une méthode pour synchroniser une arborescence de répertoires distants avec une arborescence centrale. Elle a été développée pour être utilisée avec l'arborescence des sources de FreeBSD, bien que d'autres puissent avec le temps la trouver utile pour d'autres besoins. Il existe actuellement très peu, sinon aucune, documentation sur la façon de créer les deltas, contactez-donc la liste de diffusion link:{ctm-users-url}[ctm-users-desc] pour obtenir plus d'informations et si vous souhaitez utiliser CTM pour autre chose.

=== Pourquoi utiliser CTM?

CTM vous procurera un exemplaire local de l'arborescence des sources de FreeBSD. Il y a plusieurs "moutures" de l'arborescence disponibles. Que vous désiriez suivre toute l'arborescence CVS ou seulement une de ses branches, CTM peut vous fournir ce dont vous avez besoin. Si vous développez activement sous FreeBSD, mais ne disposez que d'une connectivité TCP/IP peu fiable ou n'en avez pas du tout, ou voulez tout simplement que les modifications vous soient automatiquement envoyées, CTM est ce qu'il vous faut. Il vous faudra jusqu'à trois deltas par jour sur les branches les plus actives. Cependant, vous devriez envisager de vous les faire envoyer automatiquement par courrier électronique. La taille des mises à jour est toujours aussi petite que possible. Typiquement moins de 5KO, occasionnellement (une fois sur 10), entre 10 et 50KO, et de temps à autre, une grosse modification de 100KO ou plus.

Vous devrez aussi vous tenir au courant des différentes contre-parties liées au fait de travailler directement avec les sources en cours de développement plutôt qu'avec les versions publiées. C'est particulièrement vrai si vous choisissez les sources de la branche "-CURRENT". Il est recommandé de lire crossref:cutting-edge[current,Se synchroniser avec la version -CURRENT de FreeBSD].

=== Que vous faut-il pour utiliser CTM?

Vous aurez besoin de deux choses: le programme CTM, et les deltas initiaux à lui fournir (pour mettre à jour avec la version "courante").

Le programme CTM fait partie de FreeBSD depuis la publication de la version 2.0, et se trouve dans [.filename]#/usr/src/usr.sbin/ctm# si vous avez un exemplaire des sources en ligne.

Vous pouvez obtenir les "deltas" à fournir à CTM de deux façons, par FTP ou par courrier électronique. Si vous avez un accès FTP à l'Internet, les sites suivants supportent l'accès à CTM:

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

ou reportez-vous à la section <<mirrors-ctm,Sites miroirs>>.

Allez dans le répertoire vous concernant et commencez par télécharger le fichier [.filename]#README#.

Si vous souhaitez récupérer vos deltas par courrier électronique:

Abonnez-vous à l'une des listes de distribution CTM. link:{ctm-cvs-cur-url}[ctm-cvs-cur-desc] comprend toute l'arborescence -CURRENT. {ctm-src-4} concerne la branche 4.X, etc... (Si vous ne savez pas comment vous abonner à une liste, cliquez sur le nom de la liste ci-dessus ou sur {mailing-lists-url} puis cliquez sur la liste à laquelle vous désirez vous abonner. La page devrait contenir toutes les instructions nécessaires à l'abonnement.)

Dès que vous commencez à recevoir vos mises à jour CTM par courrier électronique, vous pouvez utiliser le programme `ctm_rmail` pour les décompacter et les appliquer. Vous pouvez en fait utiliser directement le programme `ctm_rmail` à partir d'une entrée dans [.filename]#/etc/aliases# si vous voulez automatiser complètement le processus. Consultez les pages de manuel de `ctm_rmail` pour plus de détails.

[NOTE]
====
Quelle que soit la méthode que vous utilisez pour récupérer les deltas CTM, vous devriez vous abonner à la liste de diffusion link:{ctm-announce-url}[ctm-announce-desc]. Ce sera, dans l'avenir, le seul endroit où les annonces concernant le fonctionnement du système CTM seront faites. Cliquez sur le nom de la liste et suivez les instructions pour s'inscrire à la liste.
====

=== Utiliser CTM pour la première fois

Avant de pouvoir utiliser les deltas CTM, il vous faut un point de départ pour appliquer les deltas générés à partir de là.

Tout d'abord vous devez déterminer ce que vous avez déjà. Tout le monde peut partir d'un répertoire "vide". Vous devez utiliser un delta "Empty" (vide) au départ pour débuter votre arborescence supportée par CTM. Il fut question que l'un de ces deltas de départ soit distribué sur le CD, cependant ce n'est actuellement pas le cas.

Puisque les arborescences représentent plusieurs dizaines de mégaoctets, vous préférerez commencer avec ce que vous avez déjà sous la main. Si vous disposez d'une version de FreeBSD sur CD, vous pouvez copier ou extraire les sources initiales qui s'y trouvent. Cela évitera un transfert de données conséquent.

Vous pouvez reconnaître ces deltas de transition au `X` qui suit leur numéro de séquence ([.filename]#src-cur.3210XEmpty.gz# par exemple). La dénomination après le `X` correspond à l'origine de votre "racine" initiale. [.filename]#Empty# est un répertoire vide. La règle est qu'une transition de base à partir de [.filename]#Empty# est générée tous les 100 deltas. Au passage, elles sont volumineuses! De 70 à 80 mégaoctets de données compressées avec `gzip` est une taille habituelle pour les deltas [.filename]#XEmpty#.

Une fois que vous avez sélectionné un delta initial à partir duquel commencer, il vous faudra également tous les deltas de numéro supérieur qui le suivent.

=== Utiliser CTM au quotidien

Pour appliquer les deltas, tapez simplement:

[source,shell]
....
# cd /où/vous/voulez/mettre/les/fichiers
# ctm -v -v /où/vous/mettez/vos/deltas/src-xxx.*
....

CTM reconnaît les deltas qui ont été compressés avec `gzip`, vous n'avez donc pas besoin de les décompresser avant, ce qui économise de l'espace disque.

A moins d'être absolument sûr du résultat, CTM ne touchera pas à votre arborescence. Pour contrôler la validité d'un delta, vous pouvez également utiliser l'indicateur `-c` et CTM ne modifiera alors pas votre arborescence; il vérifiera simplement l'intégrité du delta et regardera s'il peut s'appliquer proprement à votre arborescence en l'état.

Il y a aussi d'autres option pour CTM, voyez les pages de manuel ou lisez les sources pour plus d'informations.

C'est à peu près tout. Chaque fois que vous recevez un delta, passez-le à CTM pour tenir à jour votre arborescence des sources.

N'effacez pas les deltas s'il vous est difficile de les télécharger de nouveau. Vous pouvez en avoir besoin si quelque chose mauvais se produit. Même si vous n'avez que des disquettes, envisagez d'utiliser man:fdwrite[1] pour en faire une copie.

=== Conserver vos modifications locales

Si vous êtes développeur vous voudrez expérimenter et modifier des fichiers de l'arborescence des sources. CTM supporte de façon limitée les modifications locales: avant de contrôler l'existence d'un fichier [.filename]#foo#, il regarde tout d'abord s'il y a un fichier [.filename]#foo.ctm#. Si ce fichier existe, CTM l'utilisera au lieu de [.filename]#foo#.

Ce comportement vous permet de conserver de façon simple des modifications locales: copiez simplement les fichiers que vous envisagez de modifier dans des fichiers de même nom, mais avec le suffixe [.filename]#.ctm#. Vous pouvez ensuite bidouiller tranquillement le code, pendant que CTM maintient à jour le fichier [.filename]#.ctm#.

=== D'autres options intéressantes de CTM

==== Savoir avec précision ce que va modifier une mise à jour

Vous pouvez connaître la liste des modifications que CTM appliquera à votre archive des sources en utilisant CTM avec l'option `-l`.

C'est utile si vous voulez conserver la trace des modifications, pré- ou post- modifier les fichiers concernés, ou vous vous sentez un tantinet paranoïaque.

==== Faire des sauvegardes avant la mise à jour

Parfois vous voudrez sauvegarder tous les fichiers qui seraient toucher par une mise à jour CTM.

Avec l'option `-B fichier_de_sauvegarde`, CTM sauvegarde tous les fichiers que seraient modifiés par delta CTM donné dans [.filename]#fichier_de_sauvegarde#.

==== Restreindre la liste des fichiers touchés par une mise à jour

Parfois vous voudrez restreindre le champ d'application d'une mise à jour CTM, ou serez intéressé à n'extraire que quelques fichiers d'une séquence de deltas.

Vous pouvez contrôler la liste de fichiers sur laquelle travaillera CTM en donnant comme filtre une expression régulière avec les options `-e` et `-x`.

Par exemple, pour extraire une version à jour de [.filename]#lib/libc/Makefile# de la série de deltas CTM que vous avez sauvegardé, lancez les commandes:

[source,shell]
....
# cd /where/ever/you/want/to/extract/it/
# ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*
....

Pour chaque fichier d'un delta CTM, les options `-e` et `-x` sont appliquées dans l'ordre donné sur la ligne de commande. Le fichier est traité par CTM uniquement s'il est sélectionné après application des options `-e` et `-x`.

=== Perspectives pour CTM

Il y en a des tonnes:

* Utiliser une méthode d'authentification au système CTM pour détecter la substitution de mises à jour.
* Faire le ménage dans les options de CTM, elles commencent à engendrer de la confusion et à contredire l'intuition.

=== Divers

Il existe aussi une séquence de deltas pour le catalogue des logiciels portés, mais elle n'a pas reçue beaucoup d'écho jusqu'ici.

[[mirrors-ctm]]
=== Miroirs CTM

<<ctm,CTM>>/FreeBSD est disponible via FTP anonyme sur les miroirs suivants. Si vous faites le choix de vous procurer CTM via FTP anonyme, utilisez s'il vous plaît un site proche de vous.

En cas de problème, contactez la liste de diffusion link:{ctm-users-url}[ctm-users-desc].

Californie, Bay Area, source officielle::

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

Afrique du Sud, serveur de sauvegarde pour les anciens deltas::

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

Taïwan/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/]

Si vous n'avez pas trouvé de miroir proche de vous, où si le miroir est incomplet, essayez d'utiliser un moteur de recherche comme http://www.alltheweb.com/[alltheweb].

[[cvsup]]
== Utiliser CVSup

[[cvsup-intro]]
=== Introduction

CVSup est un ensemble de logiciels pour la distribution et la mise à jour d'arborescences de sources à partir d'un référentiel CVS principal sur une machine serveur distante. Les sources de FreeBSD sont archivées sous un référentiel CVS sur une machine centrale de développement en Californie. Grâce à CVSup, les utilisateurs de FreeBSD peuvent facilement tenir à jour leur propre arborescence de sources.

CVSup utilise le modèle _pull_ de mise à jour. Dans ce schéma, chaque client réclame les mises à jour au serveur, si et quand il le souhaite. Le serveur attend passivement les demandes de mises à jour de ses clients. Toutes les mises à jour sont donc faites à la demande du client. Le serveur n'envoie jamais de mise à jour non sollicitée. Les utilisateurs doivent soit exécuter le client CVSup à la main pour obtenir une mise à jour, soit mettre en oeuvre une tâche `cron` pour l'exécuter automatiquement et à intervalles réguliers.

Le terme CVSup, avec les majuscules, désigne l'ensemble du logiciel. Ses principales composantes sont le client `cvsup` qui s'exécute sur les machines de chaque utilisateur, et le serveur `cvsupd`, qui tourne sur tous les sites miroir de FreeBSD.

En lisant la documentation et les listes de diffusion de FreeBSD, vous trouverez des références à sup. sup était le prédécesseur de CVSup, et remplissait la même fonction. CVSup est utilisé de la même façon que sup et, emploie de fait des fichiers de configuration qui sont compatibles avec ceux de `sup`. sup n'est plus utilisé pour le projet FreeBSD, parce que CVSup est à la fois plus rapide et plus souple.

[NOTE]
====
L'utilitaire csup est une réécriture en C du logiciel CVSup. Son plus grand avantage est d'être plus rapide et de ne pas dépendre du langage Modula-3, vous n'avez donc pas besoin de l'installer. De plus si vous utilisez FreeBSD 6.2 ou une version suivante, vous pouvez directement utiliser cet utilitaire puisqu'il fait partie du système de base. Les anciennes versions de FreeBSD ne disposent pas de man:csup[1] dans leur système de base, mais vous pouvez facilement installer le logiciel porté package:net/csup[], ou le paquetage pré-compilé correspondant. L'utilitaire csup ne supporte pas, cependant, le mode CVS. Si vous désirez dupliquer l'intégralité de dépôts, vous aurez toujours besoin de CVSup. Si vous avez décidé d'utiliser csup, passez les étapes concernant l'installation de CVSup et remplacez les références à CVSup par csup dans le reste de cette section.
====

[[cvsup-install]]
=== Installation

La méthode la plus simple pour installer CVSup est d'utiliser la version pré-compilée package:net/cvsup[] du crossref:ports[ports,catalogue des logiciels portés] de FreeBSD. Si vous préférez compiler CVSup à partir des sources, vous pouvez directement utiliser le logiciel porté package:net/cvsup[]. Cependant soyez averti: le logiciel porté package:net/cvsup[] est écrit en Modula-3, qui demande un temps et un espace disque non négligeables pour le télécharger et le compiler.

[NOTE]
====
Si vous avez l'intention d'utiliser CVSup sur une machine qui ne disposera pas de XFree86(TM) ou Xorg, comme un serveur, assurez-vous que le logiciel porté de n'incluera pas l'interface graphique ("GUI") de CVSup, package:net/cvsup-without-gui[].
====

Si vous voulez installer csup sous FreeBSD 6.1 et version précédentes, vous pouvez utiliser le paquetage pré-compilé package:net/csup[] du crossref:ports[ports,catalogue des logiciels portés]. Si vous préférez compiler csup à partir des sources, vous pouvez directement utiliser le logiciel porté package:net/csup[].

[[cvsup-config]]
=== Configuration de CVSup

Le fonctionnement de CVSup est contrôlé par un fichier de configuration appelé [.filename]#supfile#. Il y a des exemples de fichiers [.filename]#supfile# dans le répertoire link:file://localhost/usr/shared/examples/cvsup/[/usr/shared/examples/cvsup/].

Les informations du fichier [.filename]#supfile# répondent pour CVSup aux question suivantes:

* <<cvsup-config-files,Quels fichiers voulez-vous télécharger?>>
* <<cvsup-config-vers,Quelles versions de ces fichiers voulez-vous?>>
* <<cvsup-config-where,D'où voulez-vous les télécharger?>>
* <<cvsup-config-dest,Où voulez-vous les mettre sur votre machine?>>
* <<cvsup-config-status,Où voulez-vous mettre les fichiers d'état de votre machine?>>

Dans les sections suivantes, nous allons renseigner un fichier [.filename]#supfile# typique en répondant une à une à chacune de ces questions. Commençons par décrire la structure d'ensemble d'un fichier [.filename]#supfile#.

Un fichier [.filename]#supfile# est un fichier texte. Les commentaires débutent par un `#` et se prolongent jusqu'à la fin de la ligne. Les lignes vides ou qui ne contiennent que des commentaires sont ignorées.

Les autres lignes décrivent les ensembles de fichiers que l'utilisateur souhaite recevoir. Ces lignes commencent par le nom d'un "catalogue" - _collection_, un regroupement logique de fichiers défini par le serveur. Le nom du catalogue dit au serveur quels fichiers vous voulez. Ce nom est éventuellement suivi d'un ou plusieurs champs, séparés par un espace. Ces champs répondent aux questions listées ci-dessus. Il y deux types de champs: des indicateurs et des valeurs. Un indicateur est un mot-clé autonome, e.g., `delete` ou `compress`. Une valeur commence aussi par un mot-clé, mais il est impérativement suivi sans espace par un `=` et un deuxième mot. Par exemple, `release=cvs` est un champ définissant une valeur.

Un fichier [.filename]#supfile# spécifie en général plus d'un catalogue à télécharger. Une façon de construire un fichier [.filename]#supfile# consiste à préciser explicitement tous les champs nécessaires pour chaque catalogue. Cependant, cela tend à donner des fichiers [.filename]#supfile# avec des lignes assez longues, et ce n'est pas très pratique parce que la plupart des champs sont les mêmes pour tous les catalogues du fichier [.filename]#supfile#. CVSup fournit un mécanisme pour s'affranchir de ce problème. Les lignes qui commencent par le nom du pseudo-catalogue spécial `*default` servent à définir les indicateurs et les valeurs qui seront pris par défaut pour les catalogues listés ensuite dans le fichier [.filename]#supfile#. Une valeur par défaut peut-être surchargée pour un catalogue particulier, en associant au catalogue lui-même une valeur différente. Les valeurs par défaut peuvent également être redéfinies, ou bien on peut en définir de nouvelles, en cours de fichier [.filename]#supfile#, par de nouvelles lignes `*default`.

Sachant cela, nous allons maintenant mettre au point un fichier [.filename]#supfile# pour télécharger et mettre à jour l'arborescence principale de crossref:cutting-edge[current,FreeBSD-CURRENT].

* [[cvsup-config-files]]Quels fichiers voulez-vous télécharger?
+ 
Les fichiers disponibles via CVSup sont regroupés par "catalogues" - _collections_. Les catalogues disponibles sont décrits dans la <<cvsup-collec,section suivante>>. Dans notre exemple, nous souhaitons recevoir toute l'arborescence principale du système FreeBSD. Il existe un unique gros catalogue `src-all` qui correspond à tout cela. Pour commencer à renseigner notre fichier [.filename]#supfile#, nous listons simplement les catalogues, un par ligne (dans notre cas, une seule ligne):
+
[.programlisting]
....
src-all
....

* [[cvsup-config-vers]]Quelle(s) version(s) voulez-vous télécharger?
+ 
Avec CVSup, vous pouvez obtenir pratiquement n'importe quelle version qui ait existé des sources. C'est possible parce que le serveur cvsupd travaille directement à partir du référentiel CVS, qui contient toutes les versions. Vous indiquez quelle version vous voulez en utilisant les valeurs `tag=` et `date=`.
+
[WARNING]
====

Faites très attention à définir correctement la valeur `tag=`. Certaines étiquettes ne s'appliquent qu'à certains catalogues. Si l'étiquette que vous donnez n'est pas valable ou mal orthographiée, CVSup effacera des fichiers que vous ne vouliez probablement pas supprimer. En particulier, n'utilisez _que_`tag=.` pour les catalogues `ports-*`.
====
+ 
Les valeurs données avec `tag=` sont des étiquettes symboliques définies dans le référentiel. Il y a deux sortes d'étiquettes, les étiquettes de révision et les étiquettes de branches. Les étiquettes de révision s'appliquent à une révision particulière. Leur signification ne varie pas d'un jour à l'autre. Les étiquettes de branches, à l'inverse, se rapportent à la dernière révision sur une branche particulière à un moment donné. Comme les étiquettes de branches ne se rapportent pas à une révision particulière, elles peuvent désigner demain quelque chose de différent de ce qu'elles référencent aujourd'hui.
+ 
<<cvs-tags>> contient les étiquettes de branches qui peuvent intéresser les utilisateurs. Quand on spécifie une étiquette dans le fichier de configuration de CVSup, elle doit être précédée du champ `tag=` (`RELENG_4` deviendra `tag=RELENG_4`). Gardez à l'esprit que seule l'étiquette `tag=.` n'a de signification pour le catalogue des logiciels portés.
+
[WARNING]
====

Faites très attention à mentionner précisément l'étiquette exacte. CVSup ne sait différencier une étiquette valide d'une étiquette qui ne l'est pas. Si vous orthographiez mal l'étiquette, CVSup se comportera comme si vous aviez donné une étiquette valide qui ne se réfère à aucun fichier. Dans ce cas il supprimera toutes les sources que vous avez déjà.
====
+ 
Lorsque vous indiquez une étiquette de branche, vous recevez normalement les dernières versions des fichiers sur cette branche de développement. Si vous voulez récupérer des version antérieures, vous pouvez le faire en donnant une date avec le champ `date=`. La page de manuel de man:cvsup[1] vous expliquent comment le faire.
+ 
Dans notre exemple, nous désirons obtenir FreeBSD-CURRENT. Nous ajoutons alors la ligne suivante au début de notre fichier [.filename]#supfile#:
+
[.programlisting]
....
*default tag=.
....
+ 
Il existe un cas particulier important qui se produit lorsque que l'on ne spécifie ni le champ `tag=` ni le champ `date=`. Dans ce cas, vous obtenez alors les fichiers RCS directement du référentiel CVS du serveur, plutôt que de recevoir une version donnée. Les développeurs préfèrent généralement cette façon de travailler. En maintenant une version du référentiel lui-même sur leur système, ils ont la possibilité de consulter l'historique des révisions et d'accéder aux versions antérieures des fichiers. Cet avantage ne s'obtient cependant qu'au prix d'une consommation importante d'espace disque.
* [[cvsup-config-where]]D'où voulez-vous les télécharger?
+ 
Nous employons le champ `host=` pour dire à `cvsup` où récupérer ses mises à jour. N'importe quel des <<cvsup-mirrors,sites miroir CVSup>> fera l'affaire, bien que vous devriez essayer de choisir un site proche de vous. Dans cet exemple, nous utiliserons un site fictif de distribution de FreeBSD `cvsup99.FreeBSD.org`:
+
[.programlisting]
....
*default host=cvsup99.FreeBSD.org
....
+ 
Vous devrez changer le site pour un qui existe réellement avant d'exécuter CVSup. Lors de l'exécution de `cvsup`, vous pouvez surcharger cette définition sur la ligne de commande avec l'option `-h _nom_de_machine_`.
* [[cvsup-config-dest]]Où voulez-vous les mettre sur votre machine?
+ 
Le champ `prefix=` dit à `cvsup` où mettre les fichiers qu'il obtient. Dans l'exemple, nous mettrons les fichiers source directement dans notre arborescence des sources, [.filename]#/usr/src#. Le répertoire [.filename]#src# est déjà implicitement défini dans les catalogues que nous avons choisis de télécharger, voici donc la définition correcte:
+
[.programlisting]
....
*default prefix=/usr
....

* [[cvsup-config-status]]Où `cvsup` doit-il mettre les fichiers d'état?
+ 
Le client CVSup tient à jour des fichiers d'état dans ce qui est appelé le répertoire de "base". Ces fichiers permettent à CVSup de travailler plus efficacement en gardant la trace des modifications que vous avez déjà reçues. Nous utiliserons le répertoire de base standard, [.filename]#/var/db#:
+
[.programlisting]
....
*default base=/var/db
....
+ 
Si votre répertoire de base n'existe pas encore, c'est le moment de le créer. Le client `cvsup` refusera de s'exécuter si le répertoire de base n'existe pas.
* Diverses autres options de configuration dans le fichier [.filename]#supfile#:
+ 
Il y a une autre ligne d'instruction qui doit normalement figurer dans le fichier [.filename]#supfile#:
+
[.programlisting]
....
*default release=cvs delete use-rel-suffix compress
....
+ 
`release=cvs` dit au serveur d'obtenir les informations du référentiel principal de FreeBSD. C'est quasiment toujours le cas, mais il existe d'autres possibilités qui sortent du cadre du présent document.
+ 
`delete` donne à CVSup l'autorisation de supprimer des fichiers. Vous devriez toujours utiliser cette possibilité, de sorte que CVSup puisse vraiment maintenir à jour votre arborescence des sources. CVSup veille à ne supprimer que les fichiers qu'il maintient. Les fichiers supplémentaires que vous pourriez avoir ne seront pas touchés.
+ 
`use-rel-suffix` est... ésotérique. Si vous voulez vraiment savoir de quoi il retourne, lisez la page de manuel de man:cvsup[1]. Sinon, mettez cet indicateur et ne vous en souciez pas plus.
+ 
`compress` permet d'utiliser un algorithme de compression de type man:gzip[1] sur la ligne de communication. Si votre connexion a la vitesse d'une ligne T1 ou plus, vous ne devriez probablement pas utiliser la compression. Sinon, cela facilite substantiellement les choses.
* Assembler les morceaux:
+ 
Voici le fichier [.filename]#supfile# de notre exemple en entier:
+
[.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]]
==== Le fichier [.filename]#refuse#

Comme mentionné ci-dessus, CVSup utilise une méthode de type _pull_. Fondamentalement, cela signifie que vous vous connectez au serveur CVSup, ce dernier dit, "Voici ce que vous pouvez télécharger...", puis votre client répond "Ok, je prendrai ceci, ceci, ceci et cela". Dans la configuration par défaut, le client CVSup téléchargera chaque fichier associé avec le catalogue et l'étiquette que vous avez choisi dans le fichier de configuration. Cependant cela ne correspond pas toujours à ce que vous désirez, tout particulièrement si vous mettez à jour les arborescences [.filename]#doc#, [.filename]#ports#, ou [.filename]#www# - la plupart des personnes sont incapables de lire quatre ou cinq langues différentes, et donc elles n'ont pas besoin de télécharger les fichiers spécifiques à certaines langues. Si vous mettez à jour le catalogue des logiciels portés, vous pouvez remédier à cela en spécifiant chaque catalogue individuellement (e.g., _ports-astrology_, _ports-biology_, etc au lieu de spécifier simplement _ports-all_). Cependant puisque les arborescences [.filename]#doc# et [.filename]#www# ne disposent pas de catalogues spécifiques à chaque langue, vous devez utiliser une des nombreuses fonctions de CVSup: le fichier [.filename]#refuse#.

Le fichier [.filename]#refuse# indique essentiellement à CVSup qu'il ne doit pas télécharger chaque fichier d'un catalogue; en d'autre termes, il dit au client de _refuser_ certains fichiers du serveur. Le fichier [.filename]#refuse# peut être trouvé (ou, si vous n'en disposez pas encore d'un, doit être placé) dans [.filename]#base/sup/#. _base_ est défini dans votre [.filename]#supfile#; notre répertoire _base_ est défini en tant que [.filename]#/var/db# ce qui signifie que le fichier [.filename]#refuse# est par défaut [.filename]#/var/db/sup/refuse#.

Le fichier [.filename]#refuse# a un format très simple; il contient tout simplement les noms des fichiers ou des répertoires que vous ne désirez pas rapatrier. Par exemple, si vous ne pouvez parler d'autres langues que l'anglais ou un peu d'allemand, et vous ne ressentez pas le besoin de lire la traduction en allemand de la documentation, vous pouvez mettre ce qui suit dans le fichier [.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_*
....

et ainsi de suite pour les autres langues (vous pouvez en trouver une liste complète en parcourant le http://www.FreeBSD.org/cgi/cvsweb.cgi/[référentiel CVS de FreeBSD]).

Avec cette fonction très utile, les utilisateurs disposant d'une connexion lente ou payant le temps de connexion à la minute seront en mesure d'économiser de précieuses minutes comme ils n'auront plus du tout besoin de télécharger des fichiers qu'ils n'utiliseront jamais. Pour plus d'information sur les fichiers [.filename]#refuse# et d'autres caractéristiques intéressantes de CVSup, consultez sa page de manuel.

=== Exécuter CVSup

Vous êtes maintenant prêt à essayer de faire une mise à jour. La ligne de commande à utiliser est très simple:

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

où [.filename]#supfile# est bien sûr le nom du fichier [.filename]#supfile# que vous venez de créer. Si vous êtes sous X11, `cvsup` affichera une interface graphique avec des boutons pour les opérations courantes. Appuyez sur le bouton btn[go] et suivez le déroulement des opérations.

Comme, dans cet l'exemple, vous mettez directement à jour votre arborescence [.filename]#/usr/src#, vous devrez exécuter le programme en tant que `root` de façon à ce que `cvsup` ait le droit de mettre à jour vos fichiers. Comme vous venez juste de créer votre fichier de configuration et n'avez encore jamais utilisé le programme, il est compréhensible que cela vous rende nerveux. Il est facile de faire un essai sans toucher à vos précieux fichiers. Créez juste un nouveau répertoire quelque part et donnez-le en argument supplémentaire sur la ligne de commande:

[source,shell]
....
# mkdir /var/tmp/dest
# cvsup supfile /var/tmp/dest
....

Le répertoire indiqué sera pris comme destination pour tous les fichiers modifiés. CVSup examinera les fichiers habituels dans [.filename]#/usr/src#, mais ne les modifiera pas et n'en supprimera aucun. Les modifications atterriront dans [.filename]#/var/tmp/dest/usr/src#. CVSup ne touchera pas non plus à ses fichiers d'état dans le répertoire de base, lorsqu'il est invoqué de cette manière. Les nouvelles versions de ces fichiers iront dans le répertoire indiqué. A partir du moment où vous avez les les droits en lecture sur [.filename]#/usr/src#, vous n'avez pas besoin d'être `root` pour faire ce genre d'essai.

Si vous n'êtes pas sous X11, ou si vous n'aimez tout simplement pas les interfaces graphiques, vous devrez ajouter quelques options supplémentaires sur la ligne de commande de `cvsup`:

[source,shell]
....
# cvsup -g -L 2 supfile
....

L'option `-g` dit à CVSup de ne pas utiliser son interface graphique. C'est automatique si vous n'êtes pas sous X11, sinon vous devez le préciser.

L'option`-L 2` dit à CVSup d'afficher le détail de ce qu'il est en train de faire. Il y a trois niveaux de trace, de `-L 0` à `-L 2`. La valeur par défaut est de 0, ce qui équivaut à n'émettre que les messages d'erreur.

Il y a de nombreuses autres option disponibles. Pour en obtenir un résumé, tapez `cvsup -H`. Pour une description plus détaillée, reportez-vous aux pages de manuel.

Une fois que vous êtes satisfait de la façon dont se passent les mises à jour, vous pouvez mettre en place une exécution de CVSup à intervalles réguliers en utilisant man:cron[8]. Bien évidemment, vous ne devez pas laisser CVSup utiliser don interface graphique quand vous le lancez depuis man:cron[8].

[[cvsup-collec]]
=== Catalogue de fichiers CVSup

Les catalogues de fichiers disponibles via CVSup sont organisés hiérarchiquement. Il y a quelques gros catalogues, qui sont divisés en plus petits sous-catalogues. Recevoir un gros catalogue équivaut à recevoir chacun de ces sous-catalogues. Les relations hiérarchiques entre les sous-catalogues sont décrites par les indentations dans la liste ci-dessous.

Les catalogues habituellement les plus employés sont `src-all`, et `ports-all`. Les autres catalogues ne sont utilisés que par de petits groupes de personnes pour des besoins particuliers, et certains sites miroir ne les mettent pas à disposition.

`cvs-all release=cvs`::
Le référentiel CVS principal de FreeBSD, incluant les logiciels de chiffrement.

`distrib release=cvs`:::
Les fichiers ayant trait à la distribution et à la mise en place de sites miroir FreeBSD.

`doc-all release=cvs`:::
Les sources du manuel FreeBSD et d'autres documentations. Cela de comprend pas les fichiers pour le site Web de FreeBSD.

`ports-all release=cvs`:::
Le catalogue des logiciels portés de FreeBSD.
+
[[cvsup-collec-pbase-warn]]
[IMPORTANT]
====
Si vous ne voulez pas mettre à jour l'intégralité du catalogue `ports-all` (l'intégralité du catalogue des logiciels portés), mais utiliser un des sous-catalogues listés ci-dessous, assurez-vous de _toujours_ mettre à jour le sous-catalogue `ports-base`! Dès qu'il y a un changement dans l'infrastructure de compilation des logiciels portés représentée par `ports-base`, il est certain que ces changements seront utilisés par un logiciel porté très rapidement. Donc, si vous ne mettez à jour que les logiciels portés en tant que tel et qu'ils utilisent certains des changements, il y a de grandes chances pour que leur compilation échoue avec de mystérieux messages d'erreur. La _première_ chose à faire dans ce cas est de vérifier que votre sous-catalogue `ports-base` est à jour.
====
+
[IMPORTANT]
====
Si vous voulez construire votre propre version locale du fichier [.filename]#ports/INDEX#, vous _devez_ accepter le catalogue `ports-all` (l'intégralité du catalogue des logiciels portés). La construction de [.filename]#ports/INDEX# avec une arborescence partielle n'est pas supportée. Consultez la extref:{faq}[FAQ, MAKE-INDEX].
====

`ports-accessibility release=cvs`::::
Logiciels pour utilisateurs handicapées.

`ports-arabic release=cvs`::::
Support pour l'arabe.

`ports-archivers release=cvs`::::
Outils d'archivage.

`ports-astro release=cvs`::::
Logiciels d'astronomie.

`ports-audio release=cvs`::::
Support du son.

`ports-base release=cvs`::::
L'infrastructure de compilation du catalogue des logiciels portés - divers fichiers situés dans les répertoires [.filename]#Mk/# et [.filename]#Tools/# sous-répertoires de la hiérarchie [.filename]#/usr/ports#.
+
[NOTE]
====
Lisez l'<<cvsup-collec-pbase-warn,important avertissement ci-dessus>>: vous devriez _toujours_ mettre à jour ce sous-catalogue, dès que vous mettez à jour une partie du catalogue des logiciels portés de FreeBSD!
====

`ports-benchmarks release=cvs`::::
Evaluation de performances.

`ports-biology release=cvs`::::
Biologie.

`ports-cad release=cvs`::::
Outils de conception assistée par ordinateur.

`ports-chinese release=cvs`::::
Support pour le chinois.

`ports-comms release=cvs`::::
Logiciels de communication.

`ports-converters release=cvs`::::
Conversion entre codages de caratères.

`ports-databases release=cvs`::::
Bases de données.

`ports-deskutils release=cvs`::::
Les choses que l'on trouvait sur un bureau avant l'invention des ordinateurs.

`ports-devel release=cvs`::::
Outils de développement.

`ports-dns release=cvs`::::
Logiciels relatifs au DNS.

`ports-editors release=cvs`::::
Editeurs.

`ports-emulators release=cvs`::::
Emulateurs d'autres systèmes d'exploitation.

`ports-finance release=cvs`::::
Applications concernant les finances et l'argent.

`ports-ftp release=cvs`::::
Clients et serveurs FTP.

`ports-games release=cvs`::::
Jeux.

`ports-german release=cvs`::::
Support pour l'allemand.

`ports-graphics release=cvs`::::
Outils graphiques.

`ports-hebrew release=cvs`::::
Support de l'hébreu.

`ports-hungarian release=cvs`::::
Support du hongrois.

`ports-irc release=cvs`::::
Outils pour l'IRC.

`ports-japanese release=cvs`::::
Support pour le japonais.

`ports-java release=cvs`::::
Outils Java(TM).

`ports-korean release=cvs`::::
Support pour le coréen.

`ports-lang release=cvs`::::
Langages de programmation.

`ports-mail release=cvs`::::
Logiciels de courrier électronique.

`ports-math release=cvs`::::
Logiciels de calcul numérique.

`ports-mbone release=cvs`::::
Applications MBone.

`ports-misc release=cvs`::::
Utilitaires divers.

`ports-multimedia release=cvs`::::
Logiciels pour le multimedia.

`ports-net release=cvs`::::
Logiciels réseau.

`ports-net-im release=cvs`::::
Logiciels de messagerie instantanée.

`ports-net-mgmt release=cvs`::::
Logiciels de gestion des réseaux.

`ports-net-p2p release=cvs`::::
Logiciels pour le "peer to peer".

`ports-news release=cvs`::::
Logiciels pour les forums de discussion USENET.

`ports-palm release=cvs`::::
Logiciels de support des machines Palm(TM).

`ports-polish release=cvs`::::
Support pour le polonais.

`ports-ports-mgmt release=cvs`::::
Utilitaires pour la gestion des logiciels portés et des paquetages.

`ports-portuguese release=cvs`::::
Support pour le portugais.

`ports-print release=cvs`::::
Logiciels d'impression.

`ports-russian release=cvs`::::
Support pour le russe.

`ports-science release=cvs`::::
Science.

`ports-security release=cvs`::::
Outils de sécurité.

`ports-shells release=cvs`::::
Interpréteurs de commandes.

`ports-sysutils release=cvs`::::
Utilitaires système.

`ports-textproc release=cvs`::::
Outils de traitement de texte (sauf les logiciels de publication assistée par ordinateur).

`ports-ukrainian release=cvs`::::
Support de l'ukrainien.

`ports-vietnamese release=cvs`::::
Support du vietnamien.

`ports-www release=cvs`::::
Logiciels concernant le World Wide Web.

`ports-x11 release=cvs`::::
Logiciel pour le système X window.

`ports-x11-clocks release=cvs`::::
Horloges pour X11.

`ports-x11-drivers release=cvs`::::
pilotes de périphérique X11.

`ports-x11-fm release=cvs`::::
Gestionnaires de fichiers pour X11.

`ports-x11-fonts release=cvs`::::
Polices de caractères et outils associés pour X11.

`ports-x11-toolkits release=cvs`::::
"Toolkits" X11.

`ports-x11-servers release=cvs`::::
Serveurs X11.

`ports-x11-themes release=cvs`::::
Thèmes X11.

`ports-x11-wm release=cvs`::::
Gestionnaires de fenêtres pour X11.

`projects-all release=cvs`:::
Les sources présentes dans le dépots des projets FreeBSD.

`src-all release=cvs`:::
Les sources du système FreeBSD, comprenant les logiciels de chiffrement.

`src-base release=cvs`::::
Divers fichiers en haut de la hiérarchie [.filename]#/usr/src#.

`src-bin release=cvs`::::
Programmes utilisateurs qui peuvent être utiles en mode mono-utilisateur ([.filename]#/usr/src/bin#).

`src-cddl release=cvs`::::
Utilitaires et bibliothèques sous licence CDDL ([.filename]#/usr/src/cddl#).

`src-contrib release=cvs`::::
Utilitaires et bibliothèques d'origine indépendante du projet FreeBSD, employés à peu près tels quels ([.filename]#/usr/src/contrib#).

`src-crypto release=cvs`::::
Utilitaires et bibliothèques pour le chiffrement d'origine indépendante du projet FreeBSD, employés à peu près tels quels ([.filename]#/usr/src/crypto#).

`src-eBones release=cvs`::::
Kerberos et DES ([.filename]#/usr/src/eBones#). Non utilisés dans les versions de FreeBSD actuellement publiées.

`src-etc release=cvs`::::
Fichiers de configuration du système ([.filename]#/usr/src/etc#).

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

`src-gnu release=cvs`::::
Utilitaires soumis à la licence publique GNU ([.filename]#/usr/src/gnu#).

`src-include release=cvs`::::
Fichiers d'entête ([.filename]#/usr/src/include#).

`src-kerberos5 release=cvs`::::
Logiciel de sécurité Kerberos5 ([.filename]#/usr/src/kerberos5#).

`src-kerberosIV release=cvs`::::
Logiciel de sécurité KerberosIV ([.filename]#/usr/src/kerberosIV#).

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

`src-libexec release=cvs`::::
Programmes système normalement exécutés par d'autres programmes ([.filename]#/usr/src/libexec#).

`src-release release=cvs`::::
Fichiers nécessaires à la génération d'une version publiable de FreeBSD ([.filename]#/usr/src/release#).

`src-rescue release=cvs`::::
Programmes liés en statique pour les dépannages d'urgence; consultez la page de manuel man:rescue[8] ([.filename]#/usr/src/rescue#).

`src-sbin release=cvs`::::
Utilitaires système pour le mode mono-utilisateur ([.filename]#/usr/src/sbin#).

`src-secure release=cvs`::::
Commandes et bibliothèques pour le chiffrage ([.filename]#/usr/src/secure#).

`src-share release=cvs`::::
Fichiers qui peuvent être partagés par plusieurs systèmes ([.filename]#/usr/src/share#).

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

`src-sys-crypto release=cvs`::::
Code du noyau destiné au chiffrement ([.filename]#/usr/src/sys/crypto#).

`src-tools release=cvs`::::
Divers outils pour la maintenance de FreeBSD ([.filename]#/usr/src/tools#).

`src-usrbin release=cvs`::::
Outils utilisateur ([.filename]#/usr/src/usr.bin#).

`src-usrsbin release=cvs`::::
Utilitaires système ([.filename]#/usr/src/usr.sbin#).

`www release=cvs`:::
Les sources du site WWW de FreeBSD.

`distrib release=self`::
Fichiers de configuration du serveur CVSup. Utilisés par les sites miroir CVSup.

`gnats release=current`::
Base de données GNATS d'historique des bogues.

`mail-archive release=current`::
Archives des listes de diffusion FreeBSD.

`www release=current`::
Les fichiers/données WWW publiés (pas les fichiers source). Utilisés par les sites miroir WWW.

=== Pour plus d'informations

Pour la FAQ de CVSup et d'autres informations concernant CVSup, consultez la http://www.cvsup.org[page Web de CVSup].

La plupart des discussions relatives à l'utilisation de CVSup sous FreeBSD ont lieu sur la {freebsd-hackers}. Les nouvelles versions du logiciel y sont annoncés ainsi que sur la {freebsd-announce}.

Pour toutes les questions et rapports de bogues concernant CVSup, consultez la http://www.cvsup.org/faq.html#bugreports[FAQ CVSup].

[[cvsup-mirrors]]
=== Sites CVSup

Des serveurs <<cvsup,CVSup>> pour FreeBSD fonctionnent aux sites suivants:

[[portsnap]]
== Utiliser Portsnap

[[portsnap-intro]]
=== Introduction

Portsnap est un système de distribution sécurisée du catalogue des logiciels portés de FreeBSD. Approximativement chaque heure, un "instantané" du catalogue des logiciels portés est généré, rassemblé et signé de manière chiffrée. Les fichiers résultants sont alors distribués par l'intermédiaire du protocole HTTP.

Tout comme CVSup, Portsnap utilise un modèle de mise à jour de type _pull_: le catalogue des logiciels portés packagé et signé est placé sur un serveur Web qui attend les requêtes des clients. Les utilisateurs doivent soit exécuter manuellement man:portsnap[8] pour télécharger les mises à jour, soit configurer man:cron[8] pour un téléchargement régulier et automatique des mises à jour.

Pour des raisons techniques, Portsnap ne met pas à jour le catalogue des logiciels portés directement dans le répertoire [.filename]#/usr/ports#; le logiciel travaille plutôt par défaut sur une version compressée de l'arborescence des logiciels portés dans le répertoire [.filename]#/var/db/portsnap#. Cette copie compressée est ensuite utilisée pour mettre à jour le catalogue des logiciels portés.

[NOTE]
====
Si Portsnap est installé à partir du catalogue des logiciels portés de FreeBSD, alors l'emplacement par défaut pour son instantané compressé sera [.filename]#/usr/local/portsnap# au lieu de [.filename]#/var/db/portsnap#.
====

[[portsnap-install]]
=== Installation

Sous FreeBSD 6.0 et les versions plus récentes, Portsnap fait partie du système de base de FreeBSD. Sous des versions plus anciennes de FreeBSD, il peut être installé à partir du logiciel porté package:ports-mgmt/portsnap[].

[[portsnap-config]]
=== Configuration de Portsnap

L'exécution de Portsnap est contrôlée par le fichier de configuration [.filename]#/etc/portsnap.conf#. Pour la plupart des utilisateurs, le fichier de configuration par défaut sera suffisant; pour plus de détails, consultez la page de manuel man:portsnap.conf[5].

[NOTE]
====
Si Portsnap est installé à partir du catalogue des logiciels portés, il utilisera [.filename]#/usr/local/etc/portsnap.conf# comme fichier de configuration au lieu de [.filename]#/etc/portsnap.conf#. Ce fichier n'est pas créé lors de l'installation du logiciel, mais un fichier d'exemple est fourni; pour le copier à son emplacement correct, utilisez la commande suivante:

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

====

=== Exécuter Portsnap pour la première fois

Au premier lancement de la commande man:portsnap[8], il sera nécessaire de télécharger un instantané compressé de l'intégralité de l'arborescence des logiciels portés dans [.filename]#/var/db/portsnap# (ou [.filename]#/usr/local/portsnap# si Portsnap a été installé à partir du catalogue des logiciels portés). Au début de l'année 2006, cela représentait un téléchargement d'environ 41 Mo.

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

Une fois que l'instantané compressé a été récupéré, une copie utilisable de l'arborescence des logiciels portés peut être extraite dans le répertoire [.filename]#/usr/ports#. Cela est nécessaire même si une arborescence a déjà été créée dans ce répertoire (par exemple en utilisant CVSup), puisque cela met en place une version de référence à partir de laquelle `portsnap` peut déterminer plus tard quelles parties du catalogue des logiciels portés a besoin d'une mise à jour.

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

[NOTE]
====
Dans l'installation par défaut de FreeBSD [.filename]#/usr/ports# n'est pas créé. Si vous utilisez FreeBSD 6.0-RELEASE, ce répertoire doit être créé avant d'utiliser la commande `portsnap`. Sur les versions de FreeBSD plus récentes ou de Portsnap, cette création est effectuée automatiquement à la premiere utilisation de la commande `portsnap`.
====

=== Mettre à jour l'arborescence des logiciels portés

Après qu'un instantané initial du catalogue des logiciels portés ait été récupéré puis décompressé dans le répertoire [.filename]#/usr/ports#, la mise à jour du catalogue se divise en deux étapes: la récupération (_fetch_) des mises à jour de l'instantané, et leur utilisation pour mettre à jour (_update_) le catalogue des logiciels portés en tant que tel. Ces deux étapes peuvent être effectuées par l'intermédiaire d'une seule commande `portsnap`:

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

[NOTE]
====
Des versions anciennes de `portsnap` ne supporte pas cette syntaxe; en cas d'échec, utilisez à la place ceci:

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

====

=== Exécuter Portsnap à partir de cron

Afin d'éviter tout problème "d'embouteillage" lors de l'accès aux serveurs Portsnap, `portsnap fetch` ne fonctionnera pas à partir d'une tâche man:cron[8]. Il existe, à la place, une commande `portsnap cron` spécifique, qui patiente durant un délai aléatoire pouvant aller jusqu'à 3600 secondes avant de récupérer les mises à jour.

De plus, il est fortement recommandé de ne pas exécuter `portsnap update` à partir d'une tâche `cron`, puisque cela peut être à l'origine de graves problèmes si la commande a lieu au même moment qu'un logiciel porté est en train d'être compilé ou installé. Cependant, les fichiers [.filename]#INDEX# peuvent être mis à jour sans risque, et cela peut être fait en passant l'indicateur `-I` à la commande `portsnap` (bien entendu si `portsnap -I update` est exécuté à par `cron`, il sera alors nécessaire de lancer `portsnap update` sans l'option `-I` ultérieurement pour mettre à jour le reste de l'arborescence).

L'ajout de la ligne suivante dans le fichier [.filename]#/etc/crontab# demandera à `portsnap` de mettre à jour son instantané compressé et les fichiers [.filename]#INDEX# du répertoire [.filename]#/usr/ports#, et enverra un courrier électronique si un logiciel porté installé n'est pas à jour:

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

[NOTE]
====
Si l'horloge système n'est pas positionnée sur le fuseau horaire local, remplacez `3` par une valeur quelconque comprise entre 0 et 23, afin de répartir de manière plus équilibrée la charge sur les serveurs Portsnap.
====

[NOTE]
====
Des versions anciennes de `portsnap` ne supportent pas l'utilisation de commandes multiples (par exemple `cron update`) lors de la même invocation de `portsnap`. Si la ligne précédente échoue, essayez de remplacer `portsnap -I cron update` par `portsnap cron portsnap -I update`.
====

[[cvs-tags]]
== Etiquettes CVS

Quand on récupère ou l'on met à jour les sources en utilisant cvs ou CVSup, une étiquette de révision doit être spécifiée. Une étiquette de révision fait référence soit à une branche particulière de développement de FreeBSD, soit à un moment particulier dans le temps. Le premier type d'étiquette est nommé "étiquette de branche", le second type "étiquette de publication" - _release tags_.

=== Etiquettes de branche

Toutes ces étiquettes, à l'exception de l'étiquette `HEAD` (qui est une étiquette toujours valide), ne s'appliquent qu'à l'arborescence [.filename]#src/#. Il n'y a pas de branche pour les arborescences [.filename]#ports/#, [.filename]#doc/#, et [.filename]#www/#.

HEAD::
Nom symbolique pour la branche principale de développement, ou FreeBSD-CURRENT. C'est aussi la valeur par défaut lorsque la révision n'est pas précisée.
+
Sous CVSup, cette étiquette est représentée par un `.` (ce n'est pas une ponctuation, mais bien le caractère `.`).
+
[NOTE]
====
Sous CVS, c'est la valeur par défaut quand aucune étiquette de révision n'est précisée. Ce n'est généralement _pas_ une bonne idée de récupérer ou mettre à jour vers les sources CURRENT sur une machine STABLE, à moins que cela ne soit vraiment votre intention.
====

RELENG_6::
Branche de développement pour FreeBSD-6.X, également connue sous le nom de FreeBSD 6-STABLE.

RELENG_6_2::
Branche de publication de la version FreeBSD-6.2, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_6_1::
Branche de publication de la version FreeBSD-6.1, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_6_0::
Branche de publication de la version FreeBSD-6.0, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_5::
Branche de développement pour FreeBSD-5.X, également connue sous le nom de FreeBSD 5-STABLE.

RELENG_5_5::
Branche de publication de la version FreeBSD-5.5, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_5_4::
Branche de publication de la version FreeBSD-5.4, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_5_3::
Branche de publication de la version FreeBSD-5.3, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_5_2::
Branche de publication des versions FreeBSD-5.2 et FreeBSD-5.2.1, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_5_1::
Branche de publication de la version FreeBSD-5.1, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_5_0::
Branche de publication de la version FreeBSD-5.0, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_4::
Branche de développement de FreeBSD-4.X, aussi connue sous le nom de FreeBSD 4-STABLE.

RELENG_4_11::
Branche de publication de la version FreeBSD-4.11, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_4_10::
Branche de publication de la version FreeBSD-4.10, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_4_9::
Branche de publication de la version FreeBSD-4.9, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_4_8::
Branche de publication de la version FreeBSD-4.8, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_4_7::
Branche de publication de la version FreeBSD-4.7, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_4_6::
Branche de publication des versions FreeBSD-4.6 et FreeBSD-4.6.2, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_4_5::
Branche de publication de la version FreeBSD-4.5, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_4_4::
Branche de publication de la version FreeBSD-4.4, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_4_3::
Branche de publication de la version FreeBSD-4.3, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques.

RELENG_3::
Branche de développement de FreeBSD-3.X, aussi connue sous le nom de 3.X-STABLE.

RELENG_2_2::
Branche de développement de FreeBSD-2.2.X, aussi connue sous le nom de 2.2-STABLE. Cette branche est en grande partie obsolète.

=== Etiquettes de publication

Ces étiquettes font référence à un moment bien précis dans le temps quand une version particulière de FreeBSD a été publiée. Le processus d'ingénierie des publications est documenté en détails dans les documents link:https://www.FreeBSD.org/releng/[Information sur la publication des versions] et extref:{releng}[Processus de publication, release-proc]. L'arborescence [.filename]#src# utilise des étiquettes commençant par `RELENG_`. Les arborescences [.filename]#ports# et [.filename]#doc# utilisent des étiquettes dont les noms commencent par `RELEASE`. Enfin, l'arborescence [.filename]#www# ne bénéficie pas d'étiquette particulière pour les publications.

RELENG_6_2_0_RELEASE::
FreeBSD 6.2

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]]
== Sites AFS

Il y a des serveurs AFS pour FreeBSD sur les sites suivants:

Suède::
Le chemin d'accès au fichiers est [.filename]#/afs/stacken.kth.se/ftp/pub/FreeBSD/#
+
[.programlisting]
....
stacken.kth.se         # Stacken Computer Club, KTH, Suède
130.237.234.43         #hot.stacken.kth.se
130.237.237.230        #fishburger.stacken.kth.se
130.237.234.3          #milko.stacken.kth.se
....
+
Responsable mailto:ftp@stacken.kth.se[ftp@stacken.kth.se]

[[mirrors-rsync]]
== Sites rsync

Les sites suivants fournissent FreeBSD en utilisant le protocole rsync. L'utilitaire rsync fonctionne globalement de la même manière que la commande man:rcp[1], mais il dispose de plus d'options et utilise le protocole de mise à jour à distance rsync qui ne transfert que les différences entre deux ensembles de fichiers, ce qui accélère énormément la synchronisation par le réseau. C'est surtout utile si vous disposez d'un miroir du serveur FTP de FreeBSD, ou du référentiel CVS. La suite rsync est disponible sur de nombreux systèmes d'exploitation, et sous FreeBSD, voir le logiciel porté package:net/rsync[] ou utilisez la version pré-compilée.

République Tchèque::
rsync://ftp.cz.FreeBSD.org/
+
Collections disponibles:

** ftp: un miroir partiel du serveur FTP FreeBSD.
** FreeBSD: un miroir complet du serveur FTP FreeBSD.

Allemagne::
rsync://grappa.unix-ag.uni-kl.de/
+
Collections disponibles:

** freebsd-cvs: référentiel CVS FreeBSD complet.

+
Cette machine est également miroir des référentiels CVS des projets NetBSD et OpenBSD, parmi d'autres.

Hollande::
rsync://ftp.nl.FreeBSD.org/
+
Collections disponibles:

** vol/4/freebsd-core: un miroir complet du serveur FTP FreeBSD.

Thailande::
rsync://ftp.tw.FreeBSD.org/
+
rsync://ftp2.tw.FreeBSD.org/
+
rsync://ftp6.tw.FreeBSD.org/
+
Collections disponibles:

** FreeBSD: Un miroir complet du serveur FTP FreeBSD.

Royaume-Uni::
rsync://rsync.mirror.ac.uk/
+
Collections disponibles:

** ftp.freebsd.org: Un miroir complet du serveur FTP FreeBSD.

Etats Unis d'Amérique::
rsync://ftp-master.FreeBSD.org/
+
Ce serveur ne pourra être utilisé que par les sites miroirs primaires FreeBSD.
+
Collections disponibles:

** FreeBSD: l'archive principale du serveur FTP FreeBSD.
** acl: la liste principale ACL de FreeBSD.
+
rsync://ftp13.FreeBSD.org/
+
Collections disponibles:
+
** FreeBSD: Un miroir complet du serveur FTP FreeBSD.
