diff options
Diffstat (limited to 'fr_FR.ISO8859-1/articles')
30 files changed, 0 insertions, 13646 deletions
diff --git a/fr_FR.ISO8859-1/articles/Makefile b/fr_FR.ISO8859-1/articles/Makefile deleted file mode 100644 index 90a0ff7873..0000000000 --- a/fr_FR.ISO8859-1/articles/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD: doc/fr_FR.ISO_8859-1/articles/Makefile,v 1.1 1999/11/10 21:28:21 nik Exp $ -# Original revision: 1.3 -# - -SUBDIR = diskless-x -SUBDIR+= fonts -SUBDIR+= formatting-media -SUBDIR+= ip-aliasing -SUBDIR+= make-world -SUBDIR+= mh -SUBDIR+= multi-os -SUBDIR+= new-users -SUBDIR+= ntfs -SUBDIR+= ppp -SUBDIR+= programming-tools -SUBDIR+= committers-guide -SUBDIR+= zip-drive - -ROOT_SYMLINKS+= new-users - -DOC_PREFIX?= ${.CURDIR}/../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/Makefile.inc b/fr_FR.ISO8859-1/articles/Makefile.inc deleted file mode 100644 index 8ca0ffdd9f..0000000000 --- a/fr_FR.ISO8859-1/articles/Makefile.inc +++ /dev/null @@ -1,9 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD: doc/fr_FR.ISO_8859-1/articles/Makefile.inc,v 1.1 1999/11/10 21:28:21 nik Exp $ -# Original revision: 1.2 -# - -DESTDIR?= ${DOCDIR}/fr_FR.ISO_8859-1/articles/${.CURDIR:T} diff --git a/fr_FR.ISO8859-1/articles/committers-guide/Makefile b/fr_FR.ISO8859-1/articles/committers-guide/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/committers-guide/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD$ -# Original revision: 1.4 -# - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/committers-guide/article.sgml b/fr_FR.ISO8859-1/articles/committers-guide/article.sgml deleted file mode 100644 index eb9a85e71f..0000000000 --- a/fr_FR.ISO8859-1/articles/committers-guide/article.sgml +++ /dev/null @@ -1,1233 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: n.nn ---> -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; -<!ENTITY sgml.todo SYSTEM "../../books/handbook/todo.sgml"> -<!ENTITY sgml.in-progress SYSTEM "../../books/handbook/in-progress.sgml"> -<!ENTITY rel.current CDATA "3.2"> -]> - -<article lang="fr"> - <artheader> - <title>Le Guide du Nouveau - “<foreignphrase>Committer</foreignphrase>”</title> - - <authorgroup> - <author> - <surname>Projet de Documentation de FreeBSD</surname> - </author> - </authorgroup> - - <pubdate>Septembre 1999</pubdate> - - <copyright> - <year>1999</year> - <holder>Projet de Documentation de FreeBSD</holder> - </copyright> - - <abstract> - <para>Nouveau “<foreignphrase>committer</foreignphrase>”, - bienvenue dans l'équipe de développement de FreeBSD !</para> - - <para>L'objectif de cette documentation est de vous orienter sur la - façon d'utiliser CVS sur la machine d'archive centrale de FreeBSD. Il - est présumé que vous avez déjà une connaissance de base de CVS, - quoique des informations de référence, des guides et Questions - Fréquemment Posées soient disponibles à l'adresse : - <ulink url="http://www.cyclic.com/cyclic-pages/books.html">http://www.cyclic.com/cyclic-pages/books.html</ulink></para> - - <para>Bonne chance, et bienvenue à bord !</para> - - &abstract.license; - &abstract.disclaimer; - &trans.a.haby; - - </abstract> - </artheader> - - <sect1 id="admin"> - <title>Détails d'organisation</title> - - <informaltable frame="none" orient="port"> - <tgroup cols="2"> - <tbody> - <row> - <entry><emphasis>Machine d'archive principale</emphasis></entry> - <entry><hostid>freefall.FreeBSD.org</hostid></entry> - </row> - - <row> - <entry> - <emphasis>Machine d'archive internationale pour les codes de - cryptographie</emphasis> - </entry> - <entry><hostid>internat.FreeBSD.org</hostid></entry> - </row> - - <row> - <entry><emphasis>Méthode de connexion</emphasis></entry> - <entry>&man.ssh.1;</entry> - </row> - - <row> - <entry><emphasis>Répertoire CVSROOT</emphasis></entry> - <entry>/home/ncvs</entry> - </row> - - <row> - <entry><emphasis>Répertoire CVSROOT pour la version internationale - des codes de cryptographie</emphasis></entry> - <entry>/home/cvs.crypt</entry> - </row> - - <row> - <entry><emphasis>Administrateurs des archives CVS - principales</emphasis></entry> - <entry>&a.jdp; et &a.peter; ainsi que &a.asami; pour - <filename>ports/</filename></entry> - </row> - - <row> - <entry> - <emphasis>Administrateur des archives CVS pour la version - internationale des codes de cryptographie</emphasis> - </entry> - <entry>&a.markm;</entry> - </row> - - <row> - <entry><emphasis>Liste de diffusion</emphasis></entry> - <entry><email>cvs-committers@FreeBSD.org</email></entry> - </row> - - <row> - <entry><emphasis>Etiquettes CVS importantes</emphasis></entry> - <entry>RELENG_3 (3.x-STABLE), HEAD (-CURRENT)</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Il vous est demandé d'utiliser &man.ssh.1; ou &man.telnet.1; - et Kerberos 5 pour vous connecter aux machines d'archive. Ces méthodes - sont globalement plus sûres qu'un simple &man.telnet.1; ou - &man.rlogin.1; parce que la négociation de l'authentification est - cryptée. Par défaut &man.ssh.1; crypte toute la session. Les utilitaires - disponibles &man.ssh-agent.1; et &man.scp.1; sont aussi bien plus - pratiques. Si vous ne connaissez pas &man.ssh.1, reportez-vous à la - <xref linkend="ssh.guide">.</para> - </sect1> - - <sect1 id="cvs.operations"> - <title>Opérations CVS</title> - - <para>Les opérations CVS se font habituellement en se connectant à - <hostid>freefall</hostid>, vérifiant que votre variable d'environnement - <envar>CVSROOT</envar> est bien positionnée à - <filename>/home/ncvs</filename>, et en effectuant les opérations - d'extraction (<foreignphrase>check-out</foreignphrase>) et de mise à - jour (<foreignphrase>check-in</foreignphrase>) nécessaires. Si vous - avez quelque chose d'entiérement nouveau à ajouter (un nouveau logiciel - porté, du source d'origine externe, etc.), il existe une procédure - appelée <quote>easy-import</quote> qui facilite cette opération. Elle - ajoute automagiquement une entrée pour le nouveau module, fait ce qu'il - faut via <command>cvs import</command>, etc. – exécutez-la sans - arguments et elle vous demandera tout ce qu'elle a besoin de - savoir.</para> - - <para>Si vous avez la pratique de CVS à distance et vous considérez - relativement opérationnel sur CVS en général, vous pouvez aussi effectuer - les opérations CVS directement depuis votre machine avec une copie - local à jour des sources. N'oubliez cependant pas de positionner - <envar>CVS_RSH</envar> à <wordasword>ssh</wordasword> de façon à - utiliser un moyen de transmission sécurisé et fiable. D'une autre côté, - si vous ne savez pas ce que cela veut dire, tenez-vous en s'il vous - plaît à la méthode qui consiste à vous connecter à - <hostid>freefall</hostid> et mettre en place vos modifications avec - &man.patch.1;.</para> - - <para>Si vous avez à utiliser les opérations <command>add</command> et - <command>delete</command> pour faire en fait une opération - <quote>mv</quote>, il faut une copie sur l'archive plutôt que votre - commande CVS <command>add</command> suivie d'un - <command>delete</command>. Dans ce cas, un <link - linkend="conventions">Administrateur CVS</link> copiera le(s) fichier(s) - là où il(s) doi(ven)t aller et vous avertira une fois qu'il l'aura fait. - Le but de la copie dans les archives est de conserver l'historique des - modifications, la journalisation. Le Projet FreeBSD accorde une grande - importance à l'historique du projet que CVS nous permet de - conserver.</para> - </sect1> - - <sect1 id="conventions"> - <title>Conventions et Traditions</title> - - <para>Les Administrateurs CVS (Peter Wemm et John Polstra) sont les - <quote>propriétaires</quote> des archives CVS et sont responsables de - chaque et de <emphasis>toute</emphasis> modification directe de - celles-ci pour mise au propre ou rectification d'erreur CVS dûe à un - <foreignphrase>committer</foreignphrase>. Personne d'autre ne doit - intervenir directement sur les archives. Si vous faites un fausse - manipulation, une importation incorrecte ou vous trompez d'étiquette - par exemple, n'essayez <emphasis role="bold">pas</emphasis> de la - rectifier vous-même ! Envoyez immédiatement un courrier - électronique ou téléphonez à John ou Peter et expliquez leur le - problème. Satoshi Asami est aussi Administrateur CVS pour la partie - <filename>ports/</filename> de l'arborescence. Mark Murray est - l'administrateur des archives internationales pour les logiciels de - cryptographie, en Afrique du Sud.</para> - - <para>Si vous êtes nouveau <foreignphrase>committer</foreignphrase>, la - première chose à faire est de vous ajouter vous-même à la liste des - développeurs (section 28.2) du Manuel de Référence. Extraire le manuel - de référence et ajouter une entrée à la liste est relativement facile, - mais c'est néanmoins un bon test initial de vos compétences CVS. Si - vous pouvez le faire, vous n'aurez probablement pas de problèmes par - la suite.</para> - - <para>L'étape suivante consiste à vous présenter aux autres - <foreignphrase>committers</foreignphrase>, sans quoi ils n'auront aucune - idée de qui vous êtes et à quoi vous travaillez. Il n'est pas - nécessaire de rédiger une biographie exhaustive, un paragraphe ou deux - suffiront, pour dire qui vous êtes et à quoi vous comptez travailler sur - FreeBSD. Envoyez-les par courrier électronique à - <email>cvs-committers@FreeBSD.org</email> et vous serez prêt à commencer - à travailler !</para> - - <para>N'oubliez pas aussi de vous connecter à - <hostid>hub.FreeBSD.org</hostid> et de vous y créez un fichier - <filename>/var/forward/<replaceable>utilisateur</replaceable></filename> - (où <replaceable>utilisateur</replaceable> est votre nom d'utilisateur), - qui contienne votre adresse de courrier électronique principale où vous - souhaitez que le courrier électronique adressé à - <replaceable>votre_nom_d_utilisateur</replaceable>@FreeBSD.org vous soit - redirigé. Les boîtes aux lettres vraiment volumineuses qui demeurent en - en permanence sur <hostid>hub</hostid> sont souvent - <quote>accidentellement</quote> tronquées sans avertissement, redirigez - donc votre courrier, ou lisez-le, et vous ne le perdrez pas.</para> - - <para>Tous les nouveaux <foreignphrase>committers</foreignphrase> ont un - mentor qui leur est assigné les premiers mois. Votre mentor est plus ou - moins chargé de vous expliquer tout ce que vous ne comprenez pas bien et - est aussi responsable de ce que vous faites à vos débuts. Si vous faites - une soummission erronée, c'est votre mentor qui sera ennuyé et vous - devriez probablement vous fixer comme ligne de conduite de faire passer - vos premières soumissions par lui avant de les intégrer aux - archives.</para> - - <para>Toutes les soumissions doivent être intégrées d'abord à - <literal>-CURRENT</literal>, avant d'aller dans - <literal>-STABLE</literal>. Aucune nouvelle fonctionnalité ou - modification à haut risque ne devrait être intégrée à la branche - <literal>-STABLE</literal>.</para> - </sect1> - - <sect1 id="developer.relations"> - <title>Relations entre développeurs</title> - - <para>Si vous travaillez directement sur votre propre code ou sur du code - dont il est bien établi que vous avez la responsabilité, il n'est - probablement pas nécessaire de valider ce que vous allez faire avec - d'autres développeurs avant de soumettre du code. Si vous trouvez un - bogue dans un module qui est manifestement orphelin (il y en a - malheureusement quelques uns), cela s'y applique aussi. Si, au - contraire, vous vous apprêtez à modifier quelque chose qui est - activement maintenu par quelqu'un d'autre (ce n'est qu'en surveillant - la &a.cvsall; que vous pourrez vous faire une idée de ce qu'il l'est et - de ce qui ne l'est pas), envisagez alors de lui envoyer vos - modifications, tout comme vous l'auriez fait quand vous n'étiez pas - <foreignphrase>committer</foreignphrase>. Pour les logiciels portés, - vous devriez contacter la personne listée comme - <makevar>MAINTAINER</makevar> dans le <filename>Makefile</filename>. - Pour le reste des archives, si vous n'êtes pas sûr de qui maintient - effectivement tel ou tel module, il peut être utile de passer en revue - le résultat de <command>cvs log</command> pour voir qui a soumis des - modifications dans le passé. Si vous ne trouvez personne, ou si la - personne en charge montre un désinterêt pour la partie en question, - allez-y et faites vos modifications.</para> - - <para>Si vous avez pour une raison ou une autre des doutes à propos d'une - soumission que vous envisagez, faites-la d'abord examiner par - <literal>-hackers</literal> avant de l'intégrer. Il vaut mieux que l'on - vous fasse des remarques alors, qu'une fois qu'elle fera partie des - archives CVS. S'il vous arrive de soumettre quelque chose qui soulève - une controverse, envisagez éventuellement de faire marche arrière - en attendant que la question soit réglée. N'oubliez pas – avec - CVS, vous pourrez toujours remettre votre modification en - service.</para> - </sect1> - - <sect1 id="gnats"> - <title>GNATS</title> - - <para>Le Projet FreeBSD utilise <application>GNATS</application> pour - enregistrer les rapports de bogues et les demandes de modification. Si - vous effectuez une correction ou une modification décrite dans un - PR - <foreignphrase>Problem Report</foreignphrase>, rapport - d'anomalie - <application>GNATS</application>, veillez à - utiliser - <command>edit-pr <replaceable>numéro_de_pr</replaceable></command> - sur <hostid>freefall</hostid> pour le fermer. L'usage veut aussi que - vous preniez le temps de fermer les rapports ayant trait à vos - soumission, le cas échéant. Vous pouvez aussi utiliser vous-même - &man.send-pr.1; pour proposer les modifications dont vous pensez qu'il - faut les probablement les faire, après une revue plus extensive par - les autres participants.</para> - - <para>Vous trouverez plus d'informations sur - <application>GNATS</application> aux adresses suivantes :</para> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html">http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.FreeBSD.org/support.html">http://www.FreeBSD.org/support.html</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.FreeBSD.org/send-pr.html">http://www.FreeBSD.org/send-pr.html</ulink></para> - </listitem> - - <listitem> - <para>&man.send-pr.1;</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="people"> - <title>Who's Who</title> - - <para>En dehors de Peter Wemm et John Polstra, les administrateurs des - archives, il y a d'autres membres du Projet FreeBSD que vous - rencontrerez probablement dans votre nouvelle fonction de - <foreignphrase>committer</foreignphrase>. Rapidement, et en aucun - cas exhaustivement, ce sont :</para> - - <variablelist> - <varlistentry> - <term>&a.asami;</term> - - <listitem> - <para>Est le reponsable du catalogue des logiciels portés, ce qui - signifie qu'il a le pouvoir de décision en ce qui concerne toute - modification aux logiciels portés et à leurs macros-instructions - de compilation. Il est aussi responsable la gestion des gels du - code entre deux versions.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.bde;</term> - - <listitem> - <para>Est l'<foreignphrase>Obersturmbahnfuhrer</foreignphrase> de la - Police du Style. Quand vous soumettez quelque chose que vous - auriez pu faire mieux, Bruce sera là pour vous le signaler. - Remerciez-le qu'il y ait quelqu'un pour le faire.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.dg;</term> - - <listitem> - <para>Est notre architecte principal et superviseur du système de - gestion de la mémoire virtuelle. Si vous envisagez une - modification de ce système, voyez cela avec David. Si vous êtes - pris dans une discussion âpre et insoluble avec un autre - participant à propos d'une modification envisagée (ce qui, - heureusement, ne se produit pas souvent), il peut aussi - occasionnellement être nécessaire de demander alors à David - de mettre sa casquette d'Architecte Principal et de prendre la - décision finale.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.jkh;</term> - - <listitem> - <para>Est le responsable des versions. Il a la charge de définir les - dates butées et de superviser le processus de mise en place de la - nouvelle version. Pendant les gels du code, il a aussi le pouvoir - de décision sur toutes les modifications sur la branche de code - qui est en cours de finalisation. S'il y a quelque chose que vous - voudriez voir reporter de <literal>-CURRENT</literal> dans - <literal>-STABLE</literal> (quelqu'intérêt que cela puisse avoir à - un moment donné), c'est aussi la personne à qui il faut en - parler.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.markm;</term> - <listitem> - <para>Mark est le responsable des archives CVS internationales pour - le code de cryptographie, sur - <hostid>internat.FreeBSD.org</hostid> en Afrique du Sud.</para> - - <para>Mark supervise la plupart du code de cryptographie ; si - vous vous y envisagez des mises à jour, parlez-en s'il vous plaît - d'abord à Mark.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.steve;</term> - - <listitem> - <para>Steve est le responsable non officiel de - <filename>/usr/src/bin</filename>. S'il y a quelque chose - d'important que vous voudriez y voir, vous devriez probablement - envisager d'abord cela avec Steve. Il est aussi administrateur des - “<foreignphrase>Problem Report</foreignphrase>”, en - coopération avec &a.phk;.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.brian;</term> - - <listitem> - <para>Maintient officiellement - <filename>/usr/bin/ppp</filename> et - <application>LPD</application>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.wollman;</term> - - <listitem> - <para>Si vous avez besoin d'un conseil sur des points obscurs du - code réseau ou n'êtes pas certain d'une modification que vous - envisagez à ce sous-système, c'est avec Garrett qu'il faut en - discuter.</para> - </listitem> - </varlistentry> - </variablelist> - </sect1> - - <sect1 id="ssh.guide"> - <title>Introduction rapide à <application>SSH</application></title> - - <procedure> - <step> - <para>Mettez à jour et installez le logiciel porté - <application>ssh</application> dans - <filename>/usr/ports/security/ssh</filename> (il faut une version - 1.2.25 ou postérieure).</para> - </step> - - <step> - <para>Veillez à exécuter &man.ssh-agent.1; avant toute autre - application. Les utilisateurs de <application>X</application>, par - exemple, le font habituellement depuis leur fichier - <filename>.xsession</filename> ou - <filename>.xinitrc</filename>. Reportez-vous à &man.ssh-agent.1; - pour plus de détails.</para> - </step> - - <step> - <para>Générez une paire de clés avec &man.ssh-keygen.1;. Ces clés - seront créées dans le répertoire - <filename><envar>$HOME</envar>/.ssh</filename>.</para> - </step> - - <step> - <para>Copiez votre clé publique - (<filename><envar>$HOME</envar>/.ssh/identity.pub</filename>) - dans le fichier <filename>authorized_keys</filename> de votre - répertoire utilisateur sur <hostid>freefall</hostid> - (i.e. - <filename><envar>$HOME</envar>/.ssh/authorized_keys</filename>). - </para> - </step> - </procedure> - - <para>Vous devriez maintenant pouvoir utiliser &man.ssh-add.1; pour vous - authentifier à chaque début de session. Il vous demandera la phrase clé - pour votre clé privée, et l'enregistrera via votre agent - d'authentification (&man.ssh-agent.1;) de façon à ce que vous n'ayez - plus à la retaper à chaque fois.</para> - - <para>Testez en faisant quelque chose du style : <command>ssh - freefall.FreeBSD.org ls /usr</command>.</para> - - <para>Pour plus d'informations, reportez-vous à - <filename>/usr/ports/security/ssh</filename>, &man.ssh.1;, - &man.ssh-agent.1;, &man.scp.1;, et &man.ssh-keygen.1;.</para> - </sect1> - - <sect1> - <title>Régles à Suivre par les <foreignphrase>Committers</foreignphrase> - FreeBSD</title> - - <orderedlist> - <listitem> - <para>Respectez les autres - <foreignphrase>committers</foreignphrase>.</para> - </listitem> - - <listitem> - <para>Discutez de toute modification importante - <emphasis>avant</emphasis> intégration.</para> - </listitem> - - <listitem> - <para>Respectez les reponsables de la maintenance s'il y en a de - définis par la variable <makevar>MAINTAINER</makevar> du - <filename>Makefile</filename> ou dans le fichier - <filename>MAINTAINER</filename> au premier niveau de - l'arborescence.</para> - </listitem> - - <listitem> - <para>N'intervenez jamais directement sur les archives. Demandez au - reponsable de ces archives de le faire.</para> - </listitem> - - <listitem> - <para>Toute modification controversée doit, si le responsable de - la maintenance ou l'Architecte Principal le demande, être annulée - jusqu'à ce que la discussion soit terminée. Les modifications pour - des questions de sécurité peuvent être effectuées par l'Officier de - Sécurité, malgré les souhaits d'un responsable de la - maintenance.</para> - </listitem> - - <listitem> - <para>Les modifications doivent être faites dans - <literal>-current</literal> avant d'être reportées dans - <literal>-stable</literal> sauf autorisation expresse du - responsable des versions ou si elles ne s'appliquent pas à - <literal>-current</literal>. Toute modification non triviale ni - urgente doit rester au moins trois jours dans - <literal>-current</literal> pour être testée suffisamment avant - d'être reportée. Le responsable des versions a les mêmes - prérogatives sur la branche <literal>-stable</literal> que celles - décrites, pour ce qui concerne l'Architecte Principal, par le règle - #5.</para> - </listitem> - - <listitem> - <para>Ne vous disputez pas publiquement avec les autres - <foreignphrase>committers</foreignphrase> ; cela fait mauvais - effet. Si vous êtes en “profond” désaccord sur un point, - n'en discutez qu'en privé.</para> - </listitem> - - <listitem> - <para>Respectez tous les gels du code et lisez régulièrement la liste - de diffusion pour les <foreignphrase>committers</foreignphrase> pour - savoir quand il y en a.</para> - </listitem> - - <listitem> - <para>En cas de doute sur une procédure, renseignez-vous - d'abord !</para> - </listitem> - - <listitem> - <para>Testez vos modifications avant de les intégrer.</para> - </listitem> - </orderedlist> - - <para>Comme indiqué, enfreindre l'un de ces règles peut entraîner une - suspension provisoire, et, en cas de récidive, une suppression - permanente des privilèges de <foreignphrase>committers</foreignphrase>. - Trois membres ou plus de l'équipe de base, ou l'Architecte Principal et - un autre membre de l'équipe de base, peuvent, s'ils en sont d'accord, - suspendre temporairement ces privilèges jusqu'à ce que l'ensemble de - <literal>-core</literal> examine la question. En cas - d'<quote>urgence</quote> (un <foreignphrase>committer</foreignphrase> - endommageant les archives), une suspension provisoire peut aussi être - décidée par l'un des administrateurs des archives ou tout autre membre - de l'équipe de base qui se trouve être réveillé à ce moment-là. Seule la - totalité de l'équipe de base peut suspendre pour une durée importante - les droits d'un <foreignphrase>committer</foreignphrase>, ou les - retirer définitivement, cette dernière mesure n'étant en général prise - qu'après consultation avec les - <foreignphrase>committers</foreignphrase>. Le but de cette règle n'est - pas de faire de l'équipe de base une bande de dictateurs cruels qui - puissent disposer des <foreignphrase>committers</foreignphrase> comme de - cannettes vides, mais d'avoir une sorte de fusible pour le projet. Si - quelqu'un est sévèrement incontrôlable, il est important de pouvoir - réagir immédiatement, au lieu d'être paralysé par la discussion. Dans - tous les cas, le <foreignphrase>committers</foreignphrase> dont les - privilèges sont suspendus a le droit d'être “entendu”, c'est - à ce moment-là qu'il est décidé de la durée totale de la suspension. Il - peut aussi demander un révision de la décision après 30 jours et tous - les 30 jours ensuite (à moins que la durée totale de la suspension soit - inférieure à 30 jours). Quelqu'un à qui les privilèges ont été - définitivement retiré peut demander que son cas soit revu après 6 mois. - La procédure de révision est <emphasis>strictement - informelle</emphasis>, et, dans tous les cas, l'équipe de base se - réserve le droit de prendre en compte ou d'ignorer les demandes de - révision, si elle pense que sa décision initiale était la bonne.</para> - - <para>Pour toutes les autres aspects du fonctionnement du projet, l'équipe - de base est un sous-ensemble des - <foreignphrase>committers</foreignphrase> et est soumise aux - <emphasis>même</emphasis> règles. Ce n'est pas parce que quelqu'un - appartient à l'équipe de base qu'il est dispensé de suivre les - instructions que l'on vient de donner, les “pouvoirs - spéciaux” de l'équipe de base ne sont effectifs que lorsqu'elle - agit en tant que groupe, pas individuellement. - Individuellement, nous sommes tous d'abord des - <foreignphrase>committers</foreignphrase> et ensuite seulement membres - de l'équipe de base.</para> - - <sect2> - <title>Détails</title> - - <orderedlist> - <listitem> - <para>Respectez les autres - <foreignphrase>committers</foreignphrase>.</para> - - <para>Cela signifie que vous devez traiter les autres - <foreignphrase>committers</foreignphrase> en tant que groupe de - co-développeurs qu'ils sont en fait. Malgré nos tentatives - occasionnelles pour prouver le contraire, on ne devient pas - <foreignphrase>committer</foreignphrase> en étant stupide et - rien n'est plus irritant que d'être traité comme tel par un de vos - collaborateurs. Que nous apprécions toujours quelqu'un d'autre - ou pas (chacun a ses jours sans), nous devons malgré tout toujours - <emphasis>traiter</emphasis> les autres avec respect, sans quoi - c'est toute l'organisation de l'équipe qui se désagrège - rapidement.</para> - - <para>Etre capable de travailler ensemble à long terme est le plus - grand atout du projet, bien plus important que n'importe quel - série de modifications du code, et transformer les discussions à - propos du code en disputes qui affectent notre capacité à - travailler harmonieusement ensemble à long terme n'en vaut - vraiment pas la peine, quelque justification que l'on puisse - imaginer.</para> - - <para>Pour respecter cette règle, n'envoyez pas de courrier - électronique quand vous êtes en colère et ne vous comportez en - outre pas de façon à paraître inutilement aggressif aux autres. - Commencez par vous calmer et réfléchissez à la manière la plus - efficace de convaincre l(es) autre(s) personne(s) de la justesse - de votre point de vue. Ne partez pas sur les chapeaux de roues - pour vous sentir simplement immédiatement mieux au prix d'une - dispute à long terme. Non seulement c'est une mauvaise - “gestion des ressources”, mais les responsables du - projet sanctionneront sévérement les manifestations d'aggressivité - publiques et répétées, jusqu'à suspendre ou vous retirer - définitivement vos privilèges de - <foreignphrase>committer</foreignphrase>. Ce n'est pas une chose - qu'ils aiment le moins du monde faire, mais l'unité est la - priorité. Aucune dose de code ou de judicieux conseils ne s'y - mesure.</para> - </listitem> - - <listitem> - <para>Discutez de toute modification importante - <emphasis>avant</emphasis> intégration.</para> - - <para>Ce n'est pas dans les archives CVS que les modifications - doivent être intégrées pour validation ou discussion, cela doit - se faire d'abord sur les listes de dicussion et être intégré - ensuite lorsqu'on est arrivé à quelque chose qui approche du - consensus. Cela ne signifie pas que vous deviez demander la - permission avant de corriger chaque erreur évidente de syntaxe ou - d'orthographe dans une page de manuel, mais simplement que vous - devriez essayer de sentir quand vous envisagez une modification - qui n'est pas aussi triviale et qui demande à être discutée au - préalable. Les gens n'ont rien contre les modifications - d'envergure si le résultat en est quelque chose de nettement - meilleur que ce qu'ils avaient auparavant, mais ils n'aiment pas - être <emphasis>surpris</emphasis> par ces modifications. La - meilleure façon de vous assurer que vous allez dans le bon sens et - de faire valider votre code par un ou plusieurs autres - <foreignphrase>committers</foreignphrase>.</para> - - <para>En cas de doute, demandez une validation !</para> - </listitem> - - <listitem> - <para>Respectez les responsbales de la maintenance, s'il y en - a.</para> - - <para>De nombreuses parties de FreeBSD n'“appartiennent” - à personne, c'est-à-dire qu'il n'y aura personne pour pousser de - hauts cris si vous faites des modifications sur “leur” - terrain, mais il vaut mieux s'en assurer d'abord. Une de nos - convention est de mettre une ligne indiquant qui maintient dans le - <filename>Makefile</filename> du paquetage ou de la - sous-arborescence activement maintenue par une ou plusieurs - personnes voyez <ulink - url="http://www.FreeBSD.org/handbook/policies.html">http://www.FreeBSD.org/handbook/policies.html</ulink> - pour plus d'information à ce sujet. Quand il y a plusieurs - personnes qui maintiennent une même section de code, les - soumissions d'une de ces personnes sur ces sections doivent être - revues par au moins une des autres personnes qui la maintiennent. - Dans le cas où l'<quote>attribution</quote> n'est pas claire, - vous pouvez aussi consulter les messages de CVS pour les - fichiers concernés, pour voir si quelqu'un a travaillé dessus - récemment ou travaille de façon prédominante sur ce - domaine.</para> - - <para>Il y a d'autres parties de FreeBSD qui sont contrôlées par - quelqu'un qui gère tout un domaine de l'évolution de FreeBSD, - l'internationalisation ou le réseau par exemple. Reportez-vous à - <ulink - url="http://www.FreeBSD-fr.org/handbook/staff-who.html">http://www.FreeBSD.org/handbook/staff-who.html</ulink> - pour avoir plus d'informations à ce sujet.</para> - </listitem> - - <listitem> - <para>N'intervenez jamais directement sur les archives. Demandez à - un responsable des archives de le faire.</para> - - <para>C'est assez clair - vous n'avez pas le droit de - faire de modifications directement sur les archives, point. En cas - de difficultés, adressez-vous à l'un des responsables des - archives en envoyant un courrier électronique à - <email>cvs@FreeBSD.org</email> et attendez qu'ils corrigent le - problème et vous relancent. N'essayez pas de régler le problème - vous-même !</para> - - <para>Si vous envisagez de supprimer un étiquette ou d'en mettre une - nouvelle, ou bien d'importer du code sur nouvelle branche, il vous - sera peut-être utile de demander d'abord un avis. Nombreux sont - ceux qui se trompent en faisant cela les premières fois et cela - aboutit à la modification de nombreux fichiers et irrite les - utilisateurs de <application>CVSup/CTM</application> qui recoivent - tout à coup de nombreuses mises à jour inutiles.</para> - </listitem> - - <listitem> - <para>Toute modification controversée doit, si le responsable de - la maintenance ou l'Architecte Principal le demande, être annulée - jusqu'à ce que la discussion soit terminée. Les modifications pour - des questions de sécurité peuvent être effectuées par l'Officier - de Sécurité, malgré les souhaits d'un responsable de la - maintenance.</para> - - <para>Ce peut être dur à avaler en cas de conflit (quand chaque - partie est bien sûr convaincue qu'elle a raison) mais CVS permet - d'éviter de prolonger la dispute, il est bien plus facile de - revenir sur les modifications, d'attendre que tout le monde se - calme et d'essayer de voir quelle est la meilleure solution. - S'il s'avère que la modification était la bonne chose à faire, - elle peut-être facilement remise en service. Dans le cas contraire, - les utilisateurs n'auront pas eu à subir l'évolution erronnée le - temps que tout le monde ait débattu de sa pertinence. Il est très - rare que l'on ait à revenir sur des modifications archivées, parce - que la discussion met la plupart du temps en évidence les - interventions controversés ou non justifiées avant même qu'elles - n'aient été intégrées, mais dans les rares cas où cela se produit, - il faut revenir en arrière sans discuter de façon à ce que l'on - puisse immédiatement examiner s'il y avait erreur ou non.</para> - </listitem> - - <listitem> - <para>Les modifications doivent être faites dans - <literal>-current</literal> avant d'être reportées dans - <literal>-stable</literal> sauf autorisation expresse du - responsable des versions ou si elles ne s'appliquent pas à - <literal>-current</literal>. Toute modification non triviale ni - urgente doit rester au moins trois jours dans - <literal>-current</literal> pour être testée suffisamment avant - d'être reportée. Le responsable des versions a les mêmes - prérogatives sur la branche <literal>-stable</literal> que celles - décrites, pour ce qui concerne l'Architecte Principal, par le règle - #5</para> - - <para>C'est un autre point <quote>sans appel</quote> parce que c'est - l'ingénieur de version qui est en dernier lieu responsable (et - encaisse les coups) si une modification s'avère mal fondée. - Respectez s'il vous plaît cette règle et coopérez totalement - avec le responsable des versions pour ce qui concerne la branche - <literal>-stable</literal>. La gestion de la branche - <literal>-stable</literal> peut parfois paraître excessivement - conservatrice à un observateur occasionnel, mais rappelez vous que - c'est le principe même de <literal>-stable</literal> et que - <literal>-current</literal> suit d'autres règles. Il n'y a aucune - raison d'avoir une branche <literal>-current</literal> si toutes - les modifications vont immédiatement dans - <literal>-stable</literal>, sans pouvoir d'abord être testées par - les développeurs de <literal>-current</literal>, laissez donc - passer un peu de temps avant de les reporter dans - <literal>-stable</literal>, à moins que la modification ne soit - critique, urgente, ou suffisamment triviale pour rendre tout - test ultérieur superflu (correction d'ortographe dans les pages - de manuel, de bogue flagrant ou de faute de frappe, etc.) En - d'autres termes, faites preuve de bon sens.</para> - </listitem> - - <listitem> - <para>Ne vous disputez pas publiquement avec les autres - <foreignphrase>committers</foreignphrase> ; cela fait mauvais - effet. Si vous êtes en “profond” désaccord sur un point, - n'en discutez qu'en privé.</para> - - <para>Le projet a une image publique à conserver et cette image est - très importante pour nous tous, en particulier si nous voulons - continuer à attirer de nouveaux membres. Il y aura des situations - où, malgré tous les efforts de chacun pour rester mesurés, - certains perdront leur calme et laisserons leur colère s'exprimer, - et le mieux que nous puissions faire est d'essayer d'en minimiser - les effets jusqu'à ce que chacun se soit de nouveau calmé. Cela - signifie que vous ne devez ni laisser exprimer votre colère en - public, ni faire suivre de courriers privés sur des listes ou des - alias publics. Ce que les gens se disent entre eux est souvent - moins édulcoré que ce qu'ils disent en public, et ce type - d'échange n'y a donc pas sa place - cela ne peut - qu'envenimer une situation déjà regrettable. Si la personne qui - vous adresse des reproches prend au moins la précaution de le - faire en privé, ayez vous aussi la correction de le garder pour - vous. Si vous estimez avoir été injustement traité par un autre - développeur et que cela vous soucie, parlez-en à l'équipe de base - plutôt qu'en public. Nous ferons de notre mieux pour jouer les - médiateurs et ramener les choses au raisonnable. Quand la - discussion a trait à une modifications de code et que les - participants n'arrivent apparemment pas à se mettre d'accord, - l'équipe de base peut désigner une troisième partie ayant l'accord - mutuel pour résoudre le problème. Les autres personnes impliquées - doivent alors accepter de se plier aux décisions de cette - troisième partie.</para> - </listitem> - - <listitem> - <para>Respectez tous les gels du code et lisez régulièrement la - liste de diffusion pour les - <foreignphrase>committers</foreignphrase> pour savoir quand il y - en a.</para> - - <para>Soumettre des modifications pendant un gel du code est - vraiment une grave erreur et l'on attend des - <foreignphrase>committers</foreignphrase> qu'ils se tiennent au - courant de ce qui se passe avant de se remanifester après une - longue absence et soumettre 10 Mo de code accumulés pendant ce - temps. Les gens qui se comportent régulièrement de cette façon - verront leurs privilèges de - <foreignphrase>committers</foreignphrase> suspendus jusqu'à leur - retour du Joyeux Camp de Rééducation de FreeBSD que nous gérons - au Gröenland.</para> - </listitem> - - <listitem> - <para>En cas de doute sur une procédure, renseignez-vous - d'abord !</para> - - <para>De nombreuses erreurs sont commises parce que quelqu'un est - pressé et estime qu'il sait quelle est la meillleure façon de - faire quelque chose. Il y a des bonnes chances que vous ne sachiez - en fait pas comment faire ce que vous n'avez encore jamais fait et - que vous ayez vraiment besoin de demander d'abord sans quoi vous - allez vous mettre publiquement dans l'embarras. Il n'y a aucune - honte à demander “Comment diable fait-on cela ?”, - nous savons déjà que vous êtes quelqu'un d'intelligent, sans quoi - vous ne seriez pas - <foreignphrase>committer</foreignphrase>.</para> - </listitem> - - <listitem> - <para>Testez vos modifications avant de les intégrer.</para> - - <para>Cela peut paraître évident, mais si c'était vraiment le cas, - nous ne verrions probablement pas autant de cas où les gens ne le - font manifestement pas. Si vos modifications touchent le noyau, - vérifiez que vous pouvez toujours compiler et - <literal>GENERIC</literal> et <literal>LINT</literal>. Si vos - modifications s'appliquent ailleurs, assurez-vous que vous pouvez - toujours compiler l'ensemble du système - <command>make - world</command>. Si vous faites vos modifications sur une branche - donnée, veillez à tester vos modifications sur une machine qui - utilise cette version du système. Si votre modifications risque - de poser des problèmes sur une autre architecture matérielle, - veillez à tester sur toutes les architectures supportées. Nous - n'avons actuellement qu'x86 et Alpha, c'est donc assez facile à - faire. Si vous avez besoin de tester sur l'AXP, votre compte sur - <hostid role="fqdn">beast.FreeBSD.org</hostid> vous permet de - compiler et tester des binaires/noyaux/etc. sur Alpha. Quand - d'autres architectures seront ajoutées à la liste des - plates-formes supportées par FreeBSD, des ressources partagées - de test seront disponibles.</para> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Autres suggestions</title> - - <para>Quand vous intégrez des modifications de la documentation, - utilisez un correcteur orthographique avant de soumettre. Pour toutes - les documentations en SGML, vous devrirez aussi vérifier que vos - directives de formatage sont valides, avec un <command>make - lint</command>.</para> - - <para>Pour toutes les pages de manuel en ligne, servez-vous de - <command>manck</command> (au catalogue des logiciels portés) sur la - page pour vérifier que toutes les références croisées et noms de - fichiers sont corrects et que les <makevar>MKLINK</makevar>s - appropriés sont installés.</para> - </sect2> - </sect1> - - <sect1> - <title>Questions Fréquemment Posées propres aux logiciels portés</title> - - <qandaset> - <qandadiv> - <title>Importer un nouveau logiciel</title> - - <qandaentry> - <question> - <para>Comment faire pour importer un nouveau logiciel ?</para> - </question> - - <answer> - <para>Lisez s'il vous plaît d'abord la section sur la copie des - archives.</para> - - <para>Pour importer un nouveau logiciel, le plus facile est - d'utiliser la procédure <command>easy-import</command> sur - <hostid>freefall</hostid>. Elle vous posera quelques questions - et importera directement le logiciel dans le répertoire que vous - aurez indiqué. Elle a été écrite par &a.joerg;, envoyez-lui - s'il vous plaît un courrier électronique si vous avez des - questions à propos de <command>easy-import</command>.</para> - - <para>Il y a une chose qu'elle ne fera pas à votre place : - ajouter le logiciel au <filename>Makefile</filename> du - répertoire de niveau supérieur (catégorie). Il faudra le faire - vous-même.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Y'a-t-il d'autres choses qu'il faut que je sache quand - j'importe un nouveau logiciel ?</para> - </question> - - <answer> - <para>Vérifiez votre portage, pour vous assurez qu'il compile et - que le paquetage est correctement construit. Voici ce qu'il est - recommandé de faire :</para> - - <screen>&prompt.user; <userinput>make install</userinput> -&prompt.user; <userinput>make package</userinput> -&prompt.user; <userinput>make deinstall</userinput> -&prompt.user; <userinput>pkg_add <replaceable>le_paquetage_que_vous_venez_de_compiler</replaceable></userinput> -&prompt.user; <userinput>make deinstall</userinput> -&prompt.user; <userinput>make reinstall</userinput> -&prompt.user; <userinput>make package</userinput> - </screen> - - <para>Le chapitre - <ulink url="../handbook/porting.html">faire vous-même un - portage</ulink> du Manuel de Référence vous donnera des - instructions plus détaillées.</para> - - <para>Utilisez &man.portlint.1; pour vérifier la syntaxe du - portage. Il n'est pas indispensable d'éliminer la totalité des - messages d'avertissement, mais veillez à régler les problèmes - les plus évidents.</para> - - <para>Si le logiciel porté a été soumis par quelqu'un qui n'a - jamais collaboré au projet auparavant, ajoutez le nom de cette - personne à la section <citetitle pubwork="section">Autres - Collaborateurs</citetitle> du Manuel de Référence.</para> - - <para>Fermez le PR, si le portage résulte d'un PR. Pour fermer un - PR, il suffit d'exécuter <userinput>edit-pr - <replaceable>PR#</replaceable></userinput> sur - <hostid>freefall</hostid> et de modifier la valeur de la - variable <varname>state</varname> de <constant>open</constant> - en <constant>closed</constant>. On vous demandera d'entrer un - commentaire, et c'est tout.</para> - </answer> - </qandaentry> - </qandadiv> - - <qandadiv> - <title>Copies des archives</title> - - <qandaentry> - <question> - <para>Quand avons-nous besoin qu'une opération de copie soit faite - sur les archives ?</para> - </question> - - <answer> - <para>Quand vous voulez importer un logiciel en rapport avec un - autre logiciel déjà archivé dans un autre répertoire, envoyez - s'il vous plaît un courrier électronique au responsable des - logiciels portés pour lui demander son avis. - <wordasword>En rapport</wordasword> désigne ici une version - différente ou une version légèrement modifiée. En exemple, on - peut citer <filename>print/ghostscript*</filename> (versions - différentes) et <filename>x11-wm/windowmaker*</filename> - (version Anglaise et version internationalisée).</para> - - <para>Comme autre exemple, on peut citer le cas d'un logiciel porté - déplacé d'un sous-répertoire à un autre, ou d'une modification du - nom d'un répertoire parce que l'auteur a changé le nom de son - logiciel, bien qu'il dérive d'un logiciel déjà importé.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Quand n'avons-nous <emphasis>pas</emphasis> besoin q'une - opération de copie soit faite sur les archives ?</para> - </question> - - <answer> - <para>Quand il n'y a pas d'historique à conserver. Si un logiciel - est importé dans une catégorie erronnée et immédiatement - déplacé, il suffit d'un simple <command>cvs remove</command> de - l'ancien suivi d'un <command>cvs import</command> du - nouveau.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Que faut-il que je fasse ?</para> - </question> - - <answer> - <para>Envoyez un courrier électronique au responsable des - logiciels portés, qui fera la copie de l'ancien emplacement vers - le nouveau. Vous en serez averti, et l'on attendra alors de vous - que vous exécutiez les opérations suivantes :</para> - - <procedure> - <step> - <para><command>cvs remove</command> de l'ancien logiciel (si - besoin est),</para> - </step> - - <step> - <para>Correction du <filename>Makefile</filename> de niveau - supérieur (catégorie),</para> - </step> - - <step> - <para>Mise à jour de - <filename>CVSROOT/modules</filename></para> - </step> - - <step> - <para>Si d'autres logiciels dépendent de celui qui vient - d'être mis à jour, correction des lignes décrivant leurs - dépendendances dans leurs - <filename>Makefile</filename>s,</para> - </step> - - <step> - <para>Si le logiciel a changé de catégories, modification en - conséquence de la ligne <makevar>CATEGORIES</makevar> du - <filename>Makefile</filename> du logiciel.</para> - </step> - </procedure> - </answer> - </qandaentry> - </qandadiv> - - <qandadiv> - <title>Gel des logiciels portés</title> - - <qandaentry> - <question> - <para>Qu'est-ce qu'un <quote>gel des logiciels - portés</quote> ?</para> - </question> - - <answer> - <para>Avant livraison d'une nouvelle version, il est nécessaire de - limiter les interventions sur les archives des logiciels portés - pendant une courte période, le temps que les paquetages et la - version elle-même soient compilés. Cela pour garantir la - cohérence entre les différents composants de la version, c'est - cela que l'on appelle le <quote>gel des logiciels - portés</quote>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Combien de temps dure ce gel ?</para> - </question> - - <answer> - <para>Habituellement deux à trois jours.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Qu'est-ce que cela signifie pour moi ?</para> - </question> - - <answer> - <para>Pendant le gel des logiciels portés, vous ne devez pas - soumettre quoi que ce soit dans l'arborescence des logiciels - portés, sauf autorisation explicite du responsable des - logiciels. <quote>Autorisation explicite</quote> correspond ici - à l'un des deux cas de figure suivants :</para> - - <itemizedlist> - <listitem> - <para>Vous avez posé la question au responsable des logiciels, - et il vous a répondu : <quote>Allez-y, - intégrez</quote>.</para> - </listitem> - - <listitem> - <para>Le responsable des ports vous a envoyé un courrier - électronique, soit directement, soit à la liste de - diffusion, pour signaler un problème à corriger sur le - logiciel.</para> - </listitem> - </itemizedlist> - - <para>Notez bien que vous n'êtes pas implicitement autorisé à - corriger un logiciel pendant un gel simplement parce qu'il ne - compile plus.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Comment suis-je averti du début du gel des - logiciels ?</para> - </question> - - <answer> - <para>Le responsable des logiciels portés enverra des messages - d'avertissement sur la &a.ports; et la &a.committers; pour - annoncer la mise en oeuvre prochaine d'une nouvelle version, - habituellement deux à trois semaines à l'avance. La date exacte - ne sera définitivement fixée que quelques jours avant. Cela - parce que le gel des logiciels doit être synchronisé avec la - mise en oeuvre de la version elle-même, et que ce n'est qu'à ce - moment-là que l'on sait exactement quand cette opération aura - lieu.</para> - - <para>Quand le gel commencera, il y aura bien sûr une nouvelle - annonce sur la &a.committers;.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Comment suis-je averti de la fin du gel des - logiciels ?</para> - </question> - - <answer> - <para>Quelques heures après la mise en place de la nouvelle - version, le responsable des logiciels enverra un courrier - électronique à la &a.ports; et à la &a.committers pour annoncer - la fin du gel des logiciels. Remarquez que la finalisation de la - version n'implique pas automatiquement la fin du gel. Nous - devons nous assurer qu'un problème de dernière minute ne demande - pas de reconstruction immédiate de la version.</para> - </answer> - </qandaentry> - </qandadiv> - - <qandadiv> - <title>Questions diverses</title> - - <qandaentry> - <question> - <para>Comment sais-je si un logiciel porté compile correctement ou - non ?</para> - </question> - - <answer> - <para>Commencez par consulter - <ulink url="http://bento.FreeBSD.org/~asami/errorlogs/">http://bento.FreeBSD.org/~asami/errorlogs/</ulink>. - Vous y trouverez les messages d'erreurs des dernières - compilations des logiciels portés sous - <literal>3-stable</literal> et - <literal>4-current</literal>.</para> - - <para>Néanmoins, il ne suffit pas qu'un logiciel n'y apparaisse - pas pour pouvoir dire qu'il compile correctement. (Une de ses - dépendances, par exemple, peut ne pas avoir compilé.) Voici les - répertoires de <hostid>bento</hostid>, n'hésitez pas à aller y - voir :</para> - - <programlisting> -/a/asami/portbuild/3/errors messages d'erreur de la dernière compilation de 3-stable - /logs tous les messages de la dernière compilation de 3-stable - /packages messages d'erreur sur les paquetages de la dernière compilation 3-stable - /bak/errors messages d'erreur de la dernière compilation intégrale de 3-stable - /bak/logs tous les messages de la dernière compilation de l'intégrale de 3-stable - /bak/packages messages d'erreur sur les paquetages de la dernière compilation intégrale de 3-stable - /4/errors messages d'erreur de la dernière compilation de 4-current - /logs tous les messages de la dernière compilation de 4-current - /packages messages d'erreur sur les paquetages de la dernière compilation 4-current - /bak/errors messages d'erreur de la dernière compilation intégrale de 4-current - /bak/logs tous les messages de la dernière compilation de l'intégrale de 4-current - /bak/packages messages d'erreur sur les paquetages de la dernière compilation intégrale de 4-current - </programlisting> - - <para>Essentiellement, si le logiciel apparait dans - <filename>packages</filename>, ou dans - <filename>logs</filename> mais pas dans - <filename>errors</filename>, il compile correctement. (Les - répertoires <filename>errors</filename> contiennent ce que vous - voyez sur la page Web.)</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>J'ai importé un nouveau logiciel. Dois-je l'ajouter au - fichier <filename>INDEX</filename> ?</para> - </question> - - <answer> - <para>Non. Le responsable des logiciels portés regénère - l'<filename>INDEX</filename> et l'intègre régulièrement aux - archives.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Y'a-t-il d'autres fichiers auxquels je ne dois pas - toucher ?</para> - </question> - - <answer> - <para>Tous les fichiers immédiatement dans - <filename>ports/</filename>, et tous les fichiers des - sous-répertoires dont le nom commence par une majuscule - (<filename>Mk</filename>, <filename>Tools</filename>, etc.). Le - responsable des logiciels est particulièrement susceptible pour - ce qui touche à <filename>ports/Mk/bsd.port.mk</filename>, n'y - touchez donc pas à moins que vous ne vouliez affronter son - courroux.</para> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - </sect1> -</article> diff --git a/fr_FR.ISO8859-1/articles/ddwg/Makefile b/fr_FR.ISO8859-1/articles/ddwg/Makefile deleted file mode 100644 index 68714b471c..0000000000 --- a/fr_FR.ISO8859-1/articles/ddwg/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $Id: Makefile,v 1.1 2000-06-01 19:14:23 gioria Exp $ -# Original revision: 1.4 -# - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/ddwg/article.sgml b/fr_FR.ISO8859-1/articles/ddwg/article.sgml deleted file mode 100644 index 012e35654a..0000000000 --- a/fr_FR.ISO8859-1/articles/ddwg/article.sgml +++ /dev/null @@ -1,1861 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $Id: article.sgml,v 1.1 2000-06-01 19:14:23 gioria Exp $ - Original revision: n.nn ---> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; - <!ENTITY rel.current CDATA "3.2"> -]> - - -<article lang="fr"> - <artheader> - <title>Le guide de l'auteur de pilotes de périphériques pour FreeBSD</title> - <authorgroup> - <author> - <firstname>Eric L.</firstname> - <surname>Hernes</surname> - </author> - </authorgroup> - &artheader.copyright; - <abstract> - <para><email>erich@rrnet.com</email></para> - <para>29 Mai 1996</para> - <para>Ce document décrit comment ajouter un module de gestion de -périphérique à FreeBSD. Il <emphasis>n'est pas</emphasis> destiné pour être un -cours d'instruction sur des modules de gestion de périphérique -d'Unix en général. Il est destiné pour les auteurs de module de -gestion de périphérique, au courant du modèle de module de gestion -de périphérique d'Unix, pour travailler sur FreeBSD. - </para> - &abstract.license; - &abstract.disclaimer; - &trans.a.dntt; - </abstract> - </artheader> - - -<sect1> -<title>Spécificité de FreeBSD2.x</title> - -<para>Dû aux changements de FreeBSD avec le temps, ce guide est -seulement précis en ce qui concerne FreeBSD 2.x. Un guide de -rechange pour FreeBSD 3.x et au-delà est en train d'être écrit. -Contactez Jeroen Ruigrok <email>asmodai@wxs.nl</email> si -vous voulez l'aider à ce sujet. -</para> -</sect1> - - -<sect1> -<title>Généralité</title> - -<para> <emphasis>Le noyau de FreeBSD est très bien -documenté, malheureusement il est entièrement écrit en `C'.</emphasis> -</para> -</sect1> - -<sect1> -<title>Types de pilotes de module de périphériques.</title> - -<sect2> -<title>Caractère</title> - -<sect3> -<title>Structures de données</title> - -<para>Structure <citerefentry><refentrytitle>cdevsw</refentrytitle></citerefentry></para> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>d_open()</function></title> -<para> -<function>d_open()</function> prend plusieurs arguments, la liste formelle ressemble à -quelque chose comme : -</para> - -<programlisting> -int -d_open(dev_t dev, int flag, int mode, struct proc *p) -</programlisting> - -<para><function>d_open()</function> est appelé à <emphasis>chaque</emphasis> ouverture du périphérique.</para> - -<para>L'argument <citerefentry><refentrytitle>dev</refentrytitle></citerefentry> contient le nombre majeur et mineur du -périphérique ouvert. Ils sont disponibles par les macros -<citerefentry><refentrytitle><function>major()</function></refentrytitle></citerefentry> et <citerefentry><refentrytitle><function>minor()</function></refentrytitle></citerefentry> -</para> - -<para>Les arguments <citerefentry><refentrytitle>flag</refentrytitle></citerefentry> et <citerefentry><refentrytitle>mode</refentrytitle></citerefentry> sont comme décrits sur -la page de manuel de -<ulink url="http://www.freebsd.org/cgi/man.cgi?open(2)">open</ulink>. -Il est recommandé que vous examiniez -ces derniers pour vous assurer des droits d'accès dans <sys/fcntl.h> -et faire ce qui est exigé. Par exemple si <citerefentry><refentrytitle>flag </refentrytitle></citerefentry> est -(O_NONBLOCK | O_EXLOCK) l'ouverture échouerait si il bloquait ou -si l'accès exclusif ne pouvait pas être accordé. -</para> - -<para> -L'argument <citerefentry><refentrytitle>p</refentrytitle></citerefentry> contient toutes les informations à propos du -processus actuel. -</para> -</sect4> - -<sect4> -<title><function>d_close()</function></title> -<para> <function>d_close()</function> prend la même liste d'argument que <function>d_open()</function>: -</para> - -<programlisting> -int -d_close(dev_t dev , int flag , int mode , struct proc *p) -</programlisting> - -<para><function>d_close()</function> est seulement appelé à la dernière fermeture de votre -périphérique (par périphérique mineur). Par exemple dans le fragment -suivant de code, <function>d_open()</function> est appelé 3 fois, mais <function>d_close()</function> -seulement une fois. -</para> - -<programlisting> - ... - fd1=open("/dev/mydev", O_RDONLY); - fd2=open("/dev/mydev", O_RDONLY); - fd3=open("/dev/mydev", O_RDONLY); - ... - <useful stuff with fd1, fd2, fd3 here> - ... - close(fd1); - close(fd2); - close(fd3); - ... -</programlisting> - -<para>Les arguments sont semblables à ceux décrits ci-dessus pour -<function>d_open()</function>. -</para> -</sect4> - -<sect4> -<title><function>d_read()</function> et <function>d_write()</function></title> - -<para><function>d_read()</function> et d_write prennent les listes suivantes d'argument: -</para> - -<programlisting> -int -d_read(dev_t dev, struct uio *uio, int flat) -int -d_write(dev_t dev, struct uio *uio, int flat) -</programlisting> - -<para> -Les points d'entrée de <function>d_read()</function> et de <function>d_write()</function> sont appelés quand -<ulink url="http://www.freebsd.org/cgi/man.cgi?read(2)">read</ulink> et -<ulink url="http://www.freebsd.org/cgi/man.cgi?write(2)">write</ulink> -sont appelés sur votre périphérique depuis l'espace utilisateur. Le transfert -des données peut être manipulé par la routine du noyau <function>uiomove()</function>. -</para> -</sect4> - -<sect4> -<title><function>d_ioctl()</function></title> - -<para> Sa liste d'argument est comme suit: -</para> -<programlisting> -int -d_ioctl(dev_t dev, int cmd, caddr_t arg, int flag, struct proc *p) -</programlisting> - -<para> -<function>d_ioctl()</function> est un fourre-tout pour les exécutions qui ne semblent -pas raisonnable dans un paradigme lecture/écriture. Le plus -célèbre de tout les ioctl est probablement celui sur des périphériques -tty, par le -<ulink url="http://www.freebsd.org/cgi/man.cgi?stty(1)">stty</ulink>. - -Le point d'entrée d'ioctl est appelé depuis l'<function>ioctl()</function> de -<filename>sys/kern/sys_generic.c</filename></para> - -<para> -Il y a quatre types différents d'ioctl qui peuvent être implémentés. - -<sys/ioccom.h> contient des macros pratiques de -pour définir ces ioctls. -</para> - -<itemizedlist> -<listitem> -<para><citerefentry><refentrytitle>_IO(g, n) </refentrytitle></citerefentry> pour les opérations de type contrôle. -</para> -</listitem> - -<listitem> -<para> -<citerefentry><refentrytitle>_IOR(g, n, t) </refentrytitle></citerefentry> pour des opérations lisant des données d'un -périphérique. -</para> -</listitem> - -<listitem> -<para> -<citerefentry><refentrytitle>_IOW(g, n, t) </refentrytitle></citerefentry> pour les opérations écrivant des données -sur un périphérique. -</para> -</listitem> - -<listitem> -<para> -<citerefentry><refentrytitle>_IOWR(g,n,t)</refentrytitle></citerefentry> pour les opérations écrivant sur un périphérique -puis lisent les données. -</para> -</listitem> -</itemizedlist> - - -<para> -Ici <citerefentry><refentrytitle>g </refentrytitle></citerefentry> se rapporte à un <emphasis>groupe </emphasis>/. C'est une valeur -de 8 bits, en général indicative du périphérique ; par exemple, 't' -est utilisé dans des ioctls de tty. <citerefentry><refentrytitle>n</refentrytitle></citerefentry> se -rapporte au nombre de l'ioctl dans le groupe. Sur SCO, ce seul nombre -dénote l'ioctl. <citerefentry><refentrytitle>t</refentrytitle></citerefentry> est le type de données qui sera -passé au pilote de périphérique; ceci est alors remis à un opérateur -<function>sizeof()</function> du noyau. L'appel système <function>ioctl()</function> fera soit un <function>copyin()</function> -soit un <function>copyout()</function> ou les deux à votre pilote, puis vous -renverra un pointeur à la structure de données dans l'argument -<citerefentry><refentrytitle>arg</refentrytitle></citerefentry> de l'appel d'd_ioctl. Actuellement la taille de -données est limitée à une page (4k sur l'i386). -</para> -</sect4> - -<sect4> -<title><function>d_stop()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>d_reset()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>d_devtotty()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>d_poll()</function> (3.0 et plus) ou <function>d_select()</function> (2.2)</title> - -<para>la liste d'argument de <function>d_poll()</function> est comme suit : -</para> - -<programlisting> -void -d_poll(dev_t dev, int events, struct proc *p) -</programlisting> - -<para> <function>d_poll()</function> est employé pour découvrir si un périphérique -est prêt pour les E/S. Par exemple, attendre que des données du réseau -soient dispnibles, ou que l'utilisateur presse une touche. -Cela correspond à un appel de <function>poll()</function> dans l'espace utilisateur. -</para> - -<para>L'appel à <function>d_poll()</function> devrait vérifier les événements -indiqués dans le masque d'évènement. Si aucun des événements demandés n'est -en activité, mais qu'elles pourraient devenir actif plus tard, il -devrait enregistrer ceci pour les actions futures du noyau. -<function>d_poll()</function> fait ceci en appelant <function>selrecord()</function> avec une structure -selinfo pour ce périphérique. La somme de toutes ces activités -ressemblent à quelque chose comme ceci: -</para> - -<programlisting> -static struct my_softc { - struct queue rx_queue; /* As example only - not required */ - struct queue tx_queue; /* As example only - not required */ - struct selinfo selp; /* Required */ -} my_softc[NMYDEV]; - -... - -static int -mydevpoll(dev_t dev, int events, struct proc *p) -{ - int revents = 0; /* Events we found */ - int s; - struct my_softc *sc = &my_softc[dev]; - - /* We can only check for IN and OUT */ - if ((events & (POLLIN|POLLOUT)) == 0) - return(POLLNVAL); - - s = <function>splhigh()</function>; - /* Writes are if the transmit queue can take them */ - if ((events & POLLOUT) && - !IF_QFULL(sc->tx_queue)) - revents |= POLLOUT; - /* ... while reads are OK if we have any data */ - if ((events & POLLIN) && - !IF_QEMPTY(sc->rx_queue)) - revents |= POLLIN; - if (revents == 0) - selrecord(p, &sc->selp); - splx(s); - return revents; -} -</programlisting> - -<para> <function>d_select()</function> est utilisé dans la version 2.2 et -précédentes de FreeBSD. Au lieu de 'events', il prend un simple -entier 'rw', qui peut être FREAD pour la lecture (comme dans -POLLIN ci-dessus), FWRITE pour l'écriture (comme dans POLLOUT ci-dessus), -et 0 pour 'exception' - lorsque quelque chose d'exceptionnel se produit, -comme une carte étant insérée ou retirée pour le pilote de -pccard. -</para> -<para>Pour 'select', le fragment correspondant à la description -ci-dessus ressembleraient à ceci: -</para> -<programlisting> -static int -mydevselect(dev_t dev, int rw, struct proc *p) -{ - int ret = 0; - int s; - struct my_softc *sc = &my_softc[dev]; - - s = <function>splhigh()</function>; - switch (rw) { - case FWRITE: - /* Writes are if the transmit queue can take them */ - if (!IF_QFULL(sc->tx_queue)) - ret = 1; - break; - case FREAD: - /* ... while reads are OK if we have any data */ - if (!IF_QEMPTY(sc->rx_queue)) - ret = 1; - break; - case 0: - /* This driver never get any exceptions */ - break; - } - if(ret == 0) - selrecord(p, &sc->selp); - splx(s); - return(revents); -} -</programlisting> -</sect4> - -<sect4> -<title><function>d_mmap()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>d_strategy()</function></title> - -<para> -La liste d'argument de <function>d_strategy()</function> est comme suit : -</para> - -<programlisting> -void -d_strategy(struct buf *bp) -</programlisting> - -<para><function>d_strategy()</function> est utilisé pour les périphériques utilisant -des E/S de type disperser-regrouper (<foreignphrase>scatter-gather</foreignphrase>). -C'est ce qu'il y a de plus courant dans un périphérique de bloc. -C'est sensiblement différent du modèle de système V, où seulement -le pilote de bloc fait une E/S de type disperser-regrouper. -Sous BSD, les périphériques de caractère sont parfois sommé d'exécuter -une E/S de type disperser-regrouper par l'intermédiaire des appels -systèmes <function>readv()</function> et <function>writev()</function>. -</para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>Bloc</title> - -<sect3> -<title>Structures de données</title> -<para> Structure <citerefentry><refentrytitle>struct bdevsw</refentrytitle></citerefentry> -</para> - -<para> Structure <citerefentry><refentrytitle>struct buf</refentrytitle></citerefentry> -</para> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>d_open()</function></title> -<para> Décrit dans la section périphérique de caractère. -</para> -</sect4> - -<sect4> -<title><function>d_close()</function></title> -<para>Décrit dans la section périphérique de caractère. -</para> -</sect4> - -<sect4> -<title><function>d_strategy()</function></title> -<para>Décrit dans la section périphérique de caractère. -</para> -</sect4> - -<sect4> -<title><function>d_ioctl()</function></title> -<para>Décrit dans la section périphérique de caractère. -</para> -</sect4> - -<sect4> -<title><function>d_dump()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>d_psize()</function></title> -<para></para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>Réseau</title> -<para>Structure <citerefentry><refentrytitle>struct ifnet</refentrytitle></citerefentry> -</para> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>if_init()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>if_output()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>if_start()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>if_done()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>if_ioctl()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>if_watchdog()</function></title> -<para></para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>Protocole de communication</title> - -<sect3> -<title>Structures de données</title> -<para>Structure <citerefentry><refentrytitle>struct linesw</refentrytitle></citerefentry> -</para> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>l_open()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_close()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_read()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_write()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_ioctl()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_rint()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_start()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_modem()</function></title> -<para></para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> -</sect1> - -<sect1> -<title>Bus Supportés</title> - -<sect2> -<title>ISA -- Architecture Standard d'Industrie (<foreignphrase>Industry Standard -Architecture</foreignphrase></title> - -<sect3> -<title>Structures de données</title> - -<sect4> -<title>Structure <citerefentry><refentrytitle>struct isa_device</refentrytitle></citerefentry></title> - -<para>Cette structure est obligatoire, mais généralement elle est créée par -<ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink> à partir du fichier de configuration de noyau. -Elle est requise pour chaque périphérique, c'est à dire que si vous avez -un pilote de périphérique contrôlant deux "serial boards", vous -aurez deux structures isa_device. Si vous construisez un périphérique -comme un LKM, vous devrez créer votre propre structure isa_device afin -de refléter votre configuration (lignes 85 - 131 de pcaudio_lkm.c). -Il y a un équivalence directe ebtre le fichier de configuration et la -structureisa_device. La définition de -<filename>/usr/src/sys/i386/isa/isa_device.h</filename> -est : -</para> - -<programlisting> -struct isa_device { - int id_id; /* device id */ - struct isa_driver *id_driver; - int id_iobase; /* base i/o address */ - u_short id_irq; /* interrupt request */ - short id_drq; /* DMA request */ - caddr_t id_maddr; /* physical i/o memory address on bus (if any)*/ - int id_msize; /* size of i/o memory */ - inthand2_t *id_intr; /* interrupt interface routine */ - int id_unit; /* unit number */ - int id_flags; /* flags */ - int id_scsiid; /* scsi id if needed */ - int id_alive; /* device is present */ -#define RI_FAST 1 /* fast interrupt handler */ - u_int id_ri_flags; /* flags for <function>register_intr()</function> */ - int id_reconfig; /* hot eject device support (such as PCMCIA) */ - int id_enabled; /* is device enabled */ - int id_conflicts; /* we're allowed to conflict with things */ - struct isa_device *id_next; /* used in isa_devlist in <function>userconfig()</function> */ -}; -</programlisting> -</sect4> - -<sect4> -<title>Structure <citerefentry><refentrytitle>struct isa_driver</refentrytitle></citerefentry></title> - -<para>Cette structure est définie dans -<filename>/usr/src/sys/i386/isa/isa_device.h</filename>, -est est requise pour chaque pilote de périphérique. La définition -est : -</para> - -<programlisting> -struct isa_driver { - int (*probe) __P((struct isa_device *idp)); - /* test whether device is present */ - int (*attach) __P((struct isa_device *idp)); - /* setup driver for a device */ - char *name; /* device name */ - int sensitive_hw; /* true if other probes confuse us */ -}; -</programlisting> - -<para> -C'est la structure employée par le code sondage/attachement -(<foreignphrase>probe/attach</foreignphrase>) pour -détecter et initialiser votre périphérique. Le membre <citerefentry><refentrytitle>probe</refentrytitle></citerefentry> -est un pointeur à votre fonction permettant de sonder les périphériques. -Le membre <citerefentry><refentrytitle>attach</refentrytitle></citerefentry> est un pointeur vers votre fonction d'attache. -Le membre <citerefentry><refentrytitle>name</refentrytitle></citerefentry> est un pointeur de caractère sur le nom de deux -ou trois lettres de votre pilote. -C'est le nom enregistré pendant le processus de -sondage/attachement (et probablement aussi dans -<ulink url="http://www.freebsd.org/cgi/man.cgi?lsdev(8)">lsdev</ulink>). -Le membre <citerefentry><refentrytitle>sensitive_hw </refentrytitle></citerefentry> est un -indicateur qui aide le code de sondage à déterminer l'ordre du sondage. -</para> - -<para> -Un instantiation typique est: -</para> - -<programlisting> -struct isa_driver mcddriver = { mcd_probe, mcd_attach, "mcd" }; -</programlisting> -</sect4> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>probe()</function></title> -<para><function>probe()</function> prend un pointeur sur une structure isa_device -comme argument et renvoie un int. La valeur de retour est ``zéro'' ou -``non-zéro '' quant à l'absence ou à la présence de votre périphérique. -Ce point d'entrée peut être déclaré comme -<citerefentry><refentrytitle>static</refentrytitle></citerefentry> parce qu'il -est accessible par l'intermédiaire du membre -<citerefentry><refentrytitle>probe</refentrytitle></citerefentry> de la structre -isa_driver. Cette fonction est destinée à -détecter la présence de votre périphérique seulement et ne devrait -faire aucune configuration du périphérique elle-même. -</para> -</sect4> - -<sect4> -<title><function>attach()</function></title> -<para> -<function>attach()</function> prend également un pointeur sur une structure -isa_device comme argument et -renvoie un int. La valeur de retour est également ``zéro'' ou -``non-zéro'' indiquant si l'attache a réussie. Cette fonction -est destinée pour faire n'importe quelle initialisation spéciale du -périphérique aussi bien que pour confirmer que le périphérique est utilisable. -Il devrait aussi être déclaré <citerefentry><refentrytitle>static</refentrytitle></citerefentry> parce qu'il est accesible -par le membre <citerefentry><refentrytitle>attach</refentrytitle></citerefentry> de la structure <citerefentry><refentrytitle>isa_driver </refentrytitle></citerefentry>. -</para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>EISA -- Architecture Étendue de Standard industriel (<foreignphrase>Extended Industry Standard Architecture</foreignphrase>)</title> -<para></para> - -<sect3> -<title>Structures de données</title> - -<para>Structure <citerefentry><refentrytitle>struct eisa_dev </refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct isa_driver</refentrytitle></citerefentry> </para> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>probe()</function></title> -<para>Décrit dans la section de périphérique ISA.</para> -</sect4> - -<sect4> -<title><function>attach()</function></title> -<para>Décrit dans la section de périphérique ISA.</para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>PCI -- Bus d'interconnexion Périphérique (<foreignphrase>Peripheral Computer -Interconnect</foreignphrase>)</title> - -<sect3> -<title>Structures de données</title> - -<para> Structure <citerefentry><refentrytitle>struct pci_device</refentrytitle></citerefentry> -</para> - -<itemizedlist> -<listitem> -<para>nom : Le nom abrégé du périphérique. -</para> -</listitem> - -<listitem> -<para> sonde: Contrôle si le pilote peut supporter un périphérique avec -ce type. L'étiquette peut être employée pour obtenir plus -d'information avec <function>pci_read_conf()</function>. Voir ci-dessous. Elle renvoie -une chaîne de caractères avec le nom du périphérique, ou un pointeur -NULL si le pilote ne peut pas supporter ce périphérique. -</para> -</listitem> - -<listitem> -<para> attache: Assigne une structure de contrôle et la prépare. Cette -fonction peut utiliser les fonctions de mapping PCI. Voir -ci-dessous. (identification de configuration) ou type. -</para> -</listitem> - -<listitem> -<para> compte: Un pointeur sur un compteur d'unité. Il est -employé par le configurateur de PCI pour assigner des numéros. -</para> -</listitem> -</itemizedlist> - -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>probe()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>attach()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>shutdown()</function></title> -<para></para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>SCSI -- <foreignphrase>Small Computer Systems Interface</foreignphrase></title> - -<sect3> -<title>Structure de données</title> - -<para>Structure <citerefentry><refentrytitle>struct scsi_adapter</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct scsi_device</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct scsi_ctlr_config</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct scsi_device_config</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct scsi_link</refentrytitle></citerefentry> </para> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>attach()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>init()</function></title> -<para></para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - - -<sect2> -<title>PCCARD (PCMCIA)</title> - -<sect3> -<title>Structure de données</title> - -<para>Structure <citerefentry><refentrytitle>struct slot_cont</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct pccard_drv</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct pccard_dev</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct slot</refentrytitle></citerefentry> </para> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>handler()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>unload()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>suspend()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>init()</function></title> -<para></para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> - -<para><pccard/slot.h> -</para> -</sect3> -</sect2> -</sect1> - - -<sect1> -<title>Incorporation dans le noyau</title> - -<para>Dans FreeBSD, le support des bus d'ISA et EISA est spécifique à -i386. Tandis que FreeBSD lui-même est actuellement -disponible sur la plateforme i386, un certain effort a été fait pour -faire du code portable pour PCI, PCCARD, et SCSI. Le code -spécifique à ISA et EISA réside dans -<filename>/usr/src/sys/i386/isa</filename> et -<filename>/usr/src/sys/i386/eisa</filename> respectivement. Le code indépendant de la -machine de PCI, de PCCARD, et de SCSI réside dans -<filename>/usr/src/sys/{pci,pccard,scsi</filename>}. Le code spécifique i386 quand à lui -réside dans <filename>/usr/src/sys/i386/{pci, pccard, scsi}</filename>. -</para> - - -<para> Dans FreeBSD, un module de gestion de périphérique peut -être soit sous forme binaire soit sous forme de sources. -Il n'y a aucun endroit ``officiel'' pour mettre les binaires des -pilotes de périphériques. les systèmes BSD utilise quelque -chose comme sys/i386/OBJ. Puisque la plupart des pilotes sont -distribués dans les sources, la discussion suivante se rapporte à un -source pilote de périphérique. -Des binaires de pilotes de périphériques sont -parfois fournis par les constructeurs de matériel qui souhaitent -maintenir les sources de manière propriétaire. -</para> - -<para> Un pilote typique a son code source sous forme de fichier C, -comme dev.c. Le pilote peut également inclure des -fichiers; devreg.h contient typiquement des déclarations publiques -de registre de périphérique, des macros, et d'autres -déclarations spécifique au pilote de périphérique. -Quelques pilotes appellent parfois ce fichier devvar.h. -Quelques pilotes, tels que -le dgb (pour le Digiboard PC/Xe), exigent que du microcode soit chargé -sur la carte. Pour le pilote de dgb le microcode est compilé -et reporté dans un fichier d'en-tête par -<ulink url="http://www.freebsd.org/cgi/man.cgi?file2c(1)">file2c</ulink>. -</para> - -<para> Si le pilote de périphérique a des structures de données et des -ioctl qui sont spécifiques au pilote de périphérique ou -périphérique, et -doivent être accessibles de l'espace-utilisateur, elles devraient -être mises dans un fichier d'en-tête séparé qui résidera dans -<filename>/usr/include/machine/</filename> (certaines de ces derniers résident dans -<filename>/usr/include/sys/</filename>). Ceux-ci est typiquement nommé quelque chose comme -ioctl_dev.h ou devio.h. -</para> - -<para> Si un pilote écrit depuis l'espace -d'utilisateur est identique à un périphérique qui existe déjà, il faut -prendre garde à utiliser les mêmes -interfaces ioctl et structures de données. Par exemple, de l'espace -utilisateur, un lecteur de SCSI CDROM devrait être identique à un -lecteur de cdrom IDE; ou une ligne série sur une carte -intelligente multiport (Digiboard, Cyclades...) devrait être identique -à un périphérique sio. Ces périphériques ont une interface définie -relativement bonne et devraient être utilisées. -</para> - -<para> Il y a deux méthodes pour lier un pilote dans le -noyau, statiquement et le modèle LKM. La première méthode -est assez standard à travers la famille *BSD. L'autre -méthode a été initialement développée par Sun (je crois), et a -été mis en application dans BSD en utilisant le modèle de Sun. -Je ne crois pas que l'implémentation actuelle utilise encore le moindre -code de Sun. -</para> - -<sect2> -<title>Modèle Standard</title> - -<para> Les étapes exigées pour ajouter votre pilote au -noyau standard de FreeBSD sont -</para> - -<itemizedlist> -<listitem> -<para>Ajout à la liste des pilotes de périphérique -</para> -</listitem> - -<listitem> -<para>Ajout d'une entrée au [bc]devsw -</para> -</listitem> - -<listitem> -<para>Ajout d'une entrée du pilote de périphérique au fichier de -configuration du noyau -</para> -</listitem> - -<listitem> -<para><ulink -url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink>, -compilation et installation du noyau -</para> -</listitem> - -<listitem> -<para>créer les fichiers spéciaux requis -</para> -</listitem> - -<listitem> -<para>redémarrage -</para> -</listitem> -</itemizedlist> - -<sect3> -<title>Ajout à la liste des pilotes de périphérique</title> - -<para>Le modèle standard pour ajouter un module de gestion de périphérique -au noyau de Berkeley est d'ajouter votre pilote à la liste des -périphériques connus. Cette liste dépend de l'architecture du CPU. -Si le périphérique n'est pas spécifique i386 -(PCCARD, PCI, SCSI), le fichier est dans -<filename>/usr/src/sys/conf/files</filename>. -Si le périphérique est spécifique i386, utilisez -<filename>/usr/src/sys/i386/conf/files.i386</filename>. Une ligne typique ressemblerait -à : -</para> - -<programlisting> -i386/isa/joy.c optional joy device-driver -</programlisting> - -<para>Le premier champ relatif est le chemin du module de pilote -par rapport à <filename>/usr/src/sys</filename>. -Pour le cas d'un pilote binaire, le chemin d'accès serait quelque -chose comme <filename>i386/OBJ/joy.o</filename>. -</para> - -<para>Le deuxième champ indique à -<ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config(8)</ulink> -que c'est un pilote facultatif. Quelques -périphériques sont obligatoires pour que le noyau puisse être construit. -</para> - -<para> -Le troisième champ est le nom du périphérique. -</para> - -<para>Le quatrième champ indique à config que c'est un -pilote de périphérique (par opposition à juste facultatif). Ceci -dit à config de créer des entrées pour le périphérique dans dans -des structures de <filename>/usr/src/sys/compile/KERNEL/ioconf.c</filename>. -</para> - -<para>Il est également possible de créer un fichier -<filename>/usr/src/sys/i386/conf/files.KERNEL</filename> dont le contenu ignorera le -fichier par défaut files.i386, mais seulement pour le noyau ``KERNEL''. -</para> -</sect3> - -<sect3> -<title>Faire de la place dans conf.c</title> - -<para>Maintenant vous devez éditer <filename>/usr/src/sys/i386/i386/conf.c</filename> -pour faire une entrée pour votre pilote. Quelque part au début, -vous devez déclarer vos points d'entrée. L'entrée pour -le pilote du joystick est: </para> - -<programlisting> -#include "joy.h" -#if NJOY > 0 -d_open_t joyopen; -d_close_t joyclose; -d_rdwr_t joyread; -d_ioctl_t joyioctl; -#else -#define joyopen nxopen -#define joyclose nxclose -#define joyread nxread -#define joyioctl nxioctl -#endif -</programlisting> - -<para> -Cela définit vos points d'entrée, ou points d'entrée nuls qui -renverront ENXIO quand appelé (clause #else). -</para> - -<para> -Le fichier d'en-tête ``joy.h'' est automatiquement produit par -<ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink> -quand l'arborescence de construction du noyau est -créé. Cela se réduit habituellement à une seule ligne comme : -</para> - -<programlisting> -#define NJOY 1 -</programlisting> - -<para> -ou -</para> -<programlisting> -#define NJOY 0 -</programlisting> - -<para> ce qui définit le nombre de vos périphériques dans votre noyau. -</para> - -<para> -Vous devez additionnellement ajouter un slot au cdevsw[&rsqb, ou -au bdevsw[&rsqb, selon que ce soit un périphérique caractère, -périphérique bloc, ou les deux si c'est un périphérique bloc -avec une interface brute. L'entrée pour le pilote du joystick -est: -</para> - -<programlisting> -/* open, close, read, write, ioctl, stop, reset, ttys, select, mmap, strat */ -struct cdevsw cdevsw[] = -{ - ... - { joyopen, joyclose, joyread, nowrite, /*51*/ - joyioctl, nostop, nullreset, nodevtotty,/*joystick */ - seltrue, nommap, NULL}, - ... -} -</programlisting> - -<para> - L'ordre est ce qui détermine le nombre majeur de votre -périphérique. C'est pourquoi il y aura toujours une entrée -pour votre pilote, que ce soit des points d'entrée nuls, -ou des points d'entrée actuels. Il est probablement intéressant de -noter que c'est -sensiblement différent de SCO et d'autres dérivés du système V, où -n'importe quel périphérique (dans la théorie) peut avoir n'importe -quel nombre majeur. C'est en grande partie un avantage sur FreeBSD, -sur la manière dont les fichiers spéciaux de périphérique sont créés. -Nous reviendrons en détail sur ceci plus tard. -</para> -</sect3> - -<sect3> -<title>Ajout de votre périphérique dans le fichier de configuration.</title> - -<para> Ceci ajoute simplement une ligne décrivant votre périphérique. La -ligne de description du joystick est : -<programlisting> -device joy0 at isa? port "IO_GAME" -</programlisting> -Ceci indique que nous avons un -périphérique appelé ``joy0'' sur le bus ISA en utilisant -le port E/S ``IO_GAME'' (IO_GAME est une macro définie dans -<filename>/usr/src/sys/i386/isa/isa.h</filename>). -</para> - -<para> -Une entrée légèrement plus compliquée est pour le pilote ``ix'' : - -<programlisting> -device ix0 at isa? port 0x300 net irq 10 iomem 0xd0000 iosiz 32768 -vector ixintr -</programlisting> - -Ceci indique que nous avons un périphérique appelé -`ix0 ' sur le bus ISA. Il utilise le port E/S 0x300. Son -interruption sera masqué par d'autres périphériques dans la classe -réseau. Il utilise l'interruption 10. Il utilise 32k de mémoire -partagée à l'adresse physique 0xd0000. Il le définit également -son pilote d'interruption comme étant ``<function>ixintr()</function>'' -</para> -</sect3> - -<sect3> -<title><ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink> -du noyau.</title> - -<para> Maintenant avec notre fichier de configuration en main, -nous pouvons créer un répertoire de compilation du noyau. Cela peut être -fait en tapant : -<programlisting> -# config KERNEL -</programlisting> - -où KERNEL est le nom de votre fichier de configuration. -La configuration crée un arbre de compilation -pour votre noyau dans <filename>/usr/src/sys/compile/KERNEL</filename>. Elle crée le fichier -makefile, quelques fichiers C, et quelques fichiers H avec des -macros définissant le nombre de chaque périphérique à inclure dans votre -votre noyau. -</para> - -<para> -Maintenant vous pouvez aller dans le répertoire de compilation et -construire votre noyau. À chaque fois que vous lancerez config, votre -arbre de construction précédent sera retiré, à moins que vous ne lancez -config avec un -n. Si vous avez configuré et compilé un noyau GENERIC, -vous pouvez faire un ``make links'' afin d'éviter de compiler certains -fichiers à chaque itération. Typiquement, je lance : -<programlisting> -# make depend links all -</programlisting> -suivi d'un ``make install'' quand le noyau me convient. -</para> -</sect3> - -<sect3> -<title>Créer les fichiers spéciaux de périphériques</title> - -<para> Sur FreeBSD, vous avez la responsabilité de faire vos propres fichiers -spéciaux -de périphérique. Le -nombre majeur de votre périphérique est déterminé par le nombre de -slots dans le commutateur de périphérique. Le nombre mineur est -dépendant du pilote, naturellement. Vous pouvez -soit exécuter mknod depuis la ligne de commande, soit liasser faire le -travail à <filename>/dev/MAKEDEV.local</filename>, ou même -<filename>/dev/MAKEDEV</filename>. -Je crée parfois un script MAKEDEV.dev qui peut être soit lancé -de manière autonome soit collé dans <filename>/dev/MAKEDEV.local</filename>. -</para> -</sect3> - -<sect3> -<title>Redémarrage</title> -<para> C'est la partie facile. Il y a un -certain nombre de méthodes pour faire ceci, reboot, fastboot, -shutdown - r, couper le courant, etc. Au démarrage, vous -devriez voir votre XX<function>probe()</function> appelé, et si tout marche, -votre <function>attach()</function> aussi. -</para> -</sect3> -</sect2> - -<sect2> -<title>Module du noyau à chargement dynamique (LKM)</title> - -<para>Il n'y a vraiment aucune procédure définie pour écrire un pilote de -LKM. Ce qui suit est ma propre conception après expérimentation -avec l'interface de périphérique LKM et en regardant le modèle standard -de module de gestion de périphérique, c'est une manière d'ajouter une -interface LKM à un pilote existant sans toucher aux sources (ou binaire) -initiaux de pilote . On recommande cependant, -que si vous projetez de distribuer les sources de votre pilote, -que les parties spécifiques LKM devraient faire partie du pilote -lui-même, compilé de manière conditionnelle par la macro LKM -(c.-à-d. #ifdef LKM). -</para> - -<para> -Cette section se concentrera sur la manière d'écrire la partie spécifique -LKM du pilote. Nous supposerons que nous avons écrit un -pilote qui atterrira dans le modèle standard de -gestion de périphérique, que nous voudrions maintenant mettre en -application comme étant LKM. Nous utiliserons le pilote de pcaudio -comme pilote d'exemple, et développerons une entrée LKM. La -source et le fichier makefile pour le LKM pcaudio , ``pcaudio_lkm.c'' -et ``Makefile'', devraient être dans placé <filename>/usr/src/lkm/pcaudio</filename>. -Ce qui suit est le code commenté de pcaudio_lkm.c. -</para> - -<para> -Lignes 17 - 26 -</para> - -<para> -Ceci inclut le fichier ``pca.h'' et fait une compilation conditionnelle -du reste de LKM suivant que vous avez défini ou non le pilote de -périphérique pcaudio. -Cela imite le comportement de config. Dans un pilote de -périphérique standard, -<ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink> -produit le fichier pca.h depuis le nombre de périphériques pca -le fichier de config. </para> - -<programlisting> - 17 /* - 18 * figure out how many devices we have.. - 19 */ - 20 - 21 #include "pca.h" - 22 - 23 /* - 24 * if we have at least one ... - 25 */ - 26 #if NPCA > 0 -</programlisting> - -<para> -Lignes 27 - 37 -</para> - -<para> -Les fichiers d'en-tête requis depuis divers répertoire d'inclusion. -</para> - -<programlisting> - 27 #include <sys/param.h> - 28 #include <sys/systm.h> - 29 #include <sys/exec.h> - 30 #include <sys/conf.h> - 31 #include <sys/sysent.h> - 32 #include <sys/lkm.h> - 33 #include <sys/errno.h> - 34 #include <i386/isa/isa_device.h> - 35 #include <i386/isa/isa.h> - 36 - 37 -</programlisting> - -<para> -Lignes 38 - 51 -</para> - -<para>déclarent vos points d'entrée comme externs . -</para> - -<programlisting> - 38 /* - 39 * declare your entry points as externs - 40 */ - 41 - 42 extern int pcaprobe(struct isa_device *); - 43 extern int pcaattach(struct isa_device *); - 44 extern int pcaopen(dev_t, int, int, struct proc *); - 45 extern int pcaclose(dev_t, int, int, struct proc *); - 46 extern int pcawrite(dev_t, struct uio *, int); - 47 extern int pcaioctl(dev_t, int, caddr_t); - 48 extern int pcaselect(dev_t, int, struct proc *); - 49 extern void pcaintr(struct clockframe *); - 50 extern struct isa_driver pcadriver; - 51 -</programlisting> - -<para> -Lignes 52 - 70 -</para> - -<para> -Cela crée la table d'entrée de commutateur de périphérique pour -votre pilote. Cette table est en gros entièrement mise dans le -système de commutation de périphériques à l'emplacement indiqué par -votre nombre majeur. Dans le modèle standard, c'est dans -<filename>/usr/src/sys/i386/i386/conf.c</filename>. -NOTE: vous ne pouvez pas sélectionner -un nombre majeur de périphérique plus grand que ce qui existe dans -conf.c, par exemple -il y a 67 slots pour des périphériques caractère, vous ne popuvez pas -utiliser un périphérique (caractère) de numéro majeur 67 ou -plus, sans avoir d'abord réservé de l'espace dans conf.c. -</para> - -<programlisting> - 52 /* - 53 * build your device switch entry table - 54 */ - 55 - 56 static struct cdevsw pcacdevsw = { - 57 (d_open_t *) pcaopen, /* open */ - 58 (d_close_t *) pcaclose, /* close */ - 59 (d_rdwr_t *) enodev, /* read */ - 60 (d_rdwr_t *) pcawrite, /* write */ - 61 (d_ioctl_t *) pcaioctl, /* ioctl */ - 62 (d_stop_t *) enodev, /* stop?? */ - 63 (d_reset_t *) enodev, /* reset */ - 64 (d_ttycv_t *) enodev, /* ttys */ - 65 (d_select_t *) pcaselect, /* select */ - 66 (d_mmap_t *) enodev, /* mmap */ - 67 (d_strategy_t *) enodev /* strategy */ - 68 }; - 69 - 70 -</programlisting> - -<para> -Lignes 71 - 131 -</para> -<para> -cette section est analogue à la déclaration de fichier de configuration -de votre périphérique. Les membres de la structure isa_device sont -remplis grace à ce qu'il connait de votre périphérique, -port E/S, segment partagé de mémoire, etc... -Nous n'aurons probablement jamais un besoin de deux périphériques -pcaudio dans le noyau, mais cet exemple montre comment -périphériques multiples peuvent être supportés. -</para> - -<programlisting> - 71 /* - 72 * this lkm arbitrarily supports two - 73 * instantiations of the pc-audio device. - 74 * - 75 * this is for illustration purposes - 76 * only, it doesn't make much sense - 77 * to have two of these beasts... - 78 */ - 79 - 80 - 81 /* - 82 * these have a direct correlation to the - 83 * config file entries... - 84 */ - 85 struct isa_device pcadev[NPCA] = { - 86 { - 87 11, /* device id */ - 88 &pcadriver, /* driver pointer */ - 89 IO_TIMER1, /* base io address */ - 90 -1, /* interrupt */ - 91 -1, /* dma channel */ - 92 (caddr_t)-1, /* physical io memory */ - 93 0, /* size of io memory */ - 94 pcaintr , /* interrupt interface */ - 95 0, /* unit number */ - 96 0, /* flags */ - 97 0, /* scsi id */ - 98 0, /* is alive */ - 99 0, /* flags for register_intr */ - 100 0, /* hot eject device support */ - 101 1 /* is device enabled */ - 102 }, - 103 #if NPCA >1 - 104 { - 105 - 106 /* - 107 * these are all zeros, because it doesn't make - 108 * much sense to be here - 109 * but it may make sense for your device - 110 */ - 111 - 112 0, /* device id */ - 113 &pcadriver, /* driver pointer */ - 114 0, /* base io address */ - 115 -1, /* interrupt */ - 116 -1, /* dma channel */ - 117 -1, /* physical io memory */ - 118 0, /* size of io memory */ - 119 NULL, /* interrupt interface */ - 120 1, /* unit number */ - 121 0, /* flags */ - 122 0, /* scsi id */ - 123 0, /* is alive */ - 124 0, /* flags for register_intr */ - 125 0, /* hot eject device support */ - 126 1 /* is device enabled */ - 127 }, - 128 #endif - 129 - 130 }; - 131 -</programlisting> - -<para> -Lignes 132 - 139 -</para> - -<para> -Ceci appelle la macro MOD_DEV du préprocesseur C, qui -installe un module de gestion de périphérique de LKM, par -opposition à un système de fichiers LKM, ou un appel système de LKM. -</para> - -<programlisting> - 132 /* - 133 * this macro maps to a function which - 134 * sets the LKM up for a driver - 135 * as opposed to a filesystem, system call, or misc - 136 * LKM. - 137 */ - 138 MOD_DEV("pcaudio_mod", LM_DT_CHAR, 24, &pcacdevsw); - 139 -</programlisting> - -<para> -Lignes 140 - 168 -</para> - -<para> -c'est la fonction qui sera appelée lorsque le pilote sera -chargé. Cette fonction essaye de fonctionner comme -<filename>/sys/i386/isa/isa.c</filename> qui fait les appels de probe/attach pour un -pilote au moment du redémarrage. La plus grande astuce ici est qu'il -met en correspondance l'adresse physique du segment partagé de mémoire, qui est -indiqué dans la structure isa_device à une adresse virtuelle du noyau. -Normalement, l'adresse physique est mise dans le fichier de configuration -qui construit la structure isa_device dans -<filename>/usr/src/sys/compile/KERNEL/ioconf.c</filename>. La séquence probe/attach de -<filename>/usr/src/sys/isa/isa.c</filename> traduit l'adresse physique en une virtuelle de -sorte que dans les sous-programmes de probe/attach vous puissiez -faire des choses comme -</para> -<programlisting> -(int *)id->id_maddr = something; -</programlisting> -<para> et se réfère juste au segment partagé de mémoire -par l'intermédiaire de pointeurs. -</para> - -<programlisting> - 140 /* - 141 * this function is called when the module is - 142 * loaded; it tries to mimic the behavior - 143 * of the standard probe/attach stuff from - 144 * isa.c - 145 */ - 146 int - 147 <function>pcaload()</function>{ - 148 int i; - 149 uprintf("PC Audio Driver Loaded\n"); - 150 for (i=0; i<NPCA; i++){ - 151 /* - 152 * this maps the shared memory address - 153 * from physical to virtual, to be - 154 * consistent with the way - 155 * /usr/src/sys/i386/isa.c handles it. - 156 */ - 157 pcadev[i].id_maddr -=0xa0000; - 158 pcadev[i].id_maddr += atdevbase; - 159 if ((*pcadriver.probe)(pcadev+i)) { - 160 (*(pcadriver.attach))(pcadev+i); - 161 } else { - 162 uprintf("PC Audio Probe Failed\n"); - 163 return(1); - 164 } - 165 } - 166 return 0; - 167 } - 168 -</programlisting> - -<para>Lignes 169 - 179 -</para> - -<para>c'est la fonction appelée quand votre pilote n'est pas -chargé; il affiche juste un message à cet effet. -</para> - -<programlisting> - 169 /* - 170 * this function is called - 171 * when the module is unloaded - 172 */ - 173 - 174 int - 175 <function>pcaunload()</function>{ - 176 uprintf("PC Audio Driver Unloaded\n"); - 177 return 0; - 178 } - 179 -</programlisting> - -<para>Lignes 180 - 190 -</para> - -<para>c'est le point d'entrée qui est indiqué sur la ligne de commande -de modload. Par convention il est nommé <dev>_mod. C'est -ainsi qu'il est défini dans bsd.lkm.mk, le makefile qui -construit le LKM. Si vous nommez votre module suivant cette -convention, vous pouvez faire ``make load'' et ``make unload'' -de /usr/src/lkm/pcaudio.</para> - -<para>Note : Il y a eu <emphasis>tellement</emphasis> de révisions entre la version 2.0 et -2.1. Il peut ou ne peut ne pas être possible d'écrire -un module qui est portable pour chacune des trois versions. -</para> - - -<programlisting> - 180 /* - 181 * this is the entry point specified - 182 * on the modload command line - 183 */ - 184 - 185 int - 186 pcaudio_mod(struct lkm_table *lkmtp, int cmd, int ver) - 187 { - 188 DISPATCH(lkmtp, cmd, ver, pcaload, pcaunload, nosys); - 189 } - 190 - 191 #endif /* NICP > 0 */ -</programlisting> -</sect2> - -<sect2> -<title>Idiosyncrasies du type périphérique</title> - -<sect3> -<title>Caractère</title> -<para></para> -</sect3> - -<sect3> -<title>Bloc</title> -<para></para> -</sect3> - -<sect3> -<title>Réseau</title> -<para></para> -</sect3> - -<sect3> -<title>Line discipline</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>Idiosyncrasies du type bus</title> - -<sect3> -<title>ISA</title> -<para></para> -</sect3> - -<sect3> -<title>EISA</title> -<para></para> -</sect3> - -<sect3> -<title>PCI</title> -<para></para> -</sect3> - -<sect3> -<title>SCSI</title> -<para></para> -</sect3> - -<sect3> -<title>PCCARD</title> -<para></para> -</sect3> -</sect2> -</sect1> - - -<sect1> -<title>Support du noyau</title> - -<sect2> -<title>Structures de données</title> - -<sect3> -<title>Structure <citerefentry><refentrytitle>struct kern_devconf</refentrytitle></citerefentry></title> - -<para>Cette structure contient quelques informations sur l'état du -périphérique et de son pilote. Elle est définie dans -<filename>/usr/src/sys/sys/devconf.h</filename> comme ci-dessous : -</para> - -<programlisting> -struct devconf { - char dc_name[MAXDEVNAME]; /* name */ - char dc_descr[MAXDEVDESCR]; /* description */ - int dc_unit; /* unit number */ - int dc_number; /* unique id */ - char dc_pname[MAXDEVNAME]; /* name of the parent device */ - int dc_punit; /* unit number of the parent */ - int dc_pnumber; /* unique id of the parent */ - struct machdep_devconf dc_md; /* machine-dependent stuff */ - enum dc_state dc_state; /* state of the device (see above) */ - enum dc_class dc_class; /* type of device (see above) */ - size_t dc_datalen; /* length of data */ - char dc_data[1]; /* variable-length data */ -}; -</programlisting> -</sect3> - -<sect3> -<title>Structure <citerefentry><refentrytitle>struct proc</refentrytitle></citerefentry></title> - -<para> Cette structure contient toutes les informations sur un processus. -Elle est dans définie <filename>/usr/src/sys/sys/proc.h</filename>: -</para> - -<programlisting> -/* - * Description of a process. - * - * This structure contains the information needed to manage a thread of - * control, known in UN*X as a process; it has references to -substructures - * containing descriptions of things that the process uses, but may -share - * with related processes. The process structure and the substructures - * are always addressable except for those marked "(PROC ONLY)" below, - * which might be addressable only on a processor on which the process - * is running. - */ -struct proc { - struct proc *p_forw; /* Doubly-linked run/sleep queue. */ - struct proc *p_back; - struct proc *p_next; /* Linked list of active procs */ - struct proc **p_prev; /* and zombies. */ - - /* substructures: */ - struct pcred *p_cred; /* Process owner's identity. */ - struct filedesc *p_fd; /* Ptr to open files structure. */ - struct pstats *p_stats; /* Accounting/statistics (PROC ONLY). */ - struct plimit *p_limit; /* Process limits. */ - struct vmspace *p_vmspace; /* Address space. */ - struct sigacts *p_sigacts; /* Signal actions, state (PROC ONLY). */ - -#define p_ucred p_cred->pc_ucred -#define p_rlimit p_limit->pl_rlimit - - int p_flag; /* P_* flags. */ - char p_stat; /* S* process status. */ - char p_pad1[3]; - - pid_t p_pid; /* Process identifier. */ - struct proc *p_hash; /* Hashed based on p_pid for kill+exit+... */ - struct proc *p_pgrpnxt; /* Pointer to next process in process group. */ - struct proc *p_pptr; /* Pointer to process structure of parent. */ - struct proc *p_osptr; /* Pointer to older sibling processes. */ - -/* The following fields are all zeroed upon creation in fork. */ -#define p_startzero p_ysptr - struct proc *p_ysptr; /* Pointer to younger siblings. */ - struct proc *p_cptr; /* Pointer to youngest living child. */ - pid_t p_oppid; /* Save parent pid during ptrace. XXX */ - int p_dupfd; /* Sideways return value from fdopen. XXX */ - - /* scheduling */ - u_int p_estcpu; /* Time averaged value of p_cpticks. */ - int p_cpticks; /* Ticks of cpu time. */ - fixpt_t p_pctcpu; /* %cpu for this process during p_swtime */ - void *p_wchan; /* Sleep address. */ - char *p_wmesg; /* Reason for sleep. */ - u_int p_swtime; /* Time swapped in or out. */ - u_int p_slptime; /* Time since last blocked. */ - - struct itimerval p_realtimer; /* Alarm timer. */ - struct timeval p_rtime; /* Real time. */ - u_quad_t p_uticks; /* Statclock hits in user mode. */ - u_quad_t p_sticks; /* Statclock hits in system mode. */ - u_quad_t p_iticks; /* Statclock hits processing intr. */ - - int p_traceflag; /* Kernel trace points. */ - struct vnode *p_tracep; /* Trace to vnode. */ - - int p_siglist; /* Signals arrived but not delivered. */ - - struct vnode *p_textvp; /* Vnode of executable. */ - - char p_lock; /* Process lock (prevent swap) count. */ - char p_pad2[3]; /* alignment */ - -/* End area that is zeroed on creation. */ -#define p_endzero p_startcopy - -/* The following fields are all copied upon creation in fork. */ -#define p_startcopy p_sigmask - - sigset_t p_sigmask; /* Current signal mask. */ - sigset_t p_sigignore; /* Signals being ignored. */ - sigset_t p_sigcatch; /* Signals being caught by user. */ - - u_char p_priority; /* Process priority. */ - u_char p_usrpri; /* User-priority based on p_cpu and p_nice. */ - char p_nice; /* Process "nice" value. */ - char p_comm[MAXCOMLEN+1]; - - struct pgrp *p_pgrp; /* Pointer to process group. */ - - struct sysentvec *p_sysent; /* System call dispatch information. */ - - struct rtprio p_rtprio; /* Realtime priority. */ -/* End area that is copied on creation. */ -#define p_endcopy p_addr - struct user *p_addr; /* Kernel virtual addr of u-area (PROC ONLY). */ - struct mdproc p_md; /* Any machine-dependent fields. */ - - u_short p_xstat; /* Exit status for wait; also stop signal. */ - u_short p_acflag; /* Accounting flags. */ - struct rusage *p_ru; /* Exit information. XXX */ -}; -</programlisting> -</sect3> - -<sect3> -<title>Structure <citerefentry><refentrytitle>struct buf</refentrytitle></citerefentry></title> -<para>La structure <citerefentry><refentrytitle>struct buf</refentrytitle></citerefentry> est employée pour s'interfacer -avec le cache de la mémoire tampon. Elle est dans -définie <filename>/usr/src/sys/sys/buf.h</filename> : -</para> - -<programlisting> -/* - * The buffer header describes an I/O operation in the kernel. - */ -struct buf { - LIST_ENTRY(buf) b_hash; /* Hash chain. */ - LIST_ENTRY(buf) b_vnbufs; /* Buffer's associated vnode. */ - TAILQ_ENTRY(buf) b_freelist; /* Free list position if not active. */ - struct buf *b_actf, **b_actb; /* Device driver queue when active. */ - struct proc *b_proc; /* Associated proc; NULL if kernel. */ - volatile long b_flags; /* B_* flags. */ - int b_qindex; /* buffer queue index */ - int b_error; /* Errno value. */ - long b_bufsize; /* Allocated buffer size. */ - long b_bcount; /* Valid bytes in buffer. */ - long b_resid; /* Remaining I/O. */ - dev_t b_dev; /* Device associated with buffer. */ - struct { - caddr_t b_addr; /* Memory, superblocks, indirect etc. */ - } b_un; - void *b_saveaddr; /* Original b_addr for physio. */ - daddr_t b_lblkno; /* Logical block number. */ - daddr_t b_blkno; /* Underlying physical block number. */ - /* Function to call upon completion. */ - void (*b_iodone) __P((struct buf *)); - /* For nested b_iodone's. */ - struct iodone_chain *b_iodone_chain; - struct vnode *b_vp; /* Device vnode. */ - int b_pfcent; /* Center page when swapping cluster. */ - int b_dirtyoff; /* Offset in buffer of dirty region. */ - int b_dirtyend; /* Offset of end of dirty region. */ - struct ucred *b_rcred; /* Read credentials reference. */ - struct ucred *b_wcred; /* Write credentials reference. */ - int b_validoff; /* Offset in buffer of valid region. */ - int b_validend; /* Offset of end of valid region. */ - daddr_t b_pblkno; /* physical block number */ - caddr_t b_savekva; /* saved kva for transfer while bouncing */ - void *b_driver1; /* for private use by the driver */ - void *b_driver2; /* for private use by the driver */ - void *b_spc; - struct vm_page *b_pages[(MAXPHYS + PAGE_SIZE - 1)/PAGE_SIZE]; - int b_npages; -}; -</programlisting> -</sect3> - - -<sect3> -<title>Structure <citerefentry><refentrytitle>struct uio</refentrytitle></citerefentry></title> - -<para>Cette structure est utilisée pour déplacer des données entre le noyau et -les espaces utilisateur par les appels système de <function>read()</function> et de <function>write()</function>. -Il est dans défini <filename>/usr/src/sys/sys/uio.h</filename> : -</para> - -<programlisting> -struct uio { - struct iovec *uio_iov; - int uio_iovcnt; - off_t uio_offset; - int uio_resid; - enum uio_seg uio_segflg; - enum uio_rw uio_rw; - struct proc *uio_procp; -}; -</programlisting> -</sect3> -</sect2> - - -<sect2> -<title>Fonctions</title> -<para>plein</para> -</sect2> - -<sect2> -<title>Références.</title> - -<para> FreeBSD Kernel Sources http://www.freebsd.org -</para> - -<para> NetBSD Kernel Sources http://www.netbsd.org -</para> - -<para> Writing Device Drivers: Tutorial and Reference; -Tim Burke, Mark A. Parenti, Al, Wojtas; -Digital Press, ISBN 1-55558-141-2. -</para> - -<para> Writing A Unix Device Driver; -Janet I. Egan, Thomas J. Teixeira; -John Wiley & Sons, ISBN 0-471-62859-X. -</para> - -<para> Writing Device Drivers for SCO Unix; -Peter Kettle; -</para> -</sect2> -</sect1> -</article> diff --git a/fr_FR.ISO8859-1/articles/diskless-x/Makefile b/fr_FR.ISO8859-1/articles/diskless-x/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/diskless-x/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD$ -# Original revision: 1.4 -# - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/diskless-x/article.sgml b/fr_FR.ISO8859-1/articles/diskless-x/article.sgml deleted file mode 100644 index fdbd117e7c..0000000000 --- a/fr_FR.ISO8859-1/articles/diskless-x/article.sgml +++ /dev/null @@ -1,298 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: n.nn ---> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; - <!ENTITY rel.current CDATA "3.2"> -]> - -<article lang="fr"> - <artheader> - <title>Mise en oeuvre d'un terminal X sans disque dur</title> - - <authorgroup> - <author> - <firstname> Jerry</firstname> - <surname>Kendall</surname> - <affiliation> - <address> - <email>jerry@kcis.com</email> - </address> - </affiliation> - </author></authorgroup> - - <pubdate>28 Décembre 1996</pubdate> - - <copyright> - <year>1996</year> - <holder>Jerry Kendall</holder> - </copyright> - - <abstract> - <para>Avec l'aide de quelques amis de la &a.hackers;, j'ai pu mettre en service un terminal X sans disque dur. Pour cela, j'ai d'abord dû installer une station sans disque qui dispose d'un minimum d'utilitaires montés par NFS. J'ai répété l'opération pour disposer de deux systèmes sans disque. Pour les deux, j'ai procédé de la même façon. Le premier est <hostid role="fqdn">altair.kcis.com</hostid>. C'est un terminal X sur mon vieux 386DX-40. Il a bien un disque dur de 340 Mo, mais je ne voulais pas y toucher. Il démarre donc à partir de <hostid role="fqdn">antares.kcis.com</hostid> sur le réseau Ethernet. Le second est un 486DX2-66. J'ai installé un système FreeBSD (complet) qui n'utilise pas de disque local. Le serveur de démarrage est un Sun 670MP sous SunOs 4.1.3. Les deux systèmes FreeBSD sont configurés de la même façon.</para> - - <para>Je suis sûr qu'il y a des choses à ajouter à ce document. Faites-moi s'il vous plaît part de vos commentaires.</para> - - &abstract.license; - &abstract.disclaimer; - &trans.a.haby; - </abstract> - </artheader> - - <sect1> - <title>Préparation de la disquette de démarrage (sur le système sans disque)</title> - - <para>Les gestionnaires de démarrage via le réseau ne sont pas compatibles avec les TSRs et autres qu'utilise MS-DOS, il est préférable de préparer une disquette de démarrage, ou, si vous le pouvez, de mettre en place un menu MS-DOS qui (par l'intermédiaire des fichiers <filename>config.sys</filename>/<filename>autoexec.bat</filename>) vous demande au démarrage quelle configuration charger. C'est cette dernière méthode que j'ai utilisée et elle fonctionne à merveille. Voici mon menu MS-DOS :</para> - - <example> - <title><filename>config.sys</filename></title> - - <programlisting>[menu] -menuitem=normal, normal -menuitem=unix, unix -[normal] -.... -config.sys habituel -... -[unix]</programlisting> - </example> - - <example> - <title><filename>autoexec.bat</filename></title> - - <programlisting>@ECHO OFF -goto %config% - -:normal -... -autoexec.bat habituel -... -goto end - -:unix -cd \netboot -nb8390.com - -:end</programlisting> - </example> - </sect1> - - <sect1> - <title>Générer les programmes de démarrage en réseau (sur le serveur)</title> - - <para>Compilez les programmes de “démarrage en réseau” que vous trouverez dans <filename>/usr/src/sys/i386/boot/netboot</filename>. Lisez les commentaires au début du <filename>Makefile</filename>. Faites les modifications nécessaires. Faites une sauvegarde de l'original, pour vous prémunir en cas de problèmes. Après compilation, vous devriez obtenir deux exécutables, <filename>nb8390.com</filename> et <filename>nb3c509.com</filename>. C'est l'un de ces programmes que vous devrez exécuter sur la machine sans disque. Il chargera le noyau depuis le serveur de démarrage. Recopiez alors ces deux programmes sur la disquette de démarrage que vous avez créée auparavant.</para> - </sect1> - - <sect1> - <title>Déterminer le programme à utiliser (sur la machine sans disque)</title> - - <para>Si vous savez quel composant utilise votre carte Ethernet, c'est facile. Si vous avez un circuit NS8390 ou équivalent, servez vous de <filename>nb8390.com</filename>. Si vous avez un circuit de type 3Com 509, utilisez le programme de démarrage <filename>nb3C509.com</filename>. Si vous ne savez pas, essayez l'un et si vous avez le message “<errorname>No adapter found</errorname>”, essayez avec l'autre. Si rien ne marche, vous êtes livré à vous-même.</para> - </sect1> - - <sect1> - <title>Démarrer en réseau</title> - - <para>Démarrez la station sans disque sans fichiers <filename>config.sys/autoexec.bat</filename>. Essayez d'exécuter le programme de démarrage qui correspond à votre carte Ethernet.</para> - - <para>Ma carte Ethernet utilise le mode 16bit WD8013 16bit, j'exécute donc - <filename>nb8390.com</filename> :</para> - - <screen><prompt>C:></prompt> <userinput>cd \netboot</userinput> -<prompt>C:></prompt> <userinput>nb8390</userinput> - -<prompt>Boot from Network (Y/N) ?</prompt> <userinput>Y</userinput> - -BOOTP/TFTP/NFS bootstrap loader ESC for menu - -Searching for adapter.. -WD8013EBT base 0x0300, memory 0x000D8000, addr 00:40:01:43:26:66 - -Searching for server...</screen> - - <para>La machine sans disque essaye maintenant de trouver un serveur de démarrage. Notez la valeur de <literal>addr</literal> sur l'avant dernière ligne, vous en aurez besoin ensuire. Redémarrez la machine sans disque et modifiez vos -fichiers <filename>config.sys</filename> et <filename>autoexec.bat</filename> pour qu'ils fassent automatiquement ce que vous venez de faire à la main. Peut-être avec un menu. Si vous aviez dû utiliser <command>nb3c509.com</command> au lieu de <command>nb8390.com</command>, les messages seraient identiques. Si vous obtenez le message “<errorname>No adapter found</errorname>” après “<literal>Searching for adapter...</literal>”, vérifiez que vous avez défini les bonnes valeurs dans le <filename>Makefile</filename> au moment de compiler.</para> - </sect1> - - <sect1> - <title>Permettre aux systèmes de démarrer via le réseau (sur le serveur)</title> - - <para>Vérifiez qu'il y a bien des entrées pour <citerefentry><refentrytitle>tftp</refentrytitle></citerefentry> et <citerefentry><refentrytitle>bootps</refentrytitle></citerefentry> dans le fichier <filename>/etc/inetd.conf</filename>. Voici le mien :</para> - - <programlisting>tftp dgram udp wait nobody /usr/libexec/tftpd tftpd -# -# Ajout de qui que vous soyez -bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab</programlisting> - - <para>Si vous devez modifier le fichier <filename>/etc/inetd.conf</filename>, envoyez ensuite un signal <literal>HUP</literal> à <citerefentry><refentrytitle>inetd</refentrytitle></citerefentry>. Pour cela, utilisez la commande <command>ps -ax | grep inetd | grep -v grep</command> pour connaître le numéro de processus d'<citerefentry><refentrytitle>inetd</refentrytitle></citerefentry>. Une fois que vous l'avez, envoyez lui le signal HUP. Cela se fait avec <command>kill -HUP <pid></command>. Cela obligera <citerefentry><refentrytitle>inetd</refentrytitle></citerefentry> à relire ses fichiers de configuration.</para> - - <para>Vous avez bien noté la valeur de <literal>addr</literal> dans les messages du programme de démarrage sur la machine sans disque ? C'est maintenant que vous allez en avoir besoin.</para> - - <para>Ajoutez une entrée à <literal>/etc/bootptab</literal> (vous devrez peut-être créer ce fichier). Voici à quoi elle doit ressembler :</para> - - <programlisting>altair:\ - :ht=ether:\ - :ha=004001432666:\ - :sm=255.255.255.0:\ - :hn:\ - :ds=199.246.76.1:\ - :ip=199.246.76.2:\ - :gw=199.246.76.1:\ - :vm=rfc1048:</programlisting> - - <para>Ce qui, ligne par ligne, signifie :</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <tbody> - <row> - <entry><literal>altair</literal></entry> - <entry>nom du système sans disque, sans nom de domaine</entry> - </row> - - <row> - <entry><literal>ht=ether</literal></entry> - <entry>type matériel “ethernet”</entry> - </row> - - <row> - <entry><literal>ha=004001432666</literal></entry> - <entry>adresse matérielle (le nombre que vous avez noté auparavant)</entry> - </row> - - <row> - <entry><literal>sm=255.255.255.0</literal></entry> - <entry>masque de sous-réseau</entry> - </row> - - <row> - <entry><literal>hn</literal></entry> - <entry>dit au serveur de donner au client son nom de machine</entry> - </row> - - <row> - <entry><literal>ds=199.246.76.1</literal></entry> - <entry>dit au client quel est son serveur de noms de domaine</entry> - </row> - - <row> - <entry><literal>ip=199.246.76.2</literal></entry> - <entry>dit au client quelle est son adresse IP</entry> - </row> - - <row> - <entry><literal>gw=199.246.76.1</literal></entry> - <entry>dit au client quelle est sa passerelle par défaut</entry> - </row> - - <row> - <entry><literal>vm=...</literal></entry> - <entry>laissez cela tel que</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <note> - <para>Veillez à bien définir les adresses IP, j'ai inventé celles de l'exemple.</para> - - </note> - - <para>Créez le répertoire <filename>/tftpboot</filename> sur le serveur. Il contiendra les fichiers de configuration pour les systèmes sans disque dont ce sera le serveur de démarrage. Ces fichiers s'appeleront <filename>cfg.<ip></filename>, où <ip> est l'adresse IP de la machine sans disque. Le fichier de configuration pour “altair” est <filename>/tftpboot/cfg.199.246.76.2</filename>. Voici son contenu :</para> - - <programlisting>rootfs 199.246.76.1:/DiskLess/rootfs/altair -hostname altair.kcis.com</programlisting> - - <para>La ligne <literal>hostname altair.kcis.com</literal> indique seulement au système sans disque quel est son nom qualifié.</para> - - <para>La ligne <literal>rootfs 199.246.76.1:/DiskLess/rootfs/altair</literal> lui dit où est son système de fichiers racine qui sera monté par NFS.</para> - - <note> - <para>Ce système de fichiers racine sera monté en <emphasis>lecture seule</emphasis> par NFS.</para> - </note> - - <para>L'arborescence de la machine sans disque peut ensuite être remontée pour autoriser les opérations de lecture/écriture.</para> - - <para>J'utilise mon 386DX-40 comme terminal X dédié.</para> - - <para>Voici l'arborescence d'“altair” :</para> - - <literallayout>/ -/bin -/etc -/tmp -/sbin -/dev -/dev/fd -/usr -/var -/var/run</literallayout> - - <para>Et la liste des fichiers qu'elle contient :</para> - - <screen>-r-xr-xr-x 1 root wheel 779984 Dec 11 23:44 ./kernel --r-xr-xr-x 1 root bin 299008 Dec 12 00:22 ./bin/sh --rw-r--r-- 1 root wheel 499 Dec 15 15:54 ./etc/rc --rw-r--r-- 1 root wheel 1411 Dec 11 23:19 ./etc/ttys --rw-r--r-- 1 root wheel 157 Dec 15 15:42 ./etc/hosts --rw-r--r-- 1 root bin 1569 Dec 15 15:26 ./etc/XF86Config.altair --r-x------ 1 bin bin 151552 Jun 10 1995 ./sbin/init --r-xr-xr-x 1 bin bin 176128 Jun 10 1995 ./sbin/ifconfig --r-xr-xr-x 1 bin bin 110592 Jun 10 1995 ./sbin/mount_nfs --r-xr-xr-x 1 bin bin 135168 Jun 10 1995 ./sbin/reboot --r-xr-xr-x 1 root bin 73728 Dec 13 22:38 ./sbin/mount --r-xr-xr-x 1 root wheel 1992 Jun 10 1995 ./dev/MAKEDEV.local --r-xr-xr-x 1 root wheel 24419 Jun 10 1995 ./dev/MAKEDEV</screen> - - <para>N'oubliez pas d'exécuter <command>MAKEDEV all</command> dans le répertoire <filename>dev</filename>.</para> - - <para>Voici enfin mon <filename>/etc/rc</filename> pour <hostid>altair</hostid> :</para> - -<programlisting>#!/bin/sh -# -PATH=/bin:/ -export PATH -# -# configurer l'interface “en boucle” -/sbin/ifconfig lo0 127.0.0.1 -# -# configurer la carte Ethernet -/sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00 -# -# monter le système de fichiers racine via NFS -/sbin/mount antares:/DiskLess/rootfs/altair / -# -# monter le système de fichiers /usr via NFS -/sbin/mount antares:/DiskLess/usr /usr -# -/usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair > /dev/null 2>&1 -# -# Rédemarrer lorsque l'on quitte X -/sbin/reboot -# -# Nous avons planté ... -exit 1</programlisting> - - <para>Vos commentaires et questions sont bienvenus.</para> - </sect1> -</article> - -<!-- - Local Variables: - mode: sgml - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - End: ---> diff --git a/fr_FR.ISO8859-1/articles/fonts/Makefile b/fr_FR.ISO8859-1/articles/fonts/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/fonts/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD$ -# Original revision: 1.4 -# - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/fonts/article.sgml b/fr_FR.ISO8859-1/articles/fonts/article.sgml deleted file mode 100755 index 146bd45422..0000000000 --- a/fr_FR.ISO8859-1/articles/fonts/article.sgml +++ /dev/null @@ -1,775 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: n.nn ---> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; - <!ENTITY rel.current CDATA "3.2"> -]> - -<article lang="fr"> - <artheader> - <title>FreeBSD et les polices de caractères</title> - <subtitle>Un guide utilisateur</subtitle> - <authorgroup> - <author> - <firstname>Dave</firstname> - <surname>Bodenstab</surname> - </author> - </authorgroup> - &artheader.copyright; - <abstract> - <para><email>imdave@synet.net</email></para> - <para>Mercredi 7 Aout 1996</para> - <para>Ce document décrit les différents fichiers de polices de caractères - qui peuvent être utilisés avec FreeBSD et le pilote syscons, X11, - GhostScript et Groff. Des exemples immédiatement applicables sont donnés - pour passer l'affichage à la console en mode 80x60 et pour se servir des - polices “Type 1” avec les programmes d'application - précités.</para> - &abstract.license; - &abstract.disclaimer; - &trans.a.haby; - </abstract> - </artheader> - <sect1> - <title>Introduction</title> - <para>Il y a de nombreuses sources de polices de caractères disponibles, - et l'on peut se demander comment les utiliser avec FreeBSD. La - réponse peut être obtenue en détaillant attentivement la - documentation du composant voulu. Cela peut prendre beaucoup de - temps, ce guide essaie donc de fournir un raccourci pour les autres - personnes que cela intéresserait.</para> - </sect1> - <sect1> - <title>Terminologie élémentaire</title> - <para>Il y a de nombreux formats de polices de caractères avec chacun - son propre suffixe de nom de fichier. Quelques uns d'entre eux - seront discutés dans ce document:</para> - <variablelist> - <varlistentry> - <term><filename>.pfa</filename>, <filename>.pfb</filename></term> - <listitem> - <para>Polices PostScript “Type 1”. - <filename>.pfa</filename> est le format <emphasis>A</emphasis>scii - et <filename>.pfb</filename> le format - <emphasis>B</emphasis>inaire.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>.afm</filename></term> - <listitem> - <para>Le fichier de dimensions d'une police - “Type 1”.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>.pfm</filename></term> - <listitem> - <para>Le fichier de dimensions pour l'impression d'une police - “Type 1”.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>.ttf</filename></term> - <listitem> - <para>Police “True Type”.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>.fot</filename></term> - <listitem> - <para>Référence indirecte à une police “True Type” (ce - n'est pas la police elle-même).</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>.fon</filename>, <filename>.fnt</filename></term> - <listitem> - <para>Police de caractères “bitmap” pour affichage à - l'écran.</para> - </listitem> - </varlistentry> - </variablelist> - <para>Les fichiers <filename>.fot</filename> sont employés par Windows un - peu de la même façon que des liens symboliques vers le fichiers de police - “True Type” (<filename>.ttf</filename>). Les fichiers - <filename>.fon</filename> sont aussi utilisés par Windows. Je ne - connais pas de moyen de se servir de ces fichiers avec FreeBSD.</para> - </sect1> - <sect1> - <title>Quels formats de polices de caractères puis-je utiliser?</title> - <para>Le format de fichier de police de caractères utile dépend de - l'application. FreeBSD lui-même n'utilise pas de police de - caractères. Ce sont les programmes d'application et/ou les pilotes - qui se servent éventuellement de ces fichiers. Voici un petit tableau - associant application/pilote de périphérique et suffixe des fichiers de - police de caractères:</para> - <informaltable> - <tgroup cols="6"> - <thead> - <row> - <entry></entry> - <entry><filename>.fnt</filename></entry> - <entry><filename>.pfa</filename></entry> - <entry><filename>.pfb</filename></entry> - <entry><filename>.ttf</filename></entry> - <entry><filename>.afm</filename></entry> - </row> - </thead> - <tbody> - <row> - <entry>Pilote <devicename>syscons</devicename></entry> - <entry>Oui</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - </row> - <row> - <entry><application>GhostScript</application></entry> - <entry></entry> - <entry>Oui</entry> - <entry>Oui</entry> - <entry>Oui</entry> - <entry></entry> - </row> - <row> - <entry>X11</entry> - <entry></entry> - <entry>Oui</entry> - <entry>Oui</entry> - <entry></entry> - <entry></entry> - </row> - <row> - <entry><application>Groff</application></entry> - <entry></entry> - <entry>Oui</entry> - <entry></entry> - <entry></entry> - <entry>Oui</entry> - </row> - <row> - <entry><application>Povray</application></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry>Oui</entry> - <entry></entry> - </row> - </tbody> - </tgroup> - </informaltable> - <para>Le suffixe <filename>.fnt</filename> est assez fréquemment utilisé. - Je soupçonne que lorsque quelqu'un veut créer un fichier de police de - caractères spécialisé pour son application, il choisit la plupart du temps - ce suffixe. Il y a donc des chances pour que des fichiers avec ce - suffixe n'aient pas tous le même format; en particulier, les fichiers - <filename>.fnt</filename> utilisés par le pilote syscons de FreeBSD - n'auront peut-être pas le même format qu'un fichier - <filename>.fnt</filename> utilisé dans l'environnement DOS/Windows. Je - n'ai jamais essayé d'utiliser d'autres fichiers <filename>.fnt</filename> - que ceux fournis avec FreeBSD.</para> - </sect1> - <sect1> - <title>Configurer une console virtuelle en mode 80x60 lignes</title> - <para>Il faut d'abord charger une police de caractères 8x8. Le fichier - <filename>/etc/sysconfig</filename><footnote><para>N.d.T.: - <filename>/etc/rc.conf</filename> dans les versions récentes de - FreeBSD.</para></footnote> doit donc contenir les lignes:</para> - <programlisting> -# choose font 8x8 from /usr/share/syscons/fonts/* (or NO for default) -font8x8=/usr/share/syscons/fonts/cp437-8x8.fnt - </programlisting> - <para>La commande pour changer de mode d'affichage est - <citerefentry><refentrytitle>vidcontrol</refentrytitle> - <manvolnum>1</manvolnum></citerefentry>:</para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>vidcontrol VGA_80x60</userinput></screen> - </informalexample> - <para>Différents programmes en mode plein-écran, tel - <citerefentry><refentrytitle>vi</refentrytitle> - <manvolnum>1</manvolnum></citerefentry>, - doivent pouvoir déterminer la taille actuelle de l'écran. Elle peut être - configurée avec - <citerefentry><refentrytitle>stty</refentrytitle> - <manvolnum>1</manvolnum></citerefentry>:</para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>stty crt rows 60 columns 80</userinput></screen> - </informalexample> - <para>Pour rendre cela moins fastidieux, ces commandes peuvent être - introduites dans une procédure exécutée au démarrage du système. Voici une - façon de le faire:</para> - <orderedlist> - <listitem> - <para>Modifiez <filename>/etc/sysconfig</filename> comme expliqué plus - haut,</para> - </listitem> - <listitem> - <para>Ajoutez les lignes suivantes à - <filename>/etc/rc.local</filename>:</para> - <programlisting> -for tty in /dev/ttyv? -do - vidcontrol VGA_80x60 <$tty >/dev/null 2>&1 -done - </programlisting> - </listitem> - <listitem> - <para>Ajoutez les lignes suivantes à - <filename>/etc/profile</filename>:</para> - <programlisting> -TTYNAME=`basename \`tty\`` -if expr "$TTYNAME" : 'ttyv' > /dev/null -then - stty crt rows 60 columns 80 -fi - </programlisting> - </listitem> - </orderedlist> - <para>Références: - <citerefentry><refentrytitle>stty</refentrytitle> - <manvolnum>1</manvolnum></citerefentry>, - <citerefentry><refentrytitle>vidcontrol</refentrytitle> - <manvolnum>1</manvolnum></citerefentry>.</para> - </sect1> - <sect1> - <title>X11 et les polices “Type 1”</title> - <para>X11 peut employer les formats de police de caractères - <filename>.pfa</filename> et <filename>.pfb</filename>. Il y a une - référence croisée de chaque fichier sur son nom X11 par l'intermédiaire du - fichier <filename>fonts.dir</filename> de chaque répertoire.</para> - <para>Il y a déjà un répertoire appelé <filename>Type1</filename>. La façon - la plus immédiate d'ajouter une police de caractères est de la mettre dans - ce répertoire. Une meilleure manière de procéder est de mettre toutes les - nouvelle polices dans un répertoire distinct et d'utiliser un lien - symbolique sur ces nouvelles polices. Il est alors plus facile de - distinguer ses propres polices de celles qui sont fournies d'origine. Par - exemple:</para> - <itemizedlist> - <listitem> - <para><emphasis>Créer un repertoire pour les fichiers de police de - caractères.</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>mkdir -p /usr/local/share/fonts/type1</userinput> -<prompt>bash$</prompt> <userinput>cd /usr/local/share/fonts/type1</userinput></screen> - </informalexample> - </listitem> - <listitem> - <para><emphasis>Y mettre les fichiers <filename>.pfa</filename>, - <filename>.pfb</filename> et <filename>.afm</filename>. On peut aussi - vouloir y conserver les fichiers <filename>README</filename> et autres - documentations concernant les polices de caractères.</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>cp /cdrom/fonts/atm/showboat/showboat.pfb .</userinput> -<prompt>bash$</prompt> <userinput>cp /cdrom/fonts/atm/showboat/showboat.afm .</userinput></screen> - </informalexample> - </listitem> - <listitem> - <para><emphasis>Tenir à jour un index pour créer les références croisées - sur les polices.</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat >>INDEX</userinput></screen> - </informalexample> - </listitem> - </itemizedlist> - <para>Pour pouvoir maintenant utiliser une nouvelle police de caractères, il - faut mettre le fichier à disposition, et mettre à jour le fichier des - noms de polices. Les noms de police X11 se présentent comme suit:</para> - <programlisting> --bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1 - | | | | | | | | | | | | \ \ - | | | | | \ \ \ \ \ \ \ +----+- jeu de caractères - | | | | \ \ \ \ \ \ \ +- largeur moyenne - | | | | \ \ \ \ \ \ +- espacement - | | | \ \ \ \ \ \ +- résolution verticale - | | | \ \ \ \ \ +- résolution horizontale - | | | \ \ \ \ +- points - | | | \ largeur \ +- pixels - | | | \ \ - casse famille graisse inclinaison style supplémentaire - </programlisting> - <para>Il faut créer un nouveau nom pour chaque nouvelle police. Si la - documentation qui l'accompagne vous donne quelques informations, elle - peut servir de base pour définir ce nom. Si vous n'avez aucune - information, vous pouvez utiliser la commande - <citerefentry><refentrytitle>strings</refentrytitle> - <manvolnum>1</manvolnum></citerefentry> sur le fichier de police. Par - exemple:</para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>strings showboat.pfb | more</userinput></screen> - </informalexample> - <programlisting> -%!FontType1-1.0: Showboat 001.001 -%%CreationDate: 1/15/91 5:16:03 PM -%%VMusage: 1024 45747 -% Generated by Fontographer 3.1 -% Showboat - 1991 by David Rakowski. Alle Rechte Vorbehalten. -FontDirectory/Showboat known{/Showboat findfont dup/UniqueID known{dup -/UniqueID get 4962377 eq exch/FontType get 1 eq and}{pop false}ifelse -{save true}{false}ifelse}{false}ifelse -12 dict begin -/FontInfo 9 dict dup begin - /version (001.001) readonly def - /FullName (Showboat) readonly def - /FamilyName (Showboat) readonly def - /Weight (Medium) readonly def - /ItalicAngle 0 def - /isFixedPitch false def - /UnderlinePosition -106 def - /UnderlineThickness 16 def - /Notice (Showboat - 1991 by David Rakowski. Alle Rechte Vorbehalten.) readonly def -end readonly def -/FontName /Showboat def ---stdin-- - </programlisting> - <para>A partir de ces informations, le nom pourrait être:</para> - <programlisting> --type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1 - </programlisting> - <para>Les composantes de ce nom sont:</para> - <variablelist> - <varlistentry> - <term>Casse</term> - <listitem> - <para>Appelons simplement toutes nos nouvelles polices - <literal>type1</literal>.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>Famille</term> - <listitem> - <para>Le nom de la police.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>Graisse</term> - <listitem> - <para>Normal, gras, médium, semi-gras, etc. D'après les résultats - de <citerefentry><refentrytitle>strings</refentrytitle> - <manvolnum>1</manvolnum></citerefentry> ci-dessus, la police a une - graisse <emphasis>médium</emphasis>.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>Inclinaison</term> - <listitem> - <para><emphasis>r</emphasis>oman, <emphasis>i</emphasis>talique ou - <emphasis>o</emphasis>blique. Comme - <emphasis>ItaliqueAngle</emphasis> vaut 0, nous utiliserons - <emphasis>roman</emphasis>.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>Largeur</term> - <listitem> - <para>Normale, large, condensée, étendue, etc. Jusqu'à ce que nous la - déterminions à l'usage, nous supposerons qu'elle est - <emphasis>normale</emphasis>.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>Style supplémentaire</term> - <listitem> - <para>Habituellement non renseigné, mais nous nous en servons pour - indiquer que la police contient des majuscules décoratives.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>Espacement</term> - <listitem> - <para>Proportionnel ou fixe. Comme <emphasis>isFixedPitch</emphasis> - est faux, nous utilisons <emphasis>Proportionnel</emphasis>.</para> - </listitem> - </varlistentry> - </variablelist> - <para> Tous ces noms sont arbitraires, mais il faut essayer de rester - compatible avec les conventions existantes. Une police est connue d'une - application X11 sous un nom qui peut éventuellement comporter des - caractères de substitution, il faut donc choisir un nom significatif. On - peut commencer en utilisant simplement:</para> - <programlisting> -...-normal-r-normal-...-p-... - </programlisting> - <para>comme nom, puis se servir de - <citerefentry><refentrytitle>xfontsel</refentrytitle> - <manvolnum>1</manvolnum></citerefentry> pour visualiser la police et - affiner son nom en fonction de ce à quoi elle ressemble.</para> - <para>Donc, pour compléter notre exemple:</para> - <itemizedlist> - <listitem> - <para><emphasis>Rendre la police accessible à X11</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>cd /usr/X11R6/lib/X11/fonts/Type1</userinput> -<prompt>bash$</prompt> <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput></screen> - </informalexample> - </listitem> - <listitem> - <para><emphasis>Editer <filename>fonts.scale</filename> et - <filename>fonts.dir</filename> pour y ajouter une ligne décrivant la - nouvelle police et incrémenter le nombre de polices qui est défini en - première ligne</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>ex fonts.dir</userinput> -<userinput>:1p</userinput> -<userinput>25</userinput> -<userinput>:1c</userinput> -<userinput>26</userinput> -<userinput>.</userinput> -<userinput>:$a</userinput> -<userinput>showboat.pfb -type1-showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1</userinput> -<userinput>.</userinput> -<userinput>:wq</userinput></screen> - </informalexample> - </listitem> - <listitem> - <para><emphasis><filename>fonts.scale</filename> et - <filename>fonts.dir</filename> sont apparemment - identiques</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>cp fonts.dir fonts.scale</userinput></screen> - </informalexample> - </listitem> - <listitem> - <para><emphasis>Informer X11 des modifications</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>xset fp rehash</userinput></screen> - </informalexample> - </listitem> - <listitem> - <para><emphasis>Visualiser la nouvelle police</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>xfontsel -pattern -type1-*</userinput></screen> - </informalexample> - </listitem> - </itemizedlist> - <para>Références: <citerefentry><refentrytitle>xfontsel</refentrytitle> - <manvolnum>1</manvolnum></citerefentry>, - <citerefentry><refentrytitle>xset</refentrytitle> - <manvolnum>1</manvolnum></citerefentry>, <emphasis>The X Window System - in a Nutshell</emphasis>, <ulink url="http://www.ora.com">O'Reilly & - Associates</ulink>.</para> - </sect1> - <sect1> - <title>Utiliser les polices “Type 1” avec GhostScript</title> - <para>GhostScript référence les polices via son fichier - <filename>Fontmap</filename>. Il doit donc être modifié de la même façon - que le fichier X11 <filename>fonts.dir</filename>. GhostScript peut - utiliser des fichiers de police de caractères aux formats - <filename>.pfa</filename> ou <filename>.pfb</filename>. Voici comment nous - utiliserions la police de l'exemple précédent avec GhostScript:</para> - <itemizedlist> - <listitem> - <para><emphasis>Mettre la police dans le répertoire des polices de - GhostScript</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>cd /usr/local/share/ghostscript/fonts</userinput> -<prompt>bash$</prompt> <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput></screen> - </informalexample> - </listitem> - <listitem> - <para><emphasis>Editer le fichier <filename>Fontmap</filename> pour que - GhostScript ait connaissance de la nouvelle police</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>cd /usr/local/share/ghostscript/4.01</userinput> -<prompt>bash$</prompt> <userinput>ex Fontmap</userinput> -<userinput>:$a</userinput> -<userinput>/Showboat (showboat.pfb) ; % From CICA /fonts/atm/showboat</userinput> -<userinput>:wq</userinput></screen> - </informalexample> - </listitem> - <listitem> - <para><emphasis>Utiliser GhostScript pour visualiser la - police</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>gs prfont.ps</userinput></screen> - </informalexample> - <programlisting> -Aladdin Ghostscript 4.01 (1996-7-10) -Copyright (C) 1996 Aladdin Enterprises, Menlo Park, CA. All rights -reserved. -This software comes with NO WARRANTY: see the file PUBLIC for details. -Loading Times-Roman font from /usr/local/share/ghostscript/fonts/tir_____.pfb... - /1899520 581354 1300084 13826 0 done. - </programlisting> - <informalexample> -<screen><prompt>GS></prompt> <userinput>Showboat DoFont</userinput></screen> - </informalexample> - <programlisting> -Loading Showboat font from /usr/local/share/ghostscript/fonts/showboat.pfb... - 1939688 565415 1300084 16901 0 done. ->>showpage, press <return> to continue<< ->>showpage, press <return> to continue<< ->>showpage, press <return> to continue<< - </programlisting> - <informalexample> -<screen><prompt>GS></prompt> <userinput>quit</userinput></screen> - </informalexample> - </listitem> - </itemizedlist> - <para>Références: <filename>fonts.txt</filename> de la distribution de - GhostScript 4.01.</para> - </sect1> - <sect1> - <title>Utiliser les polices “Type 1” avec Groff</title> - <para>Maintenant que nous pouvons utiliser la nouvelle police avec X11 et - GhostScript, comment faire pour s'en servir aussi avec groff? Tout - d'abord, comme nous nous occupons de polices PostScript - “Type 1”, le périphérique groff à utiliser est - <devicename>ps</devicename>. Il faut créer un fichier de police pour - chaque police utilisée par groff. Le nom d'une police groff se résume à un - fichier dans le répertoire - <filename>/usr/share/groff_font/devps</filename>. Dans notre exemple, ce - pourrait être <filename>/usr/share/groff_font/devps/SHOWBOAT</filename>. - Il faut créer ce fichier avec les outils fournis par groff.</para> - <para>Le premier outil est <filename>afmtodit</filename>. Il n'est pas - normalement installé et doit donc être extrait de la distribution sous - forme de sources. Je me suis aperçu qu'il fallait modifier la première - ligne du fichier, voici donc ce que j'ai fait:</para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp</userinput> -<prompt>bash$</prompt> <userinput>ex /tmp/afmtodit.pl</userinput> -<userinput>:1c</userinput> -<userinput>#!/usr/bin/perl -P-</userinput> -<userinput>.</userinput> -<userinput>:wq</userinput></screen> - </informalexample> - <para>Cet outil crée le fichier de police groff à partir du fichier de - dimensions de la police (suffixe <filename>.afm</filename>). Pour - continuer avec notre exemple:</para> - <itemizedlist> - <listitem> - <para><emphasis>De nombreux fichiers <filename>.afm</filename> sont au - format Mac... avec des lignes terminées par des ^M</emphasis></para> - <para>Il faut les convertir au style Unix avec des lignes terminées par - des ^J</para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>cd /tmp</userinput> -<prompt>bash$</prompt> <userinput>cat /usr/local/share/fonts/type1/showboat.afm |</userinput> - <userinput>tr '\015' '\012' >showboat.afm</userinput></screen> - </informalexample> - </listitem> - <listitem> - <para><emphasis>Créons maintenant le fichier de police - groff</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>cd /usr/share/groff_font/devps</userinput> -<prompt>bash$</prompt> <userinput>/tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT</userinput></screen> - </informalexample> - </listitem> - </itemizedlist> - <para>La police peut maintenant être référencée par le nom SHOWBOAT.</para> - <para>Si l'on utilise GhostScript pour piloter les imprimantes du système, - il n'y a rien d'autre à faire. Si, par contre, l'on utilise de vraies - imprimantes PostScript, il faut alors charger la police sur l'imprimante - pour pouvoir l'utiliser (à moins que l'imprimante ne dispose de la police - “showboat” en interne ou sur une disquette de polices - accessible). La dernière étape consiste à créer la police chargeable. - L'outil <filename>pfbtops</filename> est utilisé pour créer le format - <filename>.pfa</filename> de la police et le fichier - <filename>download</filename> est modifié pour faire référence à la - nouvelle police. Le fichier <filename>download</filename> doit indiquer le - nom interne de la police. Ce nom peut être facilement connu à l'aide du - fichier de police groff, comme le montre l'exemple:</para> - <itemizedlist> - <listitem> - <para><emphasis>Créer le fichier de police - <filename>.pfa</filename></emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>fgrep internalname SHOWBOAT</userinput> -internalname Showboat</screen> - </informalexample> - </listitem> - <listitem> - <para><emphasis>Dire à groff qu'il faut charger la - police</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>ex download</userinput> -<userinput>:$a</userinput> -<userinput>Showboat showboat.pfa</userinput> -<userinput>.</userinput> -<userinput>:wq</userinput></screen> - </informalexample> - </listitem> - </itemizedlist> - <para>Pour tester la police:</para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>cd /tmp</userinput> -<prompt>bash$</prompt> <userinput>cat >exemple.t <<EOF</userinput> -<userinput>.sp 5</userinput> -<userinput>.ps 15</userinput> -<userinput>C'est un exemple de police Showboat:</userinput> -<userinput>.br</userinput> -<userinput>.ps 48</userinput> -<userinput>.vs (\n(.s+2)p</userinput> -<userinput>.sp</userinput> -<userinput>.ft SHOWBOAT</userinput> -<userinput>ABCDEFGHI</userinput> -<userinput>.br</userinput> -<userinput>JKLMNOPQR</userinput> -<userinput>.br</userinput> -<userinput>STUVWXYZ</userinput> -<userinput>.sp</userinput> -<userinput>.ps 16</userinput> -<userinput>.vs (\n(.s+2)p</userinput> -<userinput>.fp 5 SHOWBOAT</userinput> -<userinput>.ft 5</userinput> -<userinput>Utilisée comme première lettre d'un paragraphe. Cela ressemblera à:</userinput> -<userinput>.sp50p</userinput> -<userinput>\s(48\f5V\s0\fRoici la première phrase d'un paragraphe qui utilise</userinput> -<userinput>la police showboat pour sa première lettre. Il faut augmenter</userinput> -<userinput>l'espacement vertical pour laisser de la place pour la première</userinput> -<userinput>lettre.</userinput> -<userinput>EOF</userinput> -<prompt>bash$</prompt> <userinput>groff -Tps exemple.t >exemple.ps</userinput></screen> - </informalexample> - <itemizedlist> - <listitem> - <para><emphasis>Pour utiliser GhostScript/GhostView</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>ghostview exemple.ps</userinput></screen> - </informalexample> - </listitem> - <listitem> - <para><emphasis>Pour l'imprimer</emphasis></para> - <informalexample> -<screen><prompt>bash$</prompt> <userinput>lpr -Ppostscript exemple.ps</userinput></screen> - </informalexample> - </listitem> - </itemizedlist> - <para>Références: - <filename>/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man</filename>, - <citerefentry><refentrytitle>groff_font</refentrytitle> - <manvolnum>5</manvolnum></citerefentry>, - <citerefentry><refentrytitle>groff_char</refentrytitle> - <manvolnum>5</manvolnum></citerefentry>, - <citerefentry><refentrytitle>pfbtops</refentrytitle> - <manvolnum>1</manvolnum></citerefentry>.</para> - </sect1> - <sect1> - <title>Peut-on utiliser des polices “True Type”?</title> - <para>Le format de police “True Type” est utilisée par Windows, - Windows 95 et le Macintosh. Il est assez répandu et il y a de nombreuses - polices de ce format disponibles.</para> - <para>Malheureusement, je connais peu d'applications qui puissent utiliser - ce format: GhostScript et Povray viennent à l'esprit. Le support par - GhostScript est, d'après la documentation, assez rudimentaire et il y a - des chances que le résultat soit moins bon qu'avec les polices - “Type 1”. Povray version 3 est aussi capable d'utiliser des - des polices “True Type”, mais je doute que beaucoup de - personnes créent des documents sous forme de pages générées par lancer de - rayon :-).</para> - <para>Il est difficile d'utiliser une police “True Type” avec - groff parce que groff a besoin d'un fichier de description de la police, - et je ne connais pas d'outil pour déterminer les dimensions d'une police - “True Type”. De plus, il faudrait charger la police sur les - imprimantes PostScript avec le format approprié et, de nouveau, groff ne - peut gérer de cette façon les polices “True Type”.</para> - <para>Cette situation plutôt désolante changera peut-être bientôt. Le - <ulink url="http://www.freetype.org">Projet FreeType</ulink> développe - actuellement un ensemble d'utilitaire FreeType:</para> - <itemizedlist> - <listitem> - <para>Le serveur de polices <filename>xfsft</filename> pour X11 peut - gérer les polices “TrueType” en plus des polices - ordinaires. Bien que ce soit encore une version béta, elle a la - réputation d'être à peu près utilisable. Voyez - <ulink url="http://www.dcs.ed.sc.uk/home/jec/programs/xfsft">la page de - Juliusz Chroboczek</ulink> pour plus d'informations. Il y a des - instructions de portage sous FreeBSD sur - <ulink url="http://math.missouri.edu/~stephen/software">la page - logicielle de Stephen Montgomery</ulink>.</para> - </listitem> - <listitem> - <para><filename>xfstt</filename> est un autre serveur X11, disponible - sur <ulink url="ftp://sunsite.unc.edu/pub/Linux/X11/fonts">ftp://sunsite.unc.edu/pub/Linux/X11/fonts</ulink>.</para> - </listitem> - <listitem> - <para>Il y a un programme appelé <filename>ttf2bdf</filename> qui peut - créer des fichiers BDF utilisables en environnement X à partir de - fichiers “TrueType”. Les binaires pour Linux sont censés - être disponibles sur - <ulink url="ftp://crl.nmsu.edu/CLR/multiling/General/">ftp://crl.nmsu.edu/CLR/multiling/General/</ulink>.</para> - </listitem> - <listitem> - <para>Pour les personnes qui ont besoin de polices “True - Type” asiatiques, il peut valoir la peine de jetter un coup - d'oeil au serveur de polices <filename>XTT</filename>. Il y a des - informations sur <filename>XTT</filename> à l'adresse: - <ulink url="http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html">http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html</ulink>.</para> - </listitem> - <listitem> - <para>et d'autres ...</para> - </listitem> - </itemizedlist> - </sect1> - <sect1> - <title>Où peut-on trouver des polices supplémentaires?</title> - <para>Il y a de nombreuses polices disponibles sur l'Internet. Elles sont - soit complètement gratuites ou en “partagiciel”. Il y a aussi - de nombreux CD-ROMs peux onéreux qui contiennent beaucoup de polices. - Voici quelques sites Internet (au mois d'Août 1996):</para> - <itemizedlist> - <listitem> - <para><ulink url="ftp://ftp.winsite.com">ftp://ftp.winsite.com</ulink> - (auparavant CICA),</para> - </listitem> - <listitem> - <para><ulink url="http://www.simtel.net/simcgi-bin/dosfind.cgi">http://www.simtel.net/simcgi-bin/dosfind.cgi</ulink>,</para> - </listitem> - <listitem> - <para><ulink url="ftp://ftp.coast.net/">ftp://ftp.coast.net/</ulink>,</para> - </listitem> - <listitem> - <para><ulink url="http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html">http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html</ulink>,</para> - </listitem> - <listitem> - <para><ulink url="http://www.esselte.com/letraset/index.html">http://www.esselte.com/letraset/index.html</ulink>,</para> - </listitem> - <listitem> - <para><ulink url="http://www.inil.com/users/elfring/esf.htm">http://www.inil.com/users/elfring/esf.htm</ulink>.</para> - </listitem> - </itemizedlist> - </sect1> - <sect1> - <title>D'autres questions</title> - <itemizedlist> - <listitem> - <para>Que sont que les fichiers <filename>.pfm</filename>?</para> - </listitem> - <listitem> - <para>Peut-on générer des fichiers <filename>.afm</filename> à partir de - fichiers <filename>.pfa</filename> ou - <filename>.pfb</filename>?</para> - </listitem> - <listitem> - <para>Comment générer des fichiers de correspondance de caractères pour - groff pour les polices PostScript dont les caractères ont des noms qui - ne sont pas standard?</para> - </listitem> - <listitem> - <para>Les périphériques <filename>xditview</filename> et - <devicename>devX??</devicename> peuvent-ils être configurés pour - accéder aux nouvelles polices?</para> - </listitem> - <listitem> - <para>Il serait bien d'avoir des exemples d'utilisation de polices - “True Type” avec GhostScript et Povray.</para> - </listitem> - </itemizedlist> - </sect1> -</article> diff --git a/fr_FR.ISO8859-1/articles/formatting-media/Makefile b/fr_FR.ISO8859-1/articles/formatting-media/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/formatting-media/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD$ -# Original revision: 1.4 -# - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/formatting-media/article.sgml b/fr_FR.ISO8859-1/articles/formatting-media/article.sgml deleted file mode 100755 index f58946b2fd..0000000000 --- a/fr_FR.ISO8859-1/articles/formatting-media/article.sgml +++ /dev/null @@ -1,557 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: n.nn ---> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; - <!ENTITY rel.current CDATA "3.2"> -]> - -<article lang="fr"> - <artheader> - <title>Formatage des supports pour FreeBSD 2.2-RELEASE</title> - <subtitle>Un guide</subtitle> - <authorgroup> - <author> - <firstname>Doug</firstname> - <surname>White</surname> - </author> - </authorgroup> - &artheader.copyright; - <abstract> - <para><email>dwhite@resnet.uoregon.edu</email></para> - <para>Mars 1997</para> - <para>Ce document décrit comment découper, partitionner et formater les - disques durs et autres supports similaires pour les utiliser avec - FreeBSD. Les exemples proposés ont été testés avec FreeBSD 2.2-GAMMA et - devraient être applicables à d'autres versions.</para> - &abstract.license; - &abstract.disclaimer; - &trans.a.haby; - </abstract> - </artheader> - <sect1> - <title>Introduction et définitions</title> - <sect2> - <title>Résumé</title> - <para>Réussir à ajouter des disques à un système existant est la - marque d'un administrateur système expérimenté. Découper, partitionner - et ajouter des disques requiert de combiner avec soin commande - adéquate et syntaxe de nommage. Une frappe malheureuse et un disque - entier peut disparaître en quelques secondes. Ce document est une - tentative pour simplifier le processus et éviter les accidents. - Heureusement, les outils existants (tout particulièrement - <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry>) - ont notablement amélioré ce processus dans les dernières versions de - FreeBSD.</para> - <para>Il y a deux possibilités de formatage d'un disque:</para> - <itemizedlist> - <listitem> - <para><emphasis>mode compatible</emphasis>: Configurer un disque - pour qu'il ait une table des - tranches - “<foreignphrase>slices</foreignphrase>” - utilisable - avec d'autres systèmes d'exploitation.</para> - </listitem> - <listitem> - <para><emphasis>mode dangeureusement dédié</emphasis>: Formater un - disque sans table des - tranches - “<foreignphrase>slices</foreignphrase>”. - Cela facilite l'ajout de disques, mais des systèmes d'exploitation - autres que FreeBSD risquent de ne pas reconnaître de tels - disques.</para> - </listitem> - </itemizedlist> - <para>Dans la plupart des cas, le mode dédié est le plus facile à mettre - en oeuvre et à utiliser sur des systèmes existants, auquel cas le - nouveau disque est en général entièrement dédié à FreeBSD. Cependant, - le mode compatible garantit le maximum d'interopérabilité avec des - installations ultérieures, au prix d'une plus grande complexité.</para> - <para>En plus du choix du mode, il existe deux méthodes pour découper le - disque. La première est d'utiliser l'outil - <citerefentry><refentrytitle>/stand/sysinstall</refentrytitle></citerefentry> - d'installation du système. A partir de la version 2.1.7-RELEASE de - FreeBSD, - <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> - contient du code qui facilite la - configuration de disques en cours d'opération normale du système, - donnant essentiellement accès aux éditeurs de labels et de partitions, - et comportant un fonctionnalité d'écriture qui ne met à jour que le - disque sélectionné sans toucher aux autres disques. La seconde méthode - consiste à employer les utilitaires, à la main, depuis la ligne de - commande, en session sous le compte super-utilisateur - <username>root</username>. Pour le mode dangeureusement dédié, il n'y - a que trois ou quatre commandes concernées, alors que - <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> - demande quelques manipulations.</para> - </sect2> - <sect2> - <title>Définitions</title> - <para>La gestion de disques Unix a, au fil des siècles, inventé de - nombreuses nouvelles définitions pour d'anciens mots. Le glossaire - ci-dessous donne les définitions des expressions utilisées dans - ce document et (espérons-le) pour ce qui concerne FreeBSD en - général.</para> - <itemizedlist> - <listitem> - <para><emphasis>mode compatible</emphasis>: Configurer un disque - pour qu'il ait une table des - tranches - “<foreignphrase>slices</foreignphrase>” - utilisable - avec d'autres systèmes d'exploitation. C'est le contraire du mode - dangeureusement dédié.</para> - </listitem> - <listitem> - <para><emphasis>mode dangeureusement dédié</emphasis>: Formater un - disque sans table des - tranches - “<foreignphrase>slices</foreignphrase>”. - Cela facilite l'ajout de disques, mais des systèmes d'exploitation - autres que FreeBSD risquent de ne pas reconnaître de tels - disques. C'est le contraire du mode compatible.</para> - </listitem> - <listitem> - <para>disque: un disque circulaire recouvert d'un matériau magnétique - ou équivalent, qui tourne, mû par un moteur, devant une tête de - lecture. Les données sont enregistrées sur le disque en modifiant - la magnétisation du support, et peuvent être ensuite relues. Les - disques durs, CD-ROMs, disques magnéto-optiques et supports - amovibles Zip ou Jaz, sont des exemples de disques.</para> - </listitem> - <listitem> - <para>tranche - “<foreignphrase>slice</foreignphrase>”: - une subdivision du disque. Il peut y avoir jusqu'à quatre tranches - sur un disque d'après le standard PC. Les tranches sont constituées - de secteurs adjacents. Les tranches sont décrites par une - “table des tranches” utilisée par le BIOS du système - pour localiser les partitions démarrables. La table des tranches - est habituellement appelée “table des partitions” en - langage DOS. Les tranches sont gérées par l'utilitaire - <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry>.</para> - </listitem> - <listitem> - <para>partition: une subdivision de la - tranche - “<foreignphrase>slice</foreignphrase>”. - Habituellement utilisée pour désigner les divisions de la tranche - FreeBSD du disque. Chaque système de fichiers et espace de - pagination réside sur une partition. Les partitions sont gérées par - l'utilitaire - <citerefentry><refentrytitle>disklabel</refentrytitle></citerefentry>.</para> - </listitem> - <listitem> - <para>secteur: la plus petite subdivision d'un disque. Un secteur - contient habituellement 512 octets de données.</para> - </listitem> - </itemizedlist> - </sect2> - <sect2> - <title>Avertissements et pièges à éviter</title> - <para>Installer des disques n'est pas quelque chose à prendre à la - légère. Il est tout à fait possible de détruire le contenu d'autres - disques de votre système si vous ne prenez pas les précautions - nécessaires.</para> - <para><emphasis>Vérifiez avec soin ce que vous faites</emphasis>. Il est - très facile d'effacer le mauvais disque quand vous utilisez ces - commandes. En cas de doute, consultez les messages de démarrage du - noyau pour connaître le nom exact du périphérique.</para> - <para>Inutile de préciser que nous ne serions en rien responsable des - dégats que vous causeriez à vos données ou à votre matériel. Vous - travaillez à vos risques et périls.</para> - </sect2> - <sect2> - <title>Zip, Jaz et autres disques amovibles</title> - <para>Les disques amovibles peuvent être formatés de la même façon que les - disques durs ordinaires. Il est indispensable que le lecteur soit - connecté et qu'il y ait un disque dedans au démarrage du système, pour - que le noyau puisse déterminer la géométrie du disque. Consultez les - résultats de - <citerefentry><refentrytitle>dmesg</refentrytitle></citerefentry> - et vérifiez que le disque et sa taille y figurent. Si le noyau émet le - message:</para> - <programlisting> -Can't get the size - </programlisting> - <para>c'est que le disque n'était pas dans le lecteur. Dans ce cas, vous - devrez redémarrer la machine avant de formater des disques.</para> - </sect2> - </sect1> - <sect1> - <title>Formater des disques en mode dédié</title> - <sect2> - <title>Introduction</title> - <para>Cette section explique en détail comment configurer des disques - entièrement dédiés à FreeBSD. N'oubliez pas que des disques en mode - dédié ne peuvent pas être utilisés par l'architecture PC pour démarrer - le système.</para> - </sect2> - <sect2> - <title>Formater des disques en mode dédié avec Sysinstall</title> - <para><filename>/stand/sysinstall</filename>, l'utilitaire - d'installation du système, a été amélioré dans les versions récentes - pour rendre le processus de découpage propre des disques moins - pénible. Les éditeurs - <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry> et - <citerefentry><refentrytitle>disklabel</refentrytitle></citerefentry> - inclus dans - <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> - sont des outils interactifs qui - dissipent une bonne partie de la confusion liée aux opérations de - découpage de disques en “tranches”. Avec FreeBSD 2.1.7 et - ultérieur, c'est probablement la méthode la plus simple pour le - faire.</para> - <orderedlist> - <listitem> - <para>Lancez - <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> - en tant que super-utilisateur <username>root</username> en - tapant:</para> - <informalexample> -<screen>&prompt.root; <userinput>/stand/sysinstall</userinput></screen> - </informalexample> - <para>sur la ligne de commande.</para> - </listitem> - <listitem> - <para>Sélectionnez <option>Index</option>.</para> - </listitem> - <listitem> - <para>Sélectionnez <option>Partition</option>.</para> - </listitem> - <listitem> - <para>Sélectionnez le disque à configurer avec les touches Flèches et - la barre d'espacement.</para> - </listitem> - <listitem> - <para>Si vous utilisez tout le disque pour FreeBSD, sélectionnez - <option>A</option>.</para> - </listitem> - <listitem> - <para>A la question:</para> - <programlisting> -Do you want to do this with a true partition entry so as to remain -cooperative with any future possible operating systems on the -drive(s)? - -[Voulez-vous créer une vraie entrée de partition pour rester -compatible avec d'éventuels futurs systèmes d'exploitation -sur le(s) disque(s)?] - </programlisting> - <para>répondez <option>No</option> (Non).</para> - </listitem> - <listitem> - <para>Quand on vous demande si vous voulez continuer, répondez - <option>Yes</option> (Oui).</para> - </listitem> - <listitem> - <para>Sélectionnez <option>Write</option> (Ecrire).</para> - </listitem> - <listitem> - <para>A l'avertissement à propos de l'écriture sur des systèmes - déjà installés, répondez <option>Yes</option> (Oui).</para> - </listitem> - <listitem> - <para><option>Quit</option>tez l'éditeur - <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry> - et revenez au menu d'<option>Index</option> avec - <keycap>Echap</keycap>.</para> - </listitem> - <listitem> - <para>Sélectionnez <option>Label</option> dans le menu - d'<option>Index</option>.</para> - </listitem> - <listitem> - <para>Libellez le disque comme vous le souhaitez. Si vous ne voulez - qu'une seule partition, tapez <keycap>C</keycap> pour créer une - partition, validez la taille proposée par défaut, prenez comme - type de partition <option>Filesystem</option> (système de fichiers) - et indiquez un point de montage (qui dans ce cas ne sert à - rien).</para> - </listitem> - <listitem> - <para>Tapez <keycap>W</keycap> une fois que vous avez terminé. Le - système de fichiers sera initialisé avec - <citerefentry><refentrytitle>newfs</refentrytitle></citerefentry> - sans que vous n'ayez autre chose à faire, à moins que vous ne - fassiez un autre choix (pour les nouvelles partitions, il faut - initialiser le système de fichiers!). Vous aurez un message - d'erreur:</para> - <programlisting> -Error mounting /mnt/dev/wd2s1e on /mnt/blah : No such file or directory - </programlisting> - <para>Ne vous en occupez pas.</para> - </listitem> - <listitem> - <para>Quittez le programme, en utilisant à plusieurs reprises la - touche <keycap>Echap</keycap>.</para> - </listitem> - </orderedlist> - </sect2> - <sect2> - <title>Formater des disques en mode dédié depuis la ligne de - commande</title> - <para>Exécutez les commandes suivantes, en substituant à - <devicename>wd2</devicename> le nom de votre disque. Les lignes - qui commencent par <literal>#</literal> sont des commentaires.</para> - <informalexample> -<screen><userinput>dd if=/dev/zero of=/dev/rwd2 count=2</userinput> -<userinput>disklabel /dev/rwd2 | disklabel -B -R -r wd2 /dev/stdin</userinput> -# Nous ne voulons qu'une partition, utiliser la tranche 'c' devrait aller: -<userinput>newfs /dev/rwd2c</userinput></screen> - </informalexample> - <para>Si vous avez besoin de modifier le label du disque pour créer - plusieurs partitions (pour la pagination par exemple), utilisez la - séquence suivante:</para> - <informalexample> -<screen><userinput>dd if=/dev/zero of=/dev/rwd2 count=2</userinput> -<userinput>disklabel /dev/r$d > /tmp/label</userinput> -# Modifiez le label du disque pour ajouter des partitions: -<userinput>vi /tmp/label</userinput> -<userinput>disklabel -B -R -r wd2 /tmp/label</userinput> -# Créez les systèmes de fichiers sur les partitions avec newfs selon les besoins</screen> - </informalexample> - <para>Votre disque est maintenant prêt à être utilisé.</para> - </sect2> - </sect1> - <sect1> - <title>Formater des disques en mode compatible</title> - <sect2> - <title>Introduction</title> - <para>Travailler depuis la ligne de commande est la manière la plus facile - de formater des disques dédiés, et la pire pour formater des disques - compatibles. L'utilitaire en ligne de commande - <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry> - demande une bonne connaissance des mathématiques et une compréhension en - profondeur de la structure de la table des “tranches”, qui - dépassent ce dont la plupart des gens souhaitent se préoccuper. Utilisez - <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> - comme décrit dans ce qui suit.</para> - </sect2> - <sect2> - <title>Formater des disques en mode compatible avec Sysinstall</title> - <orderedlist> - <listitem> - <para>Lancez - <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> - en tant que super-utilisateur <username>root</username> en - tapant:</para> - <informalexample> -<screen>&prompt.root; <userinput>/stand/sysinstall</userinput></screen> - </informalexample> - <para>sur la ligne de commande.</para> - </listitem> - <listitem> - <para>Sélectionnez <option>Index</option>.</para> - </listitem> - <listitem> - <para>Sélectionnez <option>Partition</option>.</para> - </listitem> - <listitem> - <para>Sélectionnez le disque à configurer avec les touches Flèches et - la barre d'espacement.</para> - </listitem> - <listitem> - <para>Si vous utilisez tout le disque pour FreeBSD, sélectionnez - <option>A</option>.</para> - </listitem> - <listitem> - <para>A la question:</para> - <programlisting> -Do you want to do this with a true partition entry so as to remain -cooperative with any future possible operating systems on the -drive(s)? - -[Voulez-vous créer une vraie entrée de partition pour rester -compatible avec d'éventuels futurs systèmes d'exploitation -sur le(s) disque(s)?] - </programlisting> - <para>répondez <option>Yes</option> (Oui).</para> - </listitem> - <listitem> - <para>Sélectionnez <option>Write</option> (Ecrire).</para> - </listitem> - <listitem> - <para><option>Quit</option>tez l'éditeur - <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry>.</para> - </listitem> - <listitem> - <para>A la question à propos du gestionnaire de démarrage, répondez - encore <option>None</option> (aucun).</para> - </listitem> - <listitem> - <para>Sélectionnez <option>Label</option> dans le menu - d'<option>Index</option>.</para> - </listitem> - <listitem> - <para>Libellez le disque comme vous le souhaitez. Si vous ne voulez - qu'une seule partition, validez la taille proposée par - défaut, prenez comme type de partition <option>Filesystem</option> - (système de fichiers) et indiquez un point de montage (qui dans ce - cas ne sert à rien).</para> - </listitem> - <listitem> - <para>Le système de fichiers sera initialisé avec - <citerefentry><refentrytitle>newfs</refentrytitle></citerefentry> - sans que vous n'ayez autre chose à faire, à moins que vous ne - fassiez un autre choix (pour les nouvelles partitions, il faut - initialiser le système de fichiers!). Vous aurez un message - d'erreur:</para> - <programlisting> -Error mounting /mnt/dev/wd2s1e on /mnt/blah : No such file or directory - </programlisting> - <para>Ne vous en occupez pas.</para> - </listitem> - <listitem> - <para>Quittez le programme, en utilisant à plusieurs reprises la - touche <keycap>Echap</keycap>.</para> - </listitem> - </orderedlist> - <para>Votre nouveau disque est prêt à être utilisé.</para> - </sect2> - </sect1> - <sect1> - <title>Autres opérations sur les disques</title> - <sect2> - <title>Ajout d'espace de pagination</title> - <para>Au fur et à mesure que le système grossit, ses besoins d'espace de - pagination peuvent aussi augmenter. Alors qu'il est très difficile - d'ajouter de l'espace de pagination à des disques en service, un nouveau - disque peut être partitionné pour mettre en oeuvre de l'espace de - pagination supplémentaire.</para> - <para>Pour ajouter de l'espace de pagination au moment de l'installation - d'un nouveau disque:</para> - <orderedlist> - <listitem> - <para>Au moment de partitionner le disque, éditez son label et - allouer la quantité d'espace de pagination voulue en ajoutant une - partition 'b' et en affectant le reste à une autre partition, - telle que 'a' ou 'e'. La taille est à donner en blocs de 512 - octets.</para> - </listitem> - <listitem> - <para>Au moment de créer les systèmes de fichiers avec - <citerefentry><refentrytitle>newfs</refentrytitle></citerefentry>, - ne formatez pas la partition 'c'. Formatez à la place la partition - qui n'est pas réservée à la pagination.</para> - </listitem> - <listitem> - <para>Ajoutez la ligne qui suit à - <filename>/etc/fstab</filename>:</para> - <programlisting> -/dev/wd0b none swap sw 0 0 - </programlisting> - <para>En remplacant <filename>/dev/wd0b</filename> par le nom du - nouvel espace de pagination.</para> - </listitem> - <listitem> - <para>Pour que l'espace de pagination soit immédiatement utilisable, - utilisez la commande - <citerefentry><refentrytitle>newfs</refentrytitle></citerefentry>:</para> - <informalexample> -<screen>&prompt.user; <userinput>swapon /dev/sd0b</userinput> -swapon: added /dev/sd0b as swap space</screen> - </informalexample> - </listitem> - </orderedlist> - </sect2> - <sect2> - <title>Copier le contenu d'un disque sur un autre</title> - <para>Proposé par: Renauld Waldura - <email>renaud@softway.com</email>.</para> - <para>Pour déplacer le contenu d'un disque sur un nouveau, faites:</para> - <informalexample> -<screen>&prompt.root; <userinput>mount /dev/wd2 /mnt</userinput> -&prompt.root; <userinput>pax -r -w -p e /usr/home /mnt</userinput> -&prompt.root; <userinput>umount /mnt</userinput> -&prompt.root; <userinput>rm -rf /usr/home/*</userinput> -&prompt.root; <userinput>mount /dev/wd2 /usr/home</userinput></screen> - </informalexample> - </sect2> - <sect2> - <title>Créer des disques à écritures réparties avec - <devicename>ccd</devicename></title> - <para>Commandes transmises par: Stan Brown - <email>stanb@awod.com</email>.</para> - <para>Le pilote de disques - concaténés - “<foreignphrase>Concatenated Disk - Driver</foreignphrase>”, ou CCD - vous permet - d'utiliser plusieurs disques comme s'il s'agissait d'un seul. Les - écritures réparties peuvent augmenter les performances disque en - distribuant les lectures et les écritures sur plusieurs disques. - Voyez les pages de manuel de - <citerefentry><refentrytitle>ccd</refentrytitle> - <manvolnum>4</manvolnum></citerefentry> et - <citerefentry><refentrytitle>ccdconfig</refentrytitle> - <manvolnum>4</manvolnum></citerefentry> ou la - <ulink url="http://stampede.cs.berkeley.edu/ccd/">page de - CCD</ulink>, pour plus d'informations.</para> - <para>Pour créer un nouveau CCD, exécutez les commandes ci-dessous. - Elles décrivent comment concaténer trois disques; ajoutez ou - supprimez des périphériques selon vos besoins. Rappelez-vous - que les disques sur lequels se fera la répartition doivent être - <emphasis>identiques</emphasis>.</para> - <para>Avant d'exécuter ces commandes, vérifiez que vous avez bien - ajouté la ligne:</para> - <programlisting> -pseudo-device ccd 4 - </programlisting> - <para>à la configuration de votre noyau.</para> - <informalexample> -<screen>&prompt.root; <userinput>cd /dev ; sh MAKDEV ccd0</userinput></screen> - </informalexample> - <informalexample> -<screen>&prompt.root; <userinput>disklabel -r -w sd0 auto</userinput> -&prompt.root; <userinput>disklabel -r -w sd1 auto</userinput> -&prompt.root; <userinput>disklabel -r -w sd2 auto</userinput></screen> - </informalexample> - <informalexample> -<screen>&prompt.root; <userinput>disklabel -e sd0c</userinput> # changer le type en 4.2BSD -&prompt.root; <userinput>disklabel -e sd1c</userinput> # changer le type en 4.2BSD -&prompt.root; <userinput>disklabel -e sd2c</userinput> # changer le type en 4.2BSD</screen> - </informalexample> - <informalexample> -<screen>&prompt.root; <userinput>ccdconfig ccd0 32 0 /dev/sd0c /dev/sd1c /dev/sd2c</userinput></screen> - </informalexample> - <informalexample> -<screen>&prompt.root; <userinput>newfs /dev/rccd0c</userinput></screen> - </informalexample> - <para>Vous pouvez maintenant monter et utiliser votre CCD en le - référençant comme périphérique - <filename>/dev/ccd0c</filename>.</para> - </sect2> - </sect1> - <sect1> - <title>Remerciements</title> - <para>L'auteur aimerait remercier les personnes suivantes pour leur - contribution à ce projet:</para> - <itemizedlist> - <listitem> - <para>Darryl Okahata <email>darrylo@hpnmhjw.sr.hp.com</email>, - pour sa documentation simple sur la configuration de - disques en mode dédié, que j'ai utilisée à plusieurs reprises - sur la &a.questions;.</para> - </listitem> - <listitem> - <para>&a.jkh; pour avoir rendu - <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> - utile à ce type de tâches.</para> - </listitem> - <listitem> - <para>John Fieber <email>jfieber@indiana.edu</email> pour avoir - mis au point la documentation et les exemples d'utilisation de - la <foreignphrase>DTD Docbook</foreignphrase> utilisée - pour mettre en forme ce document.</para> - </listitem> - <listitem> - <para>&a.grog; pour avoir contrôlé mon travail et mentionné les - inexactitudes, ainsi que pour son concours sur divers points.</para> - </listitem> - </itemizedlist> - </sect1> -</article> diff --git a/fr_FR.ISO8859-1/articles/ip-aliasing/Makefile b/fr_FR.ISO8859-1/articles/ip-aliasing/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/ip-aliasing/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD$ -# Original revision: 1.4 -# - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/ip-aliasing/article.sgml b/fr_FR.ISO8859-1/articles/ip-aliasing/article.sgml deleted file mode 100755 index 149e58a4da..0000000000 --- a/fr_FR.ISO8859-1/articles/ip-aliasing/article.sgml +++ /dev/null @@ -1,277 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: n.nn ---> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; - <!ENTITY rel.current CDATA "3.2"> -]> - -<article lang="fr"> - <artheader> - <title>Alias IP avec FreeBSD 2.x</title> - <authorgroup> - <author> - <firstname>Ben</firstname> - <surname>Black</surname> - </author> - </authorgroup> - &artheader.copyright; - <abstract> - <para><email>black@cypher.net</email></para> - &abstract.license; - &abstract.disclaimer; - &trans.a.haby; - </abstract> - </artheader> - <sect1> - <title>Introduction</title> - <para>Définir des <emphasis>alias IP</emphasis> consiste à affecter plus - d'une adresse IP à une interface réseau. Les alias IP sont typiquement - employés pour héberger des serveurs Web et FTP virtuels et pour - réorganiser ses serveurs sans avoir à mettre à jour d'autres machines - (ce dernier usage est particulièrement utile avec les serveurs de noms - de domaines). Voyez un alias IP comme un petit enfant perché sur le - dos de son interface parente (qui est l'adresse primaire de l'interface - physique).</para> - <para>Les alias IP <emphasis>n'ont rien à voir</emphasis> avec la notion - de <emphasis>multi-hébergement</emphasis> - “<foreignphrase>multi-homing</foreignphrase>” - (lorsqu'une machine dispose de plus d'une interface réseau active), sauf - au cas où une machine sur plusieurs réseaux fournit des services tels que - ceux listés plus haut. La confusion entre les deux notions est une erreur - propagée du monde Macintosh et vous seriez avisé de ne pas les suivre sur - ce point.</para> - <para>Il y a deux commandes essentielles à la mise en place d'alias IP sur - FreeBSD (et sur tous les autres systèmes Unix que j'aie jamais utilisés), - ce sont <command>ifconfig</command> et <command>route</command>. - L'utilisation correcte de ces commandes est décrite ci-dessous. Pour - connaître toutes les subtilités de leur emploi, reportez-vous aux pages de - manuel correspondantes. Il y a deux autres commandes utiles pour vérifier - que tout fonctionne comme il se doit et pour mettre les choses au point - si ce n'est pas le cas. <command>netstat</command> vous permet de - consulter la table de routage du noyau (entre autres choses utiles), et - ping est un appréciable petit outil pour tester l'accès à votre nouvel - alias (comme à toute autre adresse IP).</para> - <important> - <para>Vous <emphasis>devez</emphasis> être en session sous le compte - super-utilisateur <username>root</username> pour pouvoir exécuter la - plupart des commandes décrites dans ce qui suit.</para> - </important> - </sect1> - <sect1> - <title>Utiliser <command>ifconfig</command></title> - <para><citerefentry><refentrytitle>ifconfig</refentrytitle></citerefentry> - sert à configuer les différentes caractéristiques d'une interface réseau - (adresse, protocole, masque de réseau, etc.). - <citerefentry><refentrytitle>ifconfig</refentrytitle></citerefentry> nous - servira ici à ajouter (et parfois à supprimer) les adresses des alias des - interfaces.</para> - <para>Dans l'exemple ci-dessous, nous supposerons que notre machine n'a - qu'une seule interface Ethernet 3Com 3C509 (<devicename>ep0</devicename>) - d'adresse <hostid role="ipaddr">192.168.57.82</hostid> avec comme masque - de sous-réseau <hostid role="netmask">255.255.255.0</hostid>, en plus - de l'interface “en boucle” standard - <hostid role="ipaddr">127.0.0.1</hostid>. Vous devrez bien sûr remplacer - ces valeurs par l'adresse et le masque de sous-réseau de votre(vos) - interface(s). L'adresse et le masque de sous-réseau de l'interface - “en boucle” sont les mêmes sur toutes les machines.</para> - <para>Pour ajouter un alias à <devicename>ep0</devicename>, nous passons - simplement une commande du style:</para> - <informalexample> -<screen>&prompt.root; <userinput>ifconfig ep0 inet 192.168.57.10 netmask 255.255.255.255 alias</userinput></screen> - </informalexample> - <para>Ce qui dit à FreeBSD que nous définissons une adresse IP - (<literal>inet</literal>) pour la carte 3Com - (<devicename>ep0</devicename>) avec comme adresse - <hostid role="ipaddr">192.168.57.10</hostid>, comme masque de - sous-réseau (<literal>netmask</literal>) - <hostid role="netmask">255.255.255.255</hostid> (i.e., tous - les bits à 1) pour éviter que le système d'exploitation ne proteste qu'il - y a déjà une adresse affectée à cette interface, et que c'est un alias - pour cette interface (<literal>alias</literal>).</para> - <para>Vous pouvez aussi omettre le masque de sous-réseau (ou lui donner une - autre valeur). Jusqu'à FreeBSD 2.1.0 compris, il y a néanmoins un bogue - qui fait que les commandes <command>ifconfig alias</command> échouent à - la première tentative, mais réussissent à la seconde, si vous n'indiquez - pas <hostid role="netmask">255.255.255.255</hostid> comme masque de - sous-réseau. Si vous ne donnez pas ce masque de sous-réseau de - <hostid role="netmask">255.255.255.255</hostid>, vous devrez aussi ajouter - une route manuellement, comme décrit ci-dessous.</para> - <para>Pour supprimer l'alias, nous exécutons une commande très - similaire:</para> - <informalexample> -<screen>&prompt.root; <userinput>ifconfig ep0 inet 192.168.57.10 -alias</userinput></screen> - </informalexample> - <para>Il n'y a pas besoin de paramètres supplémentaires, tels que le masque - de sous-réseau, parce que l'alias est entièrement défini par l'adresse IP, - de sorte que FreeBSD peut supprimer toutes les ressources associées en se - basant sur cette adresse.</para> - </sect1> - <sect1> - <title>Utiliser <command>route</command></title> - <para><citerefentry><refentrytitle>route</refentrytitle></citerefentry> sert - à modifier à la main la table de routage du noyau. Pour nos besoins, une - fois que nous avons donné à FreeBSD l'alias pour l'interface, nous devons - définir une route IP vers cet alias. Si vous avez précisé le masque de - sous-réseau de <hostid role="netmask">255.255.255.255</hostid> avec la - commande précédente, vous pouvez vous dispenser de cette étape.</para> - <para>Pour ajouter une route vers notre nouvelle interface, nous - exécutons:</para> - <informalexample> -<screen>&prompt.root; <userinput>route add -host 192.168.57.10 127.0.0.1 0</userinput></screen> - </informalexample> - <para>Cela dit à FreeBSD que pour arriver à la machine - <hostid role="ipaddr">192.168.57.10</hostid>, les paquets doivent être - envoyés sur l'interface “en boucle” - (<hostid role="ipaddr">127.0.0.1</hostid> aussi appelée - <hostid role="hostname">localhost</hostid> et que la distance (décompte - de noeuds intermédiaires) est de <literal>0</literal>, ce qui signifie - que c'est la machine locale.</para> - <para>Pour supprimer cette route, nous exécutons:</para> - <informalexample> -<screen>&prompt.root; <userinput>route delete -host 192.168.57.10</userinput></screen> - </informalexample> - <para>De nouveau, comme la route est entièrement définie par les paramètres - indiqués, nous pouvons laisser de côté les autres données telles que - le masque de sous-réseau et la distance. Pour des informations complètes - sur la commande - <citerefentry><refentrytitle>route</refentrytitle></citerefentry>, - voyez les pages de manuel.</para> - </sect1> - <sect1> - <title>Tester notre travail</title> - <para>Maintenant que nous avons (espérons-le) un alias défini et accessible, - nous devons vérifier qu'il fonctionne correctement. Nous examinerons - d'abord la table de routage du noyau, pour vérifier que la route vers - l'alias est bien présente, puis nous utiliserons - <citerefentry><refentrytitle>ping</refentrytitle></citerefentry> pour - nous assurer que des paquets peuvent l'atteindre.</para> - <para>Pour voir la table de routage du noyau, sous forme numérique, - tapons:</para> - <informalexample> -<screen>&prompt.user; <userinput>netstat -nr</userinput></screen> - </informalexample> - <para>Dans notre exemple, voici à quoi ressemblerait le résultat:</para> - <programlisting> -Routing tables - -Internet: -Destination Gateway Flags Refs Use Netif Expire -default 192.168.57.1 UGSc 4 964 ep0 -127.0.0.1 127.0.0.1 UH 1 39 lo0 -192.168.57 link#2 UC 0 0 -192.168.57.10/32 link#2 UC 0 0 -192.168.57.82 127.0.0.1 UGHS 0 0 lo0 -224/4 link#2 UCS 0 0 - </programlisting> - <para>Nous y voyons la route par défaut, la route vers l'interface - “en boucle”, la route vers notre réseau local et une curieuse - route vers notre alias. Le <literal>/32</literal> qui suit l'adresse de - l'alias donne la longueur du masque de sous-réseau (le nombre de 1, en - partant de la gauche). Comme nous avons utilisé un masque de sous-réseau - de <hostid role="netmask">255.255.255.255</hostid>, la longueur de - celui-ci (le nombre de 1) est de 32.</para> - <para>Maintenant que nous avons vérifié que la route est bien dans la table - de routage du noyau, nous pouvons effectuer un contrôle rapide pour nous - assurer que cette route fonctionne bien. Exécutons une commande - <citerefentry><refentrytitle>ping</refentrytitle></citerefentry> comme - ci-dessous:</para> - <informalexample> -<screen>&prompt.user; <userinput>ping 192.168.57.10</userinput></screen> - </informalexample> - <para>Si tout va bien, voici ce que nous verrions:</para> - <programlisting> -PING 192.168.57.10 (192.168.57.10): 56 data bytes -64 bytes from 192.168.57.10: icmp_seq=0 ttl=255 time=0.313 ms -64 bytes from 192.168.57.10: icmp_seq=1 ttl=255 time=0.197 ms -64 bytes from 192.168.57.10: icmp_seq=2 ttl=255 time=0.190 ms - </programlisting> - <para>Appuyons simplement sur - <keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo> pour arrêter - <citerefentry><refentrytitle>ping</refentrytitle></citerefentry> si tout - paraît satisfaisant. Il nous “crachera” alors quelques - statistiques, que nous pouvons normalement ignorer. S'il n'y a pas de - retour ou s'il y a des messages d'erreur, quelque chose ne va pas. - Reprenez tout du début et lisez les pages de manuel (non, vraiment, - <emphasis>allez lire les pages de manuel</emphasis>), et, finalement, - posez vos questions sur la &a.questions;.</para> - </sect1> - <sect1> - <title>Tout mettre en place</title> - <para>Maintenant que nous avons compris comment utiliser les commandes - <citerefentry><refentrytitle>ifconfig</refentrytitle></citerefentry> et - <citerefentry><refentrytitle>route</refentrytitle></citerefentry> pour - ajouter et supprimer des alias IP, faisons en sorte que la machine - exécute les commandes voulues au démarrage de façon à ce que l'alias soit - toujours actif.</para> - <para>Vers la fin de notre fichier <filename>/etc/rc.local</filename>, nous - ajouterons la ligne:</para> - <programlisting> -ifconfig ep0 inet 192.168.57.10 netmask 255.255.255.255 alias - </programlisting> - <para>Si nous utilisons un autre masque de sous-réseau que - <hostid role="netmask">255.255.255.255</hostid>, nous devrons aussi - utiliser la commande - <citerefentry><refentrytitle>route</refentrytitle></citerefentry> comme - expliqué plus haut. Il est possible d'ajouter de cette façon autant - d'alias que l'on veut (en supposant que nous disposons de suffisamment - d'adresses allouées). Il suffit de mettre plusieurs commandes comme - la précédente dans <filename>/etc/rc.local</filename>, avec les adresses - appropriées. Il est même possible de définir comme alias des adresses - d'un autre réseau IP, si ce réseau est aussi routé sur nous. C'est une - situation différente de celle d'une machine avec plusieurs interfaces - <emphasis>physiques</emphasis> qui doivent <emphasis>toujours</emphasis> - avoir des adresses sur des réseaux IP différents.</para> - <para>Il y a un certains nombre de points à connaître lorsque l'on utilise - un grand nombre d'alias (plus de ~10), que je citerai.</para> - <para>Tout d'abord, il y a un bogue dans toutes les distributions de - <application>bind</application> (le serveur DNS - <application>named</application> fait partie de - <application>BIND</application>) qui empêche le démarrage correct de - <application>named</application> lorsqu'il y a plus de 64 alias sur - une interface. Il n'y a pas de palliatif particulièrement simple, je ne - les mentionnerai donc pas ici.</para> - <para>En second lieu, pour éviter de truffer votre fichier - <filename>/etc/rc.local</filename> de quantité - d'<citerefentry><refentrytitle>ifconfig</refentrytitle></citerefentry>, je - vous suggère d'utiliser un fichier à part dans <filename>/etc</filename> - pour les y mettre. Créez par exemple un fichier - <filename>ifconfig.ep0</filename> et mettez-y tous les - <literal>ifconfig alias</literal>. Puis dans - <filename>/etc/rc.local</filename>, ajoutez les lignes suivantes:</para> - <programlisting> -if [ -x /sbin/ifconfig ]; then - echo -n 'Adding local ifconfigs ' - . /etc/ifconfig.ep0 - echo ' done.' -fi - </programlisting> - <para>Ce fragment de procédure provient d'un fichier - <filename>/etc/rc.local</filename> fourni par Neil Fowler Wright - <email>neil@corpex.com</email>. Le bricoleur trouvera moyen d'y mettre - des boucles s'il y a plusieurs interfaces dont les alias sont définis - dans différents fichiers <filename>ifconfig.*</filename>.</para> - </sect1> - <sect1> - <title>Où trouver plus d'aide</title> - <para>M'envoyer directement un courrier électronique n'est probablement pas - le meilleur moyen d'obtenir de l'aide sur les problèmes d'alias IP. Je - suis assez occupé la plupart du temps, et ai tendance à devenir assez - rouspéteur. Néanmoins, les participants de la &a.questions; sont - amicaux et secourables et répondront à vos questions plus rapidement que - je ne le ferais.</para> - <para>Cette page a grandement bénéficié des suggestions de Neil Fowler - Wright, Paul DuBois, Gabe Schuyler, et de Brodie le chat.</para> - </sect1> -</article> diff --git a/fr_FR.ISO8859-1/articles/make-world/Makefile b/fr_FR.ISO8859-1/articles/make-world/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/make-world/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD$ -# Original revision: 1.4 -# - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/make-world/article.sgml b/fr_FR.ISO8859-1/articles/make-world/article.sgml deleted file mode 100755 index dd12d95e46..0000000000 --- a/fr_FR.ISO8859-1/articles/make-world/article.sgml +++ /dev/null @@ -1,1376 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: 1.39 ---> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; - <!ENTITY rel.current CDATA "3.2"> -]> - -<article lang="fr"> - <artheader> - <title>Refaire votre monde (avec “make world”)</title> - <authorgroup> - <author> - <firstname/Nik/ - <surname/Clayton/ - <affiliation> - <address><email/Nik.Clayton@nothing-going-on.demon.co.uk/</address> - </affiliation> - </author> - </authorgroup> - <pubdate>10 Juillet 1997</pubdate> - - <abstract> - <para>Ce document présuppose que vous ayez installé une version du code - source de FreeBSD dans le répertoire <filename>/usr/src</filename>. - Ce peut être la dernière version de la branche en cours de - développement -current, à moins que vous ne restiez simplement à niveau - sur la branche -stable. Vous pouvez avoir téléchargé l'instantané le plus - récent, ou bien rester à jour en utilisant les mécanismes fournis - par CVSup ou CTM.</para> - - <para>Dans les deux cas, vous diposez du code source et voulez maintenant - mettre à jour votre système.</para> - - <para>Il y a un certain nombre d'étapes à effectuer pour y arriver, - et quelques pièges à éviter en cours de route. Ce document vous - guide pas à pas à chacune de ces étapes.</para> - - <para>Il existe aussi des <link linkend="translations">Traductions</link> - de ce document dans d'autres langues.</para> - &trans.a.haby; - </abstract> -</artheader> - -<sect1> - <title>Avertissements préalables</title> - <note> - <title>Faites une sauvegarde</title> - - <para>Je n'insisterai jamais assez sur l'importance de faire un sauvegarde - de votre système <emphasis>avant</emphasis> toute autre chose. Bien qu'il - soit facile de “refaire le monde” - (N.d.T.: recompiler FreeBSD) - si - vous suivez ces instructions, vous ferez forcément des erreurs à un moment - ou à un autre, sans compter les erreurs des autres dans l'arborescence des - sources qui empêcheraient votre système de redémarrer.</para> - - <para>Assurez-vous que vous avez bien fait une sauvegarde. Ayez une - disquette de maintenance à portée de la main. Je n'ai jamais eu à les - utiliser, et, je touche du bois, espère ne jamais devoir m'en servir, - mais prudence est mère de sûreté.</para> - </note> - - <note> - <title>Abonnez-vous à la bonne liste de diffusion</title> - - <para>Les branches -stable et -current du code de FreeBSD sont, par nature, - <emphasis>en développement</emphasis>. Les gens qui participent au projet - FreeBSD sont humains, et des erreurs se produisent parfois.</para> - - <para>Ces erreurs sont parfois bénignes. Votre système affiche simplement - un nouveau message d'avertissement. Elles peuvent aussi être - catastrophiques, et empêcher votre sytème de redémarrer, détruire vos - systèmes de fichiers (ou pire).</para> - - <para>Quand de tels problèmes se produisent, un avertissement - “heads up” est posté sur la liste de diffusion appropriée, - décrivant le problème et les machines concernées. Un message - “all clear” est diffusé quand le problème est - résolu.</Para> - - <para>Si vous restez à niveau sur -stable ou -current et ne lisez pas - <email>FreeBSD-stable@FreeBSD.ORG</email> ou - <email>FreeBSD-current@FreeBSD.ORG</email>, vous allez au devant - d'ennuis.</para> - </note> - - <important> - <para>S'il vous plaît, ne me posez pas de questions que vous devriez poster - sur les listes -questions, -current, ou -stable. Je n'ai ni le temps - ni l'environnement nécessaire pour diagnostiquer des problèmes - spécifiques, et n'ai probablement pas votre réponse. Les membres de - ces listes de diffusion sont nombreux, expérimentés et serviables, aussi, - posez leur vos questions. Adressez-moi cependant vos commentaires, - réponses et corrections<footnote><para>En anglais !</para></footnote>. - Si vous vous adressez à moi au sujet de ce - document, <emphasis>merci</emphasis> de m'indiquer le numéro de version - qui se trouve en haut de cette page, que je sache à quelle version vous - faites référence.</para> - - <para>Ce document est un effort collectif. De nombreuses personnes y ont - participé, elles sont mentionnées dans les - <link linkend="contributors">Contributions</link> - en fin de document.</para> - - <para>Copyright (c) 1997, 1998 Nik Clayton, All rights reserved.</para> - - <para>Vous pouvez redistribuer et utiliser ce document sous forme - de source (SGML DocBook) ou 'compilé' (HTML, PDF, PostScript, RTF, - etc..) avec ou sans modifications à la condition suivante:</para> - - <itemizedlist> - <listitem> - <para>Le document redistribué doit inclure la notice de copyright - ci-dessus et l'avertissement ci-dessous, avant le corps du - document.</para> - </listitem> - </itemizedlist> - - <para>THIS TUTORIAL IS PROVIDED BY NIK CLAYTON “AS IS” AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - ANY WAY OUT OF THE USE OF THIS TUTORIAL, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE.</para> - - <para>CE DOCUMENT EST FOURNI PAR NIK CLAYTON “TEL QUEL” ET - AUCUNE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS NON LIMITEE, - GARANTIES IMPLICITES DE COMMERCIABILITE ET D'ADEQUATION A UN BUT - PARTICULIER N'EST DONNEE. EN AUCUN CAS NIK CLAYTON NE - SAURAIT ETRE TENU RESPONSABLE - DES DOMMAGES DIRECTS, INDIRECTS, ACCIDENTELS, SPECIAUX OU CONSEQUENTS - (Y COMPRIS, MAIS SANS LIMITATION, LA FOURNITURE DE BIENS ET SERVICES - ANNEXES; DEFAUT D'UTILISABILITE, PERTE DE DONNEES OU DE PROFITS; OU - INTERRUPTION DE TRAVAIL) QUELLE QU'EN SOIT LA CAUSE ET SELON TOUTE - DEFINITION DE RESPONSABILITE, SOIT PAR CONTRAT, RESPONSABILITE STRICTE, - OU PREJUDICE (Y COMPRIS NEGLIGENCE OU AUTRES) IMPUTABLE D'UNE FACON - OU D'UNE AUTRE A L'UTILISATION DE CE DOCUMENT, MEME APRES AVOIR ETE AVISE - DE LA POSSIBILITE D'UN TEL DOMMAGE.</para> - </important> -</sect1> - - <sect1> - <title>Examinez <filename>/etc/make.conf</filename></title> - - <para>Reportez-vous au fichier <filename>/etc/make.conf</filename>. - Il contient les valeurs par défaut utilisées par la commande - <command/make/, qui sera employée pour la recompilation. Elles sont aussi - utilisées toutes les fois que vous invoquez <command/make/, il est donc - bon de vous assurer qu'elles comportent les valeurs appropriées à votre - système.</para> - - <para>Tout y est, par défaut, en commentaire. Activez les options qui - vous paraîssent utiles. Pour un utilisateur normal (qui ne développe - pas), il faut probalement utiliser les définitions de CFLAGS et - NOPROFILE.</para> - - <note> - <title/Version 2.1.7 et antérieures/ - - <para>Si votre machine dispose d'une unité de calcul en virgule - flottante (386DX, 486DX, Pentium et ultérieurs) vous pouvez aussi - activer l'option HAVE_FPU.</para> - - <para>Cette définition a disparu depuis la version 2.2.2 de - FreeBSD.</para> - </note> - - <para>Examinez les autres définitions (COPTFLAGS, NOPORTDOCS et ainsi de - suite) et décidez de celles qui vous conviennent.</para> - </sect1> - - <sect1> - <title>Mettez à jour le fichier <filename>/etc/group</filename></title> - - <para>Le répertoire <filename>/etc</filename> contient la plupart des - informations de configuration de votre système, ainsi que ses procédures - de démarrage. Certaines de ces procédures changent d'une version à l'autre - de FreeBSD.</para> - - <para>Certains fichiers de configuration sont aussi utilisés en permanence - par le système. En particulier, <filename>/etc/group</filename>.</para> - - <para>Il est arrivé que la phase d'installation de “make - world” ait besoin que certains utilisateurs et groupes existent. - Il y a de fortes chances qu'ils n'aient pas été définis avant la mise - à jour. C'est une source de problèmes.</para> - - <para>L'exemple le plus récent concerne l'ajout du groupe “ppp” - (renommé par la suite “network”). Les utilisateurs ont vu leur - mise à jour avorter à l'installation du sous-sytème - <filename>ppp</filename> sous un groupe inexistant (chez eux).</para> - - <para>La solution consiste à examiner le fichier - <filename>/usr/src/etc/group</filename> et à le comparer à votre propre - liste de groupes. S'il y a des groupes dans le nouveau fichier qui ne - sont pas dans votre fichier, copiez-les. De même, vous devez renommer - tout groupe de votre fichier <filename>/etc/group</filename> qui a le - même GID, mais un nom différent, qu'un groupe du fichier - <filename>/usr/src/etc/group</filename>.</para> - - <tip> - <para>Si vous êtes particulièrement paranoïaque, vous pouvez contrôler - votre système pour trouver les fichiers appartenant au groupe que vous - renommez ou supprimez. Une commande du type: - - <informalexample> - <screen><prompt/#/ <userinput>find / -group <replaceable>GID</replaceable> -print</userinput></screen> - </informalexample> - - vous donnera la liste des fichiers appartenant au groupe - <replaceable>GID</replaceable> - (qui peut être un nom de groupe ou un identifiant numérique).</para> - </tip> - </sect1> - - <sect1> - <title/Passez en mode mono-utilisateur/ - - <para>Il vaut mieux recompiler le système en mode mono-utilisateur. En - dehors du fait que cela ira un peu plus vite, la réinstallation va - modifier un grand nombre de fichiers systèmes importants, tous les - binaires de base, les bibliothèques, les fichiers inclus et ainsi de - suite. Les modifier quand le système est en service (en particulier - s'il y a des utilisateurs connectés à ce moment là), c'est aller au devant - de problèmes.</para> - - <para>Cela dit, si vous avez confiance en vous, vous pouvez vous en - passer.</para> - - <note> - <title>Version 2.2.5 et ultérieure</title> - - <para>Comme décrit plus bas, la version 2.2.5 et les suivantes de - FreeBSD séparent la recompilation et l'installation. Vous pouvez - dès lors <emphasis>compiler</emphasis> le nouveau système en mode - multi-utilisateurs et passer en mode mono-utilisateur juste pour - l'installer.</para> - </note> - - <para>En tant que super-utilisateur, vous pouvez passer la commande: - - <informalexample> -<screen><prompt/#/ <userinput/shutdown now/</screen> - </informalexample> - - sur un système en fonctionnement, pour passer en mode - mono-utilisateur.</para> - - <para>Ou bien, redémarrez le système, et, à l'invite de démarrage, entrez - l'indicateur <option>-s</option>. Le système redémarrera en mode - mono-utilisateur. A l'invite de l'interpréteur de commandes, exécutez: - - <informalexample> -<screen><prompt/#/ <userinput/fsck -p/ -<prompt/#/ <userinput>mount -u /</userinput> -<prompt/#/ <userinput/mount -a -t ufs/ -<prompt/#/ <userinput/swapon -a/</screen> - </informalexample> - - pour effectuer la vérification des systèmes de fichiers, remontez - <filename>/</filename> en mode lecture/écriture, et monter tous les - autres systèmes de fichiers UFS listés dans le fichier - <filename>/etc/fstab</filename>, puis activez la pagination.</para> - </sect1> - - <sect1> - <title>Effacez <filename>/usr/obj</filename></title> - - <para>Les composants du système reconstruit sont au fur et à mesure placés - dans les sous-répertoires de <filename>/usr/obj</filename> (par défaut). - Ces répertoires masquent ceux de <filename>/usr/src</filename>.</para> - - <para>Vous pouvez accélérer le travail de “make world”, - et peut-être vous éviter quelques maux de tête en supprimant aussi - le répertoire <filename>/usr/obj</filename>.</para> - - <para>Certains fichiers dans <filename>/usr/obj</filename> sont marqués - immuables (reportez-vous aux pages de manuel de - <command>chflags(1)</command> pour plus de détails). Il faut d'abord - supprimer cet indicateur.</para> - - <para><informalexample> -<screen><prompt/#/ <userinput>cd /usr/obj</userinput> -<prompt/#/ <userinput/chflags -R noschg */ -<prompt/#/ <userinput/rm -rf */</screen></informalexample></para> - </sect1> - - <sect1> - <title/Recompilez les sources et installez le nouveau système/ - - <sect2> - <title>Toutes versions</title> - - <para>Vous devez être dans le répertoire <filename>/usr/src</filename>, - donc: - - <informalexample> - <screen><prompt/#/ <userinput>cd /usr/src</userinput></screen> - </informalexample> - - (à moins, bien sûr, que votre code source soit ailleurs, auquel cas vous - devez aller dans le répertoire correspondant).</para> - - <para>Pour recompiler le système, vous utilisez la commande <citerefentry> - <refentrytitle>make</refentrytitle> - <manvolnum>1</manvolnum> - </citerefentry>. Cette commande lit ses instructions dans le fichier - <filename>Makefile</filename>, qui décrit comment reconstruire les - modules qui constituent FreeBSD, dans quel ordre, - et ainsi de suite.</para> - - <para>Le format général de la commande que vous taperez sera: - - <informalexample> - <screen><prompt/#/ <userinput>make <option>-<replaceable/x/</option> <option>-D<replaceable>VARIABLE</replaceable></option> <replaceable>cible</replaceable></userinput></screen> - </informalexample> - </para> - - <para>Dans cet exemple, <option>-<replaceable>x</replaceable></option> est - une option que vous donnez à <citerefentry> - <refentrytitle>make</refentrytitle> - <manvolnum>1</manvolnum> - </citerefentry>. Reportez-vous aux pages de manuel pour connaître les - options disponibles.</para> - - <para><option>-D<replaceable>VARIABLE</replaceable></option> transmet une - variable au fichier <filename>Makefile</filename>. Le comportement de - <filename>Makefile</filename> est défini par ces variables. Ce sont les - mêmes variables que l'on trouve dans - <filename>/etc/make.conf</filename>, et c'est un autre moyen de les - positionner.</para> - - <para>Par exemple: - - <informalexample> - <screen><prompt/#/ <userinput>make -DNOPROFILE=true <replaceable>cible</replaceable></userinput></screen> - </informalexample> - - est une autre manière de dire qu'il ne faut pas compiler les - bibliothèques profilées et correspond aux lignes: - - <programlisting>NOPROFILE= true -# Avoid compiling profiled librairies -# Ne pas compiler les bibliothèques profilées - </programlisting> - - du fichier <filename>/etc/make.conf</filename>.</para> - - <para><replaceable>cible</replaceable> dit à <citerefentry> - <refentrytitle>make</refentrytitle> - <manvolnum>1</manvolnum> - </citerefentry> ce que vous voulez faire. Chaque - <filename>Makefile</filename> définit un certains nombre de - “cibles” différentes, et votre choix de cibles détermine - ce qui se passe.</para> - - <para>Il y a des cibles définies dans le fichier - <filename>Makefile</filename> que - vous n'avez pas à employer. Ce sont des étapes intermédiaires utilisées - par le processus de recompilation pour décomposer les étapes en - sous-étapes.</para> - - <para>La plupart du temps, vous n'aurez pas besoin de donner d'options à - <citerefentry> - <refentrytitle>make</refentrytitle> - <manvolnum>1</manvolnum> - </citerefentry>, et votre commande sera simplement: - - <informalexample> - <screen><prompt/#/ <userinput>make <replaceable>cible</replaceable></userinput></screen> - </informalexample> - </para> - </sect2> - - <sect2> - <title>Enregistrez le résultat</title> - - <para>C'est une bonne idée d'enregistrer le résultat de - <citerefentry> - <refentrytitle>make</refentrytitle> - <manvolnum>1</manvolnum> - </citerefentry> dans un ficher. Si quelque chose se passe mal, vous - aurez une trace des messages d'erreur, et la liste complète de ce qui - a été fait. Même si cela ne vous aide pas à diagnostiquer ce qui n'a pas - marché, cela peut aider les autres si vous soumettez votre problème sur - une des listes de diffusion de FreeBSD.</para> - - <para>La meilleure façon de faire cela est d'utiliser la commande - <citerefentry><refentrytitle>script</refentrytitle> - <manvolnum>1</manvolnum> - </citerefentry>, avec en paramètre le nom du fichier où enregistrer - les résultats. Vous devez faire cela juste avant de recompiler le - système, et taper <userinput>exit</userinput> une fois que c'est - terminé.</para> - - <informalexample> - <screen><prompt/#/ <userinput>script /var/tmp/mw.out</userinput> -Script started, output file is /var/tmp/mw.out -<prompt/#/ <userinput/make world/ -<emphasis>… compile, compile, compile …</emphasis> -<prompt/#/ <userinput/exit/ -Script done, … - </screen> - </informalexample> - - <para>Si vous le faites, <emphasis>n'enregistrez pas</emphasis> les - résultats dans <filename>/tmp</filename>. Ce répertoire peut être vidé - au prochain redémarrage du sytème. Il vaut mieux les mettre dans - <filename>/var/tmp</filename> - (comme dans l'exemple précédent) ou dans le répertoire utilisateur de - root.</para> - </sect2> - - <sect2> - <title>Version 2.2.2 et antérieure</title> - - <para><filename>/usr/src/Makefile</filename> contient la cible - “world”, qui recompile tout le système et - l'installe.</para> - - <para>Utilisez donc: - <informalexample> - <screen><prompt/#/ <userinput>make world</userinput></screen> - </informalexample> - </para> - </sect2> - - <sect2> - <title>Version 2.2.5 et ultérieure</title> - - <para>A partir de la version 2.2.5 de FreeBSD (de fait, c'est la première - version à avoir été créée sur la branche -current, puis rapatriée dans - la branche -stable entre les versions 2.2.2 et 2.2.5) la cible - “world” a été décomposée en deux: “buildworld” - et “installworld”.</para> - - <para>Comme leurs noms l'indiquent, “buildworld” reconstruit - la nouvelle arborescence dans <filename>/usr/obj</filename>, et - “installworld” l'installe sur la - machine.</para> - - <para>C'est très utile pour deux raisons. Tout d'abord, vous pouvez - recompiler en toute sûreté, sans toucher aux composants du système - actuel. Le processus est “autonome”. Vous pouvez donc - exécuter “buildworld” sur une machine en mode - multi-utilisateurs - sans redouter d'effets fâcheux. Je vous recommande néanmoins de toujours - exécuter l'étape “installworld” en mode - mono-utilisateur.</para> - - <para>En second lieu, cela vous permet d'utiliser des systèmes de fichiers - montés par NFS pour mettre à jour les autres machines de votre réseau. - Si vous avez trois machines, A, B, et C que vous voulez mettre à jour, - exécutez <command>make buildworld</command> et - <command>make installworld</command> sur A. B et C doivent alors monter - par NFS <filename>/usr/src</filename> et <filename>/usr/obj</filename> - depuis A, et vous pouvez alors exécuter - <command>make installworld</command> pour - installer le système recompilé sur B et C.</para> - - <para>La cible “world” existe toujours - et vous pouvez l'utiliser - exactement comme avec la version 2.2.2. - <command>make world</command> exécute - <command>make buildworld</command> suivi de <command>make - installworld</command>.</para> - - <note> - <para>Si vous utilisez séparement <command>make buildworld</command> et - <command>make installworld</command>, vous devez donner à chaque fois - les mêmes paramètres à <citerefentry> - <refentrytitle>make</refentrytitle> - <manvolnum>1</manvolnum> - </citerefentry>.</para> - - <para>Par exemple, si vous exécutez: - - <informalexample> - <screen><prompt/#/ <userinput>make -DNOPROFILE=true buildworld</userinput></screen> - </informalexample> - - vous devrez ensuite installer les résultats avec: - - <informalexample> - <screen><prompt/#/ <userinput>make -DNOPROFILE=true installworld</userinput></screen> - </informalexample> - - sinon il essayera d'installer les bibliothèques profilées - qui n'ont pas été recompilées à l'étape - <command>make buildworld</command>.</para> - </note> - </sect2> - - <sect2> - <title>-current et ultérieure</title> - - <para>Si vous êtes sur la branche -current, vous pouvez aussi donner - l'option <option>-j</option> à <command>make</command>. Cela permet à - <command>make</command> d'exécuter plusieurs programmes - simultanément.</para> - - <para>C'est particulièrement utile sur une machine avec plusieurs - processeurs. Néanmoins, comme la compilation est plus gourmande en - Entrées/Sorties qu'en CPU, c'est aussi - utile sur une machine mono-processeur.</para> - - <para>Typiquement, sur une machine mono-processeur, vous exécuteriez: - - <informalexample> - <screen><prompt/#/ <userinput>make -j4 <replaceable>cible</replaceable></userinput></screen> - </informalexample> - - pour autoriser - <citerefentry> - <refentrytitle>make</refentrytitle> - <manvolnum>1</manvolnum> - </citerefentry> à exécuter 4 programmes simultanément. - Les constatations empiriques postées sur les listes de diffusion - montrent que c'est en général ce qui apporte le plus de gain en - performances.</para> - - <para>Si vous avez une machine multi-processeurs et que vous avez - configuré un noyau SMP, essayez des valeurs entre 6 et 10 et voyez quel - bénéfice vous en tirez.</para> - - <para>N'oubliez pas que c'est toujours expérimental (au moment où j'écris - ceci), et que des modifications de l'arborescence des sources rendent - parfois cette possibilité inutilisable. Si vous n'arrivez pas à recompiler - avec ce paramètre, essayez sans avant de signaler votre problème.</para> - </sect2> - - <sect2> - <title/Durée/ - - <para>En supposant que tout ce passe bien, il vous faudra attendre - entre une heure et demie et une demi-journée.</para> - - <para>En règle générale, un P6 200MHz avec plus de 32MB de RAM - et des disques SCSI corrects exécutera <command>make world</command> - en environ une heure et demie. Un P133 32MB prendra 5 à 6 - heures. Revoyez ces chiffres à la baisse si vos machines sont - plus lentes…</para> - </sect2> - </sect1> - - <sect1> - <title>Mettez à jour <filename>/etc</filename></title> - - <para>Recompiler le système ne met pas à jour certains répertoires (en - particulier, <filename>/etc</filename>, <filename>/var</filename> et - <filename>/usr</filename>) pour y installer des fichiers de configuration - nouveaux ou modifiés. - Il vous faudra le faire à la main, à vue, et en utilisant à bon escient - la commande <command/diff/.</para> - - <para>Vous ne pouvez pas vous contenter de copier les fichiers de - <filename>/usr/src/etc</filename> dans <filename>/etc</filename> pour - que cela marche. Certains de ces fichiers doivent d'abord être - “installés”. - En effet le répertoire <filename>/usr/src/etc</filename> - <emphasis>n'est pas</emphasis> une simple copie de ce que devrait - contenir votre répertoire<filename>/etc</filename>. De plus, il y a - des fichiers qui doivent être dans <filename>/etc</filename> et ne - sont pas dans <filename>/usr/src/etc</filename>.</para> - - <para>La façon la plus simple de procéder est d'installer les fichiers - dans un nouveau répertoire, puis de passer en revue les différences.</para> - - <note> - <title>Sauvegardez vos fichiers actuels dans - <filename>/etc</filename></title> - - <para>Bien qu'en principe rien ne sera modifié automatiquement dans ce - répertoire, prudence est mère de sûreté. Copiez donc votre répertoire - <filename>/etc</filename> dans un endroit sûr. - Quelque chose du genre:</para> - - <informalexample> - <screen><prompt/#/ <userinput>cp -Rp /etc /etc.old</userinput></screen> - </informalexample> - - <para>fera l'affaire (<option>-R</option> fait une copie récursive, - <option>-p</option> conserve la date, les autorisations des fichiers - et ainsi de suite).</para> - </note> - - <para>Vous devez créer un jeu de répertoires provisoires pour y installer - les fichiers de <filename>/etc</filename> et autres. En général, - je les mets dans <filename>/var/tmp/root</filename>; - il y a un certain nombre de sous-répertoires à créer. Pour ce faire, - exécutez: - - <informalexample> - <screen><prompt/#/ <userinput>mkdir /var/tmp/root</userinput> -<prompt/#/ <userinput>cd /usr/src/etc</userinput> -<prompt/#/ <userinput>make DESTDIR=/var/tmp/root distrib-dirs distribution</userinput></screen> - </informalexample> - - qui va créer l'arborescence nécessaire et y installera les fichiers. Un - grand nombre des sous-répertoires créés dans - <filename>/var/tmp/root</filename> seront vides et devront être - supprimés. La façon la plus simple de le faire est: - - <informalexample> - <screen><prompt/#/ <userinput>cd /var/tmp/root</userinput> -<prompt/#/ <userinput>find -d . -type d | /usr/bin/perl -lne \ - 'opendir(D,$_);@f=readdir(D);rmdir if $#f == 1;closedir(D);'</userinput></screen> - </informalexample> - - qui fait une recherche en profondeur, examine chaque répertoire, et s'il - ne contient que 2 fichiers (“1” n'est pas une faute de frappe - dans la procédure), i.e. “<filename>.</filename>” et - “<filename>..</filename>” supprime le répertoire.</para> - - <para><filename>/var/tmp/root</filename> contient maintenant tous les - fichiers à installer à l'endroit requis sous - <filename>/</filename>. Vous devez ensuite examiner chacun de ces - fichiers pour voir en quoi ils diffèrent de vos propres fichiers.</para> - - <para>Notez que certains des fichiers qui ont été installés dans - <filename>/var/tmp/root</filename> commencent par un “.” Au - moment où j'écris ceci, les seuls fichiers concernés sont les fichiers - d'initialisation des interpréteurs de commandes dans - <filename>/var/tmp/root/</filename> et - <filename>/var/tmp/root/root/</filename>, mais il pourrait y en - avoir d'autres - (cela dépend de quand vous lirez ces lignes). Assurez-vous d'utiliser - <command/ls -a/ pour ne pas les oublier.</para> - - <para>La manière la plus simple de procéder est d'utiliser la commande - <command/diff/ pour comparer deux fichiers.</para> - - <para>Par exemple: - - <informalexample> - <screen><prompt/#/ <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput></screen> - </informalexample> - - vous indiquera les différences entre votre fichier - <filename>/etc/shells</filename> et le nouveau fichier - <filename>/etc/shells</filename>. A partir de là, décidez si vous - allez reporter les modifications que vous y avez apportées ou si vous - allez simplement recopier le nouveau fichier.</para> - - <para><ulink url="http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/dircmp.pl"><filename>http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/dircmp.pl</filename></ulink> est une - petite procédure Perl (Perl 4.036, qui est installé par défaut à partir de - la version 2.0 de FreeBSD) qui compare les fichiers de deux répertoires - (<filename>/etc</filename> et - <filename>/var/tmp/root/etc</filename> par défaut) et liste les fichiers - absents ou différents dans les deux répertoires.</para> - - <tip> - <title>Donnez au nouveau répertoire - (<filename>/var/tmp/root</filename>) un nom qui inclue une date, pour - pouvoir facilement comparer différentes versions</title> - - <para>Si vous recompilez fréquemment votre système, vous devrez aussi - souvent mettre à jour <filename>/etc</filename>, ce qui peut devenir - une vrai corvée.</para> - - <para>Vous pouvez accélérer le processus en gardant une copie du dernier - jeu de fichiers reportés dans <filename>/etc</filename>. La - procédure suivante vous suggère comment faire.</para> - - <procedure> - <step> - <para>Recompilez le système comme d'habitude. Au moment de mettre à - jour <filename>/etc</filename> et les autres répertoires, donnez au - répertoire cible un nom basé sur la date du jour. Si vous faisiez - cela le 14 Février 1998, vous pouviez procéder comme suit:</para> - - <informalexample> - <screen><prompt/#/ <userinput>mkdir /var/tmp/root-980214</userinput> -<prompt/#/ <userinput>cd /usr/src/etc</userinput> -<prompt/#/ <userinput>make DESTDIR=/var/tmp/root-980214 \ - distrib-dirs distribution</userinput></screen> - </informalexample> - </step> - - <step> - <para>Reportez les modifications depuis ce répertoire comme décrit - plus haut.</para> - - <para><emphasis>Ne supprimez pas</emphasis> le répertoire - <filename>/var/tmp/root-980214</filename> quand vous aurez - terminé.</para> - </step> - - <step> - <para>Quand vous chargerez la version la plus récente des sources et - la recompilerez, faites de même. Vous aurez alors un nouveau - répertoire, - <filename>/var/tmp/root-980221</filename> par exemple - (si vous faites une mise à jour chaque semaine).</para> - </step> - - <step> - <para>Vous pouvez maintenant voir les modifications intervenues - d'une semaine à l'autre avec quelque chose comme: - - <informalexample> - <screen><prompt/#/ <userinput>cd /var/tmp</userinput> -<prompt/#/ <userinput>diff -r root-980214 root-980221</userinput></screen> - </informalexample> - - qui vous donnera les différences entre tous les fichiers des deux - répertoires.</para> - - <para>Typiquement, il y aura beaucoup moins de différences - qu'entre <filename>/var/tmp/root-980221/etc</filename> - et <filename>/etc</filename>. Comme il y a beaucoup moins de - différences, il est beaucoup plus facile de les reporter dans - le répertoire <filename>/etc</filename>.</para> - </step> - - <step> - <para>Vous pouvez maintenant supprimer le plus ancien des deux - répertoires <filename>/var/tmp/root-*</filename>: - - <informalexample> - <screen><prompt/#/ <userinput>rm -rf /var/tmp/root-980214</userinput></screen> - </informalexample> - </para> - </step> - - <step> - <para>Répétez l'opération chaque fois que vous devez reporter - des modifications dans <filename>/etc</filename>.</para> - </step> - </procedure> - - <para>Vous pouvez utiliser la commande <command>date(1)</command> pour - automatiser la génération des noms de répertoires. Par exemple: - - <informalexample> - <screen><prompt/#/ <userinput>mkdir /var/tmp/root-`date "+%y%m%d"`</userinput></screen> - </informalexample> - - crée un répertoire dont le nom dépend de l'année, du mois et - du jour.</para> - </tip> - </sect1> - - <sect1> - <title>Mettez à jour <filename>/dev</filename></title> - - <note> - <title>DEVFS</title> - - <para>Si vous utilisez DEVFS ce qui suit ne vous concerne probalement - pas.</para> - </note> - - <para>Pour des raisons de sécurité, cette mise à jour se fait en plusieurs - étapes.</para> - - <para>Copiez tout d'abord <filename>/var/tmp/root/dev/MAKEDEV</filename> - dans <filename>/dev</filename>. - - <informalexample> - <screen><prompt/#/ <userinput>cp /var/tmp/root/dev/MAKEDEV /dev</userinput></screen> - </informalexample></para> - - <para>Prenez maintenant un instantané de l'état de votre répertoire - <filename>/dev</filename>. Il doit indiquer - les propriétaires, les droits et les codes majeur et mineur de chaque - fichier spécial de périphérique, mais pas leur date de dernière mise à jour. - La façon la plus facile de procéder est d'utiliser - la commande <command>awk</command> pour éliminer les informations inutiles: - - <informalexample> - <screen><prompt/#/ <userinput>cd /dev</userinput> -<prompt/#/ <userinput>ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out</userinput></screen> - </informalexample></para> - - <para>Ensuite, recréez tous les fichiers spéciaux de périphériques:. - - <informalexample> - <screen><prompt/#/ <userinput/sh MAKEDEV all/</screen> - </informalexample></para> - - <para>Reprenez un instantané de l'état de votre répertoire, cette fois-ci - dans <filename>/var/tmp/dev2.out</filename>. Comparez maintenant ces deux - instantanés pour voir si certains fichiers spéciaux de périphériques - n'ont pas été recréés. Il ne devrait pas en manquer, mais prudence est - mère de sûreté. - - <informalexample> - <screen><prompt/#/ <userinput>diff /var/tmp/dev.out /var/tmp/dev2.out</userinput></screen> - </informalexample></para> - - <para>Il manquera peut-être des descripteurs de partitions, - il vous faudra alors exécuter des commandes du type : - - <informalexample> -<screen><prompt/#/ <userinput>sh MAKEDEV sd0s1</userinput> -</screen> - </informalexample> - - pour les recréer. Les détails dépendent de votre installation.</para> - </sect1> - - <sect1> - <title>Mettez à jour <filename>/stand</filename></title> - - <note> - <para>Cette étape n'est décrite que pour être exhaustif, elle peut être - omise sans danger.</para> - </note> - - <para>Pour être exhaustif, vous pouvez aussi mettre à jour les fichiers de - <filename>/stand</filename>. Ces fichiers sont des liens physiques sur - le programme <filename>/stand/sysinstall</filename>. L'édition de liens - de cet exécutable doit être statique, pour qu'on puisse l'utiliser sans - qu'aucun autre système de fichiers (et en particulier - <filename>/usr</filename>) ne soit monté.</para> - - <informalexample> - <screen><prompt/#/ <userinput>cd /usr/src/release/sysinstall</userinput> -<prompt/#/ <userinput>make all install</userinput></screen> - </informalexample> - - <note> - <title>Sources antérieurs au 2 Avril 1998</title> - - <para>Si votre code source date d'avant le 2 Avril 1998, ou que - la version de votre <filename>Makefile</filename> est inférieure à - 1.68 (pour FreeBSD-current et les systèmes 3.x) ou à 1.48.2.21 - (pour les systèmes 2.2.x), vous devrez ajouter l'option - <userinput>NOSHARED=yes</userinput> comme suit:</para> - - <informalexample> - <screen><prompt/#/ <userinput>make NOSHARED=yes all install</userinput></screen> - </informalexample> - - </note> - </sect1> - - <sect1> - <title/Compilez et installez un nouvau noyau/ - - <para>Pour tirer pleinement parti de votre nouveau système, vous devez - recompiler le noyau. C'est pratiquement indispensable, parce que des - structures de données peuvent avoir changé, et des programmes - comme <command/ps/ et <command/top/ ne marcheront pas - tant que le système et le noyau ne seront pas au même niveau - de version.</para> - - <para>Suivez les instructions du "manuel" pour compiler un nouveau - noyau. Si vous avez déjà recompilé un noyau personnalisé - examinez en détail le fichier de configuration - <filename/LINT/ pour voir s'il y a de nouvelles options dont vous - pourriez tirer parti.</para> - - <para>Une version précédente de ce document suggérait de redémarrer - le système avant de recompiler le noyau. C'est un erreur parce - que :</para> - - <itemizedlist> - <listitem><para>Des commandes comme <command/ps/, <command/ifconfig/ and - <command/sysctl/ peuvent ne plus fonctionner. Dans ce cas, votre - machine ne peut plus se connecter au réseau.</para></listitem> - - <listitem><para>De même, des utilitaires essentiels comme - <command/mount/ peuvent aussi être inutilisables, - auquel cas <filename>/</filename>, <filename>/usr</filename> et ainsi - de suite, ne peuvent plus être montés. Il y a peu de chances - que cela arrive si vous êtes sur la branche -stable, mais c'est plus - probable sur la branche -current après des modifications - importantes.</para></listitem> - - <listitem> - <para>Les LKMs ("Loadable Kernel Modules" - modules du noyau à chargement - dynamique) reconstruits en même temps que “world” - peuvent "planter" un noyau plus ancien.</para> - </listitem> - </itemizedlist> - - <para>Pour toutes ces raisons, il vaut mieux recompiler et installer un - nouveau noyau avant de redémarrer.</para> - - <para>Vous devez recompiler le noyau après avoir terminé - <userinput>make world</userinput> (ou <userinput>make - installworld</userinput>). Si vous ne le faites pas (peut-être - voulez-vous vous assurer que le noyau compile avant de mettre à - jour le système), vous pourriez avoir des problèmes. Cela parce que - votre commande <command>config</command> n'est pas à niveau - avec les sources du noyau.</para> - - <para>Dans ce cas, exécutez: - - <informalexample> - <screen><prompt/#/ <userinput>/usr/obj/usr/src/usr.sbin/config <replaceable>NOM_DU_NOYAU</replaceable></userinput></screen> - </informalexample> - - pour recompiler le noyau avec la nouvelle version de - <command>config</command>. Cela ne marchera peut-être pas à tous les - coups. Il est recommandé d'en finir avec - <userinput>make world</userinput> (ou - <userinput>make installworld</userinput>) avant de compiler un nouveau - noyau.</para> - </sect1> - - <sect1> - <title/Redémarrez/ - - <para>Vous en avez fini. Après avoir vérifié que tout semble être en - place, vous pouvez maintenant redémarrez votre système. Un simple - <citerefentry> - <refentrytitle>fastboot</refentrytitle> - <manvolnum>8</manvolnum> - </citerefentry> devrait suffire.</para> - - <informalexample> - <screen><prompt/#/ <userinput>fastboot</userinput></screen> - </informalexample> - </sect1> - - <sect1> - <title>C'est fini</title> - - <para>Vous devriez maintenant avoir mis à jour avec succès votre système - FreeBSD. - Félicitations.</para> - - <para>Vous aurez peut-être de petits problèmes si des détails vous - ont échappés. Par - exemple, il m'est arrivé d'effacer le fichier - <filename>/etc/magic</filename> au moment de la mise à jour de - <filename>/etc</filename>, de ce fait, la commande - <command>file</command> ne marchait plus. Un petit moment de réflexion - et j'ai trouvé que: - - <informalexample> - <screen><prompt/#/ <userinput>cd /usr/src/usr.bin/file</userinput> -<prompt/#/ <userinput/make all install/</screen> - </informalexample> - - suffisait à régler ce problème.</para> - </sect1> - - <sect1> - <title/Questions?/ - - <sect2> - <title/Dois-je refaire le monde à chaque évolution?/ - - <para>Il n'y a pas de réponse toute faite à cette question, tout dépend - de la nature des évolutions. Je viens juste, par exemple, d'exécuter - CVSup, et les fichiers suivants ont été modifiés depuis ma dernière - recompilation:</para> - - <informalexample> -<screen><filename>src/games/cribbage/instr.c</filename> -<filename>src/games/sail/pl_main.c</filename> -<filename>src/release/sysinstall/config.c</filename> -<filename>src/release/sysinstall/media.c</filename> -<filename>src/share/mk/bsd.port.mk</filename></screen> - </informalexample> - - <para>Il n'y a pas là matière à ce que je recompile mon système. Je - vais simplement aller dans les bons sous-répertoires et exécuter - <command/make all - install/, et c'est à peu près tout. Mais s'il y a des évolutions - importantes, par - exemple sur <filename>src/lib/libc/stdlib</filename> alors ou je - referais, le monde, ou je recompilerais au moins toutes les parties - du système qui sont liées statiquement - (de même que tout ce que je pourrais avoir ajouté qui serait lié - statiquement).</para> - - <para>En fin de journée, c'est à vous de voir. - Vous préférerez peut-être recompiler votre système tous les quinze - jours, et laisser les modifications s'empiler pendant ces quinze jours. - Ou bien vous préférez ne recompiler que ce qui a changé et vous faire - confiance pour repérer ce qui en dépend.</para> - - <para>Et, bien sûr, cela dépend de la fréquence avec laquelle vous voulez - faire vos mises à jour, et de si vous êtes sur la branche -stable ou - sur la branche -current.</para> - </sect2> - - <sect2> - <title>Ma compilation échoue avec de nombreuses erreurs "signal 12" - (ou tout autre numéro de signal)</title> - - <para>Cela indique généralement un problème matériel. (Re)faire le - monde est un bon moyen de mettre votre matériel sous pression, et - mettra souvent en évidence des défaillances de la mémoire vive. Cela se - manifeste normalement de soi-même: le compilation échoue en recevant - de mystérieux signaux.</para> - - <para>Vous pouvez vous en assurer si vous relancer la compilation - et qu'elle échoue en un endroit différent.</para> - - <para>Dans ce cas, vous ne pouvez guère faire autre chose que - d'intervertir les différents composants de votre matériel pour déterminer - lequel est en cause.</para> - </sect2> - - <sect2> - <title>Puis-je détruire <filename>/usr/obj</filename> après avoir - fini?</title> - - <para>Tout dépend de comment vous voulez refaire le monde par - la suite.</para> - - <para><filename>/usr/obj</filename> contient tous les fichiers objets - générés à la compilation. Normalement, une des premières étapes de - “make world” est de supprimer ce répertoire - et de repartir à zéro. Dans ce cas, conserver ce répertoire - <filename>/usr/obj</filename> après en avoir terminé ne sert pas à - grand chose, alors que vous économiseriez pas mal d'espace disque - (au jour d'aujourd'hui - environ 150Mo).</para> - - <para>Néanmoins, si vous savez ce que vous faites, vous pouvez faire en - sorte que “make - world” saute cette étape. Les reconstructions ultérieures seront - beaucoup plus rapides, car la plupart des sources n'auront pas besoin - d'être recompilés. Le revers de la médaille est que des - problèmes de dépendance subtils peuvent se manifester, provoquant - l'échec de votre recompilation de manière étrange. Cela génère - fréquemment du bruit sur les listes de diffusion de FreeBSD, - quand quelqu'un se plaint que sa mise à jour a échoué, sans réaliser - qu'il a tenté de brûler les étapes.</para> - - <para>Si vous aimez vivre dangereusement, passez le paramètre - “NOCLEAN” à <command/make/, comme suit: - - <informalexample> - <screen><prompt/#/ <userinput>make -DNOCLEAN world</userinput></screen> - </informalexample> - </para> - </sect2> - - <sect2> - <title>Une recompilation interrompue peut-elle être reprise?</title> - - <para>Tout dépend de jusqu'où vous êtes allé avant de rencontrer un - problème.</para> - - <para><emphasis>En général</emphasis> (mais ce n'est pas une règle - absolue) “make world” crée de nouveaux exemplaires - des utilitaires de base (comme <command>gcc</command>, et - <command>make</command>) et des bibliothèques système. Ces outils et - bibliothèques sont ensuite installés. Ils sont ensuite utilisés - pour se reconstruire eux-mêmes, et installés de nouveau. Le système - entier (y compris maintenant les outils usuels, comme - <command>ls</command> ou - <command>grep</command>) est ensuite recompilé avec les nouveaux - outils et bibliothèques de base.</para> - - <para>Si vous en êtes à cette dernière étape, et que vous le savez - (parce que vous avez consulté les résultats que vous avez enregistrés) - alors vous pouvez (avec une bonne chance de réussite) faire: - - <informalexample> - <screen><emphasis>… régler le problème …</emphasis> -<prompt/#/ <userinput>cd /usr/src</userinput> -<prompt/#/ <userinput/make -DNOCLEAN all/ - </screen> - </informalexample> - - qui ne détruira pas les résultats du travail qu'a déjà effectué - “make world”.</para> - - <para>Si vous voyez le message : - -<screen> --------------------------------------------------------------- - Building everything.. --------------------------------------------------------------- -</screen> - - dans les comptes-rendus de “make world”, cette façon de - procéder est probablement sûre.</para> - - <para>Si vous ne voyez pas ce message, ou doutez de vous, alors prudence - est mère de sûreté, et il vaut mieux tout reprendre depuis le - début.</para> - </sect2> - - <sect2> - <title/Puis-je utiliser une seule machine de <emphasis/référence/ pour - mettre à jour plusieurs machines (NFS)?/ - - <para>On pose souvent la question sur les listes de diffusion de FreeBSD - de savoir s'il est possible de tout compiler sur une seule machine - puis d'installer les résultats de cette compilation sur d'autres - machines du réseau avec <command/make install/.</para> - - <para>C'est quelque chose que je n'ai jamais fait, aussi les indications - qui suivent m'ont-elles été données par d'autres ou déduites des - <filename>Makefile</filename>s.</para> - - <para>La marche exacte à suivre dépend de votre version de FreeBSD.</para> - - <note> - <para>Vous devrez encore mettre à jour <filename>/etc</filename> et - <filename>/dev</filename> sur les machines cibles après cette - étape.</para> - </note> - - <sect3> - <title>Version 2.1.7 et antérieures</title> - - <para>Dans un message adressé à questions@freebsd.org, - Antonio Bemfica a suggéré la méthode suivante:</para> - -<screen> -Date: Thu, 20 Feb 1997 14:05:01 -0400 (AST) -From: Antonio Bemfica <bemfica@militzer.me.tuns.ca> -To: freebsd-questions@freebsd.org -Message-ID: <Pine.BSI.3.94.970220135725.245C-100000@militzer.me.tuns.ca> - -Josef Karthauser a demandé: - -> Quelqu'un a-t-il la bonne méthode pour mettre à jour -> les machines d'un réseau? - -D'abord <command>make world</command>, etc... sur votre machine de référence -Ensuite, montez <filename>/</filename> and <filename>/usr</filename> sur la machine distante: - -machine_de_référence% mount machine_distante:/ /mnt -machine_de_référence% mount machine_distante:/usr /mnt/usr - -Ensuite, faites <command>make install</command> avec <filename>/mnt</filename> comme cible: - -machine_de_référence% make install DESTDIR=/mnt - -Répétez cela pour chaque machine de votre réseau. -Cela marche très bien dans mon cas. - -Antonio -</screen> - - <para>Ce mécanisme ne fonctionne (autant que je sache) que si - vous pouvez écrire sur <filename>/usr/src</filename> sur le serveur - NFS, car ce devait être la cible d'“install” avec la - version 2.1.7 et les précédentes.</para> - </sect3> - - <sect3> - <title>Version 2.2.0 and ultérieures</title> - - <para>Entre les versions 2.1.7 et 2.2.0 la cible - “reinstall” a été introduite. Vous pouvez utiliser - la méthode décrite ci-dessus pour - la version 2.1.7, en remplaçant “install” par - “reinstall”.</para> - - <para>Cela <emphasis>ne demande plus</emphasis> de droits d'écriture - sur le répertoire <filename>/usr/src</filename> du serveur NFS.</para> - <note> - <para>Un bogue est apparu avec cette cible entre les versions - 1.68 et 1.107 du <filename>Makefile</filename>, qui impliquait - qu'il <emphasis>fallait</emphasis> - avoir les droits d'écriture. Ce bogue a été corrigé avant la - diffusion de la version 2.2.0 de FreeBSD, mais peut encore poser - problème si vous avez un vieux serveur sous -stable de cette - époque.</para> - </note> - </sect3> - - <sect3> - <title>Version 2.2.5 et ultérieure</title> - - <para>Comme décrit plus haut, les cibles “buildworld” et - “installworld” peuvent être employées pour recompiler - sur une machine, puis monter par NFS - <filename>/usr/src</filename> et <filename>/usr/obj</filename> sur - la machine distante et y installer le nouveau système.</para> - </sect3> - </sect2> - - <sect2> - <title>Comment puis-je accélérer <command>make world</command>?</title> - - <itemizedlist> - <listitem> - <para>Passez en mode mono-utilisateur.</para> - </listitem> - - <listitem> - <para>Mettez les répertoires <filename>/usr/src</filename> et - <filename>/usr/obj</filename> sur des systèmes de fichiers - et des disques différents. Si possible, installez ces disques - sur des contrôleurs différents.</para> - </listitem> - - <listitem> - <para>Mieux encore, mettez ces systèmes de fichiers sur - plusieurs disques et utilisez “ccd” - ("concatenated disk driver" = pilote de disques concaténés).</para> - </listitem> - - <listitem> - <para>Ne compilez pas les bibliothèques profilées - (mettez “NOPROFILE=true” dans - <filename>/etc/make.conf</filename>). Vous n'en avez certainement - pas besoin.</para> - </listitem> - - <listitem> - <para>Dans <filename>/etc/make.conf</filename>, positionnez aussi - “CFLAGS” à quelque chose comme “-O -pipe”. - L'optimisation “-O2” est bien plus lente, et la - différence d'optimisation entre “-O” et - “-O2” est en général négligeable. “-pipe” - dit au compilateur d'utiliser des tuyaux (“pipes”) - à la place de fichiers, ce qui économise des accès disque - (mais utilise plus de mémoire).</para> - </listitem> - - <listitem> - <para>Donnez l'option <option>-j<n></option> au compilateur - (Si vous avez une version suffisamment récente de FreeBSD) - pour exécuter plusieurs programmes en parallèle. Cela améliore - les choses, que vous ayez une machine mono- ou - multi-processeurs. </para> - </listitem> - - <listitem><para>Le système de fichiers qui contient - <filename>/usr/src</filename> peut être monté (ou remonté) avec l'option - “noatime”. De cette manière, les dates de dernier accès - aux fichiers ne sont pas enregistrées sur disque. Vous n'avez de toute - façon probablement pas besoin de cette information. - - <note> - <para>“noatime” existe à partir de la version - 2.2.0.</para> - </note> - - <informalexample> - <screen><prompt/#/ <userinput>mount -u -o noatime /usr/src</userinput></screen> - </informalexample> - - <note> - <para>Cet exemple suppose que <filename>/usr/src</filename> - constitue à lui seul un système de fichiers. Si ce n'est - pas le cas (s'il fait partie de - <filename>/usr</filename> par exemple) vous devez indiquez - le point de montage de ce système de fichiers, et non - <filename>/usr/src</filename>.</para> - </note></para> - </listitem> - - <listitem><para>Le système de fichiers où se trouve - <filename>/usr/obj</filename> - peut être monté (ou remonté) avec l'option “async”. - Les écritures sur disque se font alors de façon asynchrone. En - d'autres termes, le programme reprend immédiatement la main, - mais l'écriture se fait quelques secondes après. Les accès - disque sont ainsi groupés, et le gain en performances est - spectaculaire.</para> - - <note> - <para>Rappelez-vous que cette option rend votre système de - fichiers plus fragile. Avec cette option, les risques sont accrus - qu'en cas de coupure d'alimentation, le système de fichiers soit - irrécupérable quand la machine redémarrera.</para> - - <para>S'il n'y a que <filename>/usr/obj</filename> sur ce système - de fichiers, ce n'est pas un problème. S'il contient des - informations - plus sensibles, assurez-vous que vos sauvegardes soient à jour - avant d'activer cette option.</para> - </note> - - <para><informalexample> - <screen><prompt/#/ <userinput>mount -u -o async /usr/obj</userinput></screen> - </informalexample> - - <note> - <para>Comme auparavant, si <filename>/usr/obj</filename> ne - constitue pas un système de fichiers en soit, - remplacez-le dans l'exemple par le nom du point - de montage qui convient.</para> - </note></para> - </listitem> - </itemizedlist> - </sect2> - </sect1> - - <sect1 id="translations"> - <title>Traductions</title> - - <sect2> - <title>Document original</title> - <para>L'original de ce document se trouve sur - <ulink url="http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/make-world.html">http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/make-world.html</ulink>.</para> - </sect2> - <sect2> - <title>Japonais</title> - - <para>MAEKAWA Masahide a traduit ce document en - Japonais. Sa traduction est disponible à l'adresse <ulink - url="http://www.rr.iij4u.or.jp/~bishop/FreeBSD/mw.html">http://www.rr.iij4u.or.jp/~bishop/FreeBSD/mw.html</ulink>.</para> - </sect2> - </sect1> - - <sect1 id="contributors"> - <title>Contributions</title> - - <para>Les personnes suivantes ont contribué d'une façon ou d'une autre à la - rédaction de ce document. Soit directement en suggérant des modifications - ou des améliorations ou en signalant des erreurs, soit par leurs messages - sur les listes de diffusion de FreeBSD, où j'ai puisé sans scrupule de - l'information. Mes remerciements à tous.</para> - - <itemizedlist> - <listitem> - <para>Antonio Bemfica, <ulink url="mailto:bemfica@militzer.me.tuns.ca">bemfica@militzer.me.tuns.ca</ulink></para> - </listitem> - - <listitem> - <para>Sue Blake, <ulink url="mailto:sue@welearn.com.au">sue@welearn.com.au</ulink></para> - </listitem> - - <listitem> - <para>Brian Haskin, <ulink url="mailto:haskin@ptway.com">haskin@ptway.com</ulink></para> - </listitem> - <listitem> - <para>Kees Jan Koster, <ulink url="mailto:kjk1@ukc.ac.uk">kjk1@ukc.ac.uk</ulink></para> - </listitem> - - <listitem> - <para>A Joseph Kosy, <ulink url="mailto:koshy@india.hp.com">koshy@india.hp.com</ulink></para> - </listitem> - - <listitem> - <para>Greg Lehey, <ulink url="mailto:grog@lemis.com">grog@lemis.com</ulink></para> - </listitem> - - <listitem> - <para>Wes Peters, <ulink - url="mailto:softweyr@xmission.com">softweyr@xmission.com</ulink></para> - </listitem> - - <listitem> - <para>Joseph Stein, <ulink url="mailto:joes@wstein.com">joes@wstein.com</ulink></para> - </listitem> - - <listitem> - <para>Studded, <ulink url="mailto:studded@dal.net">studded@dal.net</ulink></para> - </listitem> - - <listitem> - <para>Axel Thimm <ulink url="mailto:Axel.Thimm@physik.fu-berlin.de">Axel.Thimm@physik.fu-berlin.de</ulink></para> - </listitem> - - <listitem> - <para>Matthew Thyer <ulink url="mailto:Matthew.Thyer@dsto.defence.gov.au">Matthew.Thyer@dsto.defence.gov.au</ulink></para> - </listitem> - </itemizedlist> - </sect1> -</article> diff --git a/fr_FR.ISO8859-1/articles/mh/Makefile b/fr_FR.ISO8859-1/articles/mh/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/mh/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD$ -# Original revision: 1.4 -# - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/mh/article.sgml b/fr_FR.ISO8859-1/articles/mh/article.sgml deleted file mode 100644 index 26763e00a3..0000000000 --- a/fr_FR.ISO8859-1/articles/mh/article.sgml +++ /dev/null @@ -1,744 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: 1.2 ---> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; - <!ENTITY rel.current CDATA "3.2"> -]> -<article id="mh" LANG="fr"> - <artheader> - <title>Introduction à MH</title> - <authorgroup> - <author> - <firstname>Matt</firstname> - <surname>Midboe</surname> - <affiliation> - <address><email>matt@garply.com</email></address> - </affiliation> - </author> - </authorgroup> - <pubdate>v1.0, 16 Janvier 1996</pubdate> - &artheader.copyright; - <abstract> - <para>Ce document est une introduction sur la façon d'utiliser MH - sous FreeBSD.</para> - &abstract.license; - &abstract.disclaimer; - &trans.a.gioria; - </abstract> - </artheader> - <sect1> - <title>Introduction</title> - <para>MH débuta en 1977 dans la société RAND - Corporation, oû la philosophie MH fut développée. MH - n'est pas seulement un programme monolithique de courrier - électronique mais plutôt une philosophie sur la meilleure - façon de développer des outils permettant de lire son - courrier. Les développeurs de MH ont fourni un logiciel superbe - tout en adhérent au concept <acronym>KISS</acronym> : - “Keep It Simple Stupid” (Rester le plus simple - possible).</para> - <para>Plutôt que de disposer d'un seul et complexe logiciel pour - lire, envoyer et gérer ses courriers électroniques, ils - ont écrit une multitude de petits programmes - spécialisés. Certains aimeront MH pour cette - spécificité, d'autres non. Chaque outil de MH effectue une - action, et l'effectue très bien.</para> - <para>En plus de tous les outils de gestion des courriers - électroniques, chaque outil MH comporte un mécanisme de - configuration uniforme. En fait, si vous ne savez pas vraiment comment - marche un outil, ou de quels arguments il dispose, vous vous en sortez - généralement très facilement. Toutes les commandes - de MH gèrent de façon identique les fichiers de - configuration et les arguments de la ligne de commande. La chose la plus - importante est de se souvenir que vous pouvez toujours passer l'option - <option>-help</option> à une commande pour afficher toutes les - options disponibles.</para> - <para>Pour commencer, assurez vous que vous avez installé les - programmes de MH sur votre machine. Si vous disposez d'un CDROM vous - devez pouvoir l'installer en exécutant la commande - suivante :</para> - <informalexample> -<screen>#<userinput>>pkg_add /cdrom/packages/mh-6.8.3.tgz</userinput></screen> - </informalexample> - <para>Vous verrez alors la création d'un répertoire - <filename>/usr/local/lib/mh</filename> ainsi que l'ajout de - différents binaires dans le répertoire - <filename>/usr/local/bin</filename>. Si vous préférez le - compiler vous même, vous pouvez télécharger les - sources en ftp anonyme depuis - <ulink url="ftp://ftp.ics.uci.edu/">ftp.ics.uci.edu</ulink> ou - <ulink url="ftp://louie.udel.edu/">louie.udel.edu</ulink>.</para> - <para>Cette introduction n'est pas une explication détaillée - de la façon de fonctionner de MH. Elle vous permettra juste - démarrer sur la route de la façon la plus rapide de lire vos emails. Vous devrez -surement consulter les pages de manuels des différentes commandes par -la suite. De même il serait bon de lire le <ulink -URL="http://www.cis.ohio-state.edu/hypertext/faq/usenet/mh-faq/part1/faq.html">FAQ -sur MH</ulink> et de vous abonnez au forum de discussion <ulink -URL="news:comp.mail.mh">comp.mail.mh</ulink>. Cependant la meilleur -ressource sur MH est le livre écrit par Jerry Peek aux éditions -O'Reilly et Associates.</para> -</sect1> -<sect1> -<title>Lire le courrier</title> -<para>Ce chapitre explique les commandes <command>inc</command>, -<command>show</command>, <command>scan</command>, <command>next</command>, -<command>prev</>, <command>rmm</command>, <command>rmf</command>, and -<command>msgchk</command>. Le meilleur atout de MH est la consistence de -l'interface entre les différents programmes. La chose la plus -importante à retenir lorsque l'on utilise les différentes commandes, -est la façon de spécifier une liste de messages. Dans le cas de la -commande <command>inc</command> cela n'a aucun sens mais avec des commandes -comme <command>show</command> c'est plus qu'utile.</para> - -<para>Une liste de messages consiste en quelque chose comme <parameter>23 20 -16</parameter>, qui corresponds aux messages 23, 20 et 16. C'est vraiment très -simple, mais vous pouvez avoir des choses plus utiles comme -<parameter>23-30</parameter> correspondant à tous les messages entre le message -23 et le message 30. Vous pouvez aussi spécifier <parameter>cur:10</parameter>, -qui correspond au message courant et aux 9 messages suivants. Les -messages <parameter>cur</parameter><parameter>last</parameter>, et <parameter>first</parameter> -sont des messages spéciaux reférant au message courant, dernier -message, et premier message du dossier.</para> - -<sect2 id="inc"> -<title><command>inc</command>, <command>msgchk</command>—lire ou vérifier vos -messages</title> - -<para>Si vous tapez la commande <userinput>inc</userinput> sans arguments, vous -débutez sur la bonne voie pour lire votre courrier avec MH. La -première fois ou vous utilisez <command>inc</command>, il configurera votre -compte pour utilisez toutes les valeurs par défaut de MH et vous -demandera la création d'un répertoire Mail. Si vous avez des messages -et attente de téléchargement, vous verrez quelque chose qui peut -ressembler à ceci: -<informalexample> -<screen> 29 01/15 Doug White Re: Another Failed to boot problem<<On Mon, 15 J - 30 01/16 "Jordan K. Hubbar Re: FBSD 2.1<<> Do you want a library instead of - 31 01/16 Bruce Evans Re: location of bad144 table<<>> >It would appea - 32 01/16 "Jordan K. Hubbar Re: video is up<<> Anyway, mrouted won't run, ev - 33 01/16 Michael Smith Re: FBSD 2.1<<Nate Williams stands accused of sa</screen> -</informalexample> -Vous obtenez la même vue que si vous utilisiez la commande <command>scan</command> (voir -<xref linkend="scan">). Si vous lancez <command>inc</command> sans arguments -, cela vous affiche juste le courrier qui vous est destiné.</para> - -<para>Enormément de personnes utilisent le protocole POP pour lire -leur mail. MH sait utiliser le protocole POP pour rapatrier les emails -sur votre poste. Vous devez passer plusieurs arguments à -<command>inc</command> pour cela. -<informalexample> -<screen>tempest% <userinput>inc -host mail.pop.org -user <replaceable>NomUtilisateur</replaceable> -norpop</userinput></screen> -</informalexample> -Cela invoque la commande <command>inc</command> en lui disant d'aller -télécharger le courrier sur le serveur <parameter>mail.pop.org</parameter>, -avec comme nom d'utilisateur <replaceable>NomUtilisateur</replaceable>. L'option -<option>-norpop</option> demande à la commande <command>inc</command> de -télécharger le courrier en clair suivant le protocole POP3. MH -supporte plusieurs variantes du protocole POP3. Vous n'utiliserez pas -dans la plupart des cas les autres variantes. Vous pouvez effectuer -des taches plus complexes avec <command>inc</command> comme, auditer des -fichiers ou parcourir des fichiers formattés -</para> -<para>La commande <command>msgchk</command> vous permet de savoir si -vous avez ou non de nouveaux messages dans votre -boite.<command>msgchk</command> accepte les mêmes options -,<option>-host</option> et <option>-user</option>, que la commande -<command>inc</command>.</para> -</sect2> -<sect2 id="show"> -<title><command>show</command>, <command>next</command> et <command>prev</command>—afficher un message et se déplacer dans une boite.</title> -<para><command>show</command> vous permet de visualiser un courrier de votre boite. Comme <command>inc</command>,<command>show</command> est une commande assez franche.Si vous tapez <userinput>show</userinput> sans paramètres elle affiche le message courant. Vous pouvez aussi demander l'affichage de messages particuliers en donnant son numéro à <command>show</command>: -<informalexample> -<screen>tempest% <userinput>show 32 45 56</></screen> -</informalexample> -Cela affichera les fichiers numéros 32 45 56 à la suite l'un de -l'autre. Si vous changez rien à la configuration par défaut, -<command>show</command> ne fera rien d'autre qu'un -<command>more</command> sur le fichier contenant votre message.</para> - -<para><command>next</command> s'utilise pour se déplacer au message -suivant et <command>prev</command> pour revenir au message -précedent. Ces deux commandes executent automatiquement un -<command>show</command> ce qui vous permet de lire automatiquement le -message suivant ou précédant.</para> -</sect2> - -<sect2 id="scan"> -<title><command>scan</command>—Afficher un résumé de vos -messages</title> -<para><command>scan</command> affiche un bref descriptif de tous les -messages de votre répertoire courant. Voici un exemple d'affichage de -la commande <command>show</command>: -<informalexample> -<screen> 30+ 01/16 "Jordan K. Hubbar Re: FBSD 2.1<<> Do you want a library instead of - 31 01/16 Bruce Evans Re: location of bad144 table<<>> >It would appea - 32 01/16 "Jordan K. Hubbar Re: video is up<<> Anyway, mrouted won't run, ev - 33 01/16 Michael Smith Re: FBSD 2.1<<Nate Williams stands accused of sa</screen> -</informalexample> -Comme tout dans MH, l'affichage est complètement configurable. Ce qui -est fournit dans l'exemple ci-dessus est l'affichage par défaut. Il -vous permet de visualiser le numéro du message, la date d'envoi, -l'envoyeur, le sujet et une partie du début du message. Le caractère -<literal>+</literal> vous indique le message courant donc si vous -tapez la commande <command>show</command> vous visualiserez ce -message.</para> -<para>Une option très utile de <command>scan</command> est l'option -<option>-reverse</option>. Cette option permet de lister l'ensemble de -vos messages en affichant en premier le message ayant le numéro le -plus élevé. Une autre option très interessante de -<command>scan</command> lui permet de lire les données depuis un -fichier. Si vous désirez parcourir votre boite aux lettres de courrier -entrant sans avoir à lancer la commande <command>inc</command>, il -vous suffit de faire <command>scan -file -/var/mail/<replaceable>nom_d_utilisateur</replaceable></command>. Cela -peut etre fait sur n'importe quel fichier au format -<database>mbox</database>.</para> -</sect2> - -<sect2 id="rmm"> -<title><command>rmm</command> et <command>rmf</command>— Effacer -le message courant ou le dossier</title> - -<para><command>rmm</command> est utilisé pour effacer un message. Par -défaut le message n'est pas vraiment détruit mais renommé en un -fichier dont le nom est ignoré par les commandes de MH. Vous devrez -effacer physiquement de façon périodique les messages -“effacés”.</para> -<para>La commande <command>rmf</command> permet d'effacer un -dossier. Cela ne renomme pas les fichiers mais les efface du disque -dur, vous devez donc faire extrèmement attention lorsque vous -l'utilisez.</para> -</sect2> -<sect2 id="samplereading"> -<title>Un session typique de lecture avec MH</title> -<para>La première chose que vous ferez sera de lancer la commande -<command>inc</command>. Donc sous l'interpréteur de commandes tapez -<command>inc</command> et la touche <keycap>entrée</keycap>. -<informalexample> -<screen>tempest% <userinput>inc</userinput> -Incorporating new mail into inbox... - - 36+ 01/19 "Stephen L. Lange Request...<<Please remove me as contact for pind - 37 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl - 38 01/19 "Amancio Hasty Jr Re: FreeBSD and VAT<<>>> Bill Fenner said: > In -tempest%</screen> -</informalexample> -Cela vous permet de visualiser les nouveaux messages rapatriés dans -votre boite aux lettres. La commande suivante a éxécuter est -<command>show</command> pour vous permettre de les visualiser et de -vous déplacer dans votre liste de messages. -<informalexample> -<screen>tempest% <userinput>show</> -Received: by sashimi.wwa.com (Smail3.1.29.1 #2) - id m0tdMZ2-001W2UC; Fri, 19 Jan 96 13:33 CST -Date: Fri, 19 Jan 1996 13:33:31 -0600 (CST) -From: "Stephen L. Lange" <stvlange@wwa.com> -To: matt@garply.com -Subject: Request... -Message-Id: <Pine.BSD.3.91.960119133211.824A-100000@sashimi.wwa.com> -Mime-Version: 1.0 -Content-Type: TEXT/PLAIN; charset=US-ASCII - - -Please remove me as contact for pindat.com - -tempest% <userinput>rmm</> -tempest% <userinput>next</> -Received: from localhost (localhost [127.0.0.1]) by whydos.lkg.dec.com (8.6.11/8 -.6.9) with SMTP id RAA24416; Fri, 19 Jan 1996 17:56:48 GMT -Message-Id: <199601191756.RAA24416@whydos.lkg.dec.com> -X-Authentication-Warning: whydos.lkg.dec.com: Host localhost didn't use HELO pro -tocol -To: hsu@clinet.fi -Cc: hackers@FreeBSD.org -Subject: Re: kern/950: Two PCI bridge chips fail (multiple multiport ethernet - boards) -In-Reply-To: Your message of "Fri, 19 Jan 1996 00:18:36 +0100." - <199601182318.AA11772@Sysiphos> -X-Mailer: exmh version 1.5omega 10/6/94 -Date: Fri, 19 Jan 1996 17:56:40 +0000 -From: Matt Thomas <matt@lkg.dec.com> -Sender: owner-hackers@FreeBSD.org -Precedence: bulk - - -This is due to a typo in pcireg.h (to -which I am probably the guilty party).</screen> -</informalexample></para> -<para>La commande <command>rmm</command> efface le message courant et -la commande <command>next</command> permet de déplacer le numéro du -message courant au message suivant. Maintenant vous désirez visualiser les -dix courriers les plus récents, pour choisir lequel vous désirez lire: -<informalexample> -<screen>tempest% <userinput>scan last:10</> - 26 01/16 maddy Re: Testing some stuff<<yeah, well, Trinity has - 27 01/17 Automatic digest NET-HAPPENINGS Digest - 16 Jan 1996 to 17 Jan 19 - 28 01/17 Evans A Criswell Re: Hey dude<<>From matt@tempest.garply.com Tue - 29 01/16 Karl Heuer need configure/make volunteers<<The FSF is looki - 30 01/18 Paul Stephanouk Re: [alt.religion.scientology] Raw Meat (humor)< - 31 01/18 Bill Lenherr Re: Linux NIS Solaris<<--- On Thu, 18 Jan 1996 1 - 34 01/19 John Fieber Re: Stuff for the email section?<<On Fri, 19 Jan - 35 01/19 support@foo.garpl [garply.com #1138] parlor<<Hello. This is the Ne - 37+ 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl - 38 01/19 "Amancio Hasty Jr Re: FreeBSD and VAT<<>>> Bill Fenner said: > In -tempest%</screen> -</informalexample> -Maintenant vous voulez lire le message numéro 27, donc vous -tapez<userinput>show 27</userinput> et il s'affiche. Comme vous pouvez -le voir après ce court exemple MH est très simple à utiliser pour -visualiser et lire votre courrier et est de plus très intuitif. -</para> -</sect2> -</sect1> - - -<sect1> -<title>Chercher parmis les messages et les dossiers</title> - -<para>Toute personne qui a beaucoup de mails aime à pouvoir mettre des -priorités, marquer les messages, les numéroter de différentes -façons. MH permet de faire toutes ces taches de façons très simple -comme d'habitude. Une chose dont nous n'avons pas encore parlé est le -concept de dossier. Vous avez surement utilisé le concept de dossier -avec d'autres programmes de lecture de courrier éléctronique. MH a -aussi des dossiers. MH peut aussi avoir des sous-dossiers de -dossiers. Un chose que vous devez avoir à l'esprit quand vous utilisez -la commande <command>inc</command>, pour la première fois, est qu'elle -demande si vous voulez créer le répertoire <filename>Mail</filename>, -et qu'elle enregistre tout dans ce répertoire. Si vous regardez ce -qu'il se trouve dans ce répertoire, vous verrez un répertoire -<filename>inbox</filename>. Ce répertoire comporte tous vos nouveaux -messages qui n'ont pas encore été déplacés dans un autre -dossier.</para> - -<para>Lorsque vous créez un nouveau dossier, un répertoire est crée -sous votre répertoire <filename>Mail</filename> et les messages à -destination de se dossier sont stockés dans ce répertoire. Lorsque un -nouveau message arrive, il est déposé dans votre répertoire -<filename>inbox</filename> avec comme nom le numéro du message. Donc -même si vous n'avez pas les outils MH pour lire votre courrier, -vous pouvez utiliser les commandes standards UNIX pour vous déplacer -parmis les dossiers et visualiser vos messages. C'est cette simplicité -qui vous donne autant de puissance dans le traitement de vos -messages.</para> - -<para>De la meme façon ou vous pouvez utiliser une liste de messages, -comme <parameter>23 16 42</parameter>, avec la plupart des commandes -MH; il y a une option utilisable avec toutes les commandes MH vous -permettant de travailler dans le dossier spécifié. Si vous essayer -<command>scan +freebsd</command>, vous allez parcourir le dossier -<filename>freebsd</filename>. Si vous faites un <command>show +freebsd -23 16 42</command>, la commande <command>show</command> affichera les -messages 23, 26 et 42 du dossier <filename>freebsd</filename>. Donc -souvenez vous que la syntaxe -<option>+<replaceable>dossier</replaceable></option>. Vous en aurez besoin pour -lancer les commandes dans les différents dossiers. Souvenez vous aussi -que votre dossier de courrier entrant par défaut est -<filename>inbox</filename>, donc en faisant un <command>folder -+inbox</command> vous aurez la liste de vos nouveaux messages. Bien -sur grace à la flexibilité de MH, vous pourriez changer ce dossier, -mais il y a peu d'interet à le faire.</para> - -<sect2> -<title><command>pick</command>— recherche par critères dans les -messages</title> -<para><command>pick</command> est une des commandes les plus -compliquées de MH. Je ne saurais pas mieux vous conseiller que d'aller -voir la page de manuel de -<citerefentry><refentrytitle>pick</refentrytitle><manvolnum>1</manvolnum></citerefentry> -pour bien la comprendre. La plus simple façon de s'en servir est la -suivante: -<informalexample> -<screen>tempest% <userinput>pick -search pci</userinput> -15 -42 -55 -56 -57</screen> -</informalexample> -Cela vous permet de trouver les numéros de tous les messages -comprenant le mot <literal>pci</literal> dans une des lignes du -message. Vous pouvez ensuite lancer la commande -<command>show</command> sur ces messages pour les lire ou -<command>rmm</command> pour les effacer. Vous devrez bien sur lancer -la commande suivante <command>show 15 42 55-57</command> pour les voir -tous. Une façon un peu plus compliquée d'utiliser -<command>pick</command> serait la suivante: -<informalexample> -<screen>tempest% <userinput>pick -search pci -seq pick</userinput> -5 hits -tempest% <userinput>show pick</userinput></screen> -</informalexample> -Cela vous permet de voir les memes messages que précédemment sans vous -fatiguer. L'option <option>-seq</option> n'est rien de plus qu'une -abréviation de l'option<option>-sequence</option> et la commande -<command>pick</command> n'est rien de plus qu'une sequence comportant -les numéros des messages vérifiant le critère. Vous pouvez aussi -utiliser la commande <command>rmm pick</command> pour effacer tous les -messages qui répondent au critère. Le nom de la sequence n'est pas -signifiant. Si vous relancez la commande <command>pick</command> de -nouveau, l'ancienne séquence sera effacée si vous utilisez le meme -nom.</para> - -<para>Si vous n'utilisiez que la commande <command>pick --search</command>, cela peut prendre plus de temps que de chercher un -message entre un destinataire et un envoyeur. La commande -<command>pick</command> dispose donc de certains critères prédéfinis: -<variablelist> - -<varlistentry> -<term><option>-to</option></term> -<listitem> -<para>recherche sur le destinataire</para> -</listitem> -</varlistentry> - - -<varlistentry> -<term><option>-cc</option></term> -<listitem> -<para>recherche dans le champ cc du message</para> -</listitem> -</varlistentry> - -<varlistentry> -<term><option>-from</option></term> -<listitem> -<para>recherche sur l'expéditeur du message</para> -</listitem> -</varlistentry> - -<varlistentry> -<term><option>-subject</option></term> -<listitem> -<para>recherche dans le sujet du message</para> -</listitem> -</varlistentry> - -<varlistentry> -<term><option>-date</option></term> -<listitem> -<para>recherche par rapport à la date du message</para> -</listitem> -</varlistentry> - - -<varlistentry> -<term><option>--<replaceable>component</replaceable></option></term> -<listitem> -<para>recherche sur un quelconque autre entete. (ex: -<option>--reply-to</option> pour rechercher dans les entetes reply-to -des messages)</para> -</listitem> -</varlistentry></variablelist></para> - -<para>Cela permet d'avoir des requetes de ce type: -<informalexample> -<screen>tempest% <userinput>pick -to freebsd-hackers@freebsd.org -seq hackers</userinput></screen> -</informalexample> -pour avoir tous les messages envoyés à la liste de diffusion hackers -de FreeBSD. <command>pick</command> vous permet de grouper de -différentes façon en fonctiondu critère. -<itemizedlist> - -<listitem> -<para>… <option>-and</option> …</para> -</listitem> - -<listitem> -<para>… <option>-or</option> &hellip</para> -</listitem> - -<listitem> -<para><option>-not</option> …</para> -</listitem> - -<listitem> -<para><option>-lbrace</option> … <option>-rbrace</option></para> -</listitem> -</itemizedlist> -Ces options permettent de faire des choses comme ceci: -<informalexample> -<screen>tempest% <userinput>pick -to freebsd-hackers -and -cc freebsd-hackers</userinput></screen> -</informalexample> -Cela vous permet de retrouver tous les messages envoyés à la liste -freebsd-hackers ou mis en copie à cette liste. Les options <option>lbrace</option> et -<option>rbrace</option> vous permettent de grouper les critères ensemble. Cela peut -etre util dans certaines situations, comme dans l'exemple suivant: -<informalexample> -<screen>tempest% <userinput>pick -lbrace -to freebsd-hackers -and - -not -cc freebsd-questions -rbrace -and -subject pci</></screen> -</informalexample></para> - -<para>Cet exemple vous permet d'extraire tous les mails destinés à <quote>la -liste freebsd-hackers (mais qui ne sont pas mis en copie pour la liste -freebsd-questions) et dont le sujet est pci</quote>. Normalement vous -vous poseriez la question; mais quelle est la précédence des -opérateurs ? Vous vous rappelez qu'en mathématiques les expressions -sont évaluées de gauche à droite et que la multiplication et la -division ont plus de poids que les additions et les soustractions. MH -utilise les memes règles pour la commande <command>pick</command>. Les -combinaisons peuvent etre très complexes, donc lisez la page de manuel -pour plus d'informations. Ce document est juste la pour vous aider à -découvrir MH.</para> -</sect2> - -<sect2> -<title><command>folder</command>, <command>folders</command>, -<command>refile</command>— trois programmes utiles pour gérer vos -dossiers.</title> - -<para>Il y a trois programmes vous permettant de gérer de façon -primitive vos dossiers. Le programme <command>folder</command> est -utilisé pour changer de dossiers, lister leur contenu. Vous pouvez -lancer la commande <command>folder -+<replaceable>dossier2</replaceable></command> et automatiquement, -vous vous retrouverez dans le dossier -<replaceable>dossier2</replaceable>. Alors toutes les commandes MH, -telles que -<command>comp</command>,<command>repl</command>,<command>scan</command>, -et <command>show</command> utiliserons le dossier <filename>dossier2</filename>.</para> - -<para>Quelques fois lorsque vous lisez et effacez dans messages vous -avez des <quote>discontinuitées</quote> dans vos dossiers. Si vous faites un -<command>scan</command> vous pouvez voir les messages 34, 35, 36, 43, -55, 56, 57, 80. Si vous faites un <command>folder -pack</command>, -cela vous permet de renuméroter tous vos messages, et vous n'aurez -plus de disccontinuitées. Cela n'efface aucun message. Vous devez donc -périodiquement faire des <command>rmm</command> sur vos -messages.</para> - -<para>Si vous desirez des statistiques sur vos dossiers, vous pouvez -faire des <command>folders</command> ou des <command>folder --all</command> pour obtenir la liste de vos dossiers, combien de -messages comporte chaque dossier et quel est le message courant dans -chacun. La ligne de statistique affichée est la meme que celle que -vous avez lorsque vous changez de dossier avec la commande -<command>folder +dossier2</>. Un exemple de la commande -<command>folders</command> pourrait etre: -<informalexample> -<screen> Folder # of messages ( range ); cur msg (other files) - announce has 1 message ( 1- 1). - drafts has no messages. - f-hackers has 43 messages ( 1- 43). - f-questions has 16 messages ( 1- 16). - inbox+ has 35 messages ( 1- 38); cur= 37. - lists has 8 messages ( 1- 8). - netfuture has 1 message ( 1- 1). - out has 31 messages ( 1- 31). - personal has 6 messages ( 1- 6). - todo has 58 messages ( 1- 58); cur= 1. - - TOTAL= 199 messages in 13 folders. -</screen> -</informalexample></para> - -<para>La commande <command>refile</command> vous permet de deplacer -les messages entre les dossiers. Si vous faites un <command>refile 23 -+nouveaudossier</command>, le message 23 sera déplacer dans le dossier -<filename>nouveaudossier</filename>. Vous pouvez tout aussi bien faire -un <command>refile 23 +nouveaudossier/sousdossier1</command> qui -déplacera le message 23 dans le un sous -dossier,<filename>sousdossier1</filename>, du dossier -<filename>nouveaudossier</filename>. Si vous voulez garder un message -dans le dossier courant tout en le mettant dans un autre, vous devez -lancer la commande <command>refile -link 23 +nouveaudossier</command>, -qui gardera le message dans le dossier <filename>inbox</filename> tout -en le listant dans le dossier -<filename>nouveaudossier</filename>. Cela vous permet de réaliser -toutes les choses merveilleuses que vous pouvez faire avec MH.</para> -</sect2> -</sect1> - -<sect1> -<title>Envoyer des messages</title> -<para>L'email est pour beaucoup de gens, comme une rue a double sens, -vous voudrez donc répondre a certains messages. La façon qu'emploie MH -pour envoyer des messages peut etre difficile a comprendre au début, -mais il permet une énorme flexibilitée.La première chose que fait MH, -est de copier un "composant" dans votre file de messages sortant. Un -"composant" est en fait un squelette de message comportant les entetes -<filename>To:</filename> et <filename>Subject:</filename>. Le système -lance ensuite votre éditeur favori ou vous pouvez remplir les entetes -et composer le corps du message sous les pointillés dans le -message. Ensuite vous lancez la commande -<command>whatnow</command>. Et lorsque vous avez le prompt -<prompt>What now?</prompt>, vous pouvez répondre par une des commandes -suivante <command>send</command>, <command>list</command>, <command>edit</command>, -<command>edit</command>, <command>push</command>, and -<command>quit</command>. La plupart des commandes précédentes -s'expliquent d'elles meme. Donc le processus d'envoi de message est le -suivant; copie du fichier "composant", édition de votre message, et -lancement de la commande <command>whatnow</command> en lui indiquant -quoi faire de votre message.</para> - -<sect2> -<title><command>comp</>, <command>forw</>, -<command>reply</>—composer, faire suivre ou répondre à un -message</title> - -<para>La commande <command>comp</command> comporte quelques options de -la ligne de commande intéressantes. La plus importante est -<option>-editor</option>.Lorsque vous installez MH, un programme -appellé <command>prompter</command> est utiliser comme éditeur de -texte par défaut. Ce n'est pas un éditeur très interessant. Donc -lorsque vous composez un message, vous utiliserez surement -<command>comp -editor /usr/bin/vi</command> ou <command>comp -editor -/usr/local/bin/pico</command> a la place. Après avoir lancer -<emphasis>comp</emphasis>, vous vous trouvez dans votre éditeur de -texte favori et vous voyez quelque chose qui ressemble à ceci: -<informalexample> -<screen>To: -cc: -Subject: --------- -</screen> -</informalexample></para> -<para>Vous devez ajoutez l'addresse de votre destinataire apres le mot -<literal>To:</literal>. Vous devez remplir de la meme manière les -autres entetes, donc vous devez mettre le sujet après le mot -<literal>Subject:</literal>. Vous pouvez ensuite ajouter le corps de -votre message après les lignes pointillées. Cela peut vous sembler un -peu simpliste par rapport a d'autres programmes de messagerie qui vous -pose des questions et remplissent automatiquement les différents -entete, mais cela vous apporte une excellente flexibilité. -<informalexample> -<screen>To:<userinput>freebsd-rave@freebsd.org</userinput> -cc: -Subject:<userinput>Et le 8ème jour, Dieu créa le bureau des directeurs de FreeBSD</userinput> --------- -<userinput>Ouah, c'est un super système d'exploitation. Merci !</userinput></screen> -</informalexample> -Vous pouvez ensuite, sauvegarder le message et quitter votre -éditeur. Vous aurez alors le prompt <prompt>What now?</prompt> et vous -pourrez taper <userinput>send</userinput> ou <userinput>s</userinput> -et appuyer sur la touche <keycap>entrée</keycap>. Alors l'équipe -principal de développemet de FreeBSD recevra votre gratitude. Comme -mentionné précedemment vous pouvez utiliser une des autres réponse, -par exemple <command>quit</command> si vous ne voulez pas envoyer ce -message.</para> - -<para>La commande <command>forw</command> s'utilise de façon -similaire. La principal différence est que le message que vous envoyez -comprends dans son corps le message courant. Lorsque vous utilisez la -commande <command>forw</command>, vous faites suivre le message -courant a un autre destinataire. Vous pouvez faire suivre un autre -message en utilisant de la façon suivante <command>forw 23</command> -la commande <command>forw</command>, ainsi le message 23 sera ajoute -dans le corps du message composé. A part ces simples différences, la -commande <command>forw</command>, fonctionne de la meme façon que la -commande <command>comp</command>. </para> - -<para>La commande <command>repl</command> vous permet de répondre au -message courant, sauf si vous lui indiquez un autre numéro de -message. La commande <command>repl</command> essaye de remplir au -mieux les différents champs de l'entete en fonction de ce qui se -trouve dans le message de base. Vous noterez donc que le -champ<literal> To:</literal> de l'entete comporte deja l'adresse du -destinataire et que la ligne <literal>Subject:</literal> est deja -remplie. Ensuite vous composez de la façon habituelle votre -message. Un option interessante de cette commande est -<option>-cc</option>. Vous pouvez utiliser comme parametre -<parameter>all</parameter>, <parameter>to</parameter>, -<parameter>cc</parameter>,<parameter>me</parameter> avec cette option; -cela vous permet d'ajouter de façon simple, les adresses en copie du -message original. Vous noterez que le message original n'est pas inclu -par défaut. C'est le comportement par défaut de la plupart des -configuration de MH. -</para> -</sect2> - -<sect2> -<title><filename>components</filename>, et -<filename>replcomps</filename>—les fichiers de composition pour -<command>comp</> and <command>repl</></title> - -<para>Le fichier <filename>components</filename> se trouve la plupart -du temps dans le répertoire -<filename>/usr/local/lib/mh</filename>. Vous pouvez copier ce fichier -dans votre répertoire de MH et l'éditer pour ajouter ce que vous -voulez. Vous avez certaines lignes d'entete de mail par défaut au -début, une ligne pointillée et puis plus rien. La commande -<command>comp</command> ne fait que copier ce fichier et vous permet -ensuite de l'éditer. Vous pouvez ajouter n'importe quel entete valide -(RFC822). Par exemple, vous pourriez avoir le fichier -<filename>components</filename> suivant: -<informalexample> -<screen>To: -Fcc: out -Subject: -X-Mailer: MH 6.8.3 -X-Comment: FreeBSD the power to serve -X-Home-Page: http://www.freebsd-fr.org/ --------</screen> -</informalexample> -MH copiera donc ce fichier et vous enverra dans votre éditeur -favori. Le fichier <filename>components</filename> est très simple. Si -vous désirez inclure une signature, il vous suffit de l'ajouter dans -ce fichier.</para> - -<para>Le fichier <filename>replcomps</filename> est un peu plus -complexe. Son contenu par défaut ressemble à ceci: -<informalexample> -<screen>%(lit)%(formataddr %<{reply-to}%?{from}%?{sender}%?{return-path}%>)\ -%<(nonnull)%(void(width))%(putaddr To: )\n%>\ -%(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\ -%<(nonnull)%(void(width))%(putaddr cc: )\n%>\ -%<{fcc}Fcc: %{fcc}\n%>\ -%<{subject}Subject: Re: %{subject}\n%>\ -%<{date}In-reply-to: Your message of "\ -%<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id} - %{message-id}%>\n%>\ --------- -</screen> -</informalexample></para> - -<para>Ce fichier a le meme format de base que le fichier -<filename>components</filename> mais il comporte un peu plus de codes -de mise en forme. La commande <literal>%(lit)</literal> crée l'espace -nécessaire pour l'adresse. La commande <literal>%(formataddr</literal> -est une fonction qui retourne une adresse e-mail cohérente. Le morceau -suivant <literal>%<</literal> permet de remplir le champ de -l'adresse avec l'adresse correspondante dans le cas ou elle se trouve -dans le champ <literal>{reply-to}</literal> du message de -l'emetteur. Cela sera donc transfomé de la manière suivante: -<informalexample> -<screen>%<<emphasis remap=bf>si</emphasis> {reply-to} <emphasis -remap=bf> dans le message original ou trouve un champ reply-to</emphasis> -alors la mettre dans le champ formataddr, %? <emphasis remap=bf>sinon -prendre le contenu du champ </emphasis> {from} <emphasis -remap=bf></emphasis>, %? <emphasis remap=bf>sinon</emphasis> prendre -le champ {sender} <emphasis remap=bf></emphasis>, %? -<emphasis remap=bf>et en dernier lieu prendre le champ </emphasis> {return-path} <emphasis remap=bf></emphasis>, %> <emphasis remap=bf>endif</emphasis>.</screen> -</informalexample></para> - -<para>Comme vous pouvez le voir, le formattage des champs de MH peut -etre largement étendu. Vous pourrez surment décrypter le maximum des -autres fonctions et des noms de variables. Toutes les autres -informations sur le façon d'écrire ces chaines de formattage se trouve -dans la page de manuel de MH. Donc lorsque vous aurez finit de creer -votre fichier <filename>replcomps</filename> vous n'aurez plus besoin -d'y toucher. Aucun autre programme ne vous donne autant de flexibilité -et de pouvoir que MH.</para> -</sect2> - -</sect1> - - - -</article> - diff --git a/fr_FR.ISO8859-1/articles/multi-os/Makefile b/fr_FR.ISO8859-1/articles/multi-os/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/multi-os/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD$ -# Original revision: 1.4 -# - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/multi-os/article.sgml b/fr_FR.ISO8859-1/articles/multi-os/article.sgml deleted file mode 100755 index 994298fd4a..0000000000 --- a/fr_FR.ISO8859-1/articles/multi-os/article.sgml +++ /dev/null @@ -1,700 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: n.nn ---> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; - <!ENTITY rel.current CDATA "3.2"> -]> - -<article lang="fr"> - <artheader> - <title>Installer et utiliser FreeBSD en même temps que d'autres systèmes d'exploitation</title> - <authorgroup> - <author> - <firstname>Jay</firstname> - <surname>Richmond</surname> - </author> - </authorgroup> - &artheader.copyright; - <abstract> - <para><email>jayrich@sysc.com</email></para> - <para>6 Aout 1996</para> - <para>Ce document explique comment faire cohabiter proprement FreeBSD et - d'autres systèmes d'exploitation courants tels que Linux, MS-DOS, OS/2 - et Windows 95. Remerciements particuliers à Annelise Anderson - <email>andrsn@stanford.edu</email>, Randall Hopper - <email>rhh@ct.picker.com</email> et Jordan K. Hubbard - <email>jkh@time.cdrom.com</email>.</para> - &abstract.license; - &abstract.disclaimer; - &trans.a.haby; - </abstract> - </artheader> - <sect1> - <title>Résumé</title> - <para>La plupart des gens n'arrivent pas à faire cohabiter leurs divers - systèmes d'exploitation sans des disques de grande capacité, - des informations sur les gros disques EIDE sont donc incluses. Comme il - y a de nombreuses combinaisons possibles de systèmes d'exploitation et - de configurations de disques durs, la section - <link linkend="examples">Exemples</link> sera peut-être celle - qui vous sera la plus utile. Elle décrit plusieurs configurations - d'ordinateurs utilisant plusieurs systèmes d'exploitation.</para> - <para>Ce document suppose que vous avez déjà préparé de la place sur votre - disque dur pour un système d'exploitation supplémentaire. Chaque fois que - vous repartitionnez votre disque dur, vous prenez le risque de détruire - les données qui se trouvent sur les partitions existantes. Toutefois, si - votre disque est entièrement occupé par DOS, vous trouverez peut-être le - programme FIPS (qui se trouve sur le CD-ROM FreeBSD dans le répertoire - <filename>\TOOLS</filename> ou que vous pouvez télécharger par - <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/tools">ftp</ulink>) utile. - Il vous permet de repartitionner votre disque sans détruire les données - qui s'y trouvent. Il existe aussi une programme commercial appelé - Partition Magic, qui vous permet de dimensionner et de supprimer des - partitions sans dégât.</para> - </sect1> - <sect1 id="boot-managers"> - <title>Revue des gestionnaires de démarrage</title> - <para>Ce ne sont que de brèves descriptions des différents gestionnaires - de démarrage que vous rencontrerez. Selon la configuration de votre - ordinateur, vous pourrez trouver utile d'en employer plus d'un sur le - même système.</para> - <variablelist> - <varlistentry> - <term>Boot Easy</term> - <listitem> - <para>C'est le gestionnaire de démarrage par défaut de FreeBSD. Il - peut démarrer à peu près n'importe quoi, y compris BSD, OS/2 - (HPFS), Windows 95 (FAT et FAT32) et Linux. Les partitions sont - sélectionnées à l'aide des touches fonction.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><foreignphrase>OS/2 Boot Manager</foreignphrase></term> - <listitem> - <para>Il démarrera depuis la FAT, HPFS, FFS (FreeBSD) et EXT2 - (Linux). Il peut aussi démarrer depuis des partitions FAT32. - Les partitions sont sélectionnées avec les touches Flèches. - Le gestionnaire de démarrage - <foreignphrase>OS/2 Boot Manager</foreignphrase> est le - seul à utiliser sa propre partition distincte, à l'inverse des - autres qui utilisent l'enregistrement principal de démarrage - (<foreignphrase>Master Boot - Record</foreignphrase> - MBR). Il doit donc être - installé dans les 1024 premiers cylindres pour éviter des - problèmes de démarrage. Il peut charger Linux en utilisant LILO - lorsque ce dernier se trouve sur le secteur de démarrage et non sur - le MBR. Allez sur les - <ulink url="http://www.freenix.fr/linux/HOWTO">HOWTO Linux</ulink> - sur le World Wide Web pour plus d'informations sur le démarrage - de Linux avec le gestionnaire de démarrage d'OS/2.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>OS-BS</term> - <listitem> - <para>C'est une alternative à Boot Easy. Il vous donne plus de - contrôle sur le processus de démarrage, avec la possibilité de - sélectionner la partition à démarrer par défaut et le délai de - démarrage. La version béta de ce programme vous permet de - sélectionner le système d'exploitation à démarrer avec les - touches Flèches. Il est inclus sur le CD-ROM FreeBSD dans le - répertoire <filename>\TOOLS</filename> et vous pouvez le - télécharger par - <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/tools">ftp</ulink>.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>LILO, ou LInux LOader (“chargeur Linux”)</term> - <listitem> - <para>C'est un gestionnaire de démarrage limité. Il peut démarrer - FreeBSD, mais il faut acommoder son fichier de configuration.</para> - </listitem> - </varlistentry> - </variablelist> - <informaltable> - <tgroup cols="1"> - <tbody> - <row> - <entry><emphasis>A propos de la FAT32:</emphasis> La FAT32 - remplace le système de fichiers FAT depuis la version Microsoft - OEM SR2 Béta, qui sera utilisée sur les ordinateurs avec Windows - 95 pré-installé vers la fin de 1996. Elle convertit le système - de fichiers FAT habituel et permet d'utiliser des tailles - d'agrégat - “<foreignphrase>cluster</foreignphrase>” - plus - petites sur de plus gros disques. La FAT32 modifie aussi le - secteur de démarrage et la table d'allocation habituels de la FAT, - ce qui la rend incompatible avec certains gestionnaires de - démarrage.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect1> - <sect1 id="typical"> - <title>Une configuration typique</title> - <para>Supposons que nous ayons deux gros disques EIDE, et que nous - voulions y installer FreeBSD, Linux et Windows 95.</para> - <para>Voici comment je procéderais avec ces disques durs:</para> - <itemizedlist> - <listitem> - <para><filename>/dev/wd0</filename> (premier disque dur - physique),</para> - </listitem> - <listitem> - <para><filename>/dev/wd1</filename> (second disque dur).</para> - </listitem> - </itemizedlist> - <para>Ils ont tous deux 1416 cylindres.</para> - <orderedlist> - <listitem> - <para>Je démarre avec une disquette de démarrage MS-DOS ou - Windows qui contient l'utilitaire <filename>FDISK.EXE</filename> - et crée une petite partition primaire de 50 Mo (35-40 pour Windows - 95 et un peu d'espace libre) sur le premier disque. Je crée aussi - une partition plus importante sur le second disque pour mes - applications et mes données Windows.</para> - </listitem> - <listitem> - <para>Je redémarre et installe Windows 95 (plus facile à dire qu'à - faire) sur la partition <filename>C:</filename>.</para> - </listitem> - <listitem> - <para>J'installe ensuite Linux. Je ne suis pas certain pour qui - concerne toutes les distributions de Linux, mais la Slackware - comprend LILO (voyez la section - <link linkend="boot-managers">Revue des gestionnaires de - démarrage</link>). Au moment de partitionner mon disque dur - avec l'utilitaire <filename>fdisk</filename> de Linux, - je mets tout Linux sur le premier disque (peut-être 300 Mo - pour une partition racine confortable et de l'espace de - pagination).</para> - </listitem> - <listitem> - <para>Après avoir installé Linux, et quand on me demande si je veux - installer LILO, je fais <emphasis>attention</emphasis> à l'installer - sur le secteur de démarrage de ma partition racine Linux, et non - sur le MBR (<foreignphrase>Master Boot - Record</foreignphrase> - enregistrement principal de - démarrage).</para> - </listitem> - <listitem> - <para>L'espace restant disponible sur le disque peut servir à - FreeBSD. Je vérifie aussi que la - tranche - “<foreignphrase>slice</foreignphrase>” - racine - de FreeBSD ne déborde pas de la limite des 1024 cylindres (1024 - cylindres correspond à 528 Mo à partir du début du disque sur nos - hypothétiques disques de 720 Mo). J'utiliserai éventuellement le - reste du disque dur (environ 270 Mo) pour les tranches - <filename>/usr</filename> et <filename>/var</filename>. Le - reste du second - disque (l'espace disponible dépend de la taille de ma partition - d'applications/données Windows que j'ai créée à l'étape 1) peut être - utilisé pour la tranche <filename>/usr/src</filename> et l'espace - de pagination.</para> - </listitem> - <listitem> - <para>Vus de l'utilitaire <filename>fdisk</filename> de Windows 95, mes - disques ressembleraient à ceci:</para> - <programlisting> ---------------------------------------------------------------------- - - Display Partition Information - -Current fixed disk drive: 1 - -Partition Status Type Volume_Label Mbytes System Usage -C: 1 A PRI DOS 50 FAT** 7% - 2 A Non-DOS (Linux) 300 43% - -Total disk space is 696 Mbytes (1 Mbyte = 1048576 bytes) - -Press Esc to continue - ---------------------------------------------------------------------- - - Display Partition Information - -Current fixed disk drive: 2 - -Partition Status Type Volume_Label Mbytes System Usage -D: 1 A PRI DOS 420 FAT** 60% - -Total disk space is 696 Mbytes (1 Mbyte = 1048576 bytes) - -Press Esc to continue - ---------------------------------------------------------------------- - </programlisting> - <para>Disons FAT16, ou FAT32 si vous utilisez la mise à jour - OEM SR2 (voyez la section - <link linkend="boot-managers">Revue des gestionnaires de - démarrage</link>).</para> - </listitem> - <listitem> - <para>J'installe FreeBSD. Je veille à démarrer avec le premier - disque dur défini comme “NORMAL” dans le paramétrage - du BIOS. Sans cela, je devrais indiquer la géométrie réelle de mon - disque au démarrage (pour la connaître, démarrez Windows 95 et - consultez les diagnostics Microsoft (<filename>MSD.EXE</filename>) - ou allez voir dans le BIOS) avec le paramètre - <literal>hd0=1416,16,63</literal> où <replaceable>1416</replaceable> - est le nombre de cylindres de mon disque dur, - <replaceable>16</replaceable> est le nombre de têtes par piste et - <replaceable>63</replaceable> est le nombre de secteurs par - tête.</para> - </listitem> - <listitem> - <para>Au moment de partitionner le disque dur, je fais attention à - bien installer Boot Easy sur le premier disque. Je ne m'occupe pas - du second disque, à partir duquel rien n'est démarré.</para> - </listitem> - <listitem> - <para>Au redémarrage, Boot Easy devrait reconnaître mes trois - partitions démarrables comme DOS (Windows 95), Linux et BSD - (FreeBSD)</para> - </listitem> - </orderedlist> - </sect1> - <sect1 id="special"> - <title>Considérations particulières</title> - <para>La plupart des systèmes d'exploitation sont très chatouilleux sur la - façon et l'endroit où ils sont installés sur le disque dur. Windows 95 et - DOS doivent être sur la première partition primaire du premier disque dur. - OS/2 fait exception. Il peut être sur le premier ou le second disque et - sur une partition primaire ou étendue. Si vous n'êtes pas sûr de vous, - gardez le début des partitions démarrables avant le 1024ème - cylindre.</para> - <para>Si vous installez Windows 95 sur un système BSD existant, cela va - “écraser” le MBR, et vous devrez réinstaller votre précédent - gestionnaire de démarrage. Boot Easy peut être réinstallé avec - l'utilitaire <filename>BOOTINST.EXE</filename> qui se trouve dans le - répertoire <filename>\TOOLS</filename> du CD-ROM, ou peut être téléchargé - par <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/tools">ftp</ulink>. - Vous pouvez aussi relancer le processus d'installation et aller dans - l'éditeur de partitions. De là, indiquez que la partition FreeBSD est - démarrable, choisissez l'option <option>Boot Manager</option> - (gestionnaire de démarrage) et tapez - <literal>W</literal> pour écrire les informations sur le MBR. Vous - pouvez maintenant redémarrer, et Boot Easy reconnaîtra votre Windows 95 - en tant que DOS.</para> - <para>N'oubliez pas s'il vous plaît qu'OS/2 peut lire les partitions FAT - et HPFS, mais pas les partitions FFS (FreeBSD) ou EXT2 (Linux). De même, - Windows 95 ne peut que lire et écrire sur les partitions FAT et FAT32 - (voyez la section <link linkend="boot-managers">Revue des gestionnaire - de démarrage</link>). FreeBSD peut lire la plupart des systèmes de - fichiers, mais ne sait pas actuellement lire les partitions HPFS. Linux - peut lire les partitions HPFS, mais ne peut pas y écrire. Les versions - récentes du noyau Linux (2.x) peuvent lire et écrire les partitions VFAT - de Windows 95 (La VFAT est ce qui permet à Windows d'utiliser des noms - de fichiers longs - c'est à peu près la même chose que la - FAT). Linux peut lire et écrire sur la plupart des systèmes de fichiers. - Pigé? Je l'espère.</para> - </sect1> - <sect1 id="examples"> - <title>Exemples</title> - <para><emphasis>(Cette section a besoin d'être revue, envoyez s'il vous - plaît vos exemples à <email>jayrich@sysc.com</email>.)</emphasis></para> - <para>FreeBSD + Windows 95: Si vous avez installé FreeBSD après Windows 95, - vous devriez voir la mention <literal>DOS</literal> sur le menu de Boot - Easy. C'est Windows 95. Si vous avez installé Windows 95 après FreeBSD, - lisez la section <link linkend="special">Considérations - particulières</link> ci-dessus. Tant que votre disque n'a pas 1024 - cylindres, vous ne devriez pas avoir de problèmes pour démarrer. Si - toutefois une de vos partitions va au-delà du 1024ème cylindre, et que - vous avez des messages du type <literal>invalid system disk</literal> - sous DOS (Windows 95) et que FreeBSD ne démarre pas, cherchez dans les - paramètres de configuration de votre BIOS quelque chose appelé - “<literal>> 1024 cylinder support</literal>” ou - mode “<literal>NORMAL/LBA</literal>”. DOS peut avoir besoin - du LBA (<foreignphrase>Logical Block - Adressing</foreignphrase> - Adressage de bloc logique) pour - démarrer correctement. Si la perspective de modifier les paramètres du - BIOS à chaque démarrage ne vous enchante pas, vous pouvez démarrer - FreeBSD depuis DOS avec l'utilitaire <filename>FBSDBOOT.EXE</filename> - du CD (il devrait reconnaître votre partition FreeBSD et la - démarrer).</para> - <para>FreeBSD + OS/2 + Windows: Rien de nouveau dans ce cas. Le gestionnaire - de démarrage d'OS/2 peut démarrer tous ces systèmes d'exploitation, il ne - devrait pas y avoir de problème.</para> - <para>FreeBSD + Linux: Vous pouvez aussi utiliser Boot Easy pour démarrer - les deux systèmes d'exploitation.</para> - <para>FreeBSD + Linux + Windows 95: (voyez la section - <link linkend="typical">Une installation typique</link>).</para> - </sect1> - <sect1 id="help"> - <title>Autres endroits où trouver de l'aide</title> - <para>Il y a de nombreux - <ulink url="http://www.freenix.fr/linux/HOWTO">HOWTO Linux</ulink> - qui traitent des systèmes d'exploitation multiples sur un même - disque.</para> - <para>Le - <ulink url="http://www.linuxresources.com/LDP/HOWTO/mini/Linux+DOS+Win95+OS2.html">mini-HOWTO - Linux+DOS+Win95+OS2</ulink> donne des indications sur la configuration - du gestionnaire de démarrage d'OS/2, et le - <ulink url="http://www.freenix.fr/linux/HOWTO/mini/Linux+FreeBSD.html">mini-HOWTO - Linux+FreeBSD</ulink> peut aussi vous intéresser. - L'<ulink url="http://www.in.net/~jkatz/win95/Linux-HOWTO.html">HOWTO - Linux</ulink> est aussi utile.</para> - <para>Le - <ulink url="http://www.dorsal.org/~dcl/publications/NTLDR_hacking">Guide - de programmation du chargeur NT</ulink> fournit des informations - intéressantes sur le démarrage de Windows NT, 95 et DOS avec d'autres - systèmes d'exploitation.</para> - <para>Le jeu de documents d'Hale Landis, “Comment ça marche”, - contient de bonnes informations sur toutes sortes de géométries de disques - et autres sujets liés au démarrage. Voici quelques liens qui peuvent vous - aider à le trouver:</para> - <itemizedlist> - <listitem> - <para><ulink url="ftp://fission.dt.wdc.com/pub/otherdocs/pc_systems/how_it_works/allhiw.zip">ftp://fission.dt.wdc.com/pub/otherdocs/pc_systems/how_it_works/allhiw.zip</ulink>,</para> - </listitem> - <listitem> - <para><ulink url="http://www.cs.yorku.ca/People/frank/docs/">http://www.cs.yorku.ca/People/frank/docs/</ulink>.</para> - </listitem> - </itemizedlist> - <para>Enfin, ne négligez pas la documentation du noyau de FreeBSD sur le - processus de démarrage, disponible dans la distribution du source du - noyau (elle est installée dans - <ulink url="file:/usr/src/sys/i386/boot/biosboot/README.386BSD">file:/usr/src/sys/i386/boot/biosboot/README.386BSD</ulink>).</para> - </sect1> - <sect1> - <title>Détails Techniques</title> - <para><emphasis>(Contribution de Randall Hopper - <email>rhh@ct.picker.com</email>)</emphasis></para> - <para>Cette section tente de vous donner assez d'informations de base - sur vos disques durs et sur le processus de démarrage à partir d'un - disque pour vous permettre de régler la plupart des problèmes que vous - pourriez rencontrer lorsque vous configurerez le démarrage de plusieurs - systèmes d'exploitation. Elle commence par des choses relativement - élémentaires, vous préférerez donc peut-être la parcourir en diagonale - jusqu'à ce que les points abordés vous paraissent moins familiers et - commencer alors à la lire en détail.</para> - <sect2> - <title>Introduction aux disques</title> - <para>Trois termes fondamentaux décrivent la localisation des données - sur vos disques durs: Cylindres, Têtes et Secteurs. Il n'est pas très - important de savoir à quoi ils se rapportent sinon qu'ensemble, ils - définissent où sont physiquement les données sur le disque.</para> - <para>Votre disque a un nombre donné de cylindres, de têtes, et de - secteurs par tête-cylindre (un doublet tête-cylindre est aussi appelé - une piste). Ensemble, ces informations définissent la “géométrie - physique” de votre disque. Il y a typiquement 512 octets par - secteur et 63 secteurs par pistes, le nombre de cylindres et de têtes - variant très largement d'un disque à l'autre. Vous pouvez alors - calculer la quantité d'informations que peut enregistrer votre disque - par la formule:</para> - <programlisting> -nombre de cylindres X nombre de têtes X 63 secteurs/piste X 512 octets/secteur - </programlisting> - <para>Par exemple, pour mon disque Western Digital AC31600 EIDE de 1,6 Go, -cela donne:</para> - <programlisting> -3148 cylindres X 16 têtes X 63 secteurs/piste X 512 octets/secteur - </programlisting> - <para>c'est-à-dire 1.624.670.208 octets, ou environ 1,6 Go.</para> - <para>Vous pouvez connaître la géométrie physique de votre disque dur - (nombre de cylindres, de têtes et de secteurs par piste) avec ATAID - ou d'autres programmes que vous trouverez sur l'Internet. Ces - informations sont peut-être aussi fournies avec votre disque. Faites - cependant attention: si vous utilisez le LBA du BIOS (voyez la section - <link linkend="limits">Restrictions pour le démarrage et - avertissements</link>), vous ne pouvez pas vous servir de n'importe - quel programme pour connaître la géométrie physique. Cela parce que de - nombreux programmes (e.g., <filename>MSD.EXE</filename> ou - le <filename>fdisk</filename> de FreeBSD) ne reconnaissent pas la - géométrie physique, ils listent à la place la <emphasis>géométrie - redéfinie</emphasis> (des valeurs virtuelles dues à l'utilisation - du LBA). Continuez à lire pour savoir ce que cela veut dire.</para> - <para>Une autre chose à savoir à propos de ces termes. 3 - valeurs - un numéro de cylindre, un numéro de tête, et un - numéro du secteur sur la piste - identifient l'adresse absolue - d'un secteur sur votre disque. Les cylindres et les têtes sont - numérotés à partir de 0, et les numéros de secteurs commencent à - 1.</para> - <para>Ceux que des détails plus techniques intéressent peuvent - trouver un peu partout sur l'Internet des informations sur la géométrie - des disques, les secteurs de démarrage, les BIOS, etc. Faites une - recherche sur Yahoo, Lycos, etc. pour <literal>boot sector</literal> ou - <literal>master boot record</literal>. Parmi les choses utiles que vous - trouverez, il y a le jeu de documents - “Comment ça marche” - <foreignphrase>How It - Works</foreignphrase> de Hale Landis. Voyez la section - <link linkend="help">Autres endroits où trouver de l'aide</link> pour - avoir quelques pointeurs vers ces documents.</para> - <para>OK, assez de terminologie. Nous sommes censés parler de démarrage - ici.</para> - </sect2> - <sect2 id="booting"> - <title>Le processus de démarrage</title> - <para>Sur le premier secteur de votre disque (cylindre 0, tête 0, - secteur 1) se trouve l'enregistrement principal de - démarrage - <foreignphrase>Master Boot - Record</foreignphrase> (MBR). Il contient une carte de votre disque. - Il identifie jusqu'à <emphasis>4 partitions</emphasis>, chacune d'elle - étant un espace contigu sur ce disque. FreeBSD appelle les partitions - des tranches - <foreignphrase>slices</foreignphrase> - pour - éviter la confusion avec ses propres partitions, mais nous - n'utiliserons pas ici ce terme. Chaque partition peut contenir son - propre système d'exploitation.</para> - <para>Chaque entrée de partition dans le MBR comprend un - <emphasis>IDentifiant de partition</emphasis>, un - <emphasis>Cylindre/Tête/Secteur de Début</emphasis> et un - <emphasis>Cylindre/Tête/Secteur de Fin</emphasis>. L'IDentifiant de - partition dit de quel type de partition il s'agit (de quel OS) et le - Début/Fin dit où elle se trouve. La table des - <link linkend="partitions">IDs de partitions</link> liste un - échantillon d'identifiants de partitions usuels.</para> - <informaltable id="partitions"> - <tgroup cols="2"> - <thead> - <row> - <entry>ID (hex)</entry> - <entry>Description</entry> - </row> - </thead> - <tbody> - <row> - <entry>01</entry> - <entry>DOS12 primaire (FAT 12-bit)</entry> - </row> - <row> - <entry>04</entry> - <entry>DOS16 primaire (FAT 16-bit)</entry> - </row> - <row> - <entry>05</entry> - <entry>DOS12 étendue</entry> - </row> - <row> - <entry>06</entry> - <entry>DOS primaire large (> 32 Mo)</entry> - </row> - <row> - <entry>0A</entry> - <entry>OS/2</entry> - </row> - <row> - <entry>83</entry> - <entry>Linux (EXT2FS)</entry> - </row> - <row> - <entry>A5</entry> - <entry>FreeBSD, NetBSD, 386BSD (UFS)</entry> - </row> - </tbody> - </tgroup> - </informaltable> - <note> - <para>Toutes les partitions ne dont pas démarrables (e.g. DOS étendue). - Certaines le sont - d'autres ne le sont pas. Ce qui rend - une partition démarrable est la configuration du secteur de démarrage - de la - partition - <foreignphrase>Partition Boot Sector</foreignphrase> - qui - est toujours présent au début de chaque partition.</para> - </note> - <para>Quand vous configurez votre gestionnaire de démarrage favori, il - consulte les entrées dans les tables de partitions du MBR de tous vos - disques et vous donne la possibilité de donner un nom à ces entrées. - Quand vous démarrez ensuite, le gestionnaire de démarrage - est appelé par du code prévu pour cela à partir secteur principal de - démarrage - <foreignphrase>Master Boot Sector</foreignphrase> - du - premier disque trouvé sur votre système. Le gestionnaire consulte - l'entrée de la table de partitions du MBR correspondant à la partition - que vous avez choisie, charge le secteur de démarrage de cette partition - et lui passe le contrôle. Ce secteur de démarrage de la partition - elle-même contient suffisamment d'informations pour commencer à charger - le système d'exploitation qui se trouve sur cette partition.</para> - <para>Il y a une chose importante à savoir dont nous n'avons pas encore - parlé. Tous vos disques durs ont un MBR. Toutefois, celui qui est - important est celui qui se trouve sur le premier disque reconnu par le - BIOS. Si vous n'avez que des disques durs IDE, c'est le premier disque - IDE (e.g. le disque maître sur le premier contrôleur). De même pour les - systèmes entièrement SCSI. Si vous avez et des disques durs IDE et des - disques durs SCSI, le disque IDE est habituellement le premier disque - dont la présence est testée par le BIOS, le premier disque IDE est donc - le premier disque reconnu. Le gestionnaire de démarrage que vous - installerez sera implémenté sur le premier disque dur reconnu comme - nous venons de l'expliquer.</para> - </sect2> - <sect2 id="limits"> - <title>Restrictions pour le démarrage et avertissements</title - <para>Voici maintenant les choses intéressantes auxquelles il faut - faire attention.</para> - <sect3> - <title>La redoutable limitation à 1024 cylindres et en quoi le LBA du - BIOS peut être utile</title> - <para>La première partie du processus de démarrage est entièrement - confiée au BIOS, (si ce terme est nouveau pour vous, le BIOS est - un circuit électronique sur votre carte mère qui contient le - code de démarrage de votre ordinateur). C'est pourquoi cette - première partie du processus est soumise aux limitations du - BIOS.</para> - <para>L'interface BIOS utilisée pour lire le disque dur durant - cette phase (INT 13H, Sous-fonction 2) alloue 10 bits pour le - numéro de cylindre, 8 bits pour le numéro de tête, et 6 bits - pour le numéro de secteur. Cela limite les utilisateurs de - cette interface (i.e. les gestionnaires de démarrage implémentés - sur le MBR du disque ainsi que les chargeurs de systèmes - d'exploitation implémentés sur les secteurs de démarrage) à:</para> - <itemizedlist> - <listitem> - <para>1024 cylindres au plus,</para> - </listitem> - <listitem> - <para>256 têtes au plus,</para> - </listitem> - <listitem> - <para>64 secteurs/piste au plus, (en fait 63, 0 n'est pas - disponible).</para> - </listitem> - </itemizedlist> - <para>Or les diques durs de grande capacité ont beaucoup de - cylindres et peu de têtes, le nombre de cylindres de ces disques - est donc invariablement supérieurs à 1024. De ce fait et à cause - de l'interface BIOS telle qu'elle est, vous ne pouvez pas démarrer - n'importe où sur votre disque dur. Le code de démarrage (le - gestionnaire de démarrage et le chargeur du système d'exploitation - implémenté sur les secteurs de démarrage de chaque partition - démarrable) doivent se situer avant le 1024ème cylindre. Si votre - disque dur est standard et a 16 têtes, cela équivaut à:</para> - <programlisting> -1024 cylindres/disque X 16 têtes/disque X 63 secteurs/piste X 512 octets - </programlisting> - <para>c'est-à-dire la limite souvent citée de 528 Mo.</para> - <para>C'est là qu'intervient le LBA (<foreignphrase>Logical Block - Adressing</foreignphrase> - “adressage de bloc - logique”) du BIOS. Le LBA du BIOS donne à l'utilisateur - des routines de l'API (<foreignphrase>Application Programming - Interface</foreignphrase> - “interface de - programmation”) du BIOS, la possibilité d'accéder aux - cylindres au-delà de 1024 avec les interfaces du BIOS en - redéfinissant le cylindre. Cela signifie qu'il construit une - nouvelle géométrie de vos cylindres et têtes, faisant croire - au BIOS que votre disque a moins de cylindres et plus de têtes - qu'en réalité. En d'autres termes, il profite du fait que les - disques ont relativement peu de têtes et beaucoup de cylindres, - pour modifier le rapport entre nombre de cylindres et nombre de - têtes de façon à ce que tous deux soient inférieurs aux limites - mentionnées ci-dessus (1024 cylindres, 256 têtes).</para> - <para>Pour prendre de nouveau l'exemple de mon Western Digital 1,6 - Go, il a pour géométrie physique:</para> - <programlisting> -(3148 cylindres, 16 têtes, 63 secteurs/piste, 512 octets/secteur) - </programlisting> - <para>Alors que le LBA du BIOS la redéfinit comme suit:</para> - <programlisting> -( 787 cylindres, 64 têtes, 63 secteurs/piste, 512 octets/secteur) - </programlisting> - <para>ce qui correspond à la même capacité physique, mais avec des - nombres de cylindres et de têtes dans les limites acceptables par - les API du BIOS. (Au passage, j'ai sur l'un de mes disques, et - Linux et FreeBSD au-delà du 1024ème cylindre, et les deux démarrent - sans problème, grâce au LBA du BIOS.)</para> - </sect3> - <sect3> - <title>Gestionnaires de démarrage et allocation de l'espace - disque</title> - <para>Une autre chose à laquelle il faut faire attention lorsque vous - installez un gestionnaire de démarrage est l'allocation d'espace - disque pour ce gestionnaire. Il vaut mieux être informé de cette - question avant de commencer pour vous éviter d'avoir à réinstaller un - ou plusieurs de vos systèmes d'exploitation.</para> - <para>Si vous avez suivi ce qui a été dit sur le - <link linkend="booting">processus de démarrage</link> - à propos du secteur principal de démarrage (où se trouve le MBR), - des secteurs de démarrage des partitions et du processus de démarrage, - vous vous êtes peut-être demandé où va se trouver ce foutu - gestionnaire de démarrage. Bien, certains gestionnaires de démarrage - sont suffisament légers pour tenir entièrement dans le secteur - principal de démarrage (cylindre 0, tête 0, secteur 1) avec la table - de partitions. D'autres ont besoin d'un peu plus d'espace et débordent - en fait de quelques secteurs après le secteur principal de démarrage - sur la piste cylindre 0 tête 0, qui sont normalement libres... - normalement.</para> - <para>Là est le hic... Certains systèmes d'exploitation (y compris - FreeBSD) vous permettent de faire débuter vos partitions juste après - le secteur principal de démarrage au cylindre 0, tête 0, secteur 2, - si vous le voulez. En fait, si vous donnez au programme - <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> - de FreeBSD, un disque dont le début est vierge ou un disque totalement - vide, c'est là qu'il fera commencer par défaut la partition FreeBSD - (c'est tout du moins ce qu'il a fait quand je suis tombé dans ce - piège). Quand vous installez ensuite le gestionnaire de démarrage, si - c'est l'un de ceux qui occupent quelques secteurs supplémentaires - après le MBR, il écrase les données qui se trouvent au début de la - première partie. Dans le cas de FreeBSD, cela écrase le label du - disque et empêche de démarrer votre partition FreeBSD.</para> - <para>Le moyen facile d'éviter ce problème (et de vous garder le - possibilité d'essayer différents gestionnaires de démarrage par la - suite) est de ne pas allouer la première piste du disque quand vous le - partitionnez. Cela réserve l'espace entre le cylindre 0, tête 0, - secteur 2 et le cylindre 0, tête 0, secteur 63, et votre partition - commence au cylindre 1, tête 1, secteur 1. Pour ce que cela vaut, - quand vous créez une partition DOS au début de votre disque, DOS - laisse par défaut cet espace inoccupé (c'est pourquoi certains - gestionnaires de démarrage font l'hypothèse qu'il est disponible). - Mettre une partition DOS au début de votre disque vous permet aussi - d'éviter le problème. C'est ce que je préfère personnellement faire, - mettre une partition DOS de 1 Mo au début, parce que cela évite - aussi que la lettre désignant mon disque DOS primaire soit modifiée - ensuite quand je repartitionne.</para> - <para>Pour servir de référence, les gestionnaires de démarrage - suivants n'utilisent que le secteur principal de démarrage pour - mettre leur code et leurs données:</para> - <itemizedlist> - <listitem> - <para>OS-BS 1.35,</para> - </listitem> - <listitem> - <para>Boot Easy,</para> - </listitem> - <listitem> - <para>LILO.</para> - </listitem> - </itemizedlist> - <para>Ces gestionnaires de démarrage occupent quelques secteurs - supplémentaires après le secteur principal de démarrage:</para> - <itemizedlist> - <listitem> - <para>OS-BS 2.0 Béta 8 (secteurs 2-5),</para> - </listitem> - <listitem> - <para>gestionnaire de démarrage d'OS/2.</para> - </listitem> - </itemizedlist> - </sect3> - <sect3> - <title>Que faire si votre système ne démarre pas?</title> - <para>Il se peut qu'à un moment donné - de l'installation d'un gestionnaire - de démarrage, vous laissiez le MBR dans un état tel que votre machine - ne redémarre plus. C'est peu probable, mais possible lorsque vous - refaites un FDISK alors qu'il y a déjà un gestionnaire de démarrage - installé.</para> - <para>Si vous avez une partition DOS démarrable, vous pouvez démarrer - avec une disquette de démarrage DOS, et lancer:</para> - <informalexample> -<screen><prompt>A:\></prompt> <userinput>FDISK /MBR</userinput></screen> - </informalexample> - <para>pour réinstaller le code d'origine de démarrage simple du DOS - seul sur le système. Vous pouvez alors démarrer DOS (et DOS - uniquement) depuis le disque dur. Une autre solution consiste à - réexécuter le programme d'installation de votre gestionnaire de - démarrage à partir d'une disquette démarrable.</para> - </sect3> - </sect2> - </sect1> -</article> diff --git a/fr_FR.ISO8859-1/articles/new-users/Makefile b/fr_FR.ISO8859-1/articles/new-users/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/new-users/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD$ -# Original revision: 1.4 -# - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/new-users/article.sgml b/fr_FR.ISO8859-1/articles/new-users/article.sgml deleted file mode 100755 index 50a698babe..0000000000 --- a/fr_FR.ISO8859-1/articles/new-users/article.sgml +++ /dev/null @@ -1,827 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: n.nn ---> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; - <!ENTITY rel.current CDATA "3.2"> -]> - -<article lang="fr"> -<artheader> -<title>Pour les Nouveaux Venus à FreeBSD et Unix</title> -<authorgroup> -<author> -<firstname>Annelise</firstname> -<surname>Anderson</surname> -<affiliation> -<address><email>andrsn@hoover.stanford.edu</email></address> -</affiliation> -</author> -</authorgroup> -<pubdate>15 Août 1997</pubdate> -&artheader.copyright; -<abstract> -<para>Félicitations pour avoir installé FreeBSD! Cette -introduction concerne les nouveaux venus à la fois à FreeBSD -<emphasis>et</emphasis> à Unix - elle commence donc par les bases. Elle -suppose que vous utilisiez la version 2.0.5 ou une version ultérieure de -FreeBSD telle que distribuée par Walnut Creek ou FreeBSD.ORG, que votre -système n'a (jusqu'à présent) qu'un seul utilisateur (vous) - et que vous -êtes probablement à l'aise avec DOS/Windows ou OS/2.</para> -&abstract.license; -&abstract.disclaimer; -&trans.a.haby; -</abstract> -</artheader> -<sect1> -<title>Initialiser et Terminer une Session Utilisateur</title> -<para>Ouvrez une session (quand vous obtenez à l'écran l'invite <systemitem -class=prompt>login:</systemitem>) avec le compte utilisateur que vous avez -défini à l'installation ou sous le compte super-utilisateur - <firstterm>root</firstterm>. (FreeBSD a déjà créé le compte root lors de -l'installation; root peut accéder à tous les répertoires et tout faire, y -compris effacer des fichiers essentiels, donc soyez prudents!). Les symboles % -et # dans les exemples sont l'invite du système (la votre peut être différente), -où % correspond à un utilisateur normal et # distingue le compte root.</para> -<para>Pour terminer la session (vous obtiendrez à nouveau l'invite -<systemitem class=prompt>login:</systemitem>), tapez: -<informalexample> -<screen># <userinput>exit</userinput></screen> -</informalexample> -autant de fois que nécessaire. Bien sûr, n'oubliez pas la touche -<keysym>Entrée</keysym> à la fin des commandes, et rappelez-vous qu'Unix -fait la distinction entre les majuscules et les -minuscules - <command>exit</command>, mais pas -<command>EXIT</command>.</para> -<para>Pour arrêtez l'ordinateur, tapez: -<informalexample> -<screen># <userinput>/sbin/shutdown -h now</userinput></screen> -</informalexample> -Ou, pour le redémarrer, tapez: -<informalexample> -<screen># <userinput>/sbin/shutdown -r now</userinput></screen> -</informalexample> -ou: -<informalexample> -<screen># <userinput>/sbin/reboot</userinput></screen> -</informalexample> -</para> -<para>Vous pouvez aussi redémarrer avec: -<keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Delete</keycap></keycombo>. -Laissez au système un peu de temps pour faire son travail. Cette séquence est, -dans les plus récentes versions de FreeBSD, l'équivalent de la commande -<command>/sbin/reboot</command>, et il est nettement préférable de l'employer -que d'utiliser l'interrupteur de réinitialisation de votre machine. A moins que -vous ne vouliez tout réinstaller ?</para> -</sect1> -<sect1> -<title>Créer un Nouveau Compte Utilisateur avec les Mêmes Droits que Root</title> -<para>Si vous n'avez pas créé de compte utilisateur au moment de l'installation, -et utilisez donc le compte root, vous devriez maintenant définir un nouvel -utilisateur avec: -<informalexample> -<screen># <userinput>adduser</userinput></screen> -</informalexample> -La première fois que vous utiliserez adduser, le programme vous demandera -peut-être de lui indiquer des options par défaut qu'il sauvegardera. Par -exemple, vous préférez peut-être que l'interpréteur de commandes soit csh, s'il -vous propose l'interpréteur sh. Sinon, tapez simplement Entrée pour conserver -les valeurs par défaut. Celles-ci sont enregistrées dans le fichier -<filename>/etc/adduser.conf</filename>, que vous pouvez éditer. -Supposons que vous ayez créé l'utilisateur <emphasis>jacques</emphasis> dont -le nom est <emphasis>Jacques Dupont</emphasis>. Attribuez un mot de passe -à jacques si la sécurité (pourquoi pas, même des enfants pourraient pianoter -sur le clavier) vous préoccupe. Quand le programme vous demande si vous -voulez que jacques appartienne à d'autres groupes, répondez: -<informalexample> -<screen>Login group is ``jacques''. Invite jacques into other groups: <userinput>wheel</userinput></screen> -</informalexample> -Vous pourrez alors ouvrir une session avec le compte -<emphasis>jacques</emphasis> puis utiliser la commande -<command>su</command> pour devenir root. Vous n'aurez dorénavant -plus besoin d'ouvrir immédiatement une session avec le compte root.</para> -<para>Vous pouvez quitter <command>adduser</command> à tout moment en tapant -<keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>, et -pour finir vous pourrez valider le nouveau compte utilisateur ou simplement -taper <keycap>n</keycap> pour non. Peut-être voudrez vous créer un second -compte utilisateur (jeanne?), vous aurez ainsi une issue de secours si vous -modifiez les fichiers de configuration de jacques et que quelque chose tourne -mal.</para> -<para>Une fois que vous avez fini, utilisez <command>exit</command> -pour revenir à l'invite <systemitem class=prompt>login:</systemitem> -et ouvrez une session sous le compte <emphasis>jacques</emphasis>. Il est -toujours préférable de travailler autant que possible avec un compte utilisateur -ordinaire qui n'a pas autant de droits - et donc ne présente pas autant de -risques - que root.</para> -<para>Si vous avez déjà créé un compte et que vous voulez que cet utilisateur -puisse utiliser <command>su</command> pour devenir root, vous pouvez devenir -root et éditer le fichier <filename>/etc/group</filename>, pour y ajouter -jacques à la première ligne (le groupe wheel). Familiarisez-vous d'abord avec -l'éditeur de texte <command>vi</command> - ou utilisez l'éditeur plus -simple <command>ee</command>, présent sur les versions les plus récentes -de FreeBSD.</para> -</sect1> -<sect1> -<title>Tour d'Horizon</title> -<para>Sous une session utilisateur ordinaire, faites un tour d'horizon et -essayez quelques commandes qui vous fourniront des informations et de l'aide -quand vous utiliserez FreeBSD.</para> -<para>Voici quelques commandes et ce qu'elles font : -<variablelist> -<varlistentry><term><command>id</command></term> -<listitem> -<para>Vous dit qui vous êtes!</para> -</listitem> -</varlistentry> -<varlistentry><term><command>pwd</command></term> -<listitem> -<para>Vous dit où vous êtes - le répertoire de travail -courant.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>ls</command></term> -<listitem> -<para>Donne la liste des fichiers du répertoire courant.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>ls <option>-F</option></command></term> -<listitem> -<para>Donne la liste des fichiers du répertoire courant suivis d'une -<literal>*</literal> pour les exécutables, d'un <literal>/</literal> pour -les répertoires, et d'une <literal>@</literal> pour les liens -symboliques.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>ls <option>-l</option></command></term> -<listitem> -<para>Donne la liste détaillée des fichiers du répertoire courant - taille, -date, autorisations.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>ls <option>-a</option></command></term> -<listitem> -<para>Liste tous les fichiers, y compris les fichiers “.” -cachés. Si vous êtes root, les fichiers “.” sont visibles -sans l'option <option>-a</option>.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>cd</command></term> -<listitem> -<para>Change de répertoire courant. <command>cd -<parameter>..</parameter></command> remonte d'un niveau dans l'arborescence; -notez l'espace après <command>cd</command>. <command>cd -<parameter>/usr/local</parameter></command> va dans ce répertoire. <command>cd -<parameter>~</parameter></command> va dans le répertoire de -l'utilisateur courant - e.g., <filename>/usr/home/jacques</filename>. -Essayez <command>cd <parameter>/cdrom</parameter></command>, puis -<command>ls</command>, pour voir si votre CDROM est monté et fonctionne.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>view <replaceable>nom_de fichier</replaceable></command></term> -<listitem> -<para>Vous permet de visualiser le fichier -<replaceable>nom_de_fichier</replaceable> sans le modifier. Essayez -<command>view <parameter>/etc/fstab</parameter></command>. -<command>:q</command> pour quitter.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>cat <replaceable>nom_de_fichier</replaceable></command></term> -<listitem> -<para>Liste <replaceable>nom_de_fichier</replaceable> à l'écran. S'il -est trop long et que vous n'en voyez que la fin, appuyez sur -<keycap>Arrêt Défil</keycap> et utilisez <keycap>flèche-vers-le-haut</keycap> -pour revenir en arrière; vous pouvez aussi utiliser <keycap>Arrêt Défil</keycap> -avec les pages de manuel. Appuyez à nouveau sur -<keycap>Arrêt Défil</keycap> pour -terminer votre lecture. Essayez <command>cat</command> sur quelques fichiers -“.” de votre répertoire utilisateur - <command>cat -<parameter>.cshrc</parameter></command>, <command>cat -<parameter>.login</parameter></command>, <command>cat -<parameter>.profile</parameter></command>.</para> -</listitem> -</varlistentry> -</variablelist> -Notez les alias de quelques commandes <command>ls</command> -dans le fichier <filename>.cshrc</filename> (ils sont très pratiques). -Vous pouvez créer d'autres alias en éditant le fichier -<filename>.cshrc</filename>. Vous pouvez aussi les mettre à disposition -de tous les utilisateurs en les définissant dans le fichier de configuration -général <filename>/etc/csh.cshrc</filename>.</para> -</sect1> -<sect1> -<title>Obtenir de l'Aide et de l'Information</title> -<para>Voici quelques moyens d'obtenir de l'aide. -<replaceable>Texte</replaceable> désigne quelque chose de votre choix - - normalement une commande ou un nom de fichier - que vous -tapez.</para> -<variablelist> -<varlistentry><term><command>apropos <replaceable>texte</replaceable></command></term> -<listitem> -<para>Tout ce qui contient la chaîne <replaceable>texte</replaceable> -dans la <database>base de données whatis</database>.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>man <replaceable>texte</replaceable></command></term> -<listitem> -<para>La page de manuel pour <replaceable>texte</replaceable>. C'est la -principale source de documentation des systèmes Unix. <command>man -<parameter>ls</parameter></command> vous expliquera toutes les possibilités -d'utilisation de la commande <command>ls</command>. Utilisez -<keycap>Entrée</keycap> pour faire défiler le texte, -<keycombo><keycap>Ctrl</keycap><keycap>b</keycap></keycombo> pour remonter -d'une page, <keycombo><keycap>Ctrl</keycap><keycap>f</keycap></keycombo> pour -passer à la page suivante, et <keycap>q</keycap> ou -<keycombo><keycap>Ctrl</keycap><keycap>c</keycap></keycombo> pour -quitter.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>which <replaceable>texte</replaceable></command></term> -<listitem> -<para>Vous dit où se trouve la commande -<replaceable>texte</replaceable> -dans vos chemins d'accès.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>locate <replaceable>texte</replaceable></command></term> -<listitem> -<para>Tous les répertoires où l'on trouve la chaîne -<replaceable>texte</replaceable>.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>whatis <replaceable>texte</replaceable></command></term> -<listitem> -<para>Vous dit ce qu'est la commande <replaceable>texte</replaceable> -et où se trouve la page de manuel correspondante.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>whereis <replaceable>text</replaceable></command></term> -<listitem> -<para>Cherche le fichier <replaceable>texte</replaceable>, et vous en donne -le chemin d'accès complet.</para> -</listitem> -</varlistentry> -</variablelist> -<para>Essayez la commande <command>whatis</command> sur quelques utilitaires -d'usage courant comme <command>cat</command>, -<command>more</command>, <command>grep</command>, -<command>mv</command>, <command>find</command>, -<command>tar</command>, <command>chmod</command>, -<command>chown</command>, <command>date</command> et -<command>script</command>. <command>more</command> vous permet de lire -une page à la fois comme sous DOS, e.g., <command>ls -l | -more</command> ou <command>more -<replaceable>nom_de_fichier</replaceable></command>. -<literal>*</literal> sert de caractère de substitution - e.g., <command>ls -w*</command> vous donnera la liste de tous les fichiers commençant par -<literal>w</literal>.</para> -<para>Certaines de ces commandes ne fonctionnent pas correctement? -<command>locate</command> et <command>whatis</command> -interrogent une base de données qui est reconstruite chaque semaine. -Si votre machine n'est pas en service le weekend (et sous FreeBSD), vous -devrez peut-être exécuter les commandes de maintenance quotidienne, hebdomadaire -et mensuelle de temps à autre. Faites-le sous le compte root et attendez qu'elles se terminent avant de lancer la suivante. -<informalexample> -<screen># <userinput>/etc/daily</userinput> -<lineannotation>sortie non mentionnée</lineannotation> -# <userinput>/etc/weekly</userinput> -<lineannotation>sortie non mentionnée</lineannotation> -# <userinput>/etc/monthly</userinput> -<lineannotation>sortie non mentionnée</lineannotation> -</screen></informalexample></para> -<para>Si vous êtes las d'attendre, appuyez sur -<keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo> pour obtenir une -nouvelle <firstterm>console virtuelle</firstterm>, et rouvrir une session. -Après tout, c'est un système multi-utilisateurs, multi-tâches. Ces -commandes afficheront probablement des messages à l'écran pendant -qu'elles s'exécutent; vous pouvez taper <command>clear</command> pour effacer -l'écran. Une fois qu'elles auront terminé, regardez le contenu des fichiers -<filename>/var/mail/root</filename> et -<filename>/var/log/messages</filename>.</para> -<para>Utiliser de telles commandes est une des tâches d'administration -système - étant seul utilisateur d'un système Unix, vous êtes votre -propre administrateur système. Pratiquement tout ce que vous aurez à faire -sous le compte root sera l'administration de votre système. Ces tâches -sont souvent mal décrites dans les ouvrages volumineux sur Unix -qui passent plus de temps à détailler les menus des gestionnaires de fenêtres. -Procurez-vous l'un des deux ouvrages de référence sur l'administration système, -soit Evi Nemeth et.al.'s <citetitle>UNIX System -Administration Handbook</citetitle> (Prentice-Hall, 1995, ISBN -0-13-15051-7) - deuxième édition avec une couverture rouge; ou -Æleen Frisch's <citetitle>Essential System -Administration</citetitle> (O'Reilly & Associates, 1993, ISBN -0-937175-80-3)<footnote><para>N.d.T.: traduit en français sous le titre -<citetitle>Les Bases de l'Administration Système</citetitle>, chez le même -éditeur.</para></footnote>. J'ai personnellement utilisé Nemeth.</para> -</sect1> -<sect1> -<title>Editer des Fichiers Texte</title> -<para>Pour configurer votre système, vous devez éditer des fichiers texte. Ils -sont presque tous dans le répertoire <filename>/etc</filename>; vous devrez -utiliser la commande <command>su</command> pour devenir root pour les -modifier. Vous pouvez vous servir de l'éditeur simple <command>ee</command>, -mais à long terme, cela vaut la peine d'apprendre à utiliser -<command>vi</command>. Il y a une excellente introduction à vi dans -<filename>/usr/src/contrib/nvi/docs/tutorial</filename> si vous l'avez -installé. Sinon vous pouvez le télécharger par ftp sur -<ulink url="ftp://ftp.cdrom.com">ftp://ftp.cdrom.com</ulink> -dans le répertoire -<filename>FreeBSD/FreeBSD-current/src/contrib/nvi/tutorial</filename>.</para> -<para>Avant d'éditer un fichier, faites-en une copie de sauvegarde. Supposons -que vous vouliez modifier le fichier <filename>/etc/rc.conf</filename>. Avec -la commande <command>cd /etc</command> vous allez dans le répertoire -<filename>/etc</filename>, puis tapez: -<informalexample> -<screen># <userinput>cp rc.conf rc.conf.orig</userinput></screen> -</informalexample> -pour recopier le fichier <filename>rc.conf</filename> dans -<filename>rc.conf.orig</filename>, de façon à pouvoir ensuite -recopier <filename>rc.conf.orig</filename> dans <emphasis -remap=tt>rc.conf</emphasis> pour revenir à la version originale. Il serait -encore mieux de le déplacer (renommer) puis de faire la copie en sens inverse: -<informalexample> -<screen># <userinput>mv rc.conf rc.conf.orig</userinput> -# <userinput>cp rc.conf.orig rc.conf</userinput></screen> -</informalexample> -parce que la commande <command>mv</command> conserve la date et le nom du -propriétaire d'origine du fichier. Vous pouvez maintenant éditer le fichier -<filename>rc.conf</filename>. Si vous voulez revenir à la version d'origine, -utilisez alors <userinput>mv rc.conf rc.conf.myedit</userinput> -(en supposant que vous vouliez conserver la version que vous avez modifiée) -puis: -<informalexample> -<screen># <userinput>mv rc.conf.orig rc.conf</userinput></screen> -</informalexample> -pour remettre l'original à sa place.</para> -<para>Pour éditer un fichier, tapez: -<informalexample> -<screen># <userinput>vi <replaceable>nom_de_fichier</replaceable></userinput></screen> -</informalexample> -déplacez vous dans le fichier avec les touches flèches. <keycap>Echap</keycap> (la touche d'échappement) met <command>vi</command> en mode commande. Voici -quelques-unes de ces commandes: -<variablelist> -<varlistentry><term><command>x</command></term> -<listitem> -<para>efface le caractère sur lequel se trouve le curseur.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>dd</command></term> -<listitem> -<para>efface toute la ligne (même si elle dépasse la largeur de l'écran et -s'affiche sur plus d'une ligne).</para> -</listitem> -</varlistentry> -<varlistentry><term><command>i</command></term> -<listitem> -<para>permet d'insérer du texte devant la position du curseur.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>a</command></term> -<listitem> -<para>permet d'insérer du texte après la position du curseur.</para> -</listitem> -</varlistentry> -</variablelist> -Après avoir tapé <command>i</command> ou <command>a</command>, -vous pouvez insérer du texte. <command>Echap</command> vous ramène en mode -commande. Vous pouvez alors taper: -<variablelist> -<varlistentry><term><command>:w</command></term> -<listitem> -<para>pour enregistrer le fichier modifié sur disque et continuer à -l'éditer,</para> -</listitem> -</varlistentry> -<varlistentry><term><command>:wq</command></term> -<listitem> -<para>pour enregistrer le fichier modifié sur disque et quitter -l'éditeur,</para> -</listitem> -</varlistentry> -<varlistentry><term><command>:q!</command></term> -<listitem> -<para>pour quitter l'éditeur sans enregistrer vos modifications,</para> -</listitem> -</varlistentry> -<varlistentry><term><command>/<replaceable>texte</replaceable></command></term> -<listitem> -<para>recherche la prochaine occurence de <replaceable>texte</replaceable> et -y positionne le curseur; <command>/<keycap>Entrée</keycap></command> (la touche -Entrée) recherche ensuite la prochaine occurrence de <replaceable>texte</replaceable>,</para> -</listitem> -</varlistentry> -<varlistentry><term><command>G</command></term> -<listitem> -<para>va à la fin du fichier,</para> -</listitem> -</varlistentry> -<varlistentry><term><command><replaceable>n</replaceable>G</command></term> -<listitem> -<para>va à la <replaceable>n</replaceable>ième ligne du fichier,</para> -</listitem> -</varlistentry> -<varlistentry><term><keycombo><keycap>Ctrl</><keycap>L</></keycombo></term> -<listitem> -<para>rafraîchit l'affichage,</para> -</listitem> -</varlistentry> -<varlistentry><term><keycombo><keycap>Ctrl</><keycap>b</></> et <keycombo><keycap>Ctrl</><keycap>f</></></term> -<listitem> -<para>remonte ou descend d'une page, de la même façon qu'avec les utilitaires -<command>more</> et <command>view</>.</para> -</listitem> -</varlistentry> -</variablelist> -</para> -<para>Entraînez-vous à utiliser <command>vi</> dans votre répertoire utilisateur -en créant un nouveau fichier avec <command>vi -<replaceable>nom_de_fichier</></> puis ajoutez-y et effacez du texte, -enregistrez le ficher et rééditez-le. <command>vi</> peut vous réserver -des surprises parce qu'il est assez complexe, et il vous arrivera de taper -accidentellement des commandes au résultat inattendu. (Certains aiment -vraiment <command>vi</> - il est bien plus puissant qu'EDIT -de DOS - voyez par exemple la commande <command>:r</> command.) Utilisez -<keycap>Echap</> une ou plusieurs fois pour être sûr que vous êtes en mode -commande quand vous êtes dans l'embarras, enregistrez régulièrement vos -modifications avec la commande <command>:w</>, et utilisez la commande -<command>:q!</> pour sortir et rééditer la dernière version enregistrée -avec <command>:w</> au besoin.</para> -<para>Vous pouvez maintenant <command>cd</> vers <filename>/etc</filename>, -<command>su</> pour devenir root, utiliser <command>vi</> pour éditer le -fichier <filename>/etc/group</filename>, et ajouter un utilisateur au groupe -wheel pour qu'il ait les mêmes droits que root. Ajoutez juste une virgule puis -le nom de l'utilisateur à la fin de la première ligne, appuyez sur -<keycap>Echap</>, et utilisez la commande <command>:wq</> pour enregistrer -le fichier et quitter l'éditeur. La modification est aussitôt prise en compte -par le système. (vous n'avez pas mis de blanc après la virgule, -n'est-ce-pas?)</para> -</sect1> -<sect1> -<title>Imprimer des fichiers DOS</title> -<para>A ce stade, vous n'avez probablement pas encore configuré FreeBSD -pour pouvoir utiliser votre imprimante. Voici donc une méthode pour -créer un fichier à partir d'une page de manuel, l'enregistrer sur disquette -et l'imprimer sous DOS. Si par exemple, vous voulez lire dans le détail -ce qui concerne la modification des droits d'accès aux fichiers (c'est assez -important), la commande man chmod vous affiche la page de manuel. La commande: -<informalexample> -<screen># <userinput>man chmod > chmod.txt</></screen> -</informalexample> -recopie la page de manuel dans le fichier <filename>chmod.txt</filename> au lieu -de l'afficher à l'écran. Mettez maintenant une disquette formatée DOS dans le -lecteur de disquettes A:, <command>su</> pour devenir root, et tapez: -<informalexample> -<screen># <userinput>/sbin/mount -t msdos /dev/fd0 /mnt</></screen> -</informalexample> -pour monter le lecteur de disquettes dans le répertoire -<filename>/mnt</filename>.</para> -<para>Ensuite (plus besoin d'être root, vous pouvez utiliser -<command>exit</> pour redevenir l'utilisateur jacques), vous pouvez aller -dans le répertoire où vous avez créé le fichier chmod.txt et le recopier -sur la disquette avec la commande: -<informalexample> -<screen>% <userinput>cp chmod.txt /mnt</></screen> -</informalexample> -puis utiliser <command>ls /mnt</command> pour lister le contenu du répertoire -<filename>/mnt</filename>, où devrait figurer le fichier -<filename>chmod.txt</filename>.</para> -<para>En particulier, il vous sera utile de créer un fichier à partir du -résultat de la commande -<filename>/sbin/dmesg</filename> en tapant: -<informalexample> -<screen>% <userinput>/sbin/dmesg > dmesg.txt</></screen> -</informalexample> -et en copiant <filename>dmesg.txt</filename> sur la disquette. -<command>/sbin/dmesg</command> liste les informations affichées au démarrage -du système, qu'il est utile de comprendre, parce qu'elles décrivent la -configuration matérielle reconnue par FreeBSD au démarrage. -Si vous posez des questions sur <email>freebsd-questions@FreeBSD.ORG</> ou -dans un forum USENET - du type “FreeBSD ne reconnaît pas mon -lecteur de bande, que faire ? ” - on vous demandera ce qu'indique -<command>dmesg</> sur votre système.</para> -<para>Vous pouvez maintenant démonter le lecteur de disquette (sous le compte -root) pour retirer la disquette avec la commande: -<informalexample> -<screen># <userinput>/sbin/umount /mnt</></screen> -</informalexample> -et redémarrer la machine pour passer sous DOS. Copiez ces fichiers dans un -répertoire DOS, éditez-les avec DOS EDIT, Windows Notepad, ou un traitement -de texte, faites une petite modification pour avoir à les enregistrer et -imprimez-les comme d'habitude sous DOS ou Windows. J'espère que cela marche! -Les pages de manuel s'impriment mieux avec la commande <command>print</command> -du DOS. (Copier des fichiers de FreeBSD vers une partition DOS montée est -dans certains cas encore un peu risqué).</para> -<para>Pour pouvoir imprimer depuis FreeBSD, il faut définir l'imprimante dans -le fichier <filename>/etc/printcap</filename> et créer le répertoire tampon -correspondant dans <filename>/var/spool/output</filename>. Si votre imprimante -est sur le port <hardware>lpt0</hardware> (qui s'appelle <hardware>LPT1</hardware> sous DOS), -il suffit d'aller dans le répertoire <filename>/var/spool/output</filename> et -(sous le compte root) de créer le répertoire <filename>lpd</>, s'il n'existe -pas, en tapant: -<informalexample> -<screen># <userinput>mkdir lpd</></screen> -</informalexample> -L'imprimante devrait alors répondre si elle était sous tension au démarrage du -système et les commandes lp ou lpr devraient envoyer un fichier à -l'imprimante. Que le fichier s'imprime ou non dépend de la -configuration de l'imprimante, qui est décrite dans le -<ulink url="&url.handbook;index.html">manuel FreeBSD.</></para> -</sect1> -<sect1> -<title>D'autres Commandes Utiles</title> -<para> -<variablelist> -<varlistentry><term><command>df</></term> -<listitem> -<para>liste les systèmes de fichiers montés, leur taille et leur utilisation.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>ps aux</></term> -<listitem> -<para>liste les processus actifs. <command>ps ax</> en est une forme abregée.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>rm <replaceable>nom_de_fichier</></></term> -<listitem> -<para>efface le fichier <replaceable>nom_de_fichier.</></para> -</listitem> -</varlistentry> -<varlistentry><term><command>rm -R <replaceable>répertoire</></></term> -<listitem> -<para>efface le répertoire <replaceable>répertoire</> et tous ses -sous-répertoires - attention!</para> -</listitem> -</varlistentry> -<varlistentry><term><command>ls -R</command></term> -<listitem> -<para>liste les fichiers du répertoire courant et de tous ses sous-répertoires; -j'en utilisais une variante, <command>ls -AFR > where.txt</command>, -pour avoir la liste de tous les fichiers du répertoire racine -<filename>/</filename> et (indépendamment) du répertoire -<filename>/usr</filename> avant de trouver un meilleur moyen pour rechercher -des fichiers.</para> -</listitem> -</varlistentry> -<varlistentry><term><command>passwd</></term> -<listitem> -<para>pour changer le mot de passe d'un utilisateur -(ou le mot de passe root).</para> -</listitem> -</varlistentry> -<varlistentry><term><command>man hier</></term> -<listitem> -<para>pages de manuel du système de fichier Unix.</para> -</listitem> -</varlistentry> -</variablelist></para> -<para>Avec le commande <command>find</> vous pouvez localiser le fichier -<replaceable>nom_de_fichier</replaceable> dans <filename>/usr</filename> ou un -de ses sous-répertoires: -<informalexample> -<screen>% <userinput>find /usr -name "<replaceable>nom_de_fichier</>"</></screen> -</informalexample> -Vous pouvez employer <literal>*</literal> comme caractère de substitution dans -<parameter>"<replaceable>nom_de_fichier</>"</> (qui doit être entre guillemets). -Si vous demandez à <command>find</command> d'effectuer la recherche dans <filename>/</filename> -au lieu de <filename>/usr</filename>, il va parcourir tous les systèmes de -fichiers montés, y compris le CDROM et la partition DOS.</para> -<para>Voici un excellent livre qui détaille les commandes et les utilitaires -du système Unix: -Abrahams & Larson, <citetitle>Unix for the Impatient</citetitle> -(2nd ed., Addison-Wesley, 1996). Vous trouverez aussi beaucoup d'informations -sur Unix sur l'Internet. Essayez l' -<ulink url="http://www.eecs.nwu.edu/unix.html">Unix Reference -Desk</ulink>.</para> -</sect1> -<sect1> -<title>Etapes Suivantes</title> -<para>Vous avez maintenant les outils nécessaires à l'exploration du système et -à l'édition de fichiers. Il y a énormement d'informations dans le -<ulink url="&url.handbook;index.html">manuel FreeBSD -</ulink> (que vous avez probablement aussi sur votre disque -dur) et sur le -<ulink url="http://www.freebsd.org/"> -site Internet de FreeBSD</ulink>. Il y a un grand nombre de logiciels sur le -CDROM de <ulink url="http://www.cdrom.com/">Walnut Creek</ulink> et sur leur -site Internet. Le "manuel" vous explique comment les utiliser -(installer le logiciel s'il existe, avec <command>pkg_add -/cdrom/packages/All/<replaceable>nom_du_logiciel</></>, -où <replaceable>nom_du_logiciel</replaceable> est le nom du fichier -correspondant au logiciel voulu). Le CDROM donne la liste des logiciels -pré-compilés ou non <footnote><para>N.d.T: Les logiciels prévus pour être utilisés avec FreeBSD peuvent être pré-compilés (“packages”) ou -disponibles sous forme de code source (“ports”) livré avec -les procédures nécessaires à sa compilation.</para></footnote> avec une -courte description de -chacun dans <filename>/cdrom/packages/index</filename>, -<filename>/cdrom/packages/index.txt</filename> et -<filename>/cdrom/ports/index</filename>. Il y a des descriptifs plus détaillés -dans <filename>/cdrom/ports/*/*/pkg/DESCR</filename>, où les -<literal>*</literal>s désignent respectivement les sous-répertoires regroupant -les logiciels par catégories et les noms des logiciels.</para> -<para>Si vous trouvez le "manuel" trop subtil (avec ses commandes -<command>lndir</> et ainsi de suite) en ce qui concerne l'installation des -logiciel à compiler, voici une méthode qui fonctionne habituellement:</para> -<para>Trouvez le logiciel que vous voulez, par exemple <command>kermit</>. Il -y aura un sous-répertoire correspondant sur le CDROM. Copiez ce sous-répertoire -dans <filename>/usr/local</filename> (là où l'on met généralement les logiciels -que l'on installe pour les mettre à la disposition de tous les utilisateurs) -avec: -<informalexample> -<screen># <userinput>cp -R /cdrom/ports/comm/kermit /usr/local</></screen> -</informalexample> -Ceci crée normalement un sous-répertoire <filename>/usr/local/kermit</filename> -qui contient tous les fichiers du sous-répertoire -<command>kermit</command> du CDROM.</para> -<para>Recherchez ensuite dans le répertoire -<filename>/cdrom/ports/distfiles</filename> un fichier dont le nom -indique que c'est le logiciel que vous voulez installer. Copiez ce fichier dans -<filename>/usr/ports/distfiles</filename>; avec les versions récentes, -vous pouvez sauter cette étape, FreeBSD s'en chargera. -Dans le cas de <command>kermit</>, il n'y a aucun fichier associé dans -<filename>/cdrom/ports/distfiles</filename>.</para> -<para>Puis <command>cd</> dans le sous-répertoire de -<filename>/usr/local/kermit</filename> qui contient le fichier -<filename>Makefile</>. Tapez: -<informalexample> -<screen># <userinput>make all install</></screen> -</informalexample> -</para> -<para>Pendant l'installation, le système ira chercher par ftp les -fichiers compressés qu'il ne trouve pas dans -<filename>/usr/ports/distfiles</filename>. Si vous n'êtes pas -encore connecté à l'Internet et que le fichier correspondant au -logiciel n'existe pas dans -<filename>/cdrom/ports/distfiles</filename>, vous devrez récupérer -ce fichier sur une autre machine et le copier dans -<filename>/usr/ports/distfiles</filename> depuis une disquette ou -votre partition Dos. Lisez <filename>Makefile</> (Avec <command>cat</>, -<command>more</> ou <command>view</>) pour trouver sur quel site (le -"master distribution site" - site de distribution d'origine) aller pour -récupérer le fichier et pour connaître -son nom. Ce nom sera tronqué si vous téléchargez le fichier sous DOS, et -vous devrez redonner au fichier son nom d'origine après l'avoir recopié -dans <filename>/usr/ports/distfiles</filename> -(avec la commande <command>mv</>) pour que FreeBSD le trouve. -(Utilisez le transfert de fichier en mode binaire!) Revenez ensuite dans -<filename>/usr/local/kermit</filename>, trouvez le sous-répertoire où est -<filename>Makefile</>, et tapez <command>make all install</>.</para> -<para>Il peut aussi arriver quand vous installez des logiciels pré-compilés ou -non qu'un autre logiciel soit nécessaire. Si l'installation s'interrompt avec -un message du style <errorname>can't find unzip</errorname>, vous devez d'abord -installer le logiciel unzip avant de continuer.</para> -<para>Un fois le logiciel installé, tapez <command>rehash</> pour que FreeBSD -relise la liste des fichiers dans les chemins d'accès par défaut, de façon -à ce qu'il sache ce qui s'y trouve. (Si vous obtenez de nombreux messages -d'erreur <errorname>path not found</> avec les commandes -<command>whereis</> ou <command>which</command>, ajoutez les répertoires -nécessaires à la liste des chemins d'accès par défaut définis dans le -fichier <filename>.cshrc</filename> de votre répertoire utilisateur. L'instruction -path d'Unix fonctionne de la même façon que sous DOS, à ceci près que, pour des -raisons de sécurité, le répertoire courant n'y est pas défini (par défaut); si -le programme que vous cherchez se trouve dans le répertoire courant, vous devrez -faire précéder le nom du programme de <filename>./</filename> pour l'exécuter -(pas d'espace après le “<filename>/</filename>”.) </para> -<para>Vous voudrez peut-être installer la version la plus récente de Netscape -depuis leur <ulink url="ftp://ftp.netscape.com">site ftp</ulink>. (Netscape -a besoin du gestionnaire graphique X Window.) Il vous faut la version -“unknown bsd”. Appliquez au fichier téléchargé les commandes -<command>gunzip <replaceable>nom_de_fichier</></> puis <command>tar xvf -<replaceable>nom_de_fichier</></>, recopiez l'exécutable dans -<filename>/usr/local/bin</filename> ou dans tout autre répertoire où vous mettez les programmes, <command>rehash</>, et ajoutez les lignes suivantes aux fichiers -<filename>.cshrc</filename> dans les répertoires de tous les -utilisateurs ou (plus simplement) au fichier -<filename>/etc/csh.cshrc</filename> de démarrage de l'interpréteur de commandes -csh applicable à tous les utilisateurs: -<informalexample> -<programlisting>setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB -setenv XNLSPATH /usr/X11R6/lib/X11/nls</> -</informalexample> -Ce qui présuppose que les fichiers <filename>XKeysymDB</> et le répertoire -<filename>nls</> existent dans <filename>/usr/X11R6/lib/X11</filename>; s'ils -n'y sont pas, trouvez-les et recopiez-les dans ce répertoire.</para> - -<para>Si vous aviez auparavant installé Netscape depuis le CDROM (ou par -ftp), ne remplacez pas <filename>/usr/local/bin/netscape</filename> par -le nouveau binaire; ce fichier n'est qu'une procédure qui positionne des -variables d'environnement. Au lieu de cela, renommez le nouveau fichier -binaire en <filename>netscape.bin</filename> et installez-le à la place -de l'ancien, qui s'appelle <filename>/usr/local/lib/netscape/netscape.bin</filename>.</para> -</sect1> -<sect1> -<title>Votre Environnement de Travail</title> -<para>Votre interpréteur de commandes est la composante la plus importante de -votre environnement de travail. C'est l'équivalent de COMMAND.COM sous DOS. -C'est lui qui analyse les commandes que vous tapez au clavier et communique -avec le reste du système d'exploitation. Vous pouvez aussi écrire des -procédures, qui sont l'équivalent des fichiers .BAT de DOS.</para> -<para>Deux interpréteurs de commandes sont pré-installés par FreeBSD : csh et -sh. csh est utile pour le travail en ligne de commande, mais vous devriez mieux -écrire vos procédures pour sh (ou bash). <command>echo $SHELL</command> vous -retourne le nom de l'interpréteur que vous utilisez actuellement.</para> -<para>L'interpréteur csh est commode, mais tcsh fait tout ce que fait csh et -plus encore. Il vous permet de rappeler des commandes avec les touches flèches -et de les éditer. Il sait compléter les noms de fichiers avec la touche Tab (csh -utilise la touche Echap) et il vous permet de revenir dans le répertoire où vous -étiez auparavant avec <command>cd -</command>. Il est aussi plus facile de -modifier l'invite du système avec tcsh. Il vous rend la vie beaucoup plus -facile.</para> -<para>Voici les trois étapes pour installer un nouvel interpréteur de -commandes:</para> -<para>Installez l'interpréteur, pré-compilé ou non, comme vous le feriez pour -n'importe quel autre logiciel. Utilisez <command>rehash</command> puis -<command>which tcsh</command> (en supposant que vous installiez tcsh) pour vous -assurer qu'il est bien installé.</para> -<para>Sous le compte root, éditez le fichier <filename>/etc/shells</filename>, -ajoutez-y une ligne pour le nouvel interpréteur, dans notre cas -/usr/local/bin/tcsh, et enregistrez votre modification. (certaines procédures -d'installation font cela pour vous.)</para> -<para>Utilisez <command>chsh</command> pour changer de façon permanente -d'interpréteur de commandes, ou tapez <command>tcsh</command> sous l'invite -du système pour changer d'interpréteur sans ouvrir de nouvelle session.</para> -<para>Note: Il peut être dangereux de changer l'interpréteur de commandes du -compte root en autre chose que sh ou csh avec les premières versions de FreeBSD -et de nombreuses autres versions d'Unix; vous pourriez ne plus avoir -d'interpréteur de commandes quand le système passe en mode mono-utilisateur. -La solution est d'utiliser <command>su -m</command> pour devenir root et -disposer de tcsh, parce que l'interpréteur de commandes est partie intégrante -de l'environnement. Vous pouvez rendre ce fonctionnement définitif en ajoutant -un alias dans votre fichier <filename>.tchsrc</filename>:</para> -<informalexample><screen>alias su su -m</screen> -</informalexample> -<para>Quand tcsh démarre, il lit les fichiers -<filename>/etc/csh.cshrc</filename> et <filename>/etc/csh.login</filename>. -Il lit aussi le fichier <filename>.login</filename> de votre répertoire -utilisateur, ainsi que le fichier <filename>.cshrc</filename>, à moins que vous -n'ayez un fichier <filename>.tchsrc</filename>. Vous pouvez facilement en -créer un en copiant simplement <filename>.cshrc</filename> dans -<filename>.tcshrc</filename>.</para> -<para>Maintenant que vous avez installé tcsh, vous pouvez modifier l'invite -du système. Vous trouverez plus de détails dans les pages de manuel de tcsh, -mais voici une ligne que vous pouvez mettre dans votre fichier -<filename>.tchsrc</filename>, qui vous dira combien de commandes vous avez -tapées, quelle heure il est, et dans quel répertoire vous vous -trouvez. Un > sera aussi -affiché si vous êtes un utilisateur ordinaire et un # si vous êtes root, mais -tcsh fait cela de toute façon:</para> -<informalexample><screen>set prompt = "%h %t %~ %#"</screen> -</informalexample> -<para>Mettez cette ligne à la place de la ligne "set prompt" s'il y en a déjà -une, ou après la ligne "if($?prompt) then" sinon. Mettez l'ancienne ligne en -commentaire; vous pourrez toujours y revenir si vous le souhaitez. N'oubliez -pas les espaces et les guillemets. Vous pouvez forcer la relecture du fichier -<filename>.tchsrc</filename> en tapant <command>source .tcshrc</command>.</para> -<para>Vous pouvez obtenir la liste des autres variables d'environnement qui ont -été positionnées avec la commande <command>env</command>. Le résultat vous -indiquera entre autres quels sont votre éditeur et votre gestionnaire de page -affichée par défaut, et quel type de terminal vous utilisez. Une -commande utile si vous vous connectez à distance et ne pouvez exécuter un -programme parce que le terminal n'est pas adapté est -<command>setenv TERM vt100</command>.</para> -</sect1> -<sect1> -<title>Autres</title> -<para>En tant que root, vous pouvez démonter le CDROM avec <command>/sbin/umount -/cdrom</>, le sortir du lecteur, en mettre un autre, et monter ce dernier avec -<command>/sbin/mount_cd9660 /dev/cd0a /cdrom</> en supposant que -<hardware>cd0a</> est le nom du périphérique associé à votre lecteur de -CDROMs.</para> -<para>Le système de fichier actif - le deuxième CDROM de la -distribution de FreeBSD - est utile si vous manquez d'espace disque. -Vous pouvez essayez d'utiliser <command>emacs</> ou des jeux depuis le -cdrom. Vous devrez utiliser <command>lndir</>, qui est installé en même temps -que le gestionnaire graphique X Window, pour dire au(x) programme(s) -où trouver les fichiers dont il a besoin, parce qu'ils se trouvent dans le -système de fichiers <filename>/cdrom</filename> et non dans -<filename>/usr</filename> et ses sous-répertoires, où ils devraient -normalement être. Lisez <command>man lndir</>.</para> -<para>Vous pouvez supprimer un utilisateur (par example, jacques) en utilisant -la commande <command>vipw</> pour éditer le fichier <filename>master.passwd</filename> -(n'utilisez pas <command>vi</> directement sur le fichier -<filename>master.passwd</filename>); effacez la ligne pour jacques et sauvez le -fichier. Editez ensuite <filename>/etc/group</filename> et supprimez toutes -les occurences de jacques. -Enfin, allez dans <filename>/usr/home</filename> et utilisez -<command>rm -R jacques</command> (pour effacer les fichiers et sous-répertoires -du répertoire utilisateur de jacques).</para> -</sect1> -<sect1> -<title>Vos Commentaires sont la Bienvenue</title> -<para>Si vous utilisez ce guide, je suis interessée de savoir où il ne vous est -pas suffisament clair et ce que vous trouvez qu'il y manque, et aussi s'il vous -a été utile. <footnote><para>N.d.T.: en anglais !</para></footnote> -Mes remerciements à Eugene W. Stark, professeur d'informatique -à SUNY-Stony Brook, et à John Fieber pour ses commentaires pertinents.</para> -<para>Annelise Anderson, <email>andrsn@hoover.stanford.edu</></para> -</sect1> -</article> diff --git a/fr_FR.ISO8859-1/articles/ntfs/Makefile b/fr_FR.ISO8859-1/articles/ntfs/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/ntfs/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD$ -# Original revision: 1.4 -# - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/ntfs/article.sgml b/fr_FR.ISO8859-1/articles/ntfs/article.sgml deleted file mode 100644 index a1922b42a2..0000000000 --- a/fr_FR.ISO8859-1/articles/ntfs/article.sgml +++ /dev/null @@ -1,490 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: n.nn ---> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; - <!ENTITY rel.current CDATA "3.2"> -]> - -<article id="ntfs" lang="fr"> - <artheader> - <title>Installer le pilote NTFS pour FreeBSD</title> - &artheader.copyright; - <abstract> - &abstract.license; - &abstract.disclaimer; - &trans.a.laurand; - </abstract> - </artheader> - - <sect1> - <title>Installer le pilote NTFS pour FreeBSD 3.x</title> - - <para>Pour installer ce pilote, vous aurez besoin de recompiler un noyau car - les fichiers d'en-tête utilisés seront mis à niveau. - Pour autant, aucun changement dans le fichier de configuration ne sera - nécessaire. Si vous n'avez pas installé les sources du - noyau, vous pouvez soit recourir à <filename>sysinstall</filename>, - ou bien entrer successivement en tant que - <username>root</username> :</para> - - <informalexample> -<screen>&prompt.root <userinput>mount -t cd9660 /dev/cd0c /mnt</userinput> -&prompt.root <userinput> cd /mnt/src</userinput> -&prompt.root <userinput> cat ssys.?? | tar --unlink -zxpvf - -C /usr/src</userinput></screen> - </informalexample> - - <para>Le pilote requiert également le fichier - <filename>mntopt.h</filename> de l'archive source. Pour - extraire son contenu :</para> - - <informalexample> -<screen>&prompt.root <userinput> cd /mnt/src</userinput> -&prompt.root <userinput> cat ssbin.?? | tar --unlink -zxpvf - -C /usr/src sbin/mount</userinput></screen> - </informalexample> - - <para>Ensuite, en tant que <username>root</username>, créez un - répertoire pour y extraire le contenu de l'archive du pilote - ntfs :</para> - - <informalexample> -<screen>&prompt.root <userinput> cd /tmp</userinput> -&prompt.root <userinput> mkdir ntfs</userinput></screen> - </informalexample> - - <para>Téléchargez le fichier d'archive compressé - contenant le code source du pilote ainsi que son fichier de mise à - niveau - <foreignphrase>patch</foreignphrase> - dans - <filename>/tmp/ntfs</filename>. Les deux fichiers dont vous avez besoin - sont <filename>ntfs-0.17beta.tgz</filename> et - <filename>ntfs.0.17beta-0.18beta.diff</filename>.</para> - - <para>Extrayez le contenu du fichier d'archive :</para> - - <informalexample> -<screen>&prompt.root <userinput> cd /tmp/ntfs</userinput> -&prompt.root <userinput> tar xzvf ntfs-0.17beta.tgz</userinput></screen> - </informalexample> - - <para>Il se peut que le numéro de version (0.17beta) soit - différent.</para> - - <para>Ensuite, appliquez la mise à niveau de la version 0.17 à - la version 0.18.</para> - - <informalexample> -<screen>&prompt.root <userinput> cd /tmp/ntfs/src/sys/ntfs</userinput> -&prompt.root <userinput> patch < /tmp/ntfs/ntfs.0.17beta-0.18beta.diff</userinput></screen> - </informalexample> - - <para>Prenez garde à ce qu'aucune partie ne fasse défaut. - <citerefentry><refentrytitle>patch</refentrytitle> - <manvolnum>1</manvolnum></citerefentry> génère des copies de - sauvegarde des fichiers qu'il met à jour (avec l'extension - <filename>.orig</filename>), par conséquent, si un problème - survient, recopiez les fichiers <filename>.orig</filename>, et - recherchez-en la cause.</para> - - <para>Recopiez maintenant les fichiers sources là où ils - doivent normalement être :</para> - - <informalexample> -<screen>&prompt.root <userinput>cd /tmp/ntfs</userinput> -&prompt.root <userinput>cp -p -R -i src /usr/</userinput></screen> - </informalexample> - - <para>Il faut ensuite mettre à jour - <filename>vnode.h</filename> :</para> - - <informalexample> -<screen>&prompt.root <userinput>cd /usr/src/sys/sys</userinput> -&prompt.root <userinput>patch < /tmp/ntfs/diff/vnode.h.diff</userinput></screen> - </informalexample> - - <para>Encore une fois, vérifiez que la mise à niveau s'est - bien passée, vous devriez avoir :</para> - - <programlisting> -Hmm... Looks like a new-style context diff to me... -The text leading up to this was: --------------------------- -|*** ./sys/sys/vnode.h.orig Fri Jan 1 06:12:51 1999 -|--- ./sys/sys/vnode.h Wed Dec 2 12:31:31 1998 --------------------------- -Patching file vnode.h using Plan A... -Hunk #1 succeeded at 62. -done - </programlisting> - - <para>Vous allez maintenant pouvoir maintenant compiler l'exécutable - <filename>mount_ntfs</filename> :</para> - - <informalexample> -<screen>&prompt.root <userinput>cd /usr/src/sbin/mount_ntfs</userinput> -&prompt.root <userinput>make</userinput> -&prompt.root <userinput>make install</userinput></screen> - </informalexample> - -<para>ainsi que le module du noyau :</para> - - <informalexample> -<screen>&prompt.root <userinput>cd /usr/src/sys/modules/ntfs</userinput> -&prompt.root <userinput>make</userinput> -&prompt.root <userinput>make install</userinput></screen> - </informalexample> - - <para>Pour finir, il faudra aussi recompiler le noyau (parce que - <filename>vnode.h</filename> a été modifié). Si vous - utilisez le noyau <filename>GENERIC</filename>, faites une copie - du fichier de configuration du noyau <filename>GENERIC</filename> (ce - n'est pas absolument nécessaire, mais de cette manière le - nom du noyau sera mis à jour, et il sera plus facile d'identifier - celui avec lequel vous démarrez). J'ai pour habitude d'utiliser - des noms assez représentatifs, aussi - <filename>GENERIC_NTFS</filename> me semble-t-il - approprié :</para> - - <informalexample> -<screen>&prompt.root <userinput>cd /usr/src/sys/i386/conf</userinput> -&prompt.root <userinput>cp GENERIC GENERIC_NTFS</userinput> -&prompt.root <userinput>/usr/sbin/config GENERIC_NTFS</userinput> -&prompt.root <userinput>cd ../../compile/GENERIC_NTFS</userinput> -&prompt.root <userinput>make depend</userinput> -&prompt.root <userinput>make</userinput> -&prompt.root <userinput>make install</userinput></screen> - </informalexample> - - <para>Ok, parfait, mais avant de redémarrer avec votre nouveau noyau, - il faut identifier la - tranche - <foreignphrase>slice</foreignphrase> - NTFS. - Le numéro de cette tranche va dépendre du format de votre - disque. Pour l'instant, si vous avez une tranche FAT suivie d'une tranche - NTFS et que votre tranche FreeBSD est la dernière, elles seront - numérotées (“<literal>da</literal>” ou - peut-être “<literal>sd</literal>” pour les disques SCSI, - si vous avez mis à jour votre système 2.2.x pour passer en - 3.1, et ce sera “<literal>wd</literal>” si vous avez des - disques IDE) :</para> - - <programlisting> -FAT - da0s1 -NTFS - da0s2 -FreeBSD - da0s3 - </programlisting> - - <para>Si votre tranche NTFS et votre tranche FreeBSD sont inversées - et que vous avez installé NT avant FreeBSD, ce qui est d'ailleurs la méthode recommandée, vos numéros de - tranches seront les mêmes, mais pas dans le même - ordre :</para> - - <programlisting> -FAT - da0s1 -FreeBSD - da0s3 -NTFS - da0s2 - </programlisting> - - <para>Vous pouvez jeter un coup d'oeil au fichier - <filename>/etc/fstab</filename> pour être sûr du numéro - de la tranche de FreeBSD (et également de celui de la tranche - FAT).</para> - - <para>Il y a cependant une exception à tout cela, lorsque votre - tranche NTFS est une “partition logique” dans une - “partition étendue”. Les “partitions - logiques” sont toujours numérotées à partir de - 5, peut importe le nombre de “partitions” sur le disque. Mon - disque, par exemple, est agencé comme ceci :</para> - - <programlisting> -FAT - da0s1 -FreeBSD - da0s3 -Extended partition - da0s2 - NTFS - da0s5 - </programlisting> - - <para>Notez qu'une “partition étendue;” se voit attribuer - une - tranche - “<foreignphrase>slice</foreignphrase>”, - mais celle-ci ne peut pas être utilisée en tant que telle, - c'est-à-dire que vous ne pouvez pas la monter.</para> - - <para>Après avoir identifié la tranche NTFS, vous pouvez - ajouter une entrée dans le fichier - <filename>/etc/fstab</filename>. Notez que l'option <literal>ro</literal> - signifie que le montage se fera en lecture seule (souvenez-vous que le - pilote est en lecture seule). Cette entrée provoquera le montage - automatique de la tranche NTFS lors du démarrage. Si vous voulez - désactiver cette dernière option, modifiez - <literal>ro</literal> en <literal>ro,noauto</literal>, sans aucun espace - ni avant ni après la virgule ! Vous aurez également - besoin d'un point de montage, <filename>/ntfs</filename> dans cet - exemple, ou si vous préferez, <filename>/mnt</filename> à - la place de <filename>/ntfs</filename> dans le fichier - <filename>/etc/fstab</filename> :</para> - - <programlisting> -# Device Mountpoint FStype Options Dump Pass# -/dev/da0s5 /ntfs ntfs ro 0 0 - </programlisting> - - <para>Si vous préferez ne pas monter la “partition” au - démarrage, montez-la ensuite en tant que <username>root</username> - avec la commande :</para> - - <informalexample> -<screen>&prompt.root <userinput>mount -t ntfs /dev/da0s5 /ntfs</userinput></screen> - </informalexample> - - <para>Bien entendu, ajustez le fichier de pilote de - périphérique ainsi que le point de montage à votre - système.</para> - - <para>C'est fait ! Il ne reste plus qu'à - redémarrer.</para> - - <para>Bon courage ! </para> - - </sect1> - - <sect1> - <title>Installation du pilote NTFS sous FreeBSD 2.2.X</title> - - <para>Pour installer ce pilote, vous aurez besoin de recompiler un noyau car - les fichiers d'en-tête utilisés seront mis à niveau. - Pour autant, aucun changement dans le fichier de configuration ne sera - nécessaire. Si vous n'avez pas installé les sources du - noyau, vous pouvez soit recourir à <filename>sysinstall</filename>, - ou bien entrer successivement en tant que - <username>root</username> :</para> - - <informalexample> -<screen>&prompt.root <userinput>mount -t cd9660 /dev/cd0c /mnt</userinput> -&prompt.root <userinput> cd /mnt/src</userinput> -&prompt.root <userinput> cat ssys.?? | tar --unlink -zxpvf - -C /usr/src</userinput></screen> - </informalexample> - - <para>Le pilote requiert également les fichiers - <filename>mntopt.h</filename> de l'archive source. Pour extraire son - contenu, tapez :</para> - - <informalexample> -<screen>&prompt.root <userinput> cd /mnt/src</userinput> -&prompt.root <userinput> cat ssbin.?? | tar --unlink -zxpvf - -C /usr/src sbin/mount</userinput></screen> - </informalexample> - - <para>Ensuite, en tant que <username>root</username>, créez un - répertoire pour extraire le contenu de l'archive du pilote - ntfs :</para> - - <informalexample> -<screen>&prompt.root <userinput> cd /tmp</userinput> -&prompt.root <userinput> mkdir ntfs</userinput></screen> - </informalexample> - - <para>Téléchargez le fichier d'archive compressé - contenant le code source du pilote ainsi que son fichier de mise à - jour dans <filename>/tmp/ntfs</filename>.</para> - - <para>Extrayez le contenu de l'archive :</para> - - <informalexample> -<screen>&prompt.root <userinput> cd /tmp/ntfs</userinput> -&prompt.root <userinput> tar xzvf ntfs-releng22-0.12beta.tgz</userinput></screen> - </informalexample> - - <para>Il se peut que le numéro de version (0.12beta) soit - différent.</para> - - <para>Recopiez maintenant les fichiers sources à l'endroit - adéquat :</para> - - <informalexample> -<screen>&prompt.root <userinput>cd src</userinput> -&prompt.root <userinput>cp -p -r * /usr/src</userinput></screen> - </informalexample> - - <para>Ensuite, vous devez mettre à niveau les 3 fichiers - d'en-tête du système. Utilisez l'option <option>-l</option> - (L minuscule) qui permet d'ignorer la différence d'espacement, car - j'ai remarqué que l'utilisation des touches <keycap>TAB</keycap> - et <keycap>Espace</keycap> rendait incompatible les fichiers originaux et - les fichiers <filename>diff</filename>.</para> - - <informalexample> -<screen>&prompt.root <userinput>cd /usr/src/sys/sys</userinput> -&prompt.root <userinput>patch -l malloc.h /tmp/ntfs/diff/malloc.h.diff</userinput> -&prompt.root <userinput>patch -l mount.h /tmp/ntfs/diff/mount.h.diff</userinput> -&prompt.root <userinput>patch -l vnode.h /tmp/ntfs/diff/vnode.h.diff</userinput></screen> - </informalexample> - - <para>Si cette opération réussit, vous verrez s'afficher - quelque chose de similaire à :</para> - - <programlisting> -Hmm... Looks like a new-style context diff to me... -The text leading up to this was: --------------------------- -|*** ./sys/sys/vnode.h.orig Fri Jan 1 00:17:30 1999 -|--- ./sys/sys/vnode.h Fri Jan 1 00:17:35 1999 --------------------------- -Patching file vnode.h using Plan A... -Hunk #1 succeeded at 58. -done - </programlisting> - - <para>Si malencontreusement, un (ou plusieurs) fichier de mise à - jour faisait défaut, sachez que - <citerefentry><refentrytitle>patch</refentrytitle></citerefentry> - fait toujours des copies des fichiers originaux avec le même nom - suivi de l'extension <filename>.orig</filename>.</para> - - <para>Maintenant, vous pouvez compiler le pilote. Il est nécessaire - d'ajouter <literal>BINDIR=/usr/sbin</literal> qui n'est pas - défini dans le <filename>Makefile</filename>.</para> - - <informalexample> -<screen>&prompt.root <userinput>cd /usr/src/sbin/i386/mount_ntfs</userinput> -&prompt.root <userinput>make</userinput> -&prompt.root <userinput>make BINDIR=/usr/sbin install</userinput></screen> - </informalexample> - - <para>Compilez ensuite les modules du noyau :</para> - - <informalexample> -<screen>&prompt.root <userinput>cd /usr/src/lkm</userinput> -&prompt.root <userinput>make</userinput> -&prompt.root <userinput>make install</userinput></screen> - </informalexample> - - <para>Pour finir, vous devez recompiler le noyau. Si vous utilisez le noyau - <filename>GENERIC</filename>, faites une copie du fichier de configuration - du noyau <filename>GENERIC</filename> (ce n'est pas absolument - nécessaire, mias de cette manière le nom du noyau sera mis - à jour, et ce sera plus facile pour identifier le noyau avec lequel - vous démarrez). J'ai pour habitude d'utiliser des noms assez - représentatifs, aussi <filename>GENERIC_NTFS</filename> me semble - approprié :</para> - - <informalexample> -<screen>&prompt.root <userinput>cd /usr/src/sys/i386/conf</userinput> -&prompt.root <userinput>cp GENERIC GENERIC_NTFS</userinput> -&prompt.root <userinput>/usr/sbin/config GENERIC_NTFS</userinput> -&prompt.root <userinput>cd ../../compile/GENERIC_NTFS</userinput> -&prompt.root <userinput>make depend</userinput> -&prompt.root <userinput>make</userinput> -&prompt.root <userinput>make install</userinput></screen> - </informalexample> - - <para>Ok, parfait, mais avant de redémarrer avec votre nouveau noyau, - il faut identifier la - tranche - <foreignphrase>slice</foreignphrase> - NTFS. - Le numéro de cette tranche va dépendre du format de votre - disque. Pour l'instant, si vous avez une tranche FAT suivie d'une tranche - NTFS et que votre tranche FreeBSD est la dernière, elles seront - numérotées (remplacez “<literal>w</literal>” par - “<literal>s</literal>” pour les disques SCSI) :</para> - - <programlisting> -FAT - wd0s1 -NTFS - wd0s2 -FreeBSD - wd0s3 - </programlisting> - - <para>Si votre tranche NTFS et votre tranche FreeBSD sont inversées - et que vous avez installé NT avant FreeBSD, ce qui est d'ailleurs la méthode recommandée, vos numéros de - tranches seront les mêmes, mais pas dans le même - ordre :</para> - - <programlisting> -FAT - wd0s1 -FreeBSD - wd0s3 -NTFS - wd0s2 - </programlisting> - - <para>Vous pouvez jeter un coup d'oeil au fichier - <filename>/etc/fstab</filename> pour être sûr du numéro - de la tranche FreeBSD (et également de celui de la tranche - FAT).</para> - - <para>Il y a cependant une exception à tout cela, lorsque votre - tranche NTFS est une “partition logique” dans une - “partition étendue”. Les “partitions - logiques” sont toujours numérotées à partir de - 5, peut importe le nombre de “partitions” sur le disque. Mon - disque, par exemple, est agencé comme ceci :</para> - - <programlisting> -FAT - sd0s1 -FreeBSD - sd0s3 -Extended partition - sd0s2 - NTFS - sd0s5 - </programlisting> - - <para>Notez qu'une “partition étendue” se voit attribuer - une - tranche - “<foreignphrase>slice</foreignphrase>”, - mais celle-ci ne peut pas être utilisée en tant que telle, - c'est-à-dire que vous ne pouvez pas la monter.</para> - - <para>Après avoir identifié la tranche NTFS, vous pouvez - ajouter une entrée dans le fichier - <filename>/etc/fstab</filename>. Notez que l'option <literal>ro</literal> - signifie que le montage se fera en lecture seule (souvenez-vous que le - pilote est en lecture seule). Cette entrée provoquera le montage - automatique de la tranche NTFS lors du démarrage. Si vous voulez - désactiver cette dernière option, modifiez - <literal>ro</literal> en <literal>ro,noauto</literal>, sans aucun espace - ni avant ni après la virgule ! Vous aurez également - besoin d'un point de montage, <filename>/ntfs</filename> dans cet - exemple, ou si vous préferez, <filename>/mnt</filename> à - la place de <filename>/ntfs</filename> dans le fichier - <filename>/etc/fstab</filename> :</para> - - <programlisting> -# Device Mountpoint FStype Options Dump Pass# -/dev/sd0s5 /ntfs ntfs ro 0 0 - </programlisting> - - <para>Si vous préferez ne pas monter la “partition” au - démarrage, montez-la ensuite en tant que <username>root</username> - avec la commande :</para> - - <informalexample> -<screen>&prompt.root <userinput>mount -t ntfs /dev/sd0s5 /ntfs</userinput></screen> - </informalexample> - - <para>Bien entendu, ajustez le fichier de pilote de - périphérique ainsi que le point de montage à votre - système.</para> - - <para>C'est fait ! Il ne reste plus qu'à - redémarrer. Si vous avez choisi de monter la - “partition” au démarrage, vous verrez s'afficher - quelques messages de diagnostic tout à fait - inoffensifs :</para> - - <programlisting> -ntfs_init(): -ntfs_mountfs(): bps: 512, spc: 1, media: f8, mftrecsz: 2 (2 sects) -ntfs_mountfs(): mftcn: 0x315e5|0x287245 -ntfs_mountfs(): case-sens., uid: 0, gid: 0, mode: 777 -ntfs_iget(): read $MFT ntnode -ntfs_mountfs(): reading $UpCase....OK - </programlisting> - - <para>Bon courage ! </para> - - </sect1> -</article> diff --git a/fr_FR.ISO8859-1/articles/ppp/Makefile b/fr_FR.ISO8859-1/articles/ppp/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/ppp/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD$ -# Original revision: 1.4 -# - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/ppp/article.sgml b/fr_FR.ISO8859-1/articles/ppp/article.sgml deleted file mode 100755 index 100f07af58..0000000000 --- a/fr_FR.ISO8859-1/articles/ppp/article.sgml +++ /dev/null @@ -1,1894 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: n.nn ---> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; - <!ENTITY rel.current CDATA "3.2"> -]> - -<article lang="fr"> -<artheader> -<title>Pédants Principes PPP</title> -&artheader.copyright; -<abstract> -&abstract.license; -&abstract.disclaimer; -&trans.a.haby; -</abstract> -</artheader> -<sect1> -<title>Introduction</title> -<para>Le protocole de connexion PPP en mode utilisateur de la version 2.2 de -FreeBSD (appelé aussi “IIJ-PPP”) supporte maintenant -la réécriture de paquets pour les connexions à l'Internet. Cette possibilité, -connue aussi sous le nom de “Mascarade (Masquerading)”, -“Alias IP (IP Aliasing)”, ou “Traduction d'Adresse -Réseau (Network Adresse Translation)”, permet à un système FreeBSD -d'interagir comme routeur de connexion à la demande entre un réseau local -et un fournisseur d'accès à Internet. Les machines du réseau local peuvent -utiliser l'unique connexion de la machine FreeBSD à l'Internet pour échanger -des informations avec ce dernier.</para> -<sect2> -<title>But de ce document</title> -<para>Ce document<footnote><para>N.d.T: Si vous souhaitez consulter le document -original en langue anglaise, il se trouve sur -<ulink url="http://www.FreeBSD.org/tutorials/ppp/ppp.html">http://www.FreeBSD.org/ppp/ppp.html</ulink>.</para></footnote> -vous explique comment:</para> -<itemizedlist> -<listitem><para>Configurer le système FreeBSD pour permettre les connexions -vers l'extérieur,</para></listitem> -<listitem><para>Partager une seule connexion vers l'extérieur avec les autres -machines du réseau,</para></listitem> -<listitem><para>Configurer les machines Windows pour utiliser la machine -FreeBSD comme passerelle vers l'Internet.</para></listitem> -</itemizedlist> -<para>Bien que l'objectif de ce document soit avant tout d'expliquer comment -configurer la traduction d'adresses IP, il fournit aussi des exemples -d'installation et de configuration des autres composants. Chaque section -est indépendante et peut être utilisée pour configurer divers aspects d'une -passerelle FreeBSD entre plusieurs réseaux.</para> -</sect2> -</sect1> -<sect1 id="sect2"> -<title>Mise en oeuvre du réseau local</title> -<para>Bien que le programme <command>ppp</command> puisse, et soit généralement -utilisé pour fournir des services à la <emphasis>seule</emphasis> machine -FreeBSD, il peut aussi servir à en faire une “passerelle” ou -“routeur” entre les autres dispositifs reliés au réseau local -et l'Internet ou tout autre service connecté.</para> -<sect2> -<title>Topologie classique du réseau</title> -<para>Ce document s'applique à un réseau local dont la -topologie est - classiquement - la suivante:</para> -<programlisting> - -+=========+ =======> Connexion à Internet ( Wanadoo, AOL, etc. ) -| | \ -| FreeBSD |======= -| "Curly" | -| | -+====+====+ - | -|=================+============+====| <== Réseau Local Ethernet - | | | -+====+====+ +====+====+ +====+====+ -| | | | | | -| Win95 | | WFW | | WinNT | -| "Larry" | | "Moe" | | "Shemp" | -| | | | | | -+=========+ +=========+ +=========+ - -</programlisting> -</sect2> -<sect2> -<title>Hypothèses sur le réseau local</title> -<para>Pour les besoins de notre exemple, nous supposerons que :</para> -<para>Il y a trois stations et un serveur reliés par le réseau Ethernet -local:</para> -<itemizedlist> -<listitem><para>un serveur FreeBSD (“Curly”) avec un contrôleur -Ethernet NE-2000 configuré sur “ed0”,</para></listitem> -<listitem><para>une station de travail Windows 95 (“Larry”) avec -les pilotes TCP/IP 32-bits natifs de Microsoft,</para></listitem> -<listitem><para>une station de travail Windows for Workgroups -(“Larry”) avec les extension TCP/IP 16-bits de -Microsoft,</para></listitem> -<listitem><para>une station de travail Windows NT (“Larry”) avec -les pilotes TCP/IP 32-bits natifs de Microsoft.</para></listitem> -</itemizedlist> -<para>Les adresses IP du réseau Ethernet sur lequel se base notre exemple -ont été attribuées dans l'espace d'adresses privées défini par la RFC-1597, -comme suit:</para> -<programlisting> -Nom Adresse IP -"Curly" 192.168.1.1 # La machine FreeBSD -"Larry" 192.168.1.2 # La machine Windows 95 -"Moe" 192.168.1.3 # La machine Windows for Workgroups -"Shemp" 192.168.1.4 # La machine Windows NT -</programlisting> -<para>Nous supposerons aussi que le modem est connecté sur le premier port série -(<filename>/dev/cuaa0</filename> ou <filename>COM1:</filename> selon la -terminologie DOS) de la machine FreeBSD.</para> -<para>Enfin, nous supposerons que notre fournisseur d'accès Internet nous -fournit automatiquement les adresses IP des deux extrémités de la liaison PPP -(point à point) : celle de notre machine FreeBSD et celle de la machine du côté -du fournisseur (adressage dynamique). Les détails de configuration de la -connexion de la machine FreeBSD à l'extérieur sont donnés au chapitre -<link linkend="chap3">Configuration du système FreeBSD</link>.</para> -</sect2> -</sect1> -<sect1 id="chap3"> -<title>Configuration du système FreeBSD</title> -<para>Il y a trois informations à fournir au système FreeBSD avant de le relier -au réseau local de notre exemple:</para> -<itemizedlist> -<listitem><para>Son nom de machine (<filename>hostname</filename>), -“Curly” dans notre exemple,</para></listitem> -<listitem><para>La configuration de son interface réseau,</para></listitem> -<listitem><para>Le fichier <filename>/etc/hosts</filename> (qui liste les noms -et les adresses IP des autres machines du réseau).</para></listitem> -</itemizedlist> -<para>Si vous avez installé FreeBSD via une connexion réseau, il -est possible que certaines de ces informations soient déjà définies.</para> -<para>Même si vous pensez que votre système FreeBSD a déjà été correctement -configuré au moment de l'installation, il vous mieux vous assurer de la -validité de chacune de ces informations pour vous éviter des ennuis par la -suite.</para> -<sect2 id="sect31"> -<title>Contrôler le nom de la machine FreeBSD</title> -<para>Il est possible que le nom de la machine FreeBSD ait été défini et -enregistré lors de l'installation du système. Pour le vérifier, entrez, -à l'invite du système, la commande suivante:</para> -<para> -<userinput> -<prompt>#</prompt> hostname -</userinput> -</para> -<para>Le nom de la machine FreeBSD sera affiché sur une seule ligne. Si ce nom -paraît correct (c'est très subjectif :-), vous pouvez passer au paragraphe -<link linkend="sect32">Contrôler la configuration de l'interface Ethernet</link>.</para> -<para>Dans notre exemple, le résultat de la commande <command>hostname</command> -devrait être “curly.my.domain” si le nom de la machine a été -correctement défini à l'installation, ou ensuite. (A ce stade, ne vous -préoccupez pas du suffixe “.my.domain”, nous verrons cela par la -suite. Ce qui compte maintenant est le nom qui précède le premier -“.”)</para> -<para>Si le nom de machine n'a pas été défini à l'installation, la réponse de -<command>hostname</command> sera probablement “myname.my.domain”. -Vous devez alors éditer le fichier <filename>/etc/rc.conf</filename> pour -définir le nom du système.</para> -<sect3> -<title>Définir le nom de la machine FreeBSD</title> -<note> -<para>Vous devez être en session sous “root” pour éditer les -fichiers de configuration du système.</para> -</note> -<note> -<para>Si vous introduisez des erreurs dans les fichiers de configuration, il y -a de fortes chances que votre système <emphasis>ne redémarre</emphasis> pas -correctement! Soyez prudents !</para> -</note> -<para>Le nom de machine du système FreeBSD est défini au démarrage par le -fichier <filename>/etc/rc.conf</filename>. Utilisez l'éditeur par défaut -(“ee”) pour éditer ce fichier.</para> -<para>Sous une session “root”, visualisez le fichier dans l'éditeur -avec la commande:</para> -<para> -<userinput> -<prompt>#</prompt> ee /etc/rc.conf -</userinput> -</para> -<para>Avec les touches flèches, allez jusqu'à la ligne qui définit le nom de -machine du système FreeBSD. Par défaut, vous y trouvez:</para> -<literallayout> ---- -### Basic network options: ### -hostname="myname.my.domain" # Set this ! ---- -</literallayout> -<para>Remplacez ces lignes, par exemple, par:</para> -<literallayout> ---- -### Basic network options: ### -hostname="curly.my.domain" # Set this ! ---- -</literallayout> -<para>Une fois la modification faite, appuyez sur la touche -<keycap>Echap</keycap> pour aller dans le menu de commandes de -l'éditeur. Choisissez -“leave editor” (quitter l'éditeur) et sélectionnez bien l'option -“save changes” (enregistrer les modifications) quand la question -vous est posée.</para> -</sect3> -</sect2> -<sect2 id="sect32"> -<title>Contrôler la configuration de l'interface Ethernet</title> -<para>Rappelons nos hypothèses : l'interface Ethernet de la machine s'appelle -“ed0”. C'est la valeur par défaut pour les contrôleurs NE-1000, -NE-2000, WD/SMC modèles 8003, 8013 et Elite Ultra (8216).</para> -<para>Les fichiers d'interface d'autres modèles de contrôleurs peuvent -avoir d'autres noms sous FreeBSD. Si vous n'êtes pas certain du nom -correspondant à votre contrôleur, consultez les Questions Fréquemment Posées -à propos de -FreeBSD (“FAQ”) et substituez la bonne valeur dans les exemples -qui suivent.</para> -<para>De la même façon que pour le nom de la machine, l'interface Ethernet du -système FreeBSD a peut-être été configurée à l'installation.</para> -<para>Pour consulter la configuration des interfaces (Ethernet et autres) de -votre système FreeBSD), utilisez la commande suivante:</para> -<screen> -<prompt>#</prompt> <userinput>ifconfig -a</userinput> -</screen> -<para>Soit en clair: "Donnes-moi la CONFIGuration des InterFaces de mes -périphériques réseau."</para> -<para>Par exemple:</para> -<screen> -<prompt>#</prompt> <userinput>ifconfig -a</userinput> -ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 -inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255 -ether 01:02:03:04:05:06 -lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 -tun0: flags=8050<POINTOPOINT,RUNNING, MULTICAST> mtu 1500 -l0: flags=c010<OINTOPOINT,LINK2,MULTICAST> mtu 552 -ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 -lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 -inet 127.0.0.1 netmask 0xff000000 -<prompt>#</prompt> -</screen> -<para>Sur cet exemple, les périphériques suivants sont reconnus :</para> -<itemizedlist> -<listitem><para><filename>ed0</filename>: l'interface -Ethernet,</para></listitem> -<listitem><para><filename>lp0</filename>: l'interface parallèle -(que nous n'utiliserons pas ici),</para></listitem> -<listitem><para><filename>tun0</filename>: l'interface SLIP (IP sur ligne série, -que nous n'utiliserons pas ici),</para></listitem> -<listitem><para><filename>ppp0</filename>: un autre interface PPP -(pour le module <command>ppp</command> intégré au noyau, que n'utiliserons pas -ici),</para></listitem> -<listitem><para><filename>lp0</filename>: l'interface -"en boucle" - "loopback" - que -nous n'utiliserons pas non plus).</para></listitem> -</itemizedlist> -<para>Dans l'exemple, l'interface “ed0” est active -(“UP”) et fonctionne (“RUNNING”). Les indications -importantes sont:</para> -<orderedlist> -<listitem><para>L'interface est active (“UP”),</para></listitem> -<listitem><para>Elle a une adresse Ethernet (“inet”), dans notre -cas: 192.168.1.1,</para></listitem> -<listitem><para>Elle a un masque de sous-réseau (“netmask”; -0xffffff00 qui équivaut à 255.255.255.0) correct,</para></listitem> -<listitem><para>Elle a une adresse de diffusion (“broadcast”; -ici, 192.168.1.255) valide.</para></listitem> -</orderedlist> -<para>Si la ligne décrivant l'interface Ethernet mentionne quelque chose -comme:</para> -<programlisting> -ed0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 -ether 01:02:03:04:05:06 -</programlisting> -<para>c'est que cette interface n'est pas encore configurée.</para> -<para>Si l'interface Ethernet est déjà configurée, vous pouvez passer -directement au paragraphe <link linkend="sect34">Renseigner la liste des -autres machines du réseau</link>. -Sinon, continuez en séquence.</para> -<sect3> -<title>Configurer votre interface Ethernet</title> -<note> -<para>Vous devez être en session sous “root” pour éditer les -fichiers de configuration du système.</para> -</note> -<note> -<para>Si vous introduisez des erreurs dans les fichiers de configuration, il y -a de fortes chances que votre système <emphasis>ne redémarre</emphasis> pas -correctement! Soyez prudents !</para> -</note> -<para>Les paramètres de configuration des interfaces réseau sont définis au -démarrage par le fichier <filename>/etc/rc.conf</filename>. Utilisez l'éditeur -par défaut (“ee”) pour éditer ce fichier.</para> -<para>Sous une session “root”, visualisez le fichier dans l'éditeur -avec la commande:</para> -<para> -<userinput> -<prompt>#</prompt> ee /etc/rc.conf -</userinput> -</para> -<para>Vers la vingtième ligne environ du fichier, se trouve la section qui -définit quelles interfaces réseau doivent être mises en service au -démarrage. Le fichier de configuration par défaut contient la ligne :</para> -<programlisting> -network_interfaces="lo0" # List of network interfaces (lo0 is loopback) -</programlisting> -<para>que vous devrez modifier pour dire à FreeBSD que vous voulez ajouter un -autre périphérique, en l'occurence l'interface “ed0”, en:</para> -<programlisting> -network_interfaces="lo0 ed0" # List of network interfaces (lo0 is loopback) -</programlisting> -<para>(Faites attention à l'espace entre la définition de l'interface en boucle -“lo0” et l'interface Ethernet “ed0”.)</para> -<note> -<para>Si le nom correspondant à votre interface n'est pas “ed0”,n'oubliez pas de mettre la valeur adéquate à la place.</para> -</note> -<para>Si vous avez installé FreeBSD via une connexion réseau, la ligne -“<filename>network_interfaces</filename>” comporte peut-être -déjà un référence à votre carte Ethernet. Dans ce cas, assurez vous que son nom -soit correct.</para> -<para>Les lignes qui suivent celles où sont listées les interfaces à mettre en -service décrivent les paramètres de chacune de ces interfaces. Dans le fichier -<filename>/etc/rc.conf</filename> par défaut, il n'y a qu'un seule ligne qui -dit:</para> -<programlisting> -ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration -</programlisting> -<para>Vous devrez ajouter une ligne qui définisse les caractéristiques de -votre interface “ed0”.</para> -<para>Si vous avez installé FreeBSD via une connexion réseau, la ligne -“<filename>ifconfig_ed0=</filename>” existe peut-être -déjà. Vérifiez alors qu'elle contienne bien les bonnes valeurs.</para> -<para>En nous référant à notre exemple, nous insérerons la ligne suivante, -immédiatement après la définition de l'interface -“en boucle”:</para> -<programlisting> -ifconfig_ed0="inet 192.168.1.1 netmask 255.255.255.0" -</programlisting> -<para>Après modification, cette section du fichier -<filename>/etc/rc.conf</filename> doit ressembler à:</para> -<programlisting> ---- -network_interfaces="lo0 ed0" # List of network interfaces (lo0 is loopback) -ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration -ifconfig_ed0="inet 192.168.1.1 netmask 255.255.255.0" ---- -</programlisting> -<para>Un fois que vous avez fait toutes les modifications nécessaires, -appuyez sur la touche -<keycap>Echap</keycap> pour aller dans le menu de commandes de -l'éditeur. Choisissez -“leave editor” (quitter l'éditeur) et sélectionnez bien l'option -“save changes” (enregistrer les modifications) quand la question -vous est posée.</para> -</sect3> -</sect2> -<sect2 id="sect33"> -<title>Autoriser la transmission de paquets</title> -<para>Par défaut, FreeBSD n'active pas le transmission de paquets -entre les différentes interfaces réseau d'une machine. En d'autres -termes, les fonctions de routage (aussi appelées de passerelle) -ne sont pas disponibles.</para> -<para>Si vous voulez utiliser le programme <command>ppp</command> -comme poste Internet autonome et non comme passerelle entre le -réseau local et votre fournisseur d'accès à Internet, vous pouvez -passer directement au paragraphe -<link linkend="sect34">Renseigner la liste des autres machines du réseau</link>.</para> -<para>Si vous voulez utiliser le programme <command>ppp</command> -pour connecter à la fois votre machine FreeBSD (pour servir de -routeur) et les autres postes du réseau local, vous devez autoriser -la transmission de paquets IP.</para> -<para>Pour cela, vous devez éditer le fichier -<filename>/etc/rc.conf</filename>. Visualisez le fichier dans l'éditeur -avec la commande:</para> -<para> -<userinput> -<prompt>#</prompt> ee /etc/rc.conf -</userinput> -</para> -<para>Vers la quatre-vingt-cinquième ligne environ, vous trouverez la section -qui contrôle la transmission de paquets. Elle ressemblera a ceci:</para> -<literallayout> ---- -gateway_enable="NO" # Set to YES if the host will be a gateway ---- -</literallayout> -<para>Modifiez-la en:</para> -<para> -<literallayout> ---- -gateway_enable="YES" # Set to YES if the host will be a gateway ---- -</literallayout> -</para> -<para>et quittez l'éditeur (en enregistrant vos modifications!).</para> -<note> -<para>Cette ligne contient peut-être déjà -<command>gateway_enable="YES"</command> -si la transmission de paquets IP a été autorisée au moment de l'installation -du système FreeBSD.</para> -</note> -</sect2> -<sect2 id="sect34"> -<title>Renseigner la liste des autres machines du réseau -(<filename>/etc/hosts</filename>)</title> -<para>La dernière étape de la configuration du réseau local vu de la machine -FreeBSD consiste à créer la liste des noms et des adresses TCP/IP des -différentes machines raccordées au réseau local. Cette liste est définie dans le -fichier <filename>/etc/hosts</filename>.</para> -<para>Par défaut, ce fichier ne contient qu'une ligne: le nom et l'adresse -de l'interface “en boucle”. Par convention, ce nom est toujours -“localhost” et son adresse 127.0.0.1. (Reportez-vous à l'exemple -de configuration des interfaces au paragraphe -<link linkend="sect32">Contrôler la configuration de l'interface Ethernet</link>.)</para> -<para>Pour éditer le fichier <filename>/etc/hosts</filename>, tapez la -commande:</para> -<para> -<userinput> -<prompt>#</prompt> ee /etc/hosts -</userinput> -</para> -<para>Allez jusqu'à la fin du fichier (en lisant au passage les commentaires, -ce sont des informations utiles!) et ajoutez (toujours dans le cas du -réseau de notre exemple) les noms et les adresses IP suivantes:</para> -<programlisting> -192.168.1.1 curly curly.my.domain # machine FreeBSD -192.168.1.2 larry larry.my.domain # machine Windows 95 -192.168.1.3 moe moe.my.domain # machine Windows for Workgroups -192.168.1.4 shemp shemp.my.domain # machine Windows NT -</programlisting> -<para>(Vous ne devez pas modifier la ligne -“<command>127.0.0.1 localhost</command>”.)</para> -<para>Une fois que vous avez ajouté ces lignes, appuyez sur la touche -<keycap>Echap</keycap> pour aller dans le menu de commandes de -l'éditeur. Choisissez -“leave editor” (quitter l'éditeur) et sélectionnez bien l'option -“save changes” (enregistrer les modifications) quand la question -vous est posée.</para> -</sect2> -<sect2 id="sect35"> -<title>Tester le système FreeBSD</title> -<para>Félicitations! Une fois que vous en êtes arrivé là, votre machine -FreeBSD est maintenant une machine UNIX connectée au réseau! Si vous avez -dû modifier votre fichier <filename>/etc/rc.conf</filename>, il faut -redémarrer votre machine FreeBSD. Cela va faire deux choses importantes:</para> -<itemizedlist> -<listitem><para>Appliquer les modifications de configuration des interfaces, -et:</para></listitem> -<listitem><para>Vérifier que le système redémarre sans erreur de configuration -flagrante.</para></listitem> -</itemizedlist> -<sect3> -<title>Vérifier le bon fonctionnement de l'interface -“en boucle”</title> -<para>Pour vérifier que l'interface “en boucle” est correctement -configurée, ouvrez une session sous “root” et tapez:</para> -<para> -<userinput><prompt>#</prompt> ping localhost</userinput> -</para> -<para>Vous devriez voir défiler des messages du type:</para> -<para> -<userinput><prompt>#</prompt> ping localhost</userinput> -<programlisting> -PING localhost.my.domain. (127.0.0.1): 56 bytes -64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.219 ms -64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.200 ms -64 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.187 ms -[...] -</programlisting> -</para> -<para>jusqu'à ce que vous tapiez -<keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo> -pour arrêter ce délire.</para> -</sect3> -<sect3> -<title>Vérifier le bon fonctionnement de l'interface Ethernet</title> -<para>Pour vérifier que l'interface Ethernet est correctement -configurée, tapez:</para> -<para> -<userinput><prompt>#</prompt> ping curly</userinput> -</para> -<para>Vous devriez voir:</para> -<para> -<userinput><prompt>#</prompt> ping curly</userinput> -<programlisting> -PING curly.my.domain. (192.168.1.1): 56 bytes -64 bytes from 192.168.1.1: icmp_seq=0 ttl=255 time=0.219 ms -64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=0.200 ms -64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=0.187 ms -[...] -</programlisting> -</para> -<para>L'information importante dans ces deux exemples est que les noms -(“localhost” et “curly”) correspondent bien -à leurs adresses IP (127.0.0.1 et 192.168.1.1). Cela confirme que le fichier -<filename>/etc/hosts</filename> est correct.</para> -<para>Si les noms et les adresses apparaîssent correctement dans les résultats -de la commande <command>ping</command> mais que des messages d'erreur sont -affichés, quelque chose ne va pas dans la configuration des interfaces. -Retournez au paragraphe <link linkend="sect31">Contrôler le nom de la machine FreeBSD</link> et -vérifiez de nouveau votre configuration.</para> -<para>Si maintenant, tout va bien, passez à la section suivante.</para> -</sect3> -</sect2> -</sect1> -<sect1> -<title>Configurer la liaison PPP vers l'extérieur</title> -<para>Il y a deux façons d'utiliser le programme <command>ppp</command>: en -mode “Interactif” et en mode “Automatique”.</para> -<para>En mode Interactif, vous:</para> -<itemizedlist> -<listitem> -<para>Etablissez manuellement la connexion avec votre fournisseur d'accès -Internet,</para> -</listitem> -<listitem> -<para>Surfez, transférez des fichiers et envoyez du courrier -électronique, etc.</para> -</listitem> -<listitem> -<para>Coupez manuellement la connexion avec votre fournisseur d'accès -Internet.</para> -</listitem> -</itemizedlist> -<para>En mode Automatique, le programme <command>ppp</command> surveille -silencieusement les opérations du système FreeBSD et se connecte et se -déconnecte automagiquement à votre fournisseur d'accès selon le besoin, -intégrant de façon transparente l'Internet à votre réseau.</para> -<sect2> -<title>Sauvegarder vos fichiers de configuration <command>ppp</command> -d'origine</title> -<para>Avant de modifier les fichiers qu'utilise <command>ppp</command>, il -est bon de sauvegarder les fichiers par défaut créés à l'installation de -FreeBSD.</para> -<para>Ouvrez une session sous le compte “root”, et suivez la -procédure ci-dessous:</para> -<para>Allez dans le répertoire <filename>/etc</filename>:</para> -<para> -<userinput> -<prompt>#</prompt> cd etc -</userinput> -</para> -<para>Faites un copie des fichiers d'origine du répertoire -<filename>ppp</filename>:</para> -<para> -<userinput> -<prompt>#</prompt> cp -R ppp ppp.ORIGINAL -</userinput> -</para> -<para>Vous devriez maintenant avoir un répertoire <filename>ppp</filename> -et un répertoire <filename>ppp.ORIGINAL</filename> dans le répertoire -<filename>etc</filename>.</para> -</sect2> -<sect2> -<title>Créer vos propres fichiers de configuration de -<command>ppp</command></title> -<para>Par défaut, la procédure d'installation de FreeBSD crée un certain -nombre de fichiers d'exemple dans le répertoire <filename>/etc/ppp</filename>. -Prenez un peu de temps pour parcourir ces fichiers. Ce sont des exemples -empruntés à des systèmes qui fonctionnent et ils illustrent les différentes -possibilités du programme <command>ppp</command>.</para> -<para>Je vous encourage <emphasis>fortement</emphasis> à étudier ces exemples -et à les adapter à votre configuration.</para> -<para>Pour plus d'informations sur le programme <command>ppp</command>, lisez -les pages de manuel:</para> -<para> -<userinput> -<prompt>#</prompt> man ppp -</userinput> -</para> -<para>Pour plus d'informations sur le langage <command>chat</command>, utilisé -par <command>ppp</command> pour établir la connexion, lisez les pages de -manuel:</para> -<para> -<userinput> -<prompt>#</prompt> man chat -</userinput> -</para> -<para>La suite de ce chapitre décrit le contenu recommandé des fichiers -de configurations de <command>ppp</command>.</para> -<sect3> -<title>Le fichier <filename>/etc/ppp/ppp.conf</filename></title> -<para>Le fichier <filename>/etc/ppp/ppp.conf</filename> contient les -informations et les paramètres nécessaires pour établir une connexion -vers l'extérieur. Le -<ulink url="&url.handbook;index.html">Manuel -FreeBSD</ulink> décrit en détail le contenu et la syntaxe de ce fichier.</para> -<para>N'est décrite ici que la configuration minimale nécessaire pour arriver -à établir une connexion.</para> -<para>Voici le fichier <filename>/etc/ppp/ppp.conf</filename> que nous -utiliserons sur notre passerelle entre le réseau local et l'Internet:</para> -<para> -<programlisting> -#################################################################### -# Fichier de Configuration de PPP ('/etc/ppp/ppp.conf') -# -# Paramètres par défaut: Ces commandes sont toujours exécutées -# quand PPP est appelé et s'appliquent à toutes les configurations -#################################################################### -default: -set device /dev/cuaa0 -set speed 57600 -disable pred1 -deny pred1 -disable lqr -deny lqr -set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 -OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT" -set redial 3 10 -# -# -#################################################################### -# -# Configuration utilisée en mode interactif : -# -# appelée par: `ppp -alias interactive` -# -#################################################################### -interactive: -set authname Your_User_ID_On_Remote_System -set authkey Your_Password_On_Remote_System -set phone 1-800-123-4567 -set timeout 300 -set openmode active -accept chap -# -#################################################################### -# -# Configuration utilisée en mode à la demande ( automatique) -# -# appelée par: 'ppp -auto -alias demand' -# -#################################################################### -demand: -set authname Your_User_ID_On_Remote_System -set authkey Your_Password_On_Remote_System -set phone 1-800-123-4567 -set timeout 300 -set openmode active -accept chap -set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0 -add 0 0 127.2.2.2 -################################################################ -# Fin de /etc/ppp/ppp.conf -</programlisting> -</para> -<para>Ce fichier, recopié tel quel d'un système opérationnel, comporte trois -parties:</para> -<sect4> -<title>La section “default”</title> -<para> La section “default:” contient les informations et -paramètres utilisés par toutes les autres sections du fichier. Cette section -est donc implicitement ajoutée à toutes les autres.</para> -<para>C'est l'endroit idéal pour définir les valeurs par défaut qui s'appliquent -à toutes les connexions vers l'extérieur; en particulier, la configuration -du modem et le dialogue d'initialisation de la connexion, qui ne changent -pas, quel que soit le système distant auquel vous vous connectez.</para> -<para>Voici le détail de chacune des lignes de la section -“default:” du fichier -<filename>/etc/ppp/ppp.conf</filename>:</para> -<para> -<programlisting> -set device /dev/cuaa0 -</programlisting> -</para> -<para>Cette instruction dit au programme <command>ppp</command> d'utiliser le -premier port série. Sous FreeBSD, le périphérique “/dev/cuaa0” -correspond au port appelé “COM1:” de DOS, Windows, Windows 95, -etc.</para> -<para>Si votre modem est sur le port “COM2”: vous devrez mettre -“/dev/cuaa1”. “/dev/cuaa2” serait le port -“COM3:”.</para> -<para> -<programlisting> -set speed 57600 -</programlisting> -</para> -<para>Cette ligne indique au programme <command>ppp</command> la vitesse -en émission et en réception entre le port série et le modem. Bien que le modem -de notre configuration fonctionne à 28.8 Kbps, donner la valeur 56000 permet -à la liaison série de fonctionner suffisamment vite pour gérer la compression de -données intégrée aux modems les plus récents.</para> -<para>Si vous avez des problèmes pour dialoguer avec votre modem à cette -vitesse, descendez à une valeur inférieure: 38400, voir aussi faible que -19200.</para> -<para> -<programlisting> -disable pred1 -deny pred1 -</programlisting> -</para> -<para>Ces deux lignes désactivent la compression “CCP/Predictor 1” -dont est capable le programme <command>ppp</command>. La version actuelle -de <command>ppp</command> supporte la compression de données selon la -définition provisoire des standards Internet. Malheureusement, de nombreux -fournisseurs d'accès ont des équipements qui n'offrent pas cette possibilité. -Comme la plupart des modems récents sont capables de compression à la volée, -vous ne perdrez probablement pas grand-chose en termes de performances en -désactivant cette possibilité sur votre machine FreeBSD et en interdisant -au site distant de vous la réclamer.</para> -<para> -<programlisting> -disable lqr -deny lqr -</programlisting> -</para> -<para>Ces deux lignes contrôlent l'“audit de la qualité de la -liaison (Link Quality Reporting)” qui est partie intégrante des -spécifications du protocole PPP. -(Voyez la RFC-1989 pour plus de détails.)</para> -<para>La première ligne, “disable lqr” instruit le programme -<command>ppp</command> de ne pas émettre de demandes de contrôle de la -qualité de la liaison à la machine distante.</para> -<para>La seconde ligne, “deny lqr” instruit le progamme -<command>ppp</command> de ne pas accepter de demandes de contrôle de la -qualité de la liaison de la machine distante.</para> -<para>Comme la plupart des modems ont des procédures intégrées de détection et -de correction d'erreur et que l'audit LQR est rarement intégralement -implémentée par les constructeurs, il vaut en général mieux ne pas utiliser -cette possibilité.</para> -<para> -<programlisting> -set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 OK-AT-OK\\dATADT\\T TIMEOUT 40 CONNECT" -</programlisting> -</para> -<note> -<para>(Cette instruction doit être écrite sur une seule ligne; ne tenez -pas compte du formatage sur deux lignes, si elle se présente ainsi dans ce -document.)</para> -</note> -<para>Cette ligne décrit le dialogue entre le programme <command>ppp</command> -et le modem qui doit permettre d'établir la connexion et fournit des -instructions rudimentaires sur la marche à suivre:</para> -<itemizedlist> -<listitem> -<para>Une tentative d'appel échoue si le modem renvoie le code d'erreur -“BUSY (occupé)”,</para> -<para>Une tentative d'appel échoue aussi si le modem renvoie le code d'erreur -“NO CARRIER (pas de porteuse),”,</para> -<para>Le programme <command>ppp</command> doit constater, avec -un délai maximum de cinq secondes entre chaque événement, la séquence -d'événements suivants:</para> -</listitem> -<listitem> -<itemizedlist> -<listitem> -<para>Initialement, le programme <command>ppp</command> n'attend pas de -réponse du modem (c'est le sens de la chaîne <literal>\"\"</literal> dans -l'instruction),</para> -</listitem> -<listitem> -<para>Le programme enverra au modem la chaîne “ATE1Q0M0” et -attendra la réponse “OK”. Si cette réponse n'arrive pas, il enverra -la commande d'interrogation “AT” et attendra à nouveau une réponse -“OK”,</para> -</listitem> -<listitem> -<para>Le programme devra attendre une seconde (c'est le sens de la chaîne -“\\d” dans l'instruction), et envoyer la séquence d'appel au -modem. Le préfixe “ATDT” est la commande d'appel standard pour -les lignes téléphoniques à fréquences vocales. Si vous n'avez pas de ligne -à fréquence vocale, remplacez “ATDT” par “ATDP”. -La chaîne “\\T” sera remplacée par le numéro -de téléphone réel (qui sera défini plus loin par la ligne -“set dial”).</para> -</listitem> -</itemizedlist> -</listitem> -<listitem> -<para>Pour finir, avec un délai d'attente de quarante secondes au maximum, -le programme <command>ppp</command> doit recevoir un code d'acquittement -“CONNECT” du modem.</para> -</listitem> -</itemizedlist> -<para>Un échec à une phase quelconque de ce dialogue sera interpreté comme -un échec d'appel et la connexion ne sera pas établie.</para> -<para>(Pour avoir une description détaillée du mini-langage de commande -utilisé par <command>ppp</command>, reportez-vous aux pages de manuel de -<command>chat</command>.)</para> -<para> -<programlisting> -set redial 3 10 -</programlisting> -</para> -<para>Cette ligne indique au programme <command>ppp</command> qu'en cas d'échec, -il peut faire jusqu'à trois nouvelles tentatives avec un temps d'attente de dix -secondes entre chaque nouvel appel.</para> -</sect4> -<sect4 id="sect4122"> -<title>La section “interactive”</title> -<para>La section “interactive:” contient les valeurs et les -paramètres utilisés par les connexions PPP interactives avec un système -distant particulier. Les lignes de la section “default:” sont -automatiquement incluses dans cette section.</para> -<para>L'exemple donné ci-dessous suppose que vous vous connectiez à un système -qui sait identifier un utilisateur sans avoir à utiliser une série de commandes -baroques. Nous supposerons que le protocole CHAP est utilisé pour initialiser -la session.</para> -<para>A priori, si un système Windows 95 peut établir la connexion d'un simple -clic sur le bouton “Connecter”, la configuration donnée en exemple -devrait fonctionner.</para> -<para>Si, à l'inverse, quand vous vous connectez chez votre fournisseur d'accès -avec les utilitaires de Microsoft Windows 95, vous devez utiliser l'option -“Utiliser des procédures de connexion”<footnote><para>N.d.T: ne -disposant du matériel nécessaire au contrôle de certains de ces libellés dans -les versions françisées de Windows, ils ont été traduits du document en langue -anglaise. En cas d'inexactitude, le lecteur voudra bien rectifier de -lui-même.</para></footnote>. il vous faudra alors -lire les pages de manuel de <command>ppp</command> pour trouver des exemples -de fichiers de configuration de PPP comportant des procédures -“expect / reponse” pour établir votre connexion et vous devrez -utiliser la commande “set login” à cet effet.</para> -<para>Ou mieux, trouvez-vous un fournisseur d'accès qui offre l'authentification -par PAP ou CHAP!</para> -<para>La configuration donnée en exemple a été utilisée avec succès pour se -connecter:</para> -<itemizedlist> -<listitem> -<para>à Divers Shiva LanRovers,</para> -</listitem> -<listitem> -<para>au réseau IBM -(<ulink url="http://www.ibm.net">http://www.ibm.net</ulink>),</para> -</listitem> -<listitem> -<para>à AT&T WorlNet -(<ulink url="http://www.att.com/worldnet">http://www.att.com/worldnet</ulink>),</para> -</listitem> -<listitem> -<para>à Erol's -(<ulink url="http://www.erols.com">http://www.erols.com</ulink>).</para> -</listitem> -</itemizedlist> -<para>Voici la description de chacune des lignes de la section -“interactive:” du fichier <filename>/etc/ppp/ppp.conf</filename> -de l'exemple:</para> -<para> -<programlisting> -set authname Votre_Nom_d_Utilisateur_du_Système_Distant -</programlisting> -</para> -<para>Cette ligne définit avec quel nom d'utilisateur vous vous connectez au -système distant.</para> -<para> -<programlisting> -set authkey Votre_Mot_de_Passe_Utilisateur_du_Système_Distant -</programlisting> -</para> -<para>Cette ligne définit le mot de passe que vous utilisez pour vous connecter -au système distant.</para> -<para> -<programlisting> -set phone 012345678789 -</programlisting> -</para> -<para>C'est le numéro de téléphone avec lequel vous joignez le système -distant.</para> -<para> -<programlisting> -set timeout 300 -</programlisting> -</para> -<para>Cette ligne indique au programme <command>ppp</command> de couper la ligne -s'il n'y a aucun échange pendant cinq minutes (300 secondes). Vous pouvez -adapter cette ligne à votre besoin particulier.</para> -<para> -<programlisting> -set openmode active -</programlisting> -</para> -<para>Cette ligne dit au programme <command>ppp</command> de négocier la -connexion dès que la liaison entre les modems est établie. Certains sites -distants le font automatiquement, d'autres non. Cette instruction permet -à votre site d'initialiser la négociation.</para> -<para> -<programlisting> -accept chap -</programlisting> -</para> -<para>Cette ligne dit au programme <command>ppp</command> d'utiliser le -protocole CHAP “Challenge Handsake Autentification Protocole -(protocole d'authentification par poignée de main avec défi de -décryptage)” pour vous authentifier. Les valeurs échangées entre le -système local et le système distant pour transmettre le nom d'utilisateur -et le mot de passe sont définies par les lignes “authname” et -“authkey”.</para> -</sect4> -<sect4> -<title>La section “demand”</title> -<para>La section “demand:” contient les valeurs et les -paramètres utilisés par les connexions PPP automatiques avec un système -distant particulier. Les lignes de la section “default:” sont -automatiquement incluses dans cette section.</para> -<para>A l'exception des deux dernières lignes, cette section est identique à -la section qui définit la configuration “interactive”.</para> -<para>Comme indiqué au paragraphe -<link linkend="sect4122">La section “interactive”</link>, l'exemple donné -ci-dessous suppose que vous vous connectiez à un système -qui comprenne le protocole CHAP pour initialiser -la session.</para> -<para>Voici la description de chacune des lignes de la section -“demand:” du fichier <filename>/etc/ppp/ppp.conf</filename> -de l'exemple:</para> -<para> -<programlisting> -set authname Votre_Nom_d_Utilisateur_du_Système_Distant -</programlisting> -</para> -<para>Cette ligne définit avec quel nom d'utilisateur vous vous connectez au -système distant.</para> -<para> -<programlisting> -set authkey Votre_Mot_de_Passe_Utilisateur_du_Système_Distant -</programlisting> -</para> -<para>Cette ligne définit le mot de passe que vous utilisez pour vous connecter -au système distant.</para> -<para> -<programlisting> -set phone 012345678789 -</programlisting> -</para> -<para>C'est le numéro de téléphone avec lequel vous joignez le système -distant.</para> -<para> -<programlisting> -set timeout 300 -</programlisting> -</para> -<para>Cette ligne indique au programme <command>ppp</command> de couper la ligne -s'il n'y a aucun échange pendant cinq minutes (300 secondes). Vous pouvez -adapter cette ligne à votre besoin particulier.</para> -<para> -<programlisting> -set openmode active -</programlisting> -</para> -<para>Cette ligne dit au programme <command>ppp</command> de négocier la -connexion dès que la liaison entre les modems est établie. Certains sites -distants le font automatiquement, d'autres non. Cette instruction permet -à votre site d'initialiser la négociation.</para> -<para> -<programlisting> -accept chap -</programlisting> -</para> -<para>Cette ligne dit au programme <command>ppp</command> d'utiliser le -protocole CHAP “Challenge Handsake Autentification Protocole -(protocole d'authentification par poignée de -main avec défi de décryptage)” -pour vous authentifier. Les valeurs échangées entre le système local et le -système distant pour transmettre le nom d'utilisateur et le mot de passe -sont définies par les lignes “authname” et -“authkey”</para> -<para> -<programlisting> -set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0 -</programlisting> -</para> -<para>Cette commande définit une paire d'adresses IP fictives pour les deux -extrémités de la liaison point-à-point. Elle dit au programme -<command>ppp</command> d'utiliser l'adresse 127.1.1.1 pour l'extrémité locale -de la liaison gérée par le pilote de périphérique -“tun0 (tunnel)”(Reportez-vous au <ulink url="&url.handbook;index.html">manuel FreeBSD</ulink> pour une -description de ce pilote) et l'adresse 127.2.2.2 pour l'extrémité distante. -Le “/0” qui les suit précise le nombre de digits significatifs de -ces adresses, qui peuvent, (et doivent en fait) être négociées entre les -deux systèmes une fois la liaison établie. 255.255.255.0 est le masque de -sous-réseau qui s'applique à ces deux pseudo-interfaces.</para> -<para>Rappelez-vous, nous avons supposé que votre fournisseur d'accès vous -assigne les adresses des deux extrémités de la ligne! Si votre fournisseur -vous a donné une adresse particulière, vous pouvez la mentionner sur cette -ligne <emphasis>à la place</emphasis> de l'adresse 127.1.1.1.</para> -<para>Inversement, si votre fournisseur vous a donné une adresse particulière -pour son côté de la liaison, vous pouvez la mentionner sur cette -ligne <emphasis>à la place</emphasis> de l'adresse 127.2.2.2.</para> -<para>Dans les deux cas, il vaut mieux conserver le “/0” après les -deux adresses. Cela laisse la possibilité au programme <command>ppp</command> -de changer d'adresse(s) <emphasis>s'il en a besoin</emphasis>.</para> -<para> -<programlisting> -add 0 0 127.2.2.2 -</programlisting> -</para> -<para>Cette dernière ligne dit au programme <command>ppp</command> d'ajouter une -route par défaut pour le trafic vers l'adresse (fictive) 127.2.2.2 du -fournisseur d'accès.</para> -<note> -<para>Si vous avez donnée l'adresse que vous a indiqué votre fournisseur d'accès -à la place de l'adresse 127.2.2.2 à la ligne “set ifaddr”, vous -devez utiliser la même adresse ici, à la place de 127.2.2.2.</para> -</note> -<para>En ajoutant cette route “fictive” pour le trafic IP, le -programme <command>ppp</command> peut, successivement, avant et au moment -d'établir la liaison:</para> -<itemizedlist> -<listitem> -<para>Accepter des paquets que FreeBSD ne sait pas encore comment -rediriger,</para> -</listitem> -<listitem> -<para>Etablir la connexion avec votre fournisseur d'accès,</para> -</listitem> -<listitem> -<para>Reconfigurer les adresses IP des deux côtés de la ligne,</para> -</listitem> -<listitem> -<para>Transmettre les paquets entre votre sytème local et votre fournisseur -d'accès,</para> -</listitem> -</itemizedlist> -<para>automatiquement!</para> -<para>Une fois le nombre de secondes défini par l'instruction -“timeout” de la section “default” écoulé sans -trafic TCP/IP, le programme <command>ppp</command> coupe automatiquement la -connexion, et le processus peut recommencer.</para> -</sect4> -</sect3> -<sect3> -<title>Le fichier <filename>/etc/ppp/ppp.linkup</filename></title> -<para>L'autre fichier nécessaire à la configuration de <command>ppp</command> -est <filename>/etc/ppp/ppp.linkup</filename>. Ce fichier contient les -instructions qui définissent ce que <command>ppp</command> doit faire une -fois que la connexion est établie.</para> -<para>Dans le cas d'une connexion à la demande, le programme -<command>ppp</command> doit supprimer la route par défaut vers l'adresse IP -fictive du système distant (127.2.2.2 dans notre exemple plus haut) et -définir une nouvelle route vers l'adresse IP réelle de ce système (obtenue -à l'établissement de la connexion).</para> -<para>Voici un bon exemple de fichier -<filename>/etc/ppp/ppp.linkup</filename>:</para> -<para> -<programlisting> -#########################################################################= -# -# Fichier PPP Link Up ('/etc/ppp/ppp.linkup') -# -# Ce fichier est consulté une fois que PPP a établi une connexion -# -# Ce fichier est lu dans l'ordre suivant : -# -# 1) En premier, l'adresse IP qui nous a été assignée est recherchée -# et la/les commande(s) associée(s) exécutée(s) -# -# 2) Si l'adresse IP n'est pas trouvée, alors l'étiquette donnée au -# démarrage de PPP est recherchée, et la/les commande(s) associée(s) -# exécutée(s) -# -# 3) Si ni l'une ni l'autre n'ont été trouvées, les commandes associées -# à l'étiquette 'MYADDR:' sont exécutées. -# -#########################################################################= - -# -# Cette section correspond à la configuration "demand" de -# /etc/ppp/ppp.conf: -demand: -delete ALL -add 0 0 HISADDR -# -# Toutes les autres configurations de /etc/ppp/ppp.conf utilisent -# ce qui suit: -# -MYADDR: -add 0 0 HISADDR -######################################################################## -# Fin de /etc/ppp/ppp.linkup -</programlisting> -</para> -<para>Remarquez qu'une section de ce fichier s'appelle “demand:”, -tout comme dans le fichier <filename>/etc/ppp/ppp.conf</filename>. Cette section -dit au programme <command>ppp</command> ce qu'il doit faire, une fois la -connexion à la demande établie:</para> -<orderedlist> -<listitem> -<para>Supprimer toutes les informations de routage qu'il a déjà créées,</para> -</listitem> -<listitem> -<para>Ajouter une route par défaut vers l'adresse réelle de la machine -distante.</para> -</listitem> -</orderedlist> -<para>Il est capital que les configurations définies dans le fichier -<filename>/etc/ppp/ppp.conf</filename> et qui comportent les lignes -“set ifaddr” et “add 0 0” (i.e.: les configurations -de connexion à la demande) exécutent les instructions “delete ALL” -et “add 0 0 HISADDR” du fichier -<filename>/etc/ppp/ppp.linkup.</filename></para> -<para><emphasis>C'est le mécanisme qui contrôle la configuration de la liaison -dans le cas d'une connexion à la demande.</emphasis></para> -<para>Toutes les configurations qui ne sont pas explicitement définies dans -le fichier <filename>/etc/ppp/ppp.linkup</filename> utiliseront les commandes -listées dans la section “MYADDR:” de ce fichier. C'est ce que -feront les connexions manuelles (comme dans notre exemple -“interactive:”). Cette section ajoute simplement une route par -défaut vers l'adresse IP du fournisseur d'accès (à l'autre extrémité de la -ligne).</para> -</sect3> -</sect2> -<sect2> -<title>Alias IP</title> -<para>Toutes les étapes précédentes s'appliquent à un systeme FreeBSD utilisé -pour se connecter à la demande à un fournisseur d'accès Internet.</para> -<para>Si vous cherchez simplement, en lisant ce guide, à connecter votre -systeme FreeBSD à l'Internet, vous pouvez passer directement au chapitre -<link linkend="sect6">Tester le réseau</link>.</para> -<para>Une possibilité très intéressante du programme <command>ppp</command> -en mode “connexion à la demande” est sa capacité à aiguiller -automatiquement le trafic vers les autres systèmes du réseau local. On donne -à cela des noms divers “alias IP (IP Aliasing)”, -“traduction d'adresse réseau (Network Adress Translation)”, -“mascarade d'adresse (Adress Masquerading)” ou -“mandatement transparent (Transparent Proxying)”.</para> -<para>Quelle que soit la terminologie employée, ce fonctionnement n'est -cependant pas automatique. Si le programme <command>ppp</command> est démarré -de façon habituelle, il ne fera pas transiter de paquets entre l'interface avec -le réseau local et la liaison vers l'extérieur. En effet, seul le système -FreeBSD est connecté à l'Internet; les autres systèmes ne peuvent pas partager -la même connexion.</para> -<para>Par exemple, si le programme <command>ppp</command> est lancé par:</para> -<para> -<userinput> -<prompt>#</prompt> ppp interactive -</userinput> -</para> -<para>ou:</para> -<para> -<userinput> -<prompt>#</prompt> ppp -auto demand -</userinput> -</para> -<para>correspondant respectivement aux modes manuel et automatique, alors -il établira une connexion à l'Internet pour la <emphasis>seule</emphasis> -machine FreeBSD.</para> -<para>Pour démarrer le programme <command>ppp</command> pour l'utiliser comme -passerelle entre le réseau local et l'Internet, il faut utiliser l'une des -commandes suivantes:</para> -<para> -<userinput> -<prompt>#</prompt> ppp -alias interactive -</userinput> -</para> -<para>ou:</para> -<para> -<userinput> -<prompt>#</prompt> ppp -auto -alias demand -</userinput> -</para> -<para>Alternativement, vous pouvez utiliser l'instruction “alias enable -yes” dans votre fichier de configuration de <command>ppp</command> -(Reportez-vous aux pages de manuel pour plus de détails).</para> -<para>Gardez cela présent à l'esprit si vous passez maintenant au chapitre -<link linkend="sect5">Configurer les systèmes Windows</link>.</para> -</sect2> -</sect1> -<sect1 id="sect5"> -<title>Configurer les Systèmes Windows</title> -<para>Comme indiqué au Chapitre <link linkend="sect2">Mise en oeuvre du réseau local</link>, -le réseau de notre exemple -comporte un système FreeBSD (“Curly”) qui sert de passerelle -(ou routeur) pour un réseau local composé de trois moutures différentes -de systèmes Windows. Pour que ces stations puissent utiliser Curly comme -routeur, elles doivent être correctement configurées. Notez bien que l'on -ne vous explique pas ici comment configurer les postes Windows pour qu'ils -puissent se connecter eux-mêmes. Si vous cherchez de bonnes explications sur -le sujet, voyez -<ulink url="http://www.aladdin.co.uk/techweb">http://www.aladdin.co.uk/techweb</ulink>.</para> -<sect2> -<title>Configurer Windows 95</title> -<para>Il est relativement simple de configurer Windows 95 pour relier un poste -à votre réseau local. Le configuration réseau Windows 95 doit être légérement -modifiée pour pouvoir utiliser le système FreeBSD comme passerelle par défaut -vers votre fournisseur d'accès. Effectuez les étapes suivantes:</para> -<sect3> -<title>Créer le fichier Windows 95 <filename>hosts</filename></title> -<para>Pour vous connecter aux autres postes TCP/IP du réseau local, vous devrez -installer une copie du fichier <filename>hosts</filename> que vous avez créé -sur votre système FreeBSD au paragraphe -<link linkend="sect34">Renseigner la liste des autres machines du réseau</link>.</para> -<itemizedlist> -<listitem><para>Cliquez sur le bouton “Démarrer”, choisissez -“Exécuter ...”, lancez -<userinput>notepad \WINDOWS\HOSTS</userinput> -et cliquez sur “OK”,</para></listitem> -<listitem><para>Sous l'éditeur, entrez les noms et les adresses des machines -recopiés du fichier <filename>hosts</filename> du paragraphe -<link linkend="sect34">Renseigner la liste des autres machines du réseau</link>,</para></listitem> -<listitem><para>Une fois que c'est fait, quittez <command>notepad</command> -(assurez-vous d'avoir enregistré le fichier!).</para></listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Définir le configuration réseau TCP/IP Windows 95</title> -<itemizedlist> -<listitem><para>Cliquez sur le bouton “Démarrer” de la barre de -tâches, Choisissez “Paramètres” et -“Panneau de Configuration”,</para></listitem> -<listitem><para>Double-cliquez sur l'icône réseau pour -l'ouvrir.</para> -<para>Les paramètres des éléments du réseau sont tous -affichés.</para></listitem> -<listitem><para>Sélectionnez l'option “Configuration” et faites -défiler la liste des composants installés pour choisir la ligne -“TCP/IP -><replaceable>votre interface</replaceable>” (où -<replaceable>votre interface</replaceable> est le nom ou le modèle de -votre contrôleur Ethernet),</para> -<para>Si “TCP/IP” ne figure pas dans la liste des composants -réseau installés, cliquez sur le bouton “Ajouter” pour -l'installer avant de continuer</para> -<tip><para>Ajouter | Protocoles | Microsoft | TCP/IP | OK.</para></tip> -</listitem> -<listitem><para>Cliquez sur le bouton “Propriétés” pour afficher -la liste des paramètres associés au composant TCP.</para></listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Configurer les informations relatives à l'adresse IP</title> -<itemizedlist> -<listitem><para>Choisissez l'onglet “Adresse IP”</para></listitem> -<listitem><para>Enfoncez le bouton “Spécifier une adresse -IP”.</para> -<para>(Dans notre exemple, le système Windows 95 est celui que nous avons -appelé “Larry”.)</para></listitem> -<listitem><para>Dans la zone “Adresse IP”, entrez -“192.168.1.2”,</para></listitem> -<listitem><para>Entrez “255.255.255.0” dans le zone -“Masque de Sous-réseau”.</para></listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Configurer les informations relatives à la passerelle</title> -<itemizedlist> -<listitem><para>Cliquez sur l'onglet “Passerelle”.</para> -<para>Dans le réseau de notre exemple, c'est le système FreeBSD qui sera notre -passerelle vers l'Internet (routant les paquets entre le réseau local Ethernet -et la connexion PPP). Entrez l'adresse IP de l'interface Ethernet de la -machine FreeBSD, “192.168.1.1”, dans la zone -“Nouvelle Passerelle” et cliquez sur le bouton -“Ajouter”. S'il y a d'autres passerelles définies dans les -“Passerelles Installées”, peut-être devrez-vous les -supprimer.</para></listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Configurer les informations relatives au DNS</title> -<para>Nous supposons que votre fournisseur d'accès Internet vous a donné une -liste de serveurs de noms de domaines (Domain Name Servers) - ou -“Serveurs DNS” - que vous devez utiliser. Si vous voulez -mettre en service un serveur DNS sur votre machine FreeBSD, reportez-vous au -chapitre -<link linkend="sect7">Exercices pour l'étudiant intéressé</link> pour avoir des indications sur -l'installation d'un serveur DNS sur une machine FreeBSD.</para> -<itemizedlist> -<listitem><para>Cliquez sur l'onglet “Configuration DNS”,</para> -</listitem> -<listitem><para>Assurez-vous que l'option “Activer DNS” est -bien sélectionnée,</para> -<para>(Si cette option n'est pas sélectionnée, seules les machines définies dans -votre fichier <filename>hosts</filename> seront accessibles et vous ne pourrez -pas “surfer” comme vous le souhaitez!)</para></listitem> -<listitem><para>Dans la zone “Hôte”, entrez le nom du poste -Windows 95, dans notre cas : “Larry”,</para></listitem> -<listitem><para>Dans la zone “Domaine”, entrez le nom du réseau -local, dans notre cas : “my.domain”,</para></listitem> -<listitem><para>Dans la zone “Ordre de recherche DNS”, -entrez les adresses -IP des serveurs DNS que votre fournisseur vous a données, cliquez sur -“Ajouter” à chaque adresse que vous définissez. Répétez l'opération -autant de fois que nécessaire pour entrer toutes les adresses que votre -fournisseur vous a indiquées.</para></listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Autres options TCP/IP Windows 95</title> -<para>Pour nos besoins, les paramètres des sections “Avancées”, -“Configuration WINS” et “Liens” sont inutiles.</para> -<para>Si vous souhaitez utiliser le service de noms Internet de Windows -(Windows Internet Naming Service - “WINS”), vous trouverez -plus d'informations sur -<ulink url="http://www.localnet.org">http://www.localnet.org</ulink>, -en particulier en ce qui concerne le partage de fichiers de façon transparente -à travers l'Internet.</para> -</sect3> -<sect3> -<title>Pour finir</title> -<itemizedlist> -<listitem><para>Cliquez sur “OK” pour fermer la fenêtre -“Propriétés TCP/IP”,</para></listitem> -<listitem><para>Cliquez sur “OK” pour fermer la fenêtre -“Panneau de Contrôle Réseau”,</para></listitem> -<listitem><para>Redémarrez votre ordinateur si on vous le demande.</para> -</listitem> -</itemizedlist> -<para>C'est tout!</para> -</sect3> -</sect2> -<sect2> -<title>Configurer Windows NT</title> -<para>Il est relativement simple de configurer Windows NT pour relier un poste -à votre réseau local. Les procédures sont semblables à celles suivies pour -Windows 95 à quelques différences près quant à l'interface utilisateur.</para> -<para>Les étapes décrites ci-dessous s'appliquent à Windows NT 4.0 Workstation, -mais les principes sont les mêmes pour Windows NT 3.5x. Si vous installez un -poste Windows NT 3.5x, vous pouvez vous référer -au paragraphe <link linkend="sect53">Configurer Windows for Workgroups</link>, en -effet, l'interface utilisateur est la même pour NT 3.5x et WfW.</para> -<para>Effectuez les opérations suivantes:</para> -<sect3> -<title>Créer le fichier Windows NT <filename>hosts</filename></title> -<para>Pour vous connecter aux autres postes TCP/IP du réseau local, vous devrez -installer une copie du fichier <filename>hosts</filename> que vous avez créé -sur votre système FreeBSD au paragraphe -<link linkend="sect34">Configurer Windows for Workgroups</link>.</para> -<itemizedlist> -<listitem><para>Cliquez sur le bouton “Démarrer”, choisissez -“Exécuter ...”, lancez -<userinput>notepad \WINDOWS\SYSTEM\DRIVERS\ETC\HOSTS</userinput> -et cliquez sur “OK”,</para></listitem> -<listitem><para>Sous l'éditeur, entrez les noms et les adresses des machines -recopiés du fichier <filename>hosts</filename> du paragraphe -<link linkend="sect34">Renseigner la liste des autres machines du réseau</link>,</para></listitem> -<listitem><para>Une fois que c'est fait, quittez <command>notepad</command> -(assurez-vous d'avoir enregistré le fichier!).</para></listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Définir le configuration réseau TCP/IP Windows NT</title> -<itemizedlist> -<listitem><para>Cliquez sur le bouton “Démarrer” de la barre de -tâches, Choisissez “Paramètres” et -“Panneau de Configuration”,</para></listitem> -<listitem><para>Double-cliquez sur l'icône réseau pour -l'ouvrir,</para></listitem> -<listitem><para>Dans l'onglet “Identification”, -vérifiez les informations des zones “Nom d'Ordinateur” et -“Workgroup”. Dans notre exemple, “Shemp” sera -le nom de la machine, et “Stooges” celui du groupe de travail. -Choisissez “Modifier” pour corriger ces valeurs au -besoin,</para></listitem> -<listitem><para>Choisissez l'onglet “Protocoles”.</para> -<para>Les Protocoles Réseau installés seront affichés. Il peut y en avoir un -certain nombre, mais le seul qui nous intéresse ici est le -“Protocole TCP/IP”. Si le “Protocole TCP/IP” -n'apparaît pas dans la liste, cliquez sur le bouton “Ajouter” -pour l'installer.</para> -<tip><para>Ajouter | Protocole TCP/IP | OK.</para></tip> -</listitem> -<listitem><para>Sélectionnez “Protocole TCP/IP” et cliquez sur le -bouton “Propriétés”.</para> -<para>Les différentes propriétés associées à TCP/IP apparaîtront.</para> -</listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Configurer les informations relatives à l'adresse IP</title> -<para>Vérifiez que l'interface Ethernet est bien définie dans la zone -“Carte Réseau”; si ce n'est pas le cas, parcourez la -liste des contrôleurs jusqu'à ce que l'interface adéquate soit affichée.</para> -<itemizedlist> -<listitem><para>Choisissez l'option “Spécifier une Adresse IP” -pour activer les trois zones de texte,</para> -<para>Dans notre exemple, le poste Windows NT est celui qui s'appele -“Shemp”.</para></listitem> -<listitem><para>Dans la zone “Adresse IP”, entrez -“192.168.1.4”,</para></listitem> -<listitem><para>Entrez “255.255.255.0” dans le zone -“Masque de Sous-réseau.”.</para></listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Configurer les informations relatives à la passerelle</title> -<para>Dans le réseau de notre exemple, c'est le système FreeBSD qui sera notre -passerelle vers l'Internet (routant les paquets entre le réseau local Ethernet -et la connexion PPP).</para> -<itemizedlist> -<listitem><para>S'il n'y a rien encore dans la zone “Nouvelle -Passerelle”, entrez l'adresse IP de l'interface Ethernet de la -machine FreeBSD, “192.168.1.1”, dans cette zone -et cliquez sur le bouton “Ajouter”. Sinon, utilisez le bouton -"Avancées" et la fonction “Ajouter” pour ajouter cette nouvelle -passerelle.</para> -<para>S'il y a d'autres passerelles définies dans les -“Passerelles Installées”, peut-être devrez-vous les -supprimer.</para></listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Configurer les informations relatives au DNS</title> -<para>Nous supposons que votre fournisseur d'accès Internet vous a donné une -liste de serveurs de noms de domaines (Domain Name Servers) - ou -“Serveurs DNS” - que vous devez utiliser.</para> -<para>Si vous voulez -mettre en service un serveur DNS sur votre machine FreeBSD, reportez-vous -au chapitre -<link linkend="sect7">Exercices pour l'étudiant intéressé</link> pour avoir des indications sur -l'installation d'un serveur DNS sur une machine FreeBSD.</para> -<itemizedlist> -<listitem><para>Cliquez sur le bouton “DNS”,</para> -</listitem> -<listitem><para>Dans la zone “Nom d'Hôte”, entrez le nom du poste -Windows NT, dans notre cas : “Shemp”,</para></listitem> -<listitem><para>Dans la zone “Domaine”, entrez le nom du réseau -local, dans notre cas : “my.domain”,</para></listitem> -<listitem><para>Dans la zone “Ordre de recherche du service DNS”, -entrez les adresses -IP des serveurs DNS que votre fournisseur vous a données, cliquez sur -“Ajouter” à chaque adresse que vous définissez. Répétez l'opération -autant de fois que nécessaire pour entrer toutes les adresses que votre -fournisseur vous a indiquées.</para></listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Autres options TCP/IP Windows NT</title> -<para>Pour nos besoins, les paramètres des sections -“Adresses WINS” et “Routage” sont inutiles.</para> -<para>Si vous souhaitez utiliser le service de noms Internet de Windows -(Windows Internet Naming Service - “WINS”), vous trouverez -plus d'informations sur -<ulink url="http://www.localnet.org">http://www.localnet.org</ulink>, -en particulier en ce qui concerne le partage de fichiers de façon transparente -à travers l'Internet.</para> -</sect3> -<sect3> -<title>Pour finir</title> -<itemizedlist> -<listitem><para>Cliquez sur “OK” pour fermer la fenêtre -“Propriétés TCP/IP”,</para></listitem> -<listitem><para>Cliquez sur “OK” pour fermer la fenêtre -“Panneau de Contrôle Réseau”,</para></listitem> -<listitem><para>Redémarrez votre ordinateur si on vous le demande.</para> -</listitem> -</itemizedlist> -<para>C'est tout!</para> -</sect3> -</sect2> -<sect2 id="sect53"> -<title>Configurer Windows for Workgroups</title> -<para>Pour qu'un poste Windows for Workgroups puisse être utilisé en réseau, il -faut avoir installé les pilotes qui sont sur la disquette Microsoft TCP/IP. Ces -pilotes ne sont pas inclus avec WfW et les disquettes qui vont avec. S'il vous -en faut une copie, ils sont disponibles sur -<ulink url="ftp://ftp.microsoft.com/peropsys/windows/public/tcpip">ftp://ftp.microsoft.com/peropsys/windows/public/tcpip.</ulink></para> -<para>Une fois que les pilotes TCP/IP ont été installés, effectuez les -opérations suivantes:</para> -<sect3> -<title>Créer le fichier Windows for Workgroups -<filename>hosts</filename></title> -<para>Pour vous connecter aux autres postes TCP/IP du réseau local, vous devrez -installer une copie du fichier <filename>hosts</filename> que vous avez créé -sur votre système FreeBSD au paragraphe -<link linkend="sect34">Renseigner la liste des autres machines du réseau</link>.</para> -<itemizedlist> -<listitem><para>Dans le Gestionnaire de Programmes, cliquez sur le bouton -“Fichier”, choisissez “Exécuter ...”, lancez -<userinput>notepad \WINDOWS\HOSTS</userinput> -et cliquez sur “OK”,</para></listitem> -<listitem><para>Sous l'éditeur, entrez les noms et les adresses des machines -recopiés du fichier <filename>hosts</filename> de -<link linkend="sect34">Renseigner la liste des autres machines du réseau</link>,</para></listitem> -<listitem><para>Une fois que c'est fait, quittez <command>notepad</command> -(assurez-vous d'avoir enregistré le fichier!).</para></listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Définir le configuration réseau TCP/IP Windows for Workgroups</title> -<itemizedlist> -<listitem><para>Dans le Gestionnaire de Programmes, ouvrez le groupe -“Réseau” en double-cliquant sur l'icône,</para></listitem> -<listitem><para>Double-cliquez sur l'icône “Paramètres -Réseau”,</para></listitem> -<listitem><para>Dans la boîte de dialogue “Pilotes Réseau”, -double-cliquez sur l'option “Microsoft TCP/IP-32”.</para> -</listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Configurer les informations relatives à l'adresse IP</title> -<para>Vérifiez que l'interface Ethernet est bien définie dans la liste -“Carte Réseau”; si ce n'est pas le cas, parcourez la -liste des contrôleurs jusqu'à ce que l'interface adéquate soit affichée -et sélectionnez-la en cliquant dessus.</para> -<itemizedlist> -<listitem><para>Vérifiez que l'option “Activer la Configuration DHCP -Automatique” n'est pas sélectionnée. Si c'est le cas, cliquez dessus -pour effacer le “X”.</para></listitem> -<listitem><para>Dans notre exemple, le poste Windows for Workgroups est celui -qui s'appelle “Moe”; dans la zone “Adresse IP”, entrez -“192.168.1.3”,</para></listitem> -<listitem><para>Entrez “255.255.255.0” dans le zone -“Masque de Sous-réseau”.</para></listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Configurer les informations relatives à la passerelle</title> -<para>Dans le réseau de notre exemple, c'est le système FreeBSD qui sera notre -passerelle vers l'Internet (routant les paquets entre le réseau local Ethernet -et la connexion PPP).</para> -<itemizedlist> -<listitem><para>Entrez l'adresse IP de l'interface Ethernet de la -machine FreeBSD, “192.168.1.1”, dans la zone -“Passerelle par Défaut”.</para></listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Configurer les informations relatives au DNS</title> -<para>Nous supposons toujours que votre fournisseur d'accès Internet vous a -donné une liste de serveurs de noms de domaines (Domain Name Servers) - ou -“Serveurs DNS” - que vous devez utiliser.</para> -<para>Si vous voulez -mettre en service un serveur DNS sur votre machine FreeBSD, reportez-vous -au chapitre -<link linkend="sect7">Exercices pour l'étudiant intéressé</link> pour avoir des indications sur -l'installation d'un serveur DNS sur une machine FreeBSD.</para> -<itemizedlist> -<listitem><para>Cliquez sur l'onglet “Configuration DNS”,</para> -</listitem> -<listitem><para>Dans la zone “Hôte”, entrez le nom du poste -Windows for Workgroups, dans notre cas : “Moe”,</para></listitem> -<listitem><para>Dans la zone “Domaine”, entrez le nom du réseau -local, dans notre cas : “my.domain”,</para></listitem> -<listitem><para>Dans la zone “Ordre de recherche DNS”, -entrez les adresses -IP des serveurs DNS que votre fournisseur vous a données, cliquez sur -“Ajouter” à chaque adresse que vous définissez. Répétez l'opération -autant de fois que nécessaire pour entrer toutes les adresses que votre -fournisseur vous a indiquées,</para></listitem> -<listitem><para>Cliquez sur “OK” pour fermer la fenêtre -“Configuration DNS”.</para></listitem> -</itemizedlist> -</sect3> -<sect3> -<title>Pour finir</title> -<itemizedlist> -<listitem><para>Cliquez sur “OK” pour fermer la fenêtre -“Propriétés TCP/IP”,</para></listitem> -<listitem><para>Cliquez sur “OK” pour fermer la fenêtre -“Panneau de Contrôle Réseau”,</para></listitem> -<listitem><para>Redémarrez votre ordinateur si on vous le demande.</para> -</listitem> -</itemizedlist> -<para>C'est tout!</para> -</sect3> -</sect2> -</sect1> -<sect1 id="sect6"> -<title>Tester le réseau</title> -<para>Une fois que vous aurez terminé les opérations nécessaires décrites plus -haut, votre passerelle PPP vers l'Internet devrait être opérationnelle.</para> -<sect2> -<title>Tester la connexion vers l'extérieur</title> -<para>La première chose à vérifier est que la connexion s'établisse entre votre -modem et votre fournisseur d'accès.</para> -</sect2> -<sect2> -<title>Tester le réseau local</title> -<para>*** à faire ***</para> -</sect2> -</sect1> -<sect1 id="sect7"> -<title>Exercices pour l'étudiant intéressé</title> -<sect2> -<title>Gérer un mini-DNS</title> -<para>Bien que gérer une hiérarchie du service de noms de domaines -(“Domain Name Service” - DNS) puisse être une tâche -diabolique, il est tout à fait faisable d'installer un mini-serveur -DNS sur le sytème FreeBSD qui vous sert aussi de passerelle vers votre -fournisseur d'accès.</para> -<para>A partir des fichiers existants dans <filename>/etc/namedb</filename> -après installation de FreeBSD, il est possible de définir un serveur DNS qui -ait autorité sur le réseau de notre exemple et serve d'interface avec -l'architecture DNS de l'Internet.</para> -<para>Pour cette configuration minimale, il suffit de trois fichiers:</para> -<itemizedlist> -<listitem><para><filename>/etc/namedb/named.boot</filename></para></listitem> -<listitem><para><filename>/etc/namedb/named.root</filename></para></listitem> -<listitem><para><filename>/etc/namedb/mydomain.db</filename></para></listitem> -</itemizedlist> -<para>Le fichier <filename>/etc/namedb/named.root</filename> est automatiquement -initialisé à l'installation de FreeBSD, les deux autres fichiers doivent être -renseignés manuellement.</para> -<sect3> -<title>Le fichier <filename>/etc/namedb/named.boot</filename></title> -<para>Le fichier <filename>/etc/namedb/named.boot</filename> décrit la -configuration initiale du serveur DNS. Essentiellement, il indique au -serveur de noms:</para> -<orderedlist> -<listitem><para>Où sont les fichiers de configuration,</para></listitem> -<listitem><para>De quels “noms de domaines” il a la -responsabilité,</para></listitem> -<listitem><para>Où trouver les autres serveurs DNS.</para></listitem> -</orderedlist> -<para>Avec l'éditeur <command>ee</command>, créez un fichier -<filename>/etc/namedb/named.boot</filename> comme suit:</para> -<para> -<programlisting> - -; fichier de démarrage pour un mini-serveur de noms de domaines - -directory /etc/namedb - -; type domain source machine/fichier fichier de sauvegarde - -cache . named.root -primary my.domain. mydomain.db -</programlisting> -</para> -<para>Les lignes qui commencent par un point-virgule sont des commentaires. -Voici la signification des autres lignes:</para> -<itemizedlist> -<listitem> -<para> -<programlisting> -directory /etc/namedb -</programlisting> -</para> -<para>Dit au serveur de noms où trouver les fichiers de configuration référencés -dans la suite du fichier <filename>/etc/namedb/named.boot</filename>.</para> -</listitem> -<listitem> -<para> -<programlisting> -cache . named.root -</programlisting> -</para> -<para>Dit au serveur de noms que la liste des serveurs de la racine (“Root -Servers”) se trouve dans le fichier <filename>named.root</filename>. (Ce -fichier est inclus dans l'installation standard et n'est pas décrit ici.)</para> -</listitem> -<listitem> -<para> -<programlisting> -primary my.domain mydomain.db -</programlisting> -</para> -<para>Dit au serveur de noms qu'il a “autorité” sur un domaine DNS -appelé “my.domain” et que la liste des adresses IP des machines -du domaine “my.domain” (le réseau local) se trouve dans le fichier -<filename>/etc/namedb/mydomain.db</filename>. -</para> -</listitem> -</itemizedlist> -<para>Une fois créé et sauvegardé le fichier -<filename>/etc/namedb/named.boot</filename>, passez à l'étape suivante pour -créer le fichier <filename>/etc/namedb/named.db</filename>.</para> -</sect3> -<sect3> -<title>Le fichier <filename>/etc/namedb/named.db</filename></title> -<para>Le fichier <filename>/etc/namedb/named.boot</filename> liste les noms -et les adresses IP de <emphasis>toutes</emphasis> les machines du réseau -local.</para> -<para><emphasis>Pour une description détaillée des instructions de ce fichier, -reportez-vous aux pages de manuel de <command>named</command></emphasis>.</para> -<para>Le fichier <filename>/etc/namedb/named.boot</filename> de notre serveur -DNS minimum contient les lignes suivantes:</para> -<para> -<programlisting> -@ IN SOA my.domain. root.my.domain. ( - 961230 ; Serial - 3600 ; Refresh - 300 ; Retry - 3600000 ; Expire - 3600 ) ; Minimum - IN NS curly.my.domain. - -curly.my.domain. IN A 192.168.1.1 # The FreeBSD box -larry.my.domain. IN A 192.168.1.2 # The Win'95 box -moe.my.domain. IN A 192.168.1.3 # The WfW box -shemp.my.domain. IN A 192.168.1.4 # The Windows NT box - -$ORIGIN 1.168.192.IN-ADDR.ARPA - IN NS curly.my.domain. -1 IN PTR curly.my.domain. -2 IN PTR larry.my.domain. -3 IN PTR moe.my.domain. -4 IN PTR shemp.my.domain. - -$ORIGIN 0.0.127.IN-ADDR.ARPA - IN NS curly.my.domain. -1 IN PTR localhost.my.domain. -</programlisting> -</para> -<para>Brièvement, ce fichier déclare que le serveur DNS local est:</para> -<itemizedlist> -<listitem><para>Le “Début d'Autorité” (Start Of Authority) pour -le domaine appelé “my.domain”,</para></listitem> -<listitem><para>Le serveur de noms (Name Server - “NS”) pour -“my.domain”,</para></listitem> -<listitem><para>Responsable de la résolution inverse des adresses IP qui -commencent par “192.168.1” et “127.0.0” -(“$ORIGIN ...”).</para></listitem> -</itemizedlist> -<para>Pour ajouter de nouvelles machines, vous devez ajouter deux lignes pour -chaque système; une dans la section du haut où les noms des systèmes sont -associés aux adresses Internet (“IN A”), et une autre ligne qui -associe inversement l'adresse au nom de la machine (“IN PTR”), -dans la section -“$ORIGIN 1.168.192.IN-ADDR.ARPA”.</para> -</sect3> -<sect3> -<title>Démarrer le serveur DNS</title> -<para>Par défaut, le serveur DNS (<filename>/etc/sbin/named</filename>) n'est -pas lancé au démarrage du système. Vous pouvez modifier ce comportement en -rectifiant une seule ligne dans le fichier <filename>/etc/rc.conf</filename>, -comme suit:</para> -<para>Avec l'éditeur <command>ee</command>, visualisez le fichier -<filename>/etc/rc.conf</filename>. Descendez d'une quarantaine de lignes jusqu'à -ce que vous trouviez la section qui dit:</para> -<para> -<programlisting> ---- -named_enable="NO" # Run named, the DNS server (or NO). -named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). ---- -</programlisting> -</para> -<para>et modifiez-la en:</para> -<para> -<programlisting> ---- -named_enable="YES" # Run named, the DNS server (or NO). -named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). ---- -</programlisting> -</para> -<para>Sauvegardez le fichier et redémarrez le système.</para> -<para>Vous pouvez aussi démarrer le serveur DNS avec la commande -suivante:</para> -<para> -<userinput> -<prompt>#</prompt> named -b /etc/namedb/named.boot -</userinput> -</para> -<para>Chaque fois que vous modifiez les fichiers du répertoire -<filename>/etc/namedb/named.boot</filename>, vous devez faire relire ces -modifications par le serveur DNS avec la commande suivante:</para> -<para> -<userinput> -<prompt>#</prompt> kill -HUP `cat /var/run/named.pid` -</userinput> -</para> -</sect3> -</sect2> -<sect2> -<title>Essayer les filtres PPP</title> -<para>Le programme <command>ppp</command> a la capacité d'appliquer des règles -de filtrage au trafic qu'il route. Bien que cela ne soit pas aussi sécurisé -qu'un véritable coupe-feu, cela autorise quelques contrôles d'accès à la -liaison.</para> -<para>(“<filename>man ipfw</filename>” pour plus -d'informations sur la configuration d'un système FreeBSD plus sécurisé.)</para> -<para>La documentation complète des différents filtres et règles utilisables -avec le programme <command>ppp</command> se trouve dans les pages de manuel -de <command>ppp</command>.</para> -<para>Il y a quatre classes de filtres qui s'appliquent au programme -<command>ppp</command>:</para> -<itemizedlist> -<listitem> -<para><filename>afilter</filename> - filtre compteur d'accès -(ou “Keep Alive” - garder en vie)</para> -<para>Ils définissent quels événements sont ignorés par l'instruction -<filename>set timeout=</filename>.</para> -</listitem> -<listitem> -<para><filename>dfilter</filename> - filtre d'appel</para> -<para>Ils définissent quels événements sont ignorés par <command>ppp</command> -en mode connexion à la demande.</para> -</listitem> -<listitem> -<para><filename>ifilter</filename> - filtre d'entrée</para> -<para>Ils définissent quels paquets entrants sont acceptés ou -refusés par le programme <command>ppp</command>.</para> -</listitem> -<listitem> -<para><filename>ofilter</filename> - filtre de sortie</para> -<para>Ils définissent quels paquets sortants sont acceptés ou -refusés par le programme <command>ppp</command>.</para> -</listitem> -</itemizedlist> -<para>L'exemple qui suit est un extrait de la configuration d'un système -opérationnel qui donne une bonne base pour un fonctionnement Internet -“normal”, tout en empêchant que <command>ppp</command> accepte -n'importe quoi sur la liaison. Les commentaires décrivent la logique de -chaque jeu de règles.:</para> -<para> -<programlisting> - # - # filtres KeepAlive - # ne pa prendre en compte les paquets ICMP,DNS et RIP - # - set afilter 0 deny icmp - set afilter 1 deny udp src eq 53 - set afilter 2 deny udp dst eq 53 - set afilter 3 deny udp src eq 520 - set afilter 4 deny udp dst eq 520 - set afilter 5 permit 0/0 0/0 - # - # filtre d'appel: - # Note: ICMP établira la connexion dans cette configuration! - # - set dfilter 0 permit 0/0 0/0 - # - # autoriser les paquets ident - # - set ifilter 0 permit tcp dst eq 113 - set ofilter 0 permit tcp src eq 113 - # - # autoriser les connexions telnet à l'Internet - # - set ifilter 1 permit tcp src eq 23 estab - set ofilter 1 permit tcp dst eq 23 - # - # autoriser l'accès ftp à l'Internet - # - set ifilter 2 permit tcp src eq 21 estab - set ofilter 2 permit tcp dst eq 21 - set ifilter 3 permit tcp src eq 20 dst gt 1023 - set ofilter 3 permit tcp dst eq 20 - # - # autoriser les requêtes DNS - # - set ifilter 4 permit udp src eq 53 - set ofilter 4 permit udp dst eq 53 - # - # autoriser les transferts de zone DNS - # - set ifilter 5 permit tcp src eq 53 - set ofilter 5 permit tcp dst eq 53 - # - # autoriser l'accès depuis/vers le réseau local - # - set ifilter 6 permit 0/0 192.168.1.0/24 - set ofilter 6 permit 192.168.1.0/24 0/0 - # - # autoriser les réponses au ping et traceroute - # - set ifilter 7 permit icmp - set ofilter 7 permit icmp - set ifilter 8 permit udp dst gt 33433 - set ofilter 9 permit udp dst gt 33433 - # - # autoriser cvsup - # - set ifilter 9 permit tcp src eq 5998 - set ofilter 9 permit tcp dst eq 5998 - set ifilter 10 permit tcp src eq 5999 - set ofilter 10 permit tcp dst eq 5999 - # - # autoriser NTP pour la synchronization des horloges - # - set ifilter 11 permit tcp src eq 123 dst eq 123 - set ofilter 11 permit tcp src eq 123 dst eq 123 - set ifilter 12 permit udp src eq 123 dst eq 123 - set ofilter 12 permit udp src eq 123 dst eq 123 - # - # SMTP serait une bonne idée! - # - set ifilter 13 permit tcp src eq 25 - set ofilter 13 permit tcp dst eq 25 - # - # - # nous utilisons beaucoup whois, donc nous le laissons passer - # - set ifilter 14 permit tcp src eq 43 - set ofilter 14 permit tcp dst eq 43 - set ifilter 15 permit udp src eq 43 - set ofilter 15 permit udp dst eq 43 - # - # si aucune des conditions ci-dessus n'est remplie, le paquet est refusé - #------- -</programlisting> -</para> -<para>Il peut y avoir jusqu'à vingt règles dans chaque classe de filtres. Dans -chaque classe, les règles sont numérotées séquentiellement de 0 à 20, -<emphasis>mais aucune règle dans une classe particulière n'est appliquée tant -que la règle “0” n'est pas définie!</emphasis></para> -<para>Si vous décidez de <emphasis>ne pas</emphasis> utiliser de règles de -filtrage dans votre configuration du programme <command>ppp</command>, alors -<emphasis>TOUT</emphasis> le trafic de/vers votre système sera accepté lorsqu'il -est connecté à votre fournisseur d'accès.</para> -<para>Si vous décidez d'appliquer des règles de filtrages, ajoutez les lignes -précédentes à votre fichier <filename>/etc/ppp/ppp.conf</filename> dans l'une -des sections “default”, “demand” ou -“interactive” (ou à toutes - c'est à vous de voir).</para> -</sect2> -</sect1> -</article> diff --git a/fr_FR.ISO8859-1/articles/programming-tools/Makefile b/fr_FR.ISO8859-1/articles/programming-tools/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/programming-tools/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD$ -# Original revision: 1.4 -# - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/programming-tools/article.sgml b/fr_FR.ISO8859-1/articles/programming-tools/article.sgml deleted file mode 100755 index 064144f61c..0000000000 --- a/fr_FR.ISO8859-1/articles/programming-tools/article.sgml +++ /dev/null @@ -1,2001 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: n.nn ---> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; - <!ENTITY rel.current CDATA "3.2"> -]> - -<article LANG="fr"> - <artheader> - <title>Les outils de développement sous FreeBSD : Guide de - l'utilisateur</title> - <authorgroup> - <author> - <firstname>James</firstname> - <surname>Raynard</surname> - <affiliation> - <address> - <email>jraynard@freebsd.org</email> - </address> - </affiliation> - </author> - </authorgroup> - <abstract> - <para>17 Août 1997</para> - <para>Copyright © James Raynard, 1997.</para> - <para>Ce document est une introduction à l'utilisation de - quelques-uns des outils de programmation fournis avec FreeBSD, - quoique l'essentiel reste aussi valable pour de nombreuses autres - versions d'Unix. Il ne cherche <emphasis>pas</emphasis> à - expliquer en détail comment coder. La plus grande partie du - document suppose que vous n'avez aucune ou peu de notions - préalables de programmation, bien que l'on espère - que la plupart des programmeurs y trouveront quelque chose qui leur - sera utile.</para> - &abstract.disclaimer; - &trans.a.haby; - </abstract> - </artheader> - <sect1> - <title>Introduction<anchor id=foo></title> - <para>FreeBSD fournit un excellent environnement de développement. - Le système de base comprend des compilateurs C, C++ et Fortran, - et un assembleur, pour ne pas mentionner l'interpréteur Perl et - les outils Unix classiques comme <command>sed</command> et - <command>awk</command>. Si cela ne vous suffit pas, il y a beaucoup - d'autres compilateurs et interpréteurs au catalogue des logiciels - portés. FreeBSD est très largement compatible avec les - standards comme <acronym>POSIX</acronym> et <acronym>ANSI</acronym> C, - de même qu'avec son propre héritage BSD, il est donc - possible d'écrire des applications qui compilent et - s'exécutent sur une grande variété de - plates-formes.</para> - <para>Toute cette puissance, toutefois, peut submerger au premier abord, - si vous n'avez jamais auparavant écrit de programme sur une - plate-forme Unix. Ce document vise à vous aider à vous - y mettre, sans approfondir trop les questions les plus avancées. - L'intention est de vous fournir suffisamment de bases pour vous - permettre de tirer ensuite profit de la documentation.</para> - <para>La plus grande partie du document ne demande aucune ou peu de - connaissance de la programmation mais suppose une compétence de - base dans l'utilisation d'Unix et la volonté d'apprendre!</para> - </sect1> - <sect1> - <title>Introduction à la programmation</title> - <para>Un programme est une série d'instructions qui dit à - l'ordinateur de faire des choses diverses; l'instruction qu'il doit - exécuter dépend parfois de ce qui s'est passé - lorsqu'il a exécuté une instruction - précédente. Cette section vous donne un aperçu - des deux principales méthodes pour transmettre ces instructions, - ou “commandes” comme on les appellent. L'une est d'utiliser - un <firstterm>interpréteur</firstterm>, l'autre de se servir d'un - <firstterm>compilateur</firstterm>. Comme les langues humaines sont trop - compliquées pour être comprises sans ambiguïté - par un ordinateur, les commandes sont généralement - écrites dans l'un ou l'autre des languages spécialement - conçus à cet effet.</para> - <sect2> - <title>Interpréteurs</title> - <para>Dans le cas d'un interpréteur, le langage s'accompagne d'un - environnement, sous lequel vous tapez des commandes à son invite - et qui les exécute pour vous. Pour des programmes plus - compliqués, vous pouvez saisir les commandes dans un fichier - et le faire charger et exécuter les commandes qu'il contient par - l'interpréteur. Si quelque chose se passe mal, la plupart des - interpréteurs passeront le contrôle à un - débogueur pour vous aider à trouver l'origine du - problème.</para> - <para>Cela a l'avantage de vous permettre de voir immédiatement - le résultat de vos commandes et de corriger sur le champ vos - erreurs. Le principal inconvénient survient lorsque vous voulez - partager vos programmes avec d'autres. Il faut qu'ils aient le - même interpréteur que vous ou que vous ayez le moyen de - leur fournir cet interpréteur; il faut aussi qu'ils comprennent - comment s'en servir. Les utilisateurs peuvent aussi ne pas - apprécier de se retrouver sous un débogueur s'ils - appuyent sur la mauvaise touche! Du point de vue de la performance, - les interpréteurs utilisent parfois beaucoup de mémoire - et ne générent habituellement pas le code aussi - efficacement que les compilateurs.</para> - <para>A mon avis, les langages interprétés sont le meilleur - moyen de débuter si vous n'avez jamais programmé - auparavant. On trouve typiquement ce genre d'environnement avec des - langages tels que Lisp, Smalltalk, Perl et Basic. On peut aussi - avancer que le <foreignphrase>shell</foreignphrase> Unix est - lui-même un interpréteur, beaucoup écrivent en fait - avec des - procédures - <foreignphrase>scripts</foreignphrase> - pour - se faciliter le travail d'administration de leur machine. De fait, - une partie de la philosphie d'origine d'Unix était de fournir - nombre de petits programmes utilitaires qui puissent être - utilisés de concert dans des procédures pour effectuer - des tâches utiles.</para> - </sect2> - <sect2> - <title>Interpréteurs disponibles pour FreeBSD</title> - - <para>Voici une liste des interpréteurs disponibles sous forme de - <ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/">“paquetages”</ulink> - FreeBSD, accompagnée d'une brève description des langages - interprétés les plus répandus.</para> - <para>Pour vous procurer l'un de ces “paquetages”, il vous - suffit de cliquer sur le lien correspondant et d'exécuter - ensuite:</para> -<screen>&prompt.root; <userinput>pkg_add <replaceable>nom_du_paquetage</replaceable></userinput></screen> - <para>sous le compte super-utilisateur <username>root</username>. Il faut - bien évidemment que vous ayez un système FreeBSD 2.1.0 - ou ultérieur en état de marche pour que le logiciel - fonctionne.</para> - <variablelist> - <varlistentry> - <term><acronym>BASIC</acronym></term> - <listitem> - <para>Abréviation pour “<foreignphrase>Beginner's - All-purpose Symbolic Instruction - Code</foreignphrase>” - code d'instructions - symbolique universel pour les débutants. - Développé dans les années 50 pour apprendre - la programmation aux étudiants des Universités et - fourni avec tout ordinateur personnel qui se respectait dans les - années 80, <acronym>BASIC</acronym> a été le - premier langage pour de nombreux programmeurs. C'est aussi la base - de <trademark>Visual Basic</trademark>.</para> - <para>L'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/bwbasic-2.10.tgz">interpréteur - Basic Bywater</ulink> et - l'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/pbasic-2.0.tgz">interpréteur - Basic de Phil Cockroft</ulink> (appelé auparavant - “Rabbit Basic”) sont disponibles sous forme de - <ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/">“paquetages” - FreeBSD</ulink>.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>Lisp</term> - <listitem> - <para>Un langage développé à la fin des - années 1950 comme alternative aux langages - “dévoreurs de nombres” qui e´taient - populaires à l'époque. Au lieu d'être - basé sur les nombres, Lisp repose sur les listes; de fait, - son nom est une abréviation pour “<foreignphrase>List - Processing</foreignphrase>” - traitement de - listes. Trés répandu dans les milieux de l'IA - (Intelligence Artificielle).</para> - <para>Lisp est un langage très puissant et - sophistiqué, mais peut être assez lourd et - bavard.</para> - <para>FreeBSD dispose de - <ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/gcl-2.0.tgz">GNU - Common Lisp</ulink> sous forme de “paquetage”.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>Perl</term> - <listitem> - <para>Très employé par les administrateurs - système pour écrire des procédures; et - souvent aussi sur les serveurs <foreignphrase>World Wide - Web</foreignphrase> pour écrire des procédures - <acronym>CGI</acronym>.</para> - <para>La Version 4, qui est probablement encore la version la plus - largement répandue est fournie avec FreeBSD; le plus - récent - <ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/perl-5.001.tgz">Perl - Version 5</ulink> est disponible sous forme de - “paquetage”.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>Scheme</term> - <listitem> - <para>Un dialecte de Lisp qui est plutôt plus compact et plus - propre que Common Lisp. Courant dans les Universités parce - qu'il est assez facile à enseigner en premier cycle comme - langage d'initiation et présente un niveau d'abstraction - suffisant pour être utilisé pour du travail de - recherche.</para> - <para>FreeBSD offre en “paquetages” - l'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/elk-3.0.tgz">Interpréteur - Scheme Elk</ulink>, - l'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/mit-scheme-7.3.tgz">Interpréteur Scheme du MIT</ulink> et - l'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/scm-4e1.tgz">Interpréteur - Scheme SCM</ulink>.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>Icon</term> - <listitem> - <para><ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/icon-9.0.tgz">Le - langage de programmation Icon</ulink>.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>Logo</term> - <listitem> - <para><ulink URL="ftp://ftp.freebsd.org:pub/FreeBSD/packages/lang/ucblogo-3.3.tgz">L'interpréteur - LOGO de Brian Harvey</ulink>.</para> - </listitem> - </varlistentry> - <varlistentry><term>Python</term> - <listitem> - <para><ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/python-1.2">Le - langage de programmation orienté objet Python</ulink>.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - <sect2> - <title>Compilateurs</title> - <para>Les compilateurs sont assez différents. Vous écrivez - d'abord votre code dans un(des) fichiers(s) à l'aide d'un - éditeur. Vous exécutez ensuite le compilateur et voyez - s'il valide votre programme. S'il ne le compile pas, serrez les dents et - retournez sous l'éditeur. S'il le compile et vous en fait un - programme, vous pouvez l'utiliser soit à l'invite de - l'interpréteur de commande, soit en vous servant d'un - débogueur pour voir s'il fonctionne - correctement<footnote><para>Dans - le cas contraire, si vous l'exécutez sur la ligne de commande, il - peut éventuellement - planter - “<foreignphrase>core - dump</foreignphrase>”.</para></footnote>.</para> - <para>Ce n'est évidemment pas aussi immédiat que de se - servir d'un interpréteur. Cela vous permet cependant de faire - beaucoup de choses qui sont très difficiles ou même - irréalisables avec un interpréteur, comme écrire - du code qui interagisse étroitement avec le système - d'exploitation - ou même écrire votre propre - système d'exploitation! C'est aussi utile si vous avez besoin - d'écrire du code très efficace, parce que le compilateur - peut prendre son temps et optimiser le code, ce qui ne serait pas - acceptable d'un interpréteur. Distribuer un programme - écrit pour un compilateur est généralement plus - facile - il suffit de livrer une copie de l'exécutable, - en supposant que les destinataires aient le même système - d'exploitation que vous.</para> - <para>Les langages compilés incluent Pascal, C et C++. C et C++ - sont des langages qui pardonnent assez peu, et plus adaptés aux - programmeurs plus expérimentés. Pascal, d'un autre - côté, a été conçu pour l'enseignement, - et est un assez bon langage avec lequel commencer. Malheureusement, - FreeBSD n'a aucun support pour Pascal, à l'exception d'un - convertisseur de Pascal en C, au catalogue des logiciels - portés.</para> - <para>Comme le cycle - “édition-compilation-exécution-débogage” - est assez fastidieux, de nombreux fournisseurs de compilateurs - commerciaux - ont produit des Environnements de Développement - Intégrés (<acronym>EDI</acronym> en abrégé). - FreeBSD ne dispose pas d'<acronym>EDI</acronym> en tant que tel; il est - cependant possible d'utiliser Emacs à cet effet. C'est - expliqué à la section <link linkend="emacs">Utiliser - Emacs comme environnement de développement</link>.</para> - </sect2> - </sect1> - <sect1> - <title>Compiler avec <command>cc</command></title> - <para>Cette section ne s'occupe que du compilateur GNU pour C et C++, qui - est fourni de base avec le système FreeBSD. Il peut être - appelé soit avec la commande <command>cc</command>, soit avec - <command>gcc</command>. Les détails de la réalisation - d'un programme avec un interpréteur varient considérablement - d'un interpréteur à l'autre, est sont - généralement bien décrits par l'aide en ligne de - l'interpréteur.</para> - <para>Une fois que vous avez écrit votre chef-d'oeuvre, - l'étape suivante consiste à le convertir en quelque chose - qui (espérons-le!) s'exécutera sous FreeBSD. Cela demande - habituellement plusieurs opérations successives, dont chacune est - confiée à un programme différent.</para> - <procedure> - <step> - <para>Pré-processer votre code source pour en éliminer les - commentaires et faire diverses autres choses, comme la substitution - des macros-instructions en C.</para> - </step> - <step> - <para>Vérifier la syntaxe de votre code pour s'assurer que vous - avez respecté les règles du langage. Si ce n'est pas le - cas, il rouspétera.</para> - </step> - <step> - <para>Convertir le code source en langage - assembleur - c'est très proche du code machine, mais - encore compréhensible par des êtres humains. C'est du - moins ce que l'on prétend<footnote><para>Pour être - rigoureusement exact, <command>cc</command> convertit le code source - en un <firstterm>P-code</firstterm> qui lui est propre, et ne - dépend pas de la machine, et non en assembleur à ce - stade.</para></footnote>.</para> - </step> - <step> - <para>Convertir le langage assembleur en code machine - oui, - nous parlons ici de bits et d'octets, de zéros et de - uns.</para> - </step> - <step> - <para>Vérifier que vous avez utilisé de façon - cohérente les fonctions et les variables globales. Si, par - exemple, vous avez appelé une fonction qui n'existe pas, il - s'en plaindra.</para> - </step> - <step> - <para>Si vous essayez de générer un programme à - partir de plusieurs fichiers de source, faire ce qu'il faut pour - les regrouper.</para> - </step> - <step> - <para>S'arranger pour produire quelque chose que le chargeur de - programmes du système pourra mettre en mémoire et - exécuter.</para> - </step> - </procedure> - <para>Le mot <firstterm>compiler</firstterm> est souvent utilisé pour - ne désigner que les étapes 1 à 4 - les - autres sont appelées <firstterm>édition de - liens</firstterm>. L'étape 1 est parfois appelée - <firstterm>pré-processer</firstterm> et les étapes 3-4 - <firstterm>assembler</firstterm>.</para> - <para>Heureusement, pratiquement tous ces détails vous sont - transparents, car la commande <command>cc</command> est une interface - qui gère pour vous l'appel de ces différents programmes - avec les bons arguments; taper simplement:</para> -<screen>&prompt.user; <userinput>cc foobar.c</userinput></screen> - <para>effectue la compilation de <filename>foobar.c</filename> en passant - par toutes les étapes décrites ci-dessus. Si vous avez - à compiler plus d'un fichier, faites simplement quelque chose - comme:</para> -<screen>&prompt.user; <userinput>cc foo.c bar.c</></screen> - <para>Notez que la vérification syntaxique ne consiste qu'en cela: - vérifier la syntaxe. Il n'y aura pas de contrôle sur les - erreurs logiques que vous auriez commises, comme faire exécuter - au programme une boucle infinie ou utiliser un tri à bulles au lieu - d'un tri par arbre binaire<footnote><para>Au cas où vous ne le - sauriez pas, un tri par arbre binaire est une manière efficace - d'ordonner des données, ce qui n'est pas le cas du tri - à bulles.</para></footnote>.</para> - <para><command>cc</command> dispose d'une quantité d'options, qui - sont toutes décrites dans les pages de manuel. En voici - quelques-unes des plus importantes, et la façon de les - utiliser.</para> - <variablelist> - <varlistentry> - <term><option>-o <replaceable>nom_de_fichier</replaceable></option></term> - <listitem> - <para>Le nom du fichier résultat. Si vous n'utilisez pas cette - option, <command>cc</command> générera un - exécutable appelé - <filename>a.out</filename><footnote><para>Les raisons de cela se - sont perdues dans les brumes de - l'histoire.</para></footnote>.</para> - <informalexample> -<screen>&prompt.user; <userinput>cc foobar.c</userinput> <lineannotation>l'exécutable est <filename>a.out</filename></lineannotation> -&prompt.user; <userinput>cc -o foobar foobar.c</userinput> <lineannotation>l'exécutable est <filename>foobar</filename></lineannotation></screen> - </informalexample> - </listitem> - </varlistentry> - <varlistentry> - <term><option>-c</option></term> - <listitem> - <para>Uniquement compiler le fichier, ne pas faire l'édition de - liens. Utile pour des programmes d'essai, quand vous voulez - simplement vérifier la syntaxe, ou si vous vous servez d'un - <filename>Makefile</filename>.</para> - <informalexample> -<screen>&prompt.user; <userinput>cc -c foobar.c</userinput></screen> - </informalexample> - <para>Cela générera un <firstterm>fichier - objet</firstterm> (et non un exécutable) appelé - <filename>foobar.o</filename>. Il pourra être lié avec - d'autres fichiers objet pour constituer un exécutable.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>-g</option></term> - <listitem> - <para>Crée une version débogable de l'exécutable - Le compilateur inclut alors dans l'exécutable des - informations de correspondance entre les numéros de ligne du - fichier source et les fonctions appelées. Un débogueur - peut alors utiliser ces informations pour vous afficher le code - source tandis que vous exécutez pas à pas le - programme, ce qui est <emphasis>très</emphasis> utile; - l'inconvénient est que toutes ces informations augmentent - considérablement la taille du programme. Normalement, vous - compilez avec <option>-g</option> quand vous développez le - programme, et compilez ensuite une “version de - livraison” quand vous êtes satisfait parce qu'il - fonctionne correctement.</para> - <informalexample> -<screen>&prompt.user; <userinput>cc -g foobar.c</userinput></screen> - </informalexample> - <para>Cela produira une version débogable du - programme<footnote><para>Remarquez que nous n'avons pas - utilisé l'indicateur <option>-o</option> pour préciser - le nom de l'exécutable, celui-ci s'appelera donc - <filename>a.out</filename>. Générer une version - débogable appelée <filename>foobar</filename> est - laissé à titre d'exercice aux soins du - lecteur!</para></footnote>.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>-O</option></term> - <listitem> - <para>Génère une version optimisée de - l'exécutable. Le compilateur effectue alors diverses - opérations bien pensées pour essayer de construire - un programme qui aille plus vite que normalement. Vous pouvez - faire suivre <option>-O</option> d'un nombre pour demander un - degré plus important d'optimisation, mais cela met souvent - en évidence des bogues dans l'optimiseur du compilateur. - Par exemple, on sait que la version de <command>cc</command> de - FreeBSD 2.1.0 produit du code incorrect avec l'option - <option>-O2</option> dans certaines circonstances.</para> - <para>On n'active en général l'optimisation - qu'à la compilation de la version de livraison.</para> - <informalexample> -<screen>&prompt.user; <userinput>cc -O -o foobar foobar.c</userinput></screen> - </informalexample> - <para>Cela construira une version optimisée de - <filename>foobar</filename>.</para> - </listitem> - </varlistentry> - </variablelist> - <para>Les trois indicateurs suivants demanderont à - <command>cc</command> de vérifier que votre code est conforme - à la norme internationale, souvent appelée norme - <acronym>ANSI</acronym>, bien que ce soit à proprement parler - une norme <acronym>ISO</acronym>.</para> - <variablelist> - <varlistentry> - <term><option>-Wall</option></term> - <listitem> - <para>Active tous les messages d'avertissement que les auteurs du - compilateur <command>cc</command> ont jugés - intéressants. Malgré son nom - (“<foreignphrase>all</foreignphrase>” - tous), - cela n'active pas tous les messages d'avertissement dont le - compilateur est capable.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>-ansi</option></term> - <listitem> - <para>Désactive la plupart, mais pas toutes, les - possibilités non-<acronym>ANSI</> C fournies par - <command>cc</command>. Malgré son nom, cela ne garantit pas - absolument que votre code soit conforme à la norme.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>-pedantic</option></term> - <listitem> - <para>Désactive <emphasis>toutes</emphasis> les - possibilités non-<acronym>ANSI</> C de - <command>cc</command>.</para> - </listitem> - </varlistentry> - </variablelist> - <para>Sans ces indicateurs, <command>cc</command> vous permet d'utiliser - ses extensions non-standard de la norme. Quelques-unes sont très - utiles, mais ne se retrouveront pas sur d'autres - compilateurs - de fait, l'un des objectifs principaux de la - norme est de permettre l'écriture de code qui puissent être - réutilisé avec n'importe quel compilateur sur n'importe - quel système. C'est cela que l'on appelle du <firstterm>code - portable</firstterm>.</para> - <para>En général, vous devriez vous efforcer de rendre votre - code aussi portable que possible, sans quoi vous risquez de devoir - réécrire entièrement votre programme par la suite - pour qu'il fonctionne ailleurs - et qui peut dire ce que vous - utiliserez dans quelques années?</para> - <informalexample> -<screen>&prompt.user; <userinput>cc -Wall -ansi -pedantic -o foobar foobar.c</userinput></screen> - </informalexample> - <para>Cela générera un exécutable - <filename>foobar</filename> après avoir vérifié que - <filename>foobar.c</filename> respecte la norme.</para> - <variablelist> - - <varlistentry> - <term><option>-l<replaceable>bibliothèque</replaceable></option></term> - <listitem> - <para>Définit une bibliothèque de fonctions à - utiliser pour l'édition de liens.</para> - <para>L'exemple le plus courant est la compilation d'un programme - qui utilise certaines des fonctions mathématiques de C. A - l'inverse de la plupart des autres plates-formes, ces fonctions - sont dans une bibliothèque différente de la - bibliothèque C standard et vous devez préciser au - compilateur qu'il doit l'utiliser.</para> - <para>La règle est que si la bibliothèque s'appelle - <filename>lib<replaceable>quelque_chose</replaceable>.a</filename>, - vous donnez à <command>cc</command> l'argument - <option>-l<replaceable>quelque_chose</replaceable></option>. Par - exemple, la bibliothèque mathématique s'appelle - <filename>libm.a</filename>, vous donnez donc à - <command>cc</command> l'argument <option>-lm</option>. Un - détail à connaître à propos de la - bibliothèque mathématique est que ce doit - généralement être la dernière sur - la ligne de commande.</para> - <informalexample> -<screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput></screen> - </informalexample> - <para>Cela ajoutera à l'édition de liens de - <filename>foobar</filename> des fonctions de la - bibliothèque mathématique.</para> - <para>Si vous compilez du code C++, vous devrez ajouter - <option>-lg++</option>, ou <option>-lstdc++</option> si vous - utilisez la version 2.2 de FreeBSD ou une version - ultérieure, à la ligne de commande pour - éditer les liens avec les fonctions de la - bibliothèque C++. Au lieu de cela, vous pouvez utiliser la - commande <command>c++</command> au lieu de <command>cc</command>, - qui fera la même chose à votre place. Sous FreeBSD, - <command>c++</command> peut aussi être appellé avec - <command>g++</command>.</para> - <informalexample> -<screen>&prompt.user; <userinput>cc -o foobar foobar.cc -lg++</userinput> <lineannotation>Avec FreeBSD 2.1.6 et antérieurs</lineannotation> -&prompt.user; <userinput>cc -o foobar foobar.cc -lstdc++</userinput> <lineannotation>Avec FreeBSD 2.2 et ultérieurs</lineannotation> -&prompt.user; <userinput>c++ -o foobar foobar.cc</userinput></screen> - </informalexample> - - <para>Chacun de ces exemples construira un exécutable - <filename>foobar</filename> à partir du fichier source C++ - <filename>foobar.cc</filename>. Remarquez que, sur les - systèmes Unix, les fichiers sources C++ ont - traditionnellement l'extension <filename>.C</filename>, - <filename>.cxx</filename> ou <filename>.cc</filename>, - plutôt que l'extension <filename>.cpp</filename> - de sytle <trademark>MS-DOS</trademark> (qui est déjà - utilisée pour autre chose). <command>gcc</command> se - fiait autrefois à l'extension pour savoir quel type de - compilateur utiliser avec le fichier source, mais cette - restriction ne s'applique plus, vous pouvez donc appeler vos - fichiers C++ <filename>.cpp</filename> en toute - impunité!</para> - </listitem> - </varlistentry> - </variablelist> - <sect2> - <title>Questions et problèmes <command>cc</command></title> - <para>Q. J'essaie d'écrire un programme qui utilise la fonction - <function>sin()</function> et j'obtiens une erreur qui ressemble - à ce qui suit. Qu'est-ce que cela veut dire? - <informalexample> -<screen>/var/tmp/cc0143941.o: Undefined symbol `_sin' referenced from text segment</screen> - </informalexample> - </para> - <para>R. Quand vous utilisez des fonctions mathématiques telles - que <function>sin()</function>, vous devez dire à - <command>cc</command> d'inclure la bibliothèque - mathématique à l'édition de liens, comme ceci: - <informalexample> -<screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput></screen> - </informalexample></para> - - <para>Q. D'accord, j'ai écrit ce petit programme pour - m'entraîner à utiliser <option>-lm</option>. Il ne fait - que calculer 2.1 à la puissance 6: - <informalexample> - <programlisting> -#include <stdio.h> - -int main() { - float f; - - f = pow(2.1, 6); - printf("2.1 ^ 6 = %f\n", f); - return 0; -} - </programlisting> - </informalexample> - et l'ai compilé comme ceci: - <informalexample> -<screen>&prompt.user; <userinput>cc temp.c -lm</userinput></screen> - </informalexample> - comme vous avez dit qu'il fallait le faire, mais voilà ce que - j'obtiens à l'exécution: - <informalexample> -<screen>&prompt.user; <userinput>./a.out</userinput> -2.1 ^ 6 = 1023.000000</screen> - </informalexample></para> - <para>Ce n'est <emphasis>pas</emphasis> la bonne réponse! Que se - passe-t-il?</para> - <para>R. Quand le compilateur voit que vous appelez une fonction, il - regarde s'il en a déjà vu un prototype. Si ce n'est pas - le cas, il suppose que la fonction retourne un - <type>int</type> - <foreignphrase>entier</foreignphrase>, ce - qui n'est évidemment pas ce que vous souhaitez dans ce - cas.</para> - <para>Q. Comment alors régler ce problème?</para> - <para>R. Les prototypes des fonctions mathématiques sont dans - <filename>math.h</filename>. Si vous incluez ce fichier, le - compilateur trouvera le prototype et cessera de vous fournir un - résultat bizarre! - <informalexample> - <programlisting> -#include <math.h> -#include <stdio.h> - -int main() { -... - </programlisting> - </informalexample> - </para> - <para>Après l'avoir recompilé de la même - façon qu'auparavant, exécutez-le: - <informalexample> -<screen>&prompt.user; <userinput>./a.out</userinput> -2.1 ^ 6 = 85.766121</screen> - </informalexample> - </para> - <para>Si vous utilisez la moindre fonction mathématique, incluez - <emphasis>toujours</emphasis> <filename>math.h</filename> et n'oubliez - pas d'utiliser la bibliothèque mathématique à - l'édition de liens.</para> - <para>Q. J'ai compilé un fichier appelé - <filename>foobar.c</filename> et je ne trouve pas d'exécutable - appelé <filename>foobar</filename>. Où est-il - passé?</para> - <para>R. N'oubliez pas, <command>cc</command> appelera - l'exécutable <filename>a.out</filename> à moins que vous - ne lui disiez de faire autrement. Utilisez l'option - <option>-o <replaceable>nom_de_fichier</replaceable></option>: - <informalexample> -<screen>&prompt.user; <userinput>cc -o foobar foobar.c</userinput></screen> - </informalexample> - </para> - <para>Q. OK, si j'ai un exécutable appelé - <filename>foobar</filename>, je le vois avec <command>ls</command>, - mais quand je tape <command>foobar</command> sur la ligne de commande, - il me dit que le fichier n'existe pas. Pourquoi ne le trouve-t-il - pas?</para> - <para>R. A l'inverse de <trademark>MS-DOS</trademark>, Unix ne regarde - pas dans le répertoire courant quand il cherche le programme - que vous voulez exécuter, à moins que vous ne le lui - disiez. Soit tapez <command>./foobar</command>, ce qui veut dire - “exécuter le fichier appelé - <filename>foobar</filename> du répertoire courant”, ou - modifiez votre variable d'environnement - <systemitem class=environvar>PATH</systemitem> pour qu'elle ressemble - à: - <informalexample> -<screen>bin:/usr/bin:/usr/local/bin:.</screen> - </informalexample> - Le dernier point signifie “chercher dans le répertoire - courant si le fichier n'est pas dans les autres - répertoires”.</para> - <para>Q. J'ai appelé mon exécutable - <filename>test</filename>, mais il ne se passe rien quand je le - lance. Pourquoi?</para> - <para>R. Il y a un programme appelé <command>test</command> dans - <filename>/usr/bin</filename> sur la plupart des systèmes Unix - et c'est celui-là que trouve l'interpréteur de commandes - avant de regarder dans le répertoire courant. Soit tapez: - <informalexample> -<screen>&prompt.user; <userinput>./test</userinput></screen> - </informalexample> - ou choisissez un meilleur nom pour votre programme!</para> - <para>Q. J'ai compilé et tout a commencé à - fonctionner correctement, puis il y a eu une erreur et il m'a dit - quelque chose à propos de <errorname>core dumped</errorname>. - Qu'est-ce que cela veut dire?</para> - <para>A. L'expression <firstterm>core dump</firstterm> date des tous - premiers jours d'Unix, quand les machines utilisaient la - mémoire - centrale - “<foreignphrase>core memory</foreignphrase>” - pour stocker les informations. Essentiellement, si le programme - “plantait” dans certaines conditions, le système - enregistrait sur disque le contenu de la mémoire centrale - dans un fichier appelé <filename>core</filename>, que le - programmeur pouvait ensuite disséquer pour trouver - où les choses avaient mal tournées.</para> - <para>Q. Fascinant, mais que suis-je censé faire - maintenant?</para> - <para>A. Servez-vous de <command>gdb</command> pour analyser l'image - mémoire (Reportez-vous à la section - <link linkend="debugging">Déboguer</link>).</para> - <para>R. Quand mon programme a généré une image - mémoire, il a dit quelque chose à propose de - <errorname>segmentation fault</errorname> - “erreur - de segmentation”. Qu'est-ce que c'est?</para> - <para>Q. Cela signifie essentiellement que votre programme a - essayé d'effectuer une quelconque opération - illégale sur la mémoire; Unix est conçu pour - protéger le système d'exploitation des programmes - mal éduqués.</para> - <para>Les raisons les plus courantes en sont: - <itemizedlist> - <listitem> - <para>Essayer d'écrire en mémoire adressée par - un pointeur <symbol>NULL</symbol>, e.g.: - <programlisting> -char *foo = NULL; -strcpy(foo, "bang!"); - </programlisting> - </para> - </listitem> - <listitem> - <para>Utiliser un pointeur qui n'a pas été - initialisé, e.g.: - <programlisting> -char *foo; -strcpy(foo, "bang!"); - </programlisting> - Le pointeur aura une valeur aléatoire qui, avec de la - chance, adressera une zone mémoire non accessible à - votre programme, de sorte que le noyau tuera ce dernier avant - qu'il ne provoque de dégat. Si vous manquez de chance, - il pointera quelque part à l'intérieur de votre - programme et endommagera l'une de vos structures de - données, provoquant un dysfonctionnement mystérieux - de votre programme.</para> - </listitem> - <listitem> - <para>Tenter d'accéder au-delà du dernier - élément d'un tableau, e.g.: - <programlisting> -int bar[20]; -bar[27] = 6; - </programlisting> - </para> - </listitem> - <listitem> - <para>Essayer d'enregistrer quelque chose dans une zone de - mémoire accessible en lecture seule, e.g.: - <programlisting> -char *foo = "Mon texte"; -strcpy(foo, "bang!"); - </programlisting> - Les compilateurs Unix stockent souvent les chaînes de - caractères constantes comme <literal>"Mon texte"</literal> - en mémoire accessible en lecture seule.</para> - </listitem> - <listitem> - <para>Utiliser incorrectement les fonctions - <function>malloc()</function> et <function>free()</function>, - e.g.: - <programlisting> -char bar[80]; -free(bar); - </programlisting> - ou: - <programlisting> -char *foo = malloc(27); -free(foo); -free(foo); - </programlisting> - </para> - </listitem> - </itemizedlist> - </para> - <para>Commettre l'une de ces fautes ne provoquera pas toujours une erreur, - mais ce sont malgré tout des choses à ne pas faire. - Certains systèmes et compilateurs sont plus tolérants que - d'autres, ce qui fait que des programmes qui s'exécutent - correctement sur un système peuvent ne plus fonctionner sur un - autre.</para> - <para>Q. Parfois, le programme provoque la génération d'une - image mémoire avec le message <errorname>bus error</errorname>. - Mon manuel Unix dit qu'il s'agit d'un erreur matériel, mais - l'ordinateur fonctionne apparemment correctement. Est-ce vrai?</para> - <para>R. Fort heureusement, non (à moins bien sûr que vous - n'ayez aussi un problème matériel). C'est habituellement - une autre façon de dire que vous avez accédé - incorrectement à la mémoire.</para> - <para>Q. Il me semble que cette histoire de <foreignphrase>core - dump</foreignphrase> peut être très utile, si je peux la - provoquer quand je veux. Est-ce possible, ou dois-je attendre qu'il se - produise une erreur?</para> - <para>R. Oui, allez simplement sur une autre console ou fenêtre - <application>xterm</application> et tapez: - <screen>&prompt.user; <userinput>ps</userinput></screen> pour - connaître l'IDentifiant de processus de votre programme, puis: - <screen>&prompt.user; <userinput>kill -ABRT <replaceable>pid</replaceable></userinput></screen> - où <parameter><replaceable>pid</replaceable></parameter> est - l'ID de processus que vous avez recherché.</para> - <para>C'est par exemple utile si votre programme est parti dans une boucle - infinie. Au cas où votre programme piégerait les - interruptions <symbol>SIGABRT</symbol>, il y a plusieurs autres signaux - qui auront le même effet.</para> - </sect2> - </sect1> - <sect1> - <title>Make</title> - <sect2> - <title>Qu'est-ce que <command>make</command>?</title> - <para>Lorsque vous travaillez sur un programme simple avec seulement un - ou deux fichiers de source, taper: -<screen>&prompt.user; <userinput>cc fichier1.c fichier2.c</userinput></screen> - n'est pas trop gênant, mais cela devient rapidement très - fastidieux lorsqu'il y a plusieurs fichiers - et cela peut - aussi mettre du temps à compiler.</para> - <para>Un façon d'éviter ces problèmes est - d'utiliser des fichiers <firstterm>objets</firstterm> et de ne - recompiler que les fichiers de source dont le contenu a changé. - Nous pourrions alors avoir quelque chose du style: -<screen>&prompt.user; <userinput>cc fichier1.o fichier2.o</userinput> … <userinput>file37.c</userinput> &hellip</screen> - si nous avons modifé <filename>fichier37.c</filename>, et - celui-là uniquement, depuis notre compilation - précédente. Cela peut sérieusement - accélérer la compilation, mais ne résoud pas le - problème de saisie à répétition de la - commande.</para> - <para>Nous pourrions aussi écrire une procédure pour - résoudre ce dernier problème, mais ne ne pourrions alors - que lui faire tout recompiler, ce qui serait très peu efficace - sur un gros projet.</para> - <para>Que ce passe-t-il si nous avons des centaines de fichiers de - sources? Si nous travaillons en équipe et que d'autres - oublient de nous prévenir des modifications qu'ils ont - apportées à un des fichiers que nous utilisons?</para> - <para>Peut-être pourrions-nous rassembler les deux solutions et - écrire quelque chose qui ressemble à une - procédure et comporte une sorte de règle magique - qui dise quand tel fichier de source doit être compilé. - Nous n'aurions plus besoin que d'un programme qui comprennent ces - règles, parce que c'est un peu trop compliqué pour une - procédure.</para> - <para>Ce programme s'appelle <command>make</command>. Il lit un fichier, - qu'on appelle un <firstterm>makefile</firstterm>, qui lui dit quelles - sont les dépendances entre les différents fichiers, et - en déduit lesquels ont besoin ou non d'être - recompilés. Par exemple, une règle peut signifier - quelque chose comme “si <filename>fromboz.o</filename> est plus - ancien que <filename>fromboz.c</filename>, cela veut dire que - <filename>fromboz.c</filename> doit avoir été - modifié, il faut donc le recompiler”. Le fichier - “<foreignphrase>makefile</foreignphrase>” inclut aussi - des règles qui lui disent <emphasis>comment</emphasis> - recompiler, ce qui en fait un outil encore plus puissant.</para> - <para>Ces fichiers “makefiles” sont habituellement - rangés dans le même répertoire que les sources - auxquels ils s'appliquent, et peuvent être appelés - <filename>makefile</filename>, <filename>Makefile</filename> ou - <filename>MAKEFILE</filename>. La plupart des programmeurs utilisent - le nom <filename>Makefile</filename>, ce qui fait qu'ils se trouvent - alors vers le début de la liste des fichiers et sont ainsi - facilement repérables <footnote><para>Ils n'utilisent pas la - variante <filename>MAKEFILE</filename> parce que les noms en - majuscules servent souvent à désigner les fichiers de - documentation comme - <filename>README</filename>.</para></footnote>.</para> - </sect2> - <sect2> - <title>Exemple d'utilisation de <command>make</command></title> - <para>Voici un fichier <filename>Makefile</filename> - élémentaire : - <programlisting> -foo: foo.c - cc -o foo foo.c - </programlisting> - Il contient deux lignes, une pour la dépendance et une - pour la génération.</para> - <para>La ligne décrivant la dépendance contient le - nom du programme (qu'on appelle la <firstterm>cible</firstterm>), - suivi de “deux points”, puis d'un blanc et du nom - du fichier source. Quand <command>make</command> lit cette ligne, - il regarde si <filename>foo</filename> existe; s'il existe, il - compare la date de dernière modification de - <filename>foo</filename> à celle de dernière - modification de <filename>foo.c</filename>. Si - <filename>foo</filename> n'existe pas, ou s'il est antérieur - à <filename>foo.c</filename>, il regarde alors la ligne de - génération pour savoir ce qu'il faut faire. En - d'autres termes, c'est la règle à appliquer pour - savoir si <filename>foo.c</filename> doit être - recompilé.</para> - <para>La ligne de génération commence par une - <token>tabulation</token> (appuyez sur la touche - <keycap>Tab</keycap>) suivie de la commande que vous taperiez - pour compiler <filename>foo</filename> si vous le faisiez sur - la ligne de commande. Si <filename>foo</filename> n'est pas - à jour ou s'il n'existe pas, <command>make</command> - exécute alors cette commande pour le créer. En - d'autres termes, c'est la règle qui dit à - <command>make</command> comment recompiler - <filename>foo.c</filename>.</para> - <para>Ainsi, quand vous tapez <userinput>make</userinput>, il - fera en sorte que <filename>foo</filename> soit en phase avec les - dernières modifications que vous avez apportées à - <filename>foo.c</filename>. Ce principe s'étend aux - <filename>Makefile</filename>s avec des centaines de - cibles - de fait, sur FreeBSD, il est possible de compiler - tout le système d'exploitation en tapant simplement - <userinput>make world</userinput> dans le répertoire - adéquat!</para> - <para>Une autre particularité de <filename>Makefile</filename>s - est que les cibles ne sont pas nécessairement des programmes. - Nous pourrions par exemple avoir le <filename>Makefile</filename> - suivant: - <programlisting> -foo: foo.c - cc -o foo foo.c - -install: - cp foo /home/me - </programlisting> - </para> - <para>Nous pouvons dire à <command>make</command> quelle cible - nous voulons atteindre en tapant: -<screen>&prompt.user; <userinput>make <replaceable>cible</replaceable></userinput></screen> - <command>make</command> examinera alors cette cible et ignorera - toutes les autres. Par exemple, si, avec le - <filename>Makefile</filename> précédent, nous tapons - <userinput>make foo</userinput>, <command>make</command> ignorera - la cible <action>install</action>.</para> - <para>Si nous tapons simplement <userinput>make</userinput> tout - court, il examinera toujours la première cible et - s'arrêtera ensuite sans s'occuper des autres. Si nous - avions tapé <userinput>make</userinput> dans ce cas, il - serait simplement allé à la cible - <action>foo</action>, aurait recompilé - <filename>foo</filename> si nécessaire, et se serait - arrêté sans passer à la cible - <action>install</action>.</para> - <para>Remarquez que la cible <action>install</action> ne dépend - en fait de rien du tout! Cela signifie que la commande sur la ligne - suivante est toujours exécutée si nous essayons de - reconstruire cette cible en tapant - <userinput>make install</userinput>. Dans ce cas, il copiera - <filename>foo</filename> dans le répertoire de l'utilisateur. - C'est souvent utilisé par les <filename>Makefile</filename>s - de logiciels, de sorte que l'application soit installée dans - le bon répertoire, une fois correctement - compilée.</para> - <para>C'est un point un peu délicat à expliquer. Si vous - ne comprenez pas exactement comment <command>make</command> - fonctionne, la meilleure chose à faire est d'écrire - un programme simple comme le classique “Bonjour, le - monde!”, un fichier <filename>Makefile</filename> et de - faire des essais. Compilez ensuite en utilisant plus d'un - fichier source, ou en ayant un fichier source qui inclut un - fichier d'en-tête. La commande <command>touch</command> - vous sera très utile - elle modifie la date - d'un fichier sans que vous ayez à l'éditer.</para> - </sect2> - <sect2> - <title>Makefiles FreeBSD</title> - <para>L'écriture de <filename>Makefile</filename>s peut - être assez compliquée. Heurusement, les systèmes - basés sur BSD, comme FreeBSD, en fournissent de très - puissants, intégrés au système. Le catalogue des - logiciels portés de FreeBSD en est un excellent exemple. Voici - l'essentiel d'un de leurs <filename>Makefile</filename>s typiques: - <programlisting> -MASTER_SITES= ftp://freefall.cdrom.com/pub/FreeBSD/LOCAL_PORTS/ -DISTFILES= scheme-microcode+dist-7.3-freebsd.tgz - -.include <bsd.port.mk> - </programlisting> - </para> - <para>Si nous allons maintenant dans le répertoire associé - à ce logiciel et tapons <userinput>make</userinput>, voici ce - qui se passe:</para> - <procedure> - <step> - <para>Il regarde si le code source de ce logiciel est - déjà présent sur le système.</para> - </step> - <step> - <para>S'il n'y est pas, une connexion FTP à l'URL - indiquée par <symbol>MASTER_SITES</symbol> est - établie pour télécharger le source.</para> - </step> - <step> - <para>La somme de contrôle est calculée sur le source et - comparée à celle calculée sur une version - connue et validée. Cela pour s'assurer que le source n'a - pas été corrompu pendant le transfert.</para> - </step> - <step> - <para>Les modifications nécessaires pour que le code - fonctionne sous FreeBSD sont appliquées - c'est - ce que l'on appelle <firstterm>patcher</firstterm>.</para> - </step> - <step> - <para>Les opérations particulières de configuration - du source sont effectuées. (De nombreuses distributions de - programmes Unix essayent de déterminer sur quel - système elles sont compilées et de quelles - fonctionnalités Unix optionnelles il - dispose - c'est à ce stade du scénario - d'installation de logiciels sous FreeBSD que leur sont fournies - ces informations).</para> - </step> - <step> - <para>Le code source du programme est compilé. De fait, on - passe dans le répertoire où le code a - été décompacté et - <command>make</command> y est exécuté - le - <filename>Makefile</filename> du programme lui-même contient - les informations nécessaires à sa - compilation.</para> - </step> - <step> - <para>Nous disposons maintenant d'une version compilée du - programme. Si nous le voulons, nous pouvons maintenant la tester; - si nous avons confiance dans le programme, nous pouvons taper - <userinput>make install</userinput>. Cela recopiera le programme - et tous les fichiers d'environnement dont il a besoin à - l'endroit adéquat; une entrée sera aussi - créée dans une <database>base de données des - logiciels</database>, de façon à ce qu'il puisse - être désinstallé par la suite, si nous - changeons d'avis.</para> - </step> - </procedure> - <para>Je pense que vous serez maintenant d'accord pour trouver que c'est - assez impressionnant pour une simple procédure de quatre - lignes!</para> - <para>Le secret se trouve à la dernière ligne, qui dit - à <command>make</command> d'aller voir ce qu'il y a dans le - <filename>Makefile</filename> appelé - <filename>bsd.port.mk</filename>. Il est facile de rater cette ligne, - mais c'est pourtant de là que vient toute la mécanique - subtile. Quelqu'un a écrit un <filename>Makefile</filename> - qui dit à <command>make</command> de faire tout ce qui a - été décrit ci-dessus (plus deux ou trois autres - choses dont je n'ai pas parlé, dont le traitement des erreurs - qui pourraient se produire) et tout le monde peut l'utiliser en - mettant simplement cette unique ligne dans son propre - <filename>Makefile</filename>!</para> - <para>Si vous voulez jeter un oeil à ces - <filename>Makefile</filename>s systèmes, ils sont dans le - répertoire <filename>/usr/share/mk</filename>, mais il vaut - mieux attendre d'avoir un peu d'expérience des - <filename>Makefile</filename>s, parce qu'ils sont très - compliqués (et si vous les regardez, ayez sous la main - une bonne dose de café serré!).</para> - </sect2> - <sect2> - <title>Utilisation plus poussée de <command>make</command></title> - <para> <command>make</command> est un outil très puissant, et peut - faire beaucoup plus que l'exemple élémentaire que nous - avons donné. Il y a malheureusement plusieurs versions de - <command>make</command>, et elles sont très - différentes. La meilleure façon de savoir ce qu'elles - peuvent faire est certainement de lire la - documentation - espérons que cette introduction - vous aura fourni les bases pour le faire.</para> - <para>La version de <command>make</command> fournie avec FreeBSD est - <application>Berkeley make</application>; elle s'accompagne d'un guide - dans <filename>/usr/share/doc/psd/12.make</filename>. Pour le - visualiser, tapez: -<screen>&prompt.user; <userinput>zmore paper.ascii.gz</userinput></screen> - dans ce répertoire.</para> - <para>Il y a des nombreux logiciels du catalogue des logiciels - portés qui utilisent <application>GNU make</application>, qui - est très bien documenté dans les pages - “info”. Si vous avez installé un de ces logiciels, - <application>GNU make</application> sera automatiquement installé - sont le nom <command>gmake</command>. Il est aussi disponible sous forme - de logiciel porté ou précompilé autonome.</para> - <para>Pour visualiser les pages “info” de - <application>GNU make</application>, il vous faut éditer le - fichier <filename>dir</filename> du répertoire - <filename>/usr/local/info</filename> et y ajouter une ligne pour ce - programme. C'est une ligne du genre: - <programlisting> - * Make: (make). L'utilitaire GNU Make. - </programlisting> - Une fois que c'est fait, vous pouvez taper <userinput>info</userinput> - puis sélectionner <guimenuitem>make</guimenuitem> dans le menu - (ou sous <application>Emacs</application>, taper <userinput>C-h - i</userinput>).</para> - </sect2> - </sect1> - <sect1 id="debugging"> - <title>Déboguer</title> - <sect2> - <title>Le débogueur</title> - <para>Le débogueur qui est fourni avec FreeBSD s'appelle - <command>gdb</command> - (<application>GNU débogueur</application>). Vous le lancez en - tapant: -<screen>&prompt.user; <userinput>gdb <replaceable>nom_du_programme</replaceable></userinput></screen> - bien que la plupart des gens préfèrent l'exécuter - sous <application>Emacs</application>. Ce qui se fait avec: -<screen><userinput>M-x gdb RET <replaceable>progname</replaceable> RET</userinput></screen> - </para> - <para>Se servir d'un débogueur vous permet d'exécuter le - programme sous contrôle. Vous pouvez typiquement - l'exécuter pas à pas, inspecter les valeurs des - variables, les modifier, dire au débogueur d'exécuter - le programme jusqu'à un certain endroit et de s'y - arrêter, et ainsi de suite. Vous pouvez même - le rattacher à un programme qui est déjà en - cours d'exécution, ou charger une image - mémoire - “<foreignphrase>core</foreignphrase>”. - Il est même possible de déboguer le noyau, bien que cela - soit un peu plus compliqué que dans le cas des programmes - utilisateurs, dont nous parlerons dans cette section.</para> - <para><command>gdb</command> dispose d'une assez bonne aide en ligne, - ainsi que d'un jeu de pages “info”, cette section se - concentrera donc sur quelques commandes de base.</para> - <para>Enfin, si le mode de fonctionnement en ligne de commande vous - rebute, il existe une interface graphique appelée - <ulink URL="http://www.freebsd.org/ports/devel.html">xxgdb</ulink> - au catalogue des logiciels portés.</para> - <para>Cette section est destinée à servir d'introduction - à l'utilisation du débogueur et ne couvre pas les - questions spécialisées comme le débogage du - noyau.</para> - </sect2> - <sect2> - <title>Exécuter un programme sous le débogueur</title> - <para>Il faudra que vous ayez compilé le programme avec l'option - <option>-g</option> pour tirer le meilleur parti de - <command>gdb</command>. Cela fonctionnera sans cela, mais vous ne - verrez que le nom de la fonction dans laquelle vous êtes, au - lieu du code source. Si vous avez un message du genre: -<screen>… (no debugging symbols found) …</screen> - au démarrage de <command>gdb</command>, vous saurez que le - programme n'a pas été compilé avec l'option - <option>-g</option>.</para> - <para>A l'invite de <command>gdb</command>, tapez <userinput>break - main</userinput>. Cela dira au débogueur d'exécuter le - code préliminaire de mise en oeuvre dans le programme et de - s'arrêter au début de votre programme. Tapez maintenant - <userinput>run</userinput> pour lancer le programme - il - commencera au début du code préliminaire et sera - interrompu par le débogueur sur l'appel de - <function>main()</function>. (Si vous vous étiez jamais - demandé d'où la fonction <function>main()</function> - était appelée, vous le savez maintenant!).</para> - <para>Vous pouvez maintenant exécuter le programme une ligne - à la fois, en appuyant sur <command>n</command>. Si - vous arrivez sur un appel de fonction, vous pouvez passer dans la - fonction en appuyant sur <command>s</command>. Une fois dans la - fonction, vous pouvez terminer son exécution et en sortir en - tapant <command>f</command>. Vous pouvez aussi utiliser - <command>up</command> et <command>down</command> pour jeter un - coup d'oeil au code appelant.</para> - <para>Voici un exemple simple de la manière de diagnostiquer une - erreur dans un programme avec <command>gdb</command>. Voici notre - programme (intentionnellement faux): - <programlisting> -#include <stdio.h> - -int bazz(int un_entier); - -main() { - int i; - - printf("C'est mon programme\n"); - bazz(i); - return 0; -} - -int bazz(int un_entier) { - printf("Vous m'avez donné %d\n", un_entier); - return un_entier; -} - </programlisting> - </para> - <para>Ce programme affecte à <symbol>i</symbol> la valeur - <literal>5</literal> et la passe à la fonction - <function>bazz()</function> qui affiche la valeur que nous lui - donnons en paramètre.</para> - <para>Quand nous compilons et exécutons le programme, nous - obtenons: -<screen>&prompt.user; <userinput>cc -g -o temp temp.c</userinput> -&prompt.user; <userinput>./temp</userinput> -C'est mon programme -Vous m'avez donné 4231</screen></para> - <para>Ce n'est pas ce à quoi nous nous attendions! C'est le - moment d'aller voir ce qui ce passe! -<screen>&prompt.user; <userinput>gdb temp</userinput> -GDB is free software and you are welcome to distribute copies of it - under certain conditions; type "show copying" to see the conditions. -There is absolutely no warranty for GDB; type "show warranty" for details. -GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free Software Foundation, Inc. -(gdb) <userinput>break main</userinput> <lineannotation>Exécuter le code d'initialisation</lineannotation> -Breakpoint 1 at 0x160f: file temp.c, line 9. <lineannotation><command>gdb</command> met un pont d'arrêt à l'appel de <function>main()</function></lineannotation> -(gdb) <userinput>run</userinput> <lineannotation>Exécuter jusqu'à <function>main()</function></lineannotation> -Starting program: /home/james/tmp/temp <lineannotation>Le programme démarre</lineannotation> - -Breakpoint 1, main () at temp.c:9 <lineannotation><command>gdb</command> s'arrête à <function>main()</function></lineannotation> -(gdb) <userinput>n</userinput> <lineannotation>Aller à la ligne suivante</lineannotation> -C'est mon programme <lineannotation>Le programme imprime</lineannotation> -(gdb) <userinput>s</userinput> <lineannotation>Aller dans <function>bazz()</function></lineannotation> -bazz (un_entier=4231) at temp.c:17 <lineannotation><command>gdb</command> affiche la position dans la pile d'appel</lineannotation> -(gdb)</screen></para> - <para>Une minute! Comment <symbol>un_entier</symbol> peut-il valoir - <literal>4231</literal>? Ne l'avons-nous pas initialisé - à <literal>5</literal> dans <function>main()</function>? - Revenons à <function>main()</function> et jetons un - oeil.</para> - <para> -<screen>(gdb) <userinput>up</userinput> <lineannotation>Remonter d'un cran dans la pile d'appel</lineannotation> -#1 0x1625 in main () at temp.c:11 <lineannotation><command>gdb</command> affiche la position dans la pile d'appel</lineannotation> -(gdb) <userinput>p i</userinput> <lineannotation>Afficher la valeur de <symbol>i</symbol></lineannotation> -$1 = 4231 <lineannotation><command>gdb</command> affiche <literal>4231</literal></lineannotation></screen> - Et oui! Si nous regardons le code, nous avons oublié - d'initialiser <symbol>i</symbol>. Nous voulions mettre: - <programlisting> -<lineannotation>…</lineannotation> -main() { - int i; - - i = 5; - printf("C'est mon programme\n"); -<lineannotation>&hellip</lineannotation> - </programlisting> - mais nous avons oublié la ligne <literal>i=5;</literal>. - Comme nous n'avons pas initialisé <symbol>i</symbol>, il - prend la valeur qui se trouve à cet endroit de la - mémoire quand le programme s'exécute, dans notre - cas, il s'est trouvé que c'était - <literal>4231</literal>.</para> - <note> - <para><command>gdb</command> affiche l'endroit où nous nous - trouvons dans la pile d'appel, chaque fois que nous entrons ou - sortons d'une fonction, même si nous utilisons - <command>up</command> et <command>down</command> pour nous - déplacer dans la pile. Cela nous donne le nom de la fonction - et les valeurs de ses paramètres, ce qui nous aide à - repérer où nous sommes et ce qu'il se passe. (La pile - d'appel est une zone de mémoire où le programme - enregistre les informations sur les paramètres passés - aux fonctions et où aller quand il ressort d'un fonction - appelée.)</para> - </note> - </sect2> - <sect2> - <title>Examiner un fichier - “<foreignphrase>core</foreignphrase>”</title> - <para>Un fichier “<foreignphrase>core</foreignphrase>” est - essentiellement un fichier qui contient l'état complet du - programme au moment où il s'est “planté”. Au - “bon vieux temps”, les programmeurs devaient imprimer le - contenu en hexadécimal des fichiers - “<foreignphrase>core</foreignphrase>” et transpirer sur des - manuels de code machine, mais la vie est aujourd'hui un peu plus facile. - Au passage, sous FreeBSD et les autres systèmes 4.4BSD, un - fichier “<foreignphrase>core</foreignphrase>” s'appelle - <filename><replaceable>nom_du_programme</replaceable>.core</filename>, - et non <filename>core</filename> tout court, - de façon à ce que l'on sache à quel programme il - correspond.</para> - <para>Pour examiner un fichier - “<foreignphrase>core</foreignphrase>”, lancez - <command>gdb</command> comme d'habitude. Au lieu de taper - <command>break</command> ou <command>run</command>, tapez: -<screen>(gdb) <userinput>core <replaceable>nom_du_programme</replaceable>.core</userinput></screen> - Si vous n'êtes pas dans le même répertoire que - le fichier “<foreignphrase>core</foreignphrase>”, vous - devrez d'abord faire - <userinput>dir /ou/se/trouve/le/fichier/core</userinput>.</para> - <para>Vous devriez voir quelque chose comme: -<screen>&prompt.user; <userinput>gdb a.out</userinput> -GDB is free software and you are welcome to distribute copies of it - under certain conditions; type "show copying" to see the conditions. -There is absolutely no warranty for GDB; type "show warranty" for details. -GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free Software Foundation, Inc. -(gdb) <userinput>core a.out.core</userinput> -Core was generated by `a.out'. -Program terminated with signal 11, Segmentation fault. -Cannot access memory at address 0x7020796d. -#0 0x164a in bazz (un_entier=0x5) at temp.c:17 -(gdb)</screen></para> - <para>Dans ce cas, le programme s'appelait <filename>a.out</filename>, le - fichier “<foreignphrase>core</foreignphrase>” s'appelle - donc <filename>a.out.core</filename>. Nous constatons que le programme - s'est terminé en erreur à cause d'une tentative - d'accès à une zone de mémoire qui n'était - pas accessible dans une fonction appelé - <function>bazz</function>.</para> - <para>Il est parfois utile de pouvoir savoir comment une fonction a - été appelée, parce que le problème peut - s'être produit bien au-dessus dans la pile d'appel dans un - programme complexe. La commande <command>bt</command> dit à - <command>gdb</command> d'imprimer en remontant la pile d'appel: -<screen>(gdb) <userinput>bt</userinput> -#0 0x164a in bazz (un_entier=0x5) at temp.c:17 -#1 0xefbfd888 in end () -#2 0x162c in main () at temp.c:11 -(gdb)</screen> - La fonction <function>end()</function> est appelée quand un - programme échoue; dans le cas présent, la fonction - <function>bazz()</function> a été appelée par - <function>main()</function>.</para> - </sect2> - <sect2> - <title>Prendre le contrôle d'un programme en cours - d'exécution</title> - <para>Une des possibilités les plus intéressantes de - <command>gdb</command> est qu'il peut se rattacher à un - programme en cours d'exécution. Il faut bien sûr que vous - ayez les autorisations suffisantes pour le faire. Le cas d'un programme - qui “fourche” - <foreignphrase>fork</foreignphrase> - est - un problème classique, lorsque vous voulez suivre le - déroulement du processus fils, alors que le débogueur ne - vous permet que de tracer le processus père.</para> - <para>Vous lancez alors un autre <command>gdb</command>, utilisez - <command>ps</command> pour connaître l'IDentifiant de processus du - fils, puis faites: -<screen>(gdb) <userinput>attach <replaceable>pid</replaceable></userinput></screen> - sous <command>gdb</command>, et déboguez alors comme - d'habitude.</para> - <para>“Tout cela est bien beau”, vous dites vous - peut-être, “mais le temps que j'ai fait tout ça, le - processus fils aura déjà fait un bon bout de - chemin”. Rien à craindre, aimable lecteur, voici ce - qu'il faut faire (emprunté aux pages “info” de - <command>gdb</command>): -<screen><lineannotation>&hellip</lineannotation> -if ((pid = fork()) < 0) /* _Toujours_ effectuer se contrôle */ - error(); -else if (pid == 0) { /* C'est le processus fils */ - int PauseMode = 1; - - while (PauseMode) - sleep(10); /* Attendre que quelqu'un se rattache à nous */ - … -} else { /* parent */ - …</screen> - Il n'y a plus qu'à se rattacher au fils, positionner - <symbol>PauseMode</symbol> à <literal>0</literal>, et attendre - que l'appel de <function>sleep()</function> nous rende la main!</para> - </sect2> - </sect1> - <sect1 id="emacs"> - <title>Utiliser Emacs comme environnement de développement</title> - <sect2> - <title>Emacs</title> - <para>Les systèmes Unix ne s'accompagnent malheureusement pas - du type d'environnement de développement - intégré du genre “tout ce que vous avez toujours - voulu et encore beaucoup plus en un seul monstrueux paquetage” - dont disposent d'autres systèmes<footnote><para>Au moins, pas - à moins que vous ne soyez prêt à les payer une somme - astronomique.</para></footnote>. Il est cependant possible de mettre - au point votre propre environnement. Il ne sera peut-être pas - aussi esthétique et il ne sera peut-être pas aussi - intégré, mais vous pourrez le configurer comme vous le - voulez. Et il est gratuit. En plus, vous en avez les sources.</para> - <para>Emacs est la clé de tout. Il y a bien des gens qui le - décrient, mais nombreux sont ceux qui l'aiment. Si vous - êtes des premiers, j'ai peur que cette section n'ait que peu - d'intérêt pour vous. Il vous faudra aussi pas mal de - mémoire pour l'utiliser. Je conseille 8Mo en mode texte et - 16Mo sous X comme strict minimum pour avoir des temps de réponse - raisonnables.</para> - <para>Emacs est essentiellement un éditeur extrêmement - configurable - il a de fait été configuré - au point de ressembler plus à un système - d'exploitation qu'à un éditeur! De nombreux - développeurs et administrateurs système passent le plus - clair de leur temps à travailler sous Emacs, le quittant - seulement pour se déconnecter.</para> - <para>Il est impossible de même résumer ici tout ce qu'Emacs - est capable de faire, mais voici quelques fonctionnalités qui - intéressent les développeurs: - <itemizedlist> - <listitem> - <para>Editeur très puissant qui permet et de rechercher et - remplacer des chaînes de caractères et d'utiliser pour - le faire des expressions régulières (motifs), d'aller - au début ou à la fin de blocs syntaxiques, etc, - etc.</para> - </listitem> - <listitem> - <para>Menus déroulants et aide en ligne.</para> - </listitem> - <listitem> - <para>Mise en valeur et indentation en fonction de la syntaxe du - langage utilisé.</para> - </listitem> - <listitem> - <para>Complètement configurable.</para> - </listitem> - <listitem> - <para>Vous pouvez compiler et déboguer des programmes depuis - Emacs.</para> - </listitem> - <listitem> - <para>En cas d'erreur à la compilation, vous pouvez aller - directement à la ligne qui en est la cause.</para> - </listitem> - <listitem> - <para>Interface ergonomique au programme <command>info</command> - qui sert à lire la documentation hypertexte GNU, dont - celle d'Emacs lui-même.</para> - </listitem> - <listitem> - <para>Interface conviviale pour <command>gdb</command>, qui vous - permet de visualiser le code source en même temps que vous - exécutez pas à pas le programme.</para> - </listitem> - <listitem> - <para>Vous pouvez lire les “news” Usenet et votre - courrier électronique pendant que votre programme - compile.</para> - </listitem> - </itemizedlist> - Et sans aucun doute bien d'autres choses qui m'ont - échappées.</para> - <para>Emacs peut être installé sous FreeBSD sous forme de - <ulink URL="http://www.freebsd.org/ports/editors.html">logiciel - porté</ulink>.</para> - <para>Une fois qu'il est installé, lancez-le et tapez - <userinput>C-h t</userinput> - ce qui signifie maintenir - enfoncée la touche <keycap>Ctrl</keycap>, taper - <keycap>h</keycap>, relâcher la touche <keycap>Ctrl</keycap>, et - appuyer ensuite sur <keycap>t</keycap> - pour lire le guide - d'Emacs (Vous pouvez aussi utiliser la souris pour sélectionner - <guimenuitem>Emacs - Tutorial</guimenuitem> - “<foreignphrase>Guide - Emacs</foreignphrase>” - depuis le menu - <guimenu>Help</guimenu> - “<foreignphrase>Aide</foreignphrase>”).</para> - <para>Bien qu'Emacs ait des menus, il vaut la peine d'apprendre à - utiliser les raccourcis claviers, parce qu'il est bien plus rapide - quand vous éditez quelque chose d'appuyer sur deux ou trois - touches que de courir après la souris et cliquer ensuite au bon - endroit. Si, par ailleurs, vous discutez avec des utilisateurs - expérimentés d'Emacs, vous vous aperceverez qu'ils - utilisent assez couramment des expressions comme - “<literal>M-x replace-s RET foo RET bar RET</literal>”, - il peut donc servir de comprendre ce qu'ils veulent dire. Et de toute - façon, Emacs a bien plus de fonctions utiles qu'il ne peut en - tenir sur une barre de menus.</para> - <para>Il est heureusement assez facile de découvrir les raccourcis - claviers, ils sont affichés dans les menus. Je vous conseille - d'utiliser les menus pour, par exemple, ouvrir un fichier - jusqu'à ce que vous compreniez comment cela marche et ayez - suffisamment confiance en vous, puis d'essayer C-x C-f. Une fois que - cela vous convient, passez à une autre des commandes des - menus.</para> - <para>Si vous ne vous rappelez pas ce que fait une combinaison - donnée de touches, choisissez <guimenuitem>Describe - Key</guimenuitem> - “<foreignphrase>Description d'une - touche</foreignphrase>” - dans le menu - <guimenu>Help</guimenu> - “<foreignphrase>Aide</foreignphrase>” - et - tapez cette combinaison - Emacs vous dira ce qu'elle fait. - Vous pouvez aussi utiliser le choix <guimenuitem>Command - Apropos</guimenuitem> - “<foreignphrase>A propos d'une - commande</foreignphrase>” - pour connaître - toutes les commandes comportant un mot donné et les touches qui - leur correspondent.</para> - <para>Au fait, l'expression plus haut signifie: enfoncer la touche - <keysym>Méta</keysym>, appuyer sur <keysym>x</keysym>, - relâcher la touche <keysym>Méta</keysym>, taper - <userinput>replace-s</userinput> (abréviation de - <literal>replace-string</literal> - “<foreignphrase>remplacer - une chaîne de caractères</foreignphrase>” - une autre - caractéristique d'Emacs est de vous permettre d'abréger - les commandes), appuyer sur <keysym>Entrée</keysym>, taper - <userinput>foo</userinput> (la chaîne que vous voulez remplacer), - appuyer sur <keysym>Entrée</keysym>, taper - <userinput>bar</userinput> (la chaîne avec laquelle vous voulez - remplacer <literal>foo</literal>) et appuyer encore sur - <keysym>Entrée</keysym>. Emacs effectuera alors - l'opération de recherche et remplacement que vous venez de - demander.</para> - <para>Si vous vous demandez ce qu'est la touche - <keysym>Méta</keysym>, c'est une touche spéciale qu'ont - beaucoup de stations Unix. Malheureusement, les PCs n'en ont pas, c'est - habituellement la touche <keysym>Alt</keysym> qui est utilisée - (ou si vous n'avez pas de chance, la touche - <keysym>Echap</keysym>).</para> - <para>Oh, et pour sortir d'Emacs, tapez <command>C-x C-c</command> - (Ce qui signifie: enfoncer la touche <keysym>Ctrl</keysym>, appuyer sur - <keysym>c</keysym>, appuyer sur <keysym>x</keysym> et relâcher la - touche <keysym>Ctrl</keysym>). S'il y a des fichiers ouverts que vous - n'avez pas sauvegardés, Emacs vous demandera si vous voulez les - sauvegarder. (Oubliez que la documentation dit que la méthode - habituelle pour quitter Emacs est d'utiliser - <command>C-z</command> - cela laisse Emacs actif en - tâche de fond et n'est réellement utile que si vous - êtes sur un système qui ne gère pas de terminaux - virtuels).</para> - </sect2> - <sect2> - <title>Configurer Emacs</title> - <para>Emacs fait des choses admirables; certaines fonctionnalités - sont incorporées, d'autres doivent être - configurées.</para> - <para>Au lieu d'utiliser un langage de macros-instructions - propriétaires, Emacs se sert d'une version de Lisp - spécialement adaptée aux éditeurs, connue sous le - nom de Emacs Lisp. Ce peut être très utile si vous voulez - aller plus loin et apprendre ensuite par exemple Common Lisp, parce - qu'il est considérablement plus léger que Common Lisp - (quoique qu'encore assez imposant!).</para> - <para>La meilleure façon d'apprendre Emacs Lisp est de - télécharger - <ulink URL="ftp://prep.ai.mit.edu/pub/gnu/elisp-manual-19-2.4.tar.gz">le - Guide Emacs Lisp</ulink>.</para> - - <para>Il n'y a cependant pas besoin de connaître quoique ce soit - à Lisp pour commencer à configurer Emacs, parce que j'ai - inclu un fichier <filename>.emacs</filename> d'exemple, qui devrait - suffire au début. Copiez-le simplement dans votre - répertoire utilisateur et relancez Emacs, s'il s'exécute - déjà; il lira les commandes du fichier et (je - l'espère) vous fournira une configuration de base utile.</para> - </sect2> - <sect2> - <title>Un exemple de fichier <filename>.emacs</filename></title> - <para>Il contient malheureusement beaucoup trop de choses pour tout - expliquer en détails; il y a cependant un ou deux points - intéressants à mentionner.</para> - <para> - <itemizedlist> - <listitem> - <para>Tout ce qui commence par un <literal>;</literal> est en - commentaire et est ignoré par Emacs.</para> - </listitem> - <listitem> - <para>La première ligne, - <literal>-*- Emacs-Lisp -*-</literal> permet - d'éditer le fichier <filename>.emacs</filename> - lui-même sous Emacs et de profiter de toutes les - fonctionnalitées liées à l'édition de - code Emacs Lisp. Emacs tente habituellement de deviner le type de - fichier en fonction de son nom, mais risque de ne pas y arriver - pour le fichier <filename>.emacs</filename>.</para> - </listitem> - <listitem> - <para>La touche <keysym>Tab</keysym> est utilisée pour - l'indentation dans certains modes, de sorte que si vous appuyez - sur cette touche cela indente la ligne de code courante. Si vous - voulez mettre un caractère <token>tabulation</token> dans - votre texte, enfoncer la touche <keysym>Ctrl</keysym> en - même temps que vous appuyez sur - <keysym>Tab</keysym>.</para> - </listitem> - <listitem> - <para>Ce fichier permet le mise en valeur syntaxique de code C, - C++, Perl, Lisp et Scheme, en déterminant le langage - d'après le nom du fichier édité.</para> - </listitem> - <listitem> - <para>Emacs a déjà une fonction - prédéfinie appelée - <function>next-error</function> - “<foreignphrase>erreur - suivante</foreignphrase>”. Dans la fenêtre de - résultats d'une compilation, cela vous permet d'aller - d'une erreur à la suivante avec <command>M-n</command>; - nous définissons la fonction complémentaire - <function>previous-error</function> - “<foreignphrase>erreur - précédente</foreignphrase>”, qui vous permet - de retourner à l'erreur précédente avec - <command>M-p</command>. Le plus sympathique est que - <command>C-c C-c</command> ouvrira le fichier source où - l'erreur s'est produite et ira à la ligne - concernée.</para> - </listitem> - <listitem> - <para>Nous activons la possibilité qu'a Emacs d'agir comme - serveur, de façon à ce que si vous travaillez hors - d'Emacs et voulez éditer un fichier, il vous suffise de - taper: -<screen>&prompt.user; <userinput>emacsclient <replaceable>nom_du_fichier</replaceable></userinput></screen> - pour pouvoir ensuite le modifier avec Emacs!<footnote><para>De - nombreux utilisateurs d'Emacs affectent à leur variable - d'environnement <systemitem class=environvar>EDITOR</systemitem> - la valeur <literal>emacsclient</literal> de façon à - ce que ce soit ce qui se produise chaque fois qu'ils ont besoin - d'éditer un fichier.</para></footnote>.</para> - </listitem> - </itemizedlist> - </para> - <example> - <title>Un exemple de fichier <filename>.emacs</filename></title> -<screen> -;; -*-Emacs-Lisp-*- - -;; Ce fichier est conçu pour être relu; la variable -;; first-time est utilisée pour éviter les problèmes -;; que cela pourra poser. -(defvar first-time t - "Indicateur signifiant que le fichier .emacs est lu pour la première fois") - -;; Méta -(global-set-key "\M- " 'set-mark-command) -(global-set-key "\M-\C-h" 'backward-kill-word) -(global-set-key "\M-\C-r" 'query-replace) -(global-set-key "\M-r" 'replace-string) -(global-set-key "\M-g" 'goto-line) -(global-set-key "\M-h" 'help-command) - -;; Touches fonction -(global-set-key [f1] 'manual-entry) -(global-set-key [f2] 'info) -(global-set-key [f3] 'repeat-complex-command) -(global-set-key [f4] 'advertised-undo) -(global-set-key [f5] 'eval-current-buffer) -(global-set-key [f6] 'buffer-menu) -(global-set-key [f7] 'other-window) -(global-set-key [f8] 'find-file) -(global-set-key [f9] 'save-buffer) -(global-set-key [f10] 'next-error) -(global-set-key [f11] 'compile) -(global-set-key [f12] 'grep) -(global-set-key [C-f1] 'compile) -(global-set-key [C-f2] 'grep) -(global-set-key [C-f3] 'next-error) -(global-set-key [C-f4] 'previous-error) -(global-set-key [C-f5] 'display-faces) -(global-set-key [C-f8] 'dired) -(global-set-key [C-f10] 'kill-compilation) - -;; Touches curseur -(global-set-key [up] "\C-p") -(global-set-key [down] "\C-n") -(global-set-key [left] "\C-b") -(global-set-key [right] "\C-f") -(global-set-key [home] "\C-a") -(global-set-key [end] "\C-e") -(global-set-key [prior] "\M-v") -(global-set-key [next] "\C-v") -(global-set-key [C-up] "\M-\C-b") -(global-set-key [C-down] "\M-\C-f") -(global-set-key [C-left] "\M-b") -(global-set-key [C-right] "\M-f") -(global-set-key [C-home] "\M-<") -(global-set-key [C-end] "\M->") -(global-set-key [C-prior] "\M-<") -(global-set-key [C-next] "\M->") - -;; Souris -(global-set-key [mouse-3] 'imenu) - -;; Divers -(global-set-key [C-tab] "\C-q\t") ; Ctrl tab = caractère tabulation. -(setq backup-by-copying-when-mismatch t) - -;; 'y' ou <CR> équivaut à yes, 'n' à no. -(fset 'yes-or-no-p 'y-or-n-p) - (define-key query-replace-map [return] 'act) - (define-key query-replace-map [?\C-m] 'act) - -;; Paquetages à charger -(require 'desktop) -(require 'tar-mode) - -;; Mode diff évolué -(autoload 'ediff-buffers "ediff" "Interface Emacs intelligente pour diff" t) -(autoload 'ediff-files "ediff" "Interface Emacs intelligente pour diff" t) -(autoload 'ediff-files-remote "ediff" - "Interface Emacs intelligente pour diff") -</screen> - -<screen> -(if first-time - (setq auto-mode-alist - (append '(("\\.cpp$" . c++-mode) - ("\\.hpp$" . c++-mode) - ("\\.lsp$" . lisp-mode) - ("\\.scm$" . scheme-mode) - ("\\.pl$" . perl-mode) - ) auto-mode-alist))) - -;; Mise en valeur syntaxique automatique -(defvar font-lock-auto-mode-list - (list 'c-mode 'c++-mode 'c++-c-mode 'emacs-lisp-mode 'lisp-mode 'perl-mode 'scheme-mode) - "Listes des modes à démarrer toujours avec mise en valeur") - -(defvar font-lock-mode-keyword-alist - '((c++-c-mode . c-font-lock-keywords) - (perl-mode . perl-font-lock-keywords)) - "Associations entre modes et mots-clés") - -(defun font-lock-auto-mode-select () - "Sélectionne automatiquement type de mise en valeur si le major mode courant est dans font-lock-auto-mode-list" - (if (memq major-mode font-lock-auto-mode-list) - (progn - (font-lock-mode t)) - ) - ) - -(global-set-key [M-f1] 'font-lock-fontify-buffer) - -;; Nouveau dabbrev -;(require 'new-dabbrev) -(setq dabbrev-always-check-other-buffers t) -(setq dabbrev-abbrev-char-regexp "\\sw\\|\\s_") -(add-hook 'emacs-lisp-mode-hook - '(lambda () - (set (make-local-variable 'dabbrev-case-fold-search) nil) - (set (make-local-variable 'dabbrev-case-replace) nil))) -(add-hook 'c-mode-hook - '(lambda () - (set (make-local-variable 'dabbrev-case-fold-search) nil) - (set (make-local-variable 'dabbrev-case-replace) nil))) -(add-hook 'text-mode-hook - '(lambda () - (set (make-local-variable 'dabbrev-case-fold-search) t) - (set (make-local-variable 'dabbrev-case-replace) t))) - -;; Mode C++ et C... -(defun my-c++-mode-hook () - (setq tab-width 4) - (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent) - (define-key c++-mode-map "\C-ce" 'c-comment-edit) - (setq c++-auto-hungry-initial-state 'none) - (setq c++-delete-function 'backward-delete-char) - (setq c++-tab-always-indent t) - (setq c-indent-level 4) - (setq c-continued-statement-offset 4) - (setq c++-empty-arglist-indent 4)) - -(defun my-c-mode-hook () - (setq tab-width 4) - (define-key c-mode-map "\C-m" 'reindent-then-newline-and-indent) - (define-key c-mode-map "\C-ce" 'c-comment-edit) - (setq c-auto-hungry-initial-state 'none) - (setq c-delete-function 'backward-delete-char) - (setq c-tab-always-indent t) -;; indentation style BSD - (setq c-indent-level 4) - (setq c-continued-statement-offset 4) - (setq c-brace-offset -4) - (setq c-argdecl-indent 0) - (setq c-label-offset -4)) - -;; Mode Perl... -(defun my-perl-mode-hook () - (setq tab-width 4) - (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent) - (setq perl-indent-level 4) - (setq perl-continued-statement-offset 4)) - -;; Mode Scheme... -(defun my-scheme-mode-hook () - (define-key scheme-mode-map "\C-m" 'reindent-then-newline-and-indent)) - -;; Mode Emacs-Lisp... -(defun my-lisp-mode-hook () - (define-key lisp-mode-map "\C-m" 'reindent-then-newline-and-indent) - (define-key lisp-mode-map "\C-i" 'lisp-indent-line) - (define-key lisp-mode-map "\C-j" 'eval-print-last-sexp)) - -;; Ajouts des précédents -(add-hook 'c++-mode-hook 'my-c++-mode-hook) -(add-hook 'c-mode-hook 'my-c-mode-hook) -(add-hook 'scheme-mode-hook 'my-scheme-mode-hook) -(add-hook 'emacs-lisp-mode-hook 'my-lisp-mode-hook) -(add-hook 'lisp-mode-hook 'my-lisp-mode-hook) -(add-hook 'perl-mode-hook 'my-perl-mode-hook) - -;; L'inverse de next-error -(defun previous-error (n) - "Aller à l'erreur de compilation précédente et au code correspondant." - (interactive "p") - (next-error (- n))) -</screen> - -<screen>;; Divers... -(transient-mark-mode 1) -(setq mark-even-if-inactive t) -(setq visible-bell nil) -(setq next-line-add-newlines nil) -(setq compile-command "make") -(setq suggest-key-bindings nil) -(put 'eval-expression 'disabled nil) -(put 'narrow-to-region 'disabled nil) -(put 'set-goal-column 'disabled nil) - -;; Recherche dans les archives Elisp -(autoload 'format-lisp-code-directory "lispdir" nil t) -(autoload 'lisp-dir-apropos "lispdir" nil t) -(autoload 'lisp-dir-retrieve "lispdir" nil t) -(autoload 'lisp-dir-verify "lispdir" nil t) - -;; Mise en valeur syntaxique -(defun my-make-face (face colour &optional bold) - "Créer une apparence pour une couleur, éventuellement en gras" - (make-face face) - (copy-face 'default face) - (set-face-foreground face colour) - (if bold (make-face-bold face)) - ) - -(if (eq window-system 'x) - (progn - (my-make-face 'blue "blue") - (my-make-face 'red "red") - (my-make-face 'green "dark green") - (setq font-lock-comment-face 'blue) - (setq font-lock-string-face 'bold) - (setq font-lock-type-face 'bold) - (setq font-lock-keyword-face 'bold) - (setq font-lock-function-name-face 'red) - (setq font-lock-doc-string-face 'green) - (add-hook 'find-file-hooks 'font-lock-auto-mode-select) - - (setq baud-rate 1000000) - (global-set-key "\C-cmm" 'menu-bar-mode) - (global-set-key "\C-cms" 'scroll-bar-mode) - (global-set-key [backspace] 'backward-delete-char) - ; (global-set-key [delete] 'delete-char) - (standard-display-european t) - (load-library "iso-transl"))) - -;; X11 ou PC écrivant directement à l'écran -(if window-system - (progn - ;; (global-set-key [M-f1] 'hilit-repaint-command) - ;; (global-set-key [M-f2] [?\C-u M-f1]) - (setq hilit-mode-enable-list - '(not text-mode c-mode c++-mode emacs-lisp-mode lisp-mode - scheme-mode) - hilit-auto-highlight nil - hilit-auto-rehighlight 'visible - hilit-inhibit-hooks nil - hilit-inhibit-rebinding t) - (require 'hilit19) - (require 'paren)) - (setq baud-rate 2400) ; Pour les connections série lentes - ) - -;; Terminal type TTY -(if (and (not window-system) - (not (equal system-type 'ms-dos))) - (progn - (if first-time - (progn - (keyboard-translate ?\C-h ?\C-?) - (keyboard-translate ?\C-? ?\C-h))))) - -;; Sous UNIX -(if (not (equal system-type 'ms-dos)) - (progn - (if first-time - (server-start)))) - -;; Ajouter ici toute modification d'apparence des caractères -(add-hook 'term-setup-hook 'my-term-setup-hook) -(defun my-term-setup-hook () - (if (eq window-system 'pc) - (progn -;; (set-face-background 'default "red") - ))) - -;; Restaurer le "bureau" - le faire le plus tard possible -(if first-time - (progn - (desktop-load-default) - (desktop-read))) - -;; Indique que le fichier a été lu au moins une fois -(setq first-time nil) - -;; Plus besoin de déboguer quoi que ce soit maintenant. -(setq debug-on-error nil) - -;; C'est tout -(message "OK, %s%s" (user-login-name) ".") -</screen> - </example> - </sect2> - <sect2> - <title>Permettre à Emacs de comprendre de nouveaux - langages</title> - <para>Bon, tout cela est très bien si vous ne voulez programmer - qu'avec les langages déjà introduits dans le fichier - <filename>.emacs</filename> (C, C++, Perl, Lisp et Scheme), mais que se - passe-t-il quand un nouveau langage appelé - “whizbang” fait son apparition, avec plein de nouvelles - fonctionnalités attrayantes?</para> - <para>La première chose à faire est de regarder si whizbang - s'accompagne de fichiers de configuration d'Emacs pour ce langage. - Ces fichiers ont généralement comme extension - <filename>.el</filename>, raccourci pour “Emacs Lisp”. - Par exemple, si whizbang est un logiciel porté pour FreeBSD, - ces fichiers peuvent être repérés par: -<screen>&prompt.user; <userinput>find /usr/ports/lang/whizbang -name "*.el" -print</userinput></screen> - et il faut les installer en le copiant dans le répertoire du - “site Lisp” d'Emacs. Sous FreeBSD 2.1.0-RELEASE, c'est le - répertoire - <filename>/usr/local/share/emacs/site-lisp</filename>.</para> - <para>Ainsi par exemple, si la commande précédente nous - donnait: -<screen>/usr/ports/lang/whizbang/work/misc/whizbang.el</screen> - nous le copierions alors comme suit: -<screen>&prompt.user; <userinput>cp /usr/ports/lang/whizbang/work/misc/whizbang.el /usr/local/share/emacs/site-lisp</userinput></screen> - </para> - <para>Décidons ensuite de l'extension que doivent avoir les - fichiers source whizbang. Supposons, pour les besoins de l'exemple, - qu'ils se terminent tous par <filename>.wiz</filename>. Il faut ajouter - une entrée à notre fichier <filename>.emacs</filename>, - pour être sûr qu'Emacs puisse utiliser les informations du - fichier <filename>whizbang.el</filename>.</para> - <para>Recherchons l'entrée <symbol>auto-mode-alist</symbol> dans - <filename>.emacs</filename> et ajoutons une ligne pour whizbang, par - exemple: - <programlisting> -<lineannotation>…</lineannotation> -("\\.lsp$" . lisp-mode) -("\\.wiz$" . whizbang-mode) -("\\.scm$" . scheme-mode) -<lineannotation>…</lineannotation> - </programlisting> - Cela signifie qu'Emacs passera automatiquement en - <function>whizbang-mode</function> à l'édition d'un - fichier d'extension <filename>.wiz</filename>.</para> - <para>Juste après, il y a une entrée - <symbol>font-lock-auto-mode-list</symbol>. Ajoutez-y - <function>whizbang-mode</function> comme ceci: - <programlisting> -;; Auto font-lock-mode -(defvar font-lock-auto-mode-list - (list 'c-mode 'c++-mode 'c++-c-mode 'emacs-lisp-mode 'whizbang-mode 'lisp-mode 'perl-mode 'scheme-mode) - "Listes des modes à démarrer toujours en font-lock-mode") - </programlisting> - Ce qui signifie qu'Emacs activera toujours le - <function>font-lock-mode</function> (i.e., la mise en valeur - syntaxique) à l'édition d'un fichier - <filename>.wiz</filename>.</para> - <para>Cela suffit. S'il y a autre chose que vous voulez automatiser - à l'ouverture d'un fichier <filename>.wiz</filename>, vous - pouvez ajouter un <function>whizbang-mode hook</function> (voyez mon - <function>my-scheme-mode-hook</function> pour avoir un exemple simple - qui ajoute un <function>auto-indent</function> - indentation - automatique).</para> - </sect2> - </sect1> - <sect1> - <title>A lire pour aller plus loin</title> - <itemizedlist> - <listitem> - <para>Brian Harvey et Matthew Wright <emphasis>Simply - Scheme</emphasis> MIT 1994.<!-- <br> --> ISBN 0-262-08226-8</para> - </listitem> - <listitem> - <para>Randall Schwartz <emphasis>Learning Perl</emphasis> O'Reilly - 1993<!-- <br> --> ISBN 1-56592-042-2</para> - </listitem> - <listitem> - <para>Patrick Henry Winston et Berthold Klaus Paul Horn - <emphasis>Lisp (3rd Edition)</emphasis> Addison-Wesley - 1989<!-- <br> --> ISBN 0-201-08319-1</para> - </listitem> - <listitem> - <para>Brian W. Kernighan et Rob Pike <emphasis>The Unix Programming - Environment</emphasis> Prentice-Hall 1984<!-- <br> --> ISBN - 0-13-937681-X</para> - </listitem> - <listitem> - <para>Brian W. Kernighan et Dennis M. Ritchie <emphasis>The C - Programming Language (2nd Edition)</emphasis> Prentice-Hall - 1988<!-- <br> --> ISBN 0-13-110362-8</para> - </listitem> - <listitem> - <para>Bjarne Stroustrup <emphasis>The C++ Programming - Language</emphasis> Addison-Wesley 1991<!-- <br> --> ISBN - 0-201-53992-6</para> - </listitem> - <listitem> - <para>W. Richard Stevens <emphasis>Advanced Programming in the Unix - Environment</emphasis> Addison-Wesley 1992<!-- <br> --> ISBN - 0-201-56317-7</para> - </listitem> - <listitem> - <para>W. Richard Stevens <emphasis>Unix Network Programming</emphasis> - Prentice-Hall 1990<!-- <br> --> ISBN 0-13-949876-1</para> - </listitem> - </itemizedlist> - </sect1> -</article> diff --git a/fr_FR.ISO8859-1/articles/zip-drive/Makefile b/fr_FR.ISO8859-1/articles/zip-drive/Makefile deleted file mode 100644 index 8617ec14d0..0000000000 --- a/fr_FR.ISO8859-1/articles/zip-drive/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $FreeBSD: doc/en_US.ISO_8859-1/articles/zip-drive/Makefile,v 1.1 2000/02/14 01:24:34 nik Exp $ - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/zip-drive/article.sgml b/fr_FR.ISO8859-1/articles/zip-drive/article.sgml deleted file mode 100644 index 4bb9089721..0000000000 --- a/fr_FR.ISO8859-1/articles/zip-drive/article.sgml +++ /dev/null @@ -1,304 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Version française : Michel Boucey - Original revision: n.nn - ---> -<!-- %man; --> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; -<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; -<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; -<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; -<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; - -<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; -<!ENTITY rel.current CDATA "3.2"> - - -]> - -<article lang="fr"> - <artheader> - <title>Les lecteurs ZIP</title> - - <authorgroup> - <author> - <firstname>Jason</firstname> - <surname>Bacon</surname> - - <affiliation> - <address><email>acadix@execpc.com</email></address> - </affiliation> - </author> - </authorgroup> - <abstract> - &abstract.license; - &abstract.disclaimer; - &trans.a.boucey; - </abstract> - </artheader> - - <sect1> - <title>Les bases au sujet des lecteurs ZIP</title> - - <para>Les disques ZIP sont des disques magnétiques amovibles de grande - capacité, accessibles en lecture et en écriture par les lecteurs ZIP de - marque IOMEGA. Les disques ZIP sont similaires aux disquettes, en - étant cependant bien plus rapides et en ayant une capacité bien - supérieure. Alors qu'une disquette comporte typiquement 1.44 Mo, - les disques ZIP sont disponibles en deux capacités, à savoir 100 Mo - et 250 Mo. Les lecteurs ZIP ne doivent pas être confondus avec - super-disquette, un lecteur de disquette de 120 Mo de capacité, - qui accepte aussi les traditionnelles disquettes de 1.44 Mo de - capacité.</para> - - <para>IOMEGA vends aussi un lecteur à la capacité et aux performances - supérieurs appelé JAZZ. Les lecteurs JAZZ sont livrés en 1 Go et 2 - Go de capacité.</para> - - <para>Les lecteurs ZIP sont disponibles en unité interne ou externe, - utilisant l'une des trois interfaces suivantes :</para> - - <orderedlist> - <listitem> - <para>L'interface SCSI (Small Computer Standard Interface) est - l'interface la plus rapide, la plus sophistiquée, la plus extensible, - et la plus chère. L'interface SCSI est utilisée sur tous types - d'ordinateur, du PC à la station de travail RISC, jusqu'aux - mini-ordinateurs, pour connecter tous types de périphériques - tels que lecteurs de disque, lecteurs de bande, scanners, etc. - Les lecteurs ZIP SCSI peuvent être internes ou externes, étant - entendu que votre adaptateur SCSI possède un connecteur - externe.</para> - - <note> - <para>Si vous utilisez un matériel SCSI externe, il est important - de ne jamais le connecter ni le déconnecter tout pendant - que l'ordinateur est en fonctionnement. Faire ceci risque de - causer des dommages aux systèmes de fichiers sur les disques - en cours de connection.</para> - </note> - - <para>Si vous souhaitez le maximum de performance et la plus grande - facilité d'installation, l'interface SCSI est le meilleur choix. Cela - demandera certainement l'adjonction d'un adaptateur SCSI, puisque la - majorité des PC (exception faite des serveurs hautes performances) - ne comportent pas d'origine de support SCSI. Chaque adaptateur peut - prendre en charge 7 ou 15 périphériques SCSI, selon le modèle.</para> - - <para>Chaque périphérique SCSI a son propre contrôleur, et ces - contrôleurs sont assez intelligents et bien standardisés (le - second `S' de SCSI est l'abréviation de Standard), ce qui signifie - , du point de vue du système d'exploitation, que tous les lecteurs de - disques SCSI sont quasiment identiques, ceci vaut aussi pour les - lecteurs de bandes, etc. Pour prendre en charge du matériel SCSI, le - système d'exploitation n'a besoin que d'un pilote (driver) propre à - l'adaptateur utilisé, et un pilote générique propre à chaque type de - matériel, à savoir un pilote pour disque SCSI, un pilote pour lecteur - de bande, et ainsi de suite. Il y a certains matériels SCSI qui - peuvent être mieux utilisés grâce à des pilotes spécialisés (comme par - exemple les lecteurs DAT), mais, généralement, ils fonctionnent bien - avec le pilote générique. Il se peut alors que le pilote générique ne prenne pas - en compte un certain nombre de caractèristiques spécifiques.</para> - - <para>Utiliser un lecteur ZIP SCSI consiste simplement à déterminer - quel fichier matériel dans le répertoire <filename>/dev</filename> - représente le lecteur ZIP. Pour ce faire, on peut observer les messages lors - de l'amorçage de BSD (ou dans <filename>/var/log/messages</filename> après le - démarrage), où vous verrez une ligne ressemblant fort à ceci:</para> - - <programlisting>da1: <IOMEGA ZIP 100 D.13> Removable Direct Access SCSI-2 Device</programlisting> - - <para>Cela signifie que le lecteur ZIP est représenté par le fichier - <filename>/dev/da1</filename>.</para> - </listitem> - - <listitem> - <para>L'interface IDE (Integrated Drive Electronics) est une interface - de lecteur de disque bon marché utilisée pour les ordinateurs de bureau. - La plus grande partie des matériels IDE est strictement interne.</para> - - <para>Les performances des lecteurs ZIP IDE sont comparables à celles des - lecteurs ZIP SCSI (l'interface IDE n'est pas aussi rapide que l'interface - SCSI, mais les performances des lecteurs ZIP sont limitées essentiellement - par leur mécanique, non pas à cause du bus SCSI).</para> - - <para>L'inconvénient de l'interface IDE sont les limites qu'elle impose. - La plupart des adaptateurs IDE ne peuvent prendre en charge que deux - périphériques, et ne sont en général pas conçues pour le long terme. Par - exemple, l'interface originelle IDE ne prend pas en charge les disques durs - comportant plus de 1024 cylindres, ce qui oblige de nombreuses personnes à - mettre à jour prématurément leurs équipements. Si vous prévoyez d'étendre - votre PC par l'adjonction d'un nouveau disque dur, d'un lecteur de bande, - ou d'un scanner, vous pouvez investir dans un adaptateur SCSI et ZIP SCSI - afin d'éviter des problèmes dans le futur.</para> - - <para>Les périphériques IDE sous FreeBSD sont préfixés par un <literal>w</literal>. - Par exemple, un disque dur IDE peut être <filename>/dev/wd0</filename>, - un lecteur de cdrom IDE (ATAPI) peut être <filename>/dev/wcd1</filename>, - et ainsi de suite.</para> - </listitem> - - <listitem> - <para>L'interface port parallèle est populaire grâce aux périphériques externes - portables tels que lecteurs ZIP externes, scanners, parce que potentiellement - chaque ordinateur possède un port parallèle standard (habituellement utilisé - pour les imprimantes). Ceci rend aisé pour tout un chacun le transfert de données - entre ordinateurs par simple le transport de ces lecteurs ZIP.</para> - - <para>Les performances seront en général moindre qu'avec un lecteur ZIP ou IDE, - du fait de la vitesse limitée du port parallèle. Cette vitesse varie - considérablement d'un ordinateur à l'autre, et peut souvent être configurée - à partir du système BIOS. Certaines machines demanderont une configuration du - BIOS pour pouvoir faire fonctionner le port parallèle en mode bidirectionnel - (Les ports parallèles ont seulement été conçus à l'origine pour fournir des - données sortantes vers les imprimantes)</para> - </listitem> - </orderedlist> - </sect1> - - <sect1> - <title>ZIP parallèle : Le pilote <devicename>vpo</devicename></title> - - <para>Pour utiliser un lecteur ZIP port parallèle sous FreeBSD, le pilote - <devicename>vpo</devicename> doit être configuré dans le noyau. Les lecteurs - ZIP port parallèle ont aussi un contrôleur SCSI intégré. Le pilote vpo authorise - le noyau FreeBSD à communiquer avec le contrôleur SCSI du lecteur ZIP au travers - du port parallèle.</para> - - <para>Depuis que le pilote vpo ne fait plus parti du noyau en standard (au - moins pour FreeBSD 3.2), vous avez à reconstruire le noyau afin de rendre - accessible ce périphérique. La démarche de reconstruction d'un noyau est indiquée - en détails dans une autre section. Les étapes suivantes indiquent brièvement - la démarche à suivre afin de mettre en état de marche le pilote vpo:</para> - - <orderedlist> - <listitem> - <para>Lancer <command>/stand/sysinstall</command>, et installer les sources - du noyau sur votre système.</para> - - <screen>&prompt.root; <userinput>cd /sys/i386/conf</userinput> -&prompt.root; <userinput>cp GENERIC MYKERNEL</userinput></screen> - - <para>Editer <filename>MYKERNEL</filename>, changer la ligne - <literal>ident</literal> en <literal>MYKERNEL</literal>, et décommenter - la ligne décrivant le pilote vpo.</para> - - <para>Si vous possédez un second port parallèle, vous pourriez avoir besoin - de copier la section dédiée à <literal>ppc0</literal> pour créer le - périphérique <literal>ppc1</literal>. Le second port parallèle utilise - généralement l'IRQ 5 et l'adresse 378. Seul l'IRQ est requise pour le - fichier de configuration.</para> - - <para>Si votre disque dur est un SCSI, vous courez au devant d'un problème - dans l'ordre de la détection des périphériques, qui entrainera le système - à tenter d'utiliser le lecteur ZIP en tant que périphérique racine. Le démarrage - échouera alors, à moins que vous ayez installé un système de fichiers racine - sur le disque ZIP! Dans ce cas, vous aurez besoin de forcer le noyau à lier - le disque SCSI racine à <filename>/dev/da0</filename>, à savoir le disque SCSI - racine. Cela assignera alors le disque ZIP au prochain disque SCSI disponible, - à savoir <literal>/dev/da1</literal>. Pour forcer votre disque dur SCSI en - <literal>da0</literal>, changer la ligne - - <programlisting>device da0</programlisting> - - en - - <programlisting>disk da0 at scbus0 target 0 unit 0</programlisting></para> - - <para>Vous aurez probablement à changer la cible afin de la faire correspondre à - l' ID SCSI de votre disque dur. vous devrez aussi forcer l'entrée scbus0 afin - de l'ajuster à votre contrôleur. Par exemple, si vous avez un contrôleur 15xx - de chez Adaptec, vous changerez - - <programlisting>controller scbus0</programlisting> - - en - - <programlisting>controller scbus0 at aha0</programlisting></para> - - <para>En dernier lieu, puisque vous étes en train d'éditer le fichier de - configuration du noyau, profitez-en pour ôter tous les pilotes inutiles. - Cela doit être fait avec de grandes précautions, et seulement si vous avez - assez confiance en vous en ce qui concerne les modifications du noyau. Ôter - les pilotes inutiles réduira la taille du noyau, laissant plus de mémoire disponible - à vos applications. Afin de déterminer les pilotes qui ne sont pas nécessaires, - allez à la fin du fichier <filename>/var/log/messages</filename>, et recherchez - les lignes comportant "not found" (non trouvé). Commenter alors ces périphériques - dans votre fichier de configuration (par un # en tête de ligne). Vous pouvez aussi - changer d'autres options afin de réduire la taille et d'accroître la rapidité de - votre noyau. Lisez la section concernant la reconstruction du noyau pour de - plus amples informations.</para> - </listitem> - - <listitem> - <para>Il est maintenant temps de compiler le noyau:</para> - - <screen>&prompt.root; <userinput>/usr/sbin/config MYKERNEL</userinput> -&prompt.root; <userinput>cd ../../compile/MYKERNEL</userinput> -&prompt.root; <userinput>make clean depend && make all install</userinput></screen> - </listitem> - </orderedlist> - - <para>Après le reconstruction du noyau, vous devez redémarrer. Assurez-vous - que le lecteur ZIP est connecté au port parallèle avant que le démarrage ne - commence. Vous devriez voir apparaître le lecteur ZIP parmi les messages de - démarrage en tant que périphérique vp0 ou vp1, selon le port parallèle auquel - le lecteur est rattaché. Vous devez pouvoir voir aussi à quel fichier - périphérique le lecteur ZIP a été associé. Ce sera <filename>/dev/da0</filename> - si vous n'avez pas d'autre disque SCSI dans le système, ou <filename>/dev/da1</filename> - si vous avez un disque dur SCSI à la racine de votre système.</para> - </sect1> - - <sect1> - <title>Monter les disques ZIP</title> - - <para>Pour accéder à un disque ZIP, vous avez simplement à le monter, comme - n'importe quel autre périphérique. Le système de fichiers est représenté - par la quatrième tranche sur le périphérique, que ce soit pour un disque ZIP - en SCSI ou en parallèle, vous devriez faire:</para> - - <screen>&prompt.root; <userinput>mount_msdos /dev/da1s4 /mnt</userinput></screen> - - <para>Pour les lecteurs ZIP IDE:</para> - - <screen>&prompt.root; <userinput>mount_msdos /dev/wd1s4 /mnt</userinput></screen> - - <para>Cela facilitera aussi les choses de mettre à jour <filename>/etc/fstab</filename> - afin de rendre le montage plus aisé. Ajoutez une ligne telle que la suivante, ajustée - à votre système: - - <programlisting>/dev/da1s4 /zip msdos rw,noauto 0 0</programlisting> - - et créer le répertoire <filename>/zip</filename>.</para> - - <para>Vous pouvez alors monter simplement en tapant - - <screen>&prompt.root; <userinput>mount /zip</userinput></screen> - - et démonter en entrant - - <screen>&prompt.root; <userinput>umount /zip</userinput></screen></para> - - <para>Pour savoir plus sur le format de <filename>/etc/fstab</filename>, - voir &man.fstab.5;.</para> - - <para>Vous pouvez aussi créer un système de fichiers FreeBSD sur un disque - ZIP en utilisant &man.newfs.8;. Cependant, le disque ne sera utilisable - que par un système FreeBSD, et peut-être par quelques clônes Unix - reconnaissant le système de fichiers FreeBSD (mais certainement pas par - DOS ou Windows).</para> - </sect1> -</article> - - - - - - |