diff options
author | Thomas Lange <lange@debian.org> | 2023-10-06 18:04:47 +0200 |
---|---|---|
committer | Thomas Lange <lange@debian.org> | 2023-10-06 18:04:47 +0200 |
commit | 5a291ecd6699b496150fcad06504d6d28b554755 (patch) | |
tree | 1fe9c2731765d2ef093496fd5f4ff377a0b5d701 /french/international | |
parent | c10246023456c1541141c3d1049a2083bbc21da1 (diff) |
remove old unused files
Diffstat (limited to 'french/international')
34 files changed, 0 insertions, 26078 deletions
diff --git a/french/international/french/translations/debian-guide_fr-1.0.sgml b/french/international/french/translations/debian-guide_fr-1.0.sgml deleted file mode 100644 index 465a3448aba..00000000000 --- a/french/international/french/translations/debian-guide_fr-1.0.sgml +++ /dev/null @@ -1,8390 +0,0 @@ -<!doctype debiandoc system> -<book> -<title>Guide d'introduction à Debian GNU-Linux</title> - -<author>John Goerzen et Ossama Othman</author> -<author>Traduction française de Patrice Karatchentzeff -<email>p.karatchentzeff@free.fr</email> - -<version>Traduction du document du 2 octobre 2000</version> -<abstract> -Ceci est la version française du guide d'introduction à la -distribution Debian GNU-Linux. -</abstract> -<copyright> -Copyright © 1998, 1999, 2000 Software in the Public Interest, Inc - -<p> -Il est autorisé de faire et de distribuer des copies modifiées du -présent document sous les conditions de reproduction déclarées dans la -« GNU General Public License » ainsi que dans tous les -autres paragraphes où les conditions particulières de -<em>copyright</em> s'appliquent, et que le résultat dérivé du -précédent manuel dans son intégralité soit redistribué dans les mêmes -conditions. - -<p> -Il est autorisé de faire et de distribuer des copies traduites de ce -manuel dans d'autres langues dans les conditions des versions -modifiées. La « GNU General Public License » peut être -incluse en version traduite approuvée par la <em>Free Software -foundation</em> à la place de la version anglaise du document. - -<p> -Vous pouvez comme vous le souhaîter distribuer des versions exactes ou -modifiées du présent document en respectant les termes de la -« GNU General Public License », à l'exception des sections -clairement marquées avec un <em>copyright</em> séparé. -</copyright> - -<toc sect> -<chapt> Remerciements -<p> -De nombreuses personnes ont contribué à ce manuel. Nous aimerions toutes -les remercier et nous allons essayer ici. -<p> -En espérant n'oublier personne parmi les nombreux collaborateurs à ce -manuel, nous remercions : Havoc Pennington, Ardo van Rangelooij, -Larry Greenfield, Thalia Hooker, Day Irmiter, James Treacy, Graig -Sawyer, Oliver Elphick, Ivan E. Moore, Eric Fischer, Mike Touloumtzis -et le <em>Projet de documentation de Linux</em> pour leur travail sur -ce qu'est devenu le <em>Guide d'introduction à Debian GNU-Linux</em>. -<p> -Nous remercions Richard Stallman de la <em>Free Software -Foundation</em> pour ses conseils et pour l'édition. -<p> -Nous disons un gros merci à Bruce Perens, Sven Rudolph, Igor Grobman, -James Treacy, Adam Di Carlo, Tapio Lehtonen et Stéphane Bortzmeyer -pour leurs travaux sur ce qui allait devenir une collection de -documents d'installation. -<p> -Enfin, nous souhaitons vivement remercier les centaines de développeur -Debian et que les milliers d'auteurs de logiciels libres qui nous ont -donnés matière à penser et à écrire. -</chapt> -<chapt> Préface - -<p> - <em>« La liberté est la plus radicale de toutes les idées. »</em> -<p> -Cette citation de Nathaniel Branden décrit bien, à nos yeux, le mouvement du -logiciel libre. En l'espace de quelques décennies, à peine, l'informatique a -transformé la vie de tout un pan de l'humanité. Par notre engagement dans le -mouvement du logiciel libre, nous accentuons ce changement en offrant au plus -grand nombre d'individus et de communautés la possibilité d'accéder -pleinement aux ressources logicielles qui, dès lors, ne sont plus la -chasse gardée de certains éditeurs et de leurs développeurs. Composants -essentiels de cet objectif, ce livre et ce cédérom contiennent un précieux -lot de logiciels libres, plus d'un millier de paquets, dont le plus populaire -des serveurs web. Vous pouvez utiliser ces logiciels pour n'importe quoi, du -dessin à la gestion de bases de données SQL. -<p> -La révolution de Logiciel Libre a pris l'industrie par surprise. Linux, -conçu à partir de zéro il y a moins de dix ans, est devenu le noyau -favori des auteurs de logiciels libres. Les idées et les expériences -accumulées depuis ont propulsé Linux et les outils GNU de la <em>Free -Sofware Foundation</em> aux avant-postes partout dans le monde. Des -systèmes libres, comme celui de Debian GNU-Linux, rassemblent des -milliers d'applications. Et qu'on ne s'y trompe pas, leur stabilité et -leur puissance dépassent celles de bien des systèmes vedettes de -l'industrie traditionnelle. -<p> -De nos jours, le système GNU-Linux joue un rôle dominant dans les -serveurs Internet, parmi les fournisseurs d'accès, dans les -universités, parmi les passionnés et dans le monde de la recherche -informatique. Le système Debian GNU-Linux a mis la puissance des -logiciels libres au service de tous, des ordinateurs portables aux -engins spatiaux. -<p> -De très nombreuses entreprises dans le monde ont connu les -satisfactions et les avantages qui découlent de l'utilisation de -logiciels libres. Cette puissance et cette stabilité impressionnantes -de même que la possibilité de communiquer directement avec l'auteur -des programmes que vous utilisez, la capacité de les modifier -à volonté, si, bien sûr, vous avez appris à le faire, et le support -technique convivial que vous pouvez obtenir en ligne, en rien -comparable, se combinent pour transformer l'usage au quotidien d'un -ordinateur en une expérience pleine de découvertes et, surprise ! -d'émotions. -<p> -Entrer dans l'univers du logiciel libre, c'est sûrement la meilleure -chose que vous ayez faite avec votre ordinateur; le faire à partir -d'une Debian GNU-Linux, c'est d'autant mieux : elle est puissante, -robuste, très bien documentée et, en prime, ludique ! -<p> -Bienvenue à la révolution ! - <p> - - John Goerzen. -</chapt> - <chapt> Introduction - -<p> -Nous sommes heureux d'avoir la chance de vous présenter Debian. Avant -d'entamer la discussion sur GNU-Linux, nous aimerions d'abord parler -un peu de ce qu'est exactement Debian - ce qu'elle fait et qu'elle -sont ses buts dans le monde vaste du Logiciel Libre. - -<sect> Qu'est-ce que Debian ? - -<p> -Debian est un système d'exploitation (OS pour <em>Operating -System</em>) libre pour votre ordinateur. Un système d'exploitation -est un rassemblement de programmes élémentaires et d'utilitaires qui -font fonctionner votre ordinateur. Au coeur du système se trouve le -noyau. Le noyau est le programme le plus fondamental de votre -ordinateur. Il s'occupe de toutes les tâches élémentaires et permet de -lancer les autres programmes. Debian utilise le noyau Linux, un -ensemble de logiciels entièrement libres initié par Linus Torvalds et -supportant des milliers de logiciels dans le monde. Une part -importante des outils de base qui forment le système d'exploitation -vient du projet GNU (<em>https://www.gnu.org/</em>) et ces outils -sont aussi libres. - -<p> -Une autre facette d'un système d'exploitation est la partie logiciels -applicatifs: ce sont les programmes qui vous aident dans votre travail, de -l'édition de documents en passant par les jeux jusqu'à l'écriture -d'autres programmes. Debian rassemble plus de 1500 paquets (ce sont -des logiciels pré-empaquetés dans un format pratique pour -l'installation sur votre machine) tous libres. - -<p> -Le système Debian ressemble un peu à une pyramide. À la base se trouve -le noyau Linux. Juste au-dessus se trouve les outils de base, la -plupart en provenance du mouvement GNU. Ensuite, on trouve les -logiciels applicatifs que vous utilisez sur votre ordinateur; la -plupart d'entre eux sont aussi d'origine GNU. Les développeurs Debian -agissent comme des architectes et des coordinateurs: ils organisent -avec soin le système en ajustant l'ensemble dans un système -d'exploitation cohérent et stable: Debian GNU-Linux. - -<p> -La philosophie d'un système GNU-Linux est de répartir ses -fonctionnalités en un ensemble de petites tâches élémentaires. De -cette façon, il est aisé d'ajouter une nouvelle fonctionnalité en -combinant les petits bouts de programmes de nouvelle façon. Debian est -un jeu de construction: vous pouvez construire toutes sortes de choses -avec. - -<p> -Lorsque vous utilisez votre système d'exploitation, vous désirez -réduire la quantité de travail pour effectuer une tâche donnée. Debian -vous fournit quantité d'outils pour vous aider mais seulement si vous -connaissez ce que font ces outils. Perdre une heure à faire -fonctionner quelque chose pour l'abandonner ensuite n'est pas très -productif. Ce guide a pour but de vous apprendre ces outils de base -qui sont le coeur de Debian: quels outils utilisés dans certains cas -et comment les combiner. - -<sect1> Qui est l'auteur de Debian ? - -<p> -Debian est un projet de développement à travers Internet basé sur le -volontariat. Il y a plusieurs centaines de volontaires travaillant -dessus. La plupart sont responsables d'un petit nombre de paquets de -logiciel et connaissent très bien les logiciels qu'ils empaquètent. - -<p> -Ces volontaires travaillent de concert en respectant un ensemble de -directives dans la façon d'assembler un paquet. Ces directives sont -développées en coopération sur Internet lors de discussions dans des -listes de diffusion. -</sect1> -</sect> - -<sect> Un système d'exploitation multi-tâches et multi-utilisateurs. - -<p> -Comme nous l'avons précédemment mentionné dans la section 3.1, -l'architecture de Debian GNU-Linux vient directement de celle -d'Unix. À la différence des systèmes d'exploitation comme le DOS, -Windows et MacOS, on trouve habituellement le système GNU-Linux sur de -grands serveurs et des systèmes multi-utilisateurs. - -<p> -Ceci veut donc dire que Debian possède des avantages que les -précédents systèmes n'ont pas. Il autorise un nombre important de -personnes à utiliser le système en même temps, tant que chaque -utilisateur possède son propre terminal. <footnote>Un terminal est un -simple écran et clavier qui sont connectés à l'ordinateur à travers le -réseau, par l'intermédiaire d'un modem, ou directement. Votre clavier -et l'écran forment alors un terminal qui est directement rattaché -à l'ordinateur. Ce terminal spécial est souvent appelé -<em>console</em></footnote> Pour autoriser de nombreux utilisateurs -à travailler simultanément, Debian doit gérer de nombreux programmes et -applications en même temps. Cette faculté s'appelle le -<em>multi-tâches</em>. - -<p> -Une grande partie de la puissance (et de la complexité) des systèmes -GNU-Linux proviennent de ces deux fonctionnalités. Par exemple, le -système doit avoir une solution pour empêcher un utilisateur de -détruire accidentellement les fichiers d'un autre utilisateur. Le -système d'exploitation doit aussi coordonner les nombreux programmes -tournant en même temps et s'assurer qu'ils n'utilisent pas la même -ressource, comme le disque dur, ensemble. - -<p> -Si vous gardez à l'esprit la raison pour laquelle Debian a été créée, -de nombreux de ses aspects vont alors avoir plus de sens. Vous -apprendrez à tirer parti de la puissance de ces fonctionnalités. -</sect> - - -<sect> Qu'est-ce qu'un logiciel libre ? - -<p> -Lorsque les développeurs et les utilisateurs de Debian parlent de -logiciels libres, ils pensent à liberté plutôt qu'à gratuité. -<footnote>NDT: En anglais, le <em>free</em> de <em>free -software</em> veut aussi bien dire libre que gratuit d'où une -confusion souvent ignorée du profane entre logiciel libre et -gratuit.</footnote> Debian est libre dans le sens où vous êtes libre -de la modifier et de la redistribuer, et vous aurez toujours accès au -code source pour le faire. Les « Directives du Logiciel Libre de -Debian » -(<em>https://www.debian.org/social_contract#guidelines</em>) décrivent -avec plus de détails ce que Debian appelle exactement libre. La <em> -Free Software Foundation </em>, (<em>http://www.fsf.org</em>), -à l'origine du projet GNU, est aussi une excellente source -d'information. Vous pouvez trouver plus de détails sur le libre sur -le site web de Debian (<em>https://www.debian.org</em>). Un des travaux -les plus connus en la matière est un essai de Richard Stallman -« Why Software should be free<footnote>Pourquoi les logiciels -devraient être libres ?</footnote> ? » -(<em>http://www.fsf.org/philosophy/shoudbefree.html</em>). Jetez-y -donc un coup d'oeil pour connaître les raisons pour lesquelles nous -supportons les logiciels libres comme nous le faisons. Récemment, des -gens ont commencé à appeler les logiciels libres des logiciels -<em>Open Source</em> (à code ouvert); ces deux termes sont -interchangeables. - -<p> -Il se peut que vous vous demandiez pourquoi certaines personnes -prennent sur leur temps libre et passent des heures à écrire des -logiciels et les empaqueter soigneusement juste pour les -donner. Les réponses à cette question sont aussi variées que les -contributeurs. - -<p> -Beaucoup croient au partage de l'information et à la liberté de -coopérer avec quelqu'un d'autre et ils pensent que le logiciel libre -encourage cette pratique. Une longue tradition de mise en avant de ces -valeurs, parfois appelée l'Éthique du Hacker<footnote> Notez bien que -le terme « <em>hacker</em> » ne doit pas être confondu avec -celui de « <em>cracker</em> ». Pour faire simple, un -<em>hacker</em> est un être bienveillant tandis qu'un <em>cracker</em> -est malveillant. Les films et les autres formes de média utilisent la -plupart du temps à tord le terme <em>hacker</em> au lieu de celui de -<em>cracker</em></footnote>, a commencé dans les années cinquante. Le -Projet Debian GNU-Linux a été fondé sur les bases de l'éthique de -liberté des logiciels libres, sur le partage et la coopération. - -<p> -D'autres désirent apprendre davantage sur les ordinateurs. De plus en -plus de gens recherchent des solutions pour éviter les prix sans cesse -croissants des logiciels propriétaires. C'est une communauté -grandissante d'utilisateurs qui ne cesse d'apprécier tous les -logiciels libres qu'elle a reçu d'autres personnes. - -<p> -De nombreuses personnes dans les universités créent des logiciels -libre pour favoriser le résultat de leur recherche dans des domaines -non exploités. Certaines entreprises aident à maintenir certains -logiciels libres et ont ainsi leur mot à dire dans la direction du -développement - il n'y a pas de solutions plus rapide pour obtenir une -nouvelle fonctionnalité que de l'implémenter vous-même ou d'embaucher -un consultant pour le faire. Les entreprises sont aussi intéressées -par la plus grande souplesse et la possibilité de choisir entre -plusieurs vendeurs pour le support. - -<p> -Quelques autres personnes voient les logiciels libres comme un bien -social qui démocratise l'accès à l'information et prévient d'une -centralisation excessive de l'infrastructure de l'information -mondial. Bien sûr, beaucoup d'entre nous trouve cela tout simplement -sympa. - -<p> -Debian est tant rattachée au logiciel libre que nous avons pensé qu'il -serait bien de tout formaliser dans un document. Notre <em>Contrat -Social</em> (<em>https://www.debian.org/social_contract</em>) nous -promet que Debian sera toujours composée à 100% de logiciels -libres. Lorsque vous installez un paquet de la distribution -<em>main</em> de Debian, vous pouvez être certain qu'il respecte nos -Directives du Logiciel Libre. - -<p> -Bien que Debian croit aux logiciels libres, il y a des cas où -certaines personnes désirent ajouter des logiciels propriétaires sur -leurs machines. Dans la mesure du possible, Debian le supporte; bien -que les logiciels propriétaires ne sont pas inclus dans la partie -<em>main</em> de la distribution Debian, on peut parfois les trouver -sur le site ftp dans le répertoire <em>non free</em>. Et il y a un -nombre grossissant de paquets dont le but unique est d'installer des -logiciels propriétaires que nous ne sommes pas autorisés nous-mêmes -à distribuer ! - -<p> -Il est important de bien distinguer les logiciels <em>commerciaux</em> -de ceux <em>propriétaires</em>. Les logiciels propriétaires ne sont -pas des logiciels libres; les logiciels commerciaux sont des logiciels -vendus contre de l'argent. Debian autorise les logiciels commerciaux, -mais pas les propriétaires, à faire partie de la distribution -<em>main</em>. Rappelez-vous bien que l'expression <em>logiciel -libre</em> ne se rapporte pas au prix; il est parfaitement possible de -vendre un logiciel libre. Pour un peu plus de clarification sur la -terminologie employée, voir <em>http://www.fsf.org/philosophy/categories.html</em>. -</sect> - -<sect> Au sujet de ce livre - -<p> -Ce livre a été conçu pour les lecteurs fraîchement arrivés -à Debian GNU-Linux. Il n'est pas nécessaire d'avoir des connaissances -sur le système GNU-Linux ou tout autre système de type Unix mais il -est nécessaire d'avoir quelques connaissances de base sur les -ordinateurs et leurs composants. Il vous faut connaître les -différentes parties d'un ordinateur et ce que l'on peut faire avec. - -<p> -De façon générale, ce tutoriel essaie de vous aider à comprendre ce -qui se passe à l'intérieur d'un système Debian. L'idée est de vous -rendre apte à résoudre de nouveaux problèmes et de tirer le meilleur -parti de votre ordinateur. Ainsi, vous rencontrerez plein de théories -et de faits amusants dans les différents aspects des « How -To<footnote>Littéralement: Comment faire...</footnote> » de ce -manuel. - -<p> -Nous aimerions recevoir vos commentaires sur ce livre ! Vous pouvez -joindre les auteurs debian-guide_fr-1.0_chap1.sgml -à <em>debian-guide@complete.org</em>. Nous sommes tout particulièrement -intéressés par le fait de savoir comment ce livre a pu vous aider et -comment le rendre meilleur. Si vous avez des commentaires ou bien que -vous pensez que ce livre est la meilleure chose depuis l'apparition du -pain brioché, alors, s'il vous plaît, envoyez-nous un courriel. - -<p> -N'envoyez pas s'il vous plaît de questions techniques aux auteurs sur -Debian car il y a plein de forum pour cela. Allez au chapitre 17 pour -obtenir de l'information ou de l'aide. N'envoyez des courriels qu'au -sujet du livre à proprement parlé à l'adresse ci-dessus. - - -<sect1> Comment lire ce livre - -<p> -La meilleure façon d'apprendre n'importe quel programme informatique -est de l'utiliser. La plupart des gens pensent que se contenter de -lire un livre sans utiliser le programme n'est pas bénéfique. La -meilleur voie pour apprendre Unix et GNU-Linux est encore de les -utiliser. Utilisez GNU-Linux pour tout ce que vous pouvez. Sentez vous -libre d'expérimenter ! - -<p> -Debian n'est pas aussi intuitive que certains autres systèmes -d'exploitation. Il vous sera certainement nécessaire de lire au moins -quelques chapitres de ce livre. La puissance et la complexité de -GNU-Linux le rendent difficile au premier abord mais bien plus -rentable par la suite. - -<p> -Pour apprendre, nous vous suggérons de lire un petit peu, et de -jouer ensuite un petit peu. Continuez de bidouiller jusqu'à ce que -vous soyez à l'aise avec les concepts, et alors seulement poursuivez -la lecture du livre. Vous trouverez une variété importante de sujets -traités parmi lesquels certains vous intéresseront. Après quelque -temps, vous serez assez confiant pour utiliser des commandes sans -savoir exactement ce qu'elles font. Ce sera une bonne chose. - -<p> -Si jamais vous vous trompez en tapant une commande ou que ne savez pas -comment sortir d'un programme, appuyez sur CTRL-c (la touche -<em>Ctrl</em> et la lettre minuscule <em>c</em> doivent être pressées -simultanément). Cela stoppe la plupart du temps le programme. -</sect1> - -<sect1> Conventions typographiques - -<p> -Avant d'aller plus en avant, il est important de se familiariser avec -les conventions typographiques utilisées dans ce livre. - -<p> -Quand vous aurez à presser simultanément plusieurs touches, une -notation comme CTRL-a sera utilisée. Cela signifie « pressez la touche -<em>Ctrl</em> et pressez la touche de la lettre minuscule <em>a</em> -». Certains claviers ont à la fois la touche <em>Alt</em> et -<em>Meta</em>; la plupart des ordinateurs n'ont que la -touche <em>Alt</em> mais celle-ci va simuler le comportement -de la touche <em>Meta</em>. Donc, si vous n'avez pas de touche -<em>Meta</em>, utilisez la touche <em>Alt</em> à la place. - -<p> -Les touches comme <em>Alt</em> et <em>Meta</em> sont appelées des -<em>modificateur</em> parce qu'elle change le mécanisme des touches -standard comme la lettre <em>A</em>. Parfois, il est nécessaire -d'avoir recours à plusieurs modificateurs simultanément. Par exemple, -<em>Meta-Ctrl-a</em> signifie d'appuyer simultanément sur les touches -<em>Meta</em>, <em>Ctrl</em> et <em>a</em> minuscule. - -<p> -Quelques touches ont une notation spéciale. Par exemple, -<em>Entrée</em> (<em>RET</em>, la touche avec une flèche descendante et -allant à gauche), <em>Suppr</em> (<em>Suppr</em> ou quelque fois le -<em>retour arrière</em> (la touche avec une flèche vers la gauche)), -<em>Échap</em> (<em>Échappement</em> ou <em>Esc</em>). Ces touches -portent généralement un nom bien explicite. - -<p> -Les espaces utilisés dans les expressions signifient d'appuyer sur les -touches séquentiellement. Par exemple, <em>CTRL-a x RET</em> signifie -d'appuyer simultanément sur <em>Ctrl</em> et <em>a</em>, puis sur la -lettre <em>x</em> et enfin sur la touche <em>Entrée</em>. - -<p> -Dans certaines sections, le texte en <em>caractère gras</em> servira -à marquer le texte de l'utilisateur, celui en <em>italique</em> des -commentaires sur un point donné de la partie et tout autre type de -texte servira au renvoi de la commande. Pour certaines commandes très -courtes, vous pourrez rencontrer un autre format, en surimpression -avec un <prgn>espacement fixe</prgn>. -</sect1> -</sect> -</chapt> - -<chapt> Bien débuter - -<p> -<em>« Une journée de plusieurs centaines de kilomètres doit -commencer par un petit pas » - Lao-Tseu</em> - -<p> -Maintenant que vous avez vu les idées et la philosophie se cachant -derrière Linux et Debian, il est temps de l'installer sur votre -matériel ! Nous allons commencer par parler des préparatifs -à l'installation de Debian, notamment en partitionnant le disque et -finir par comment démarrer l'installation de votre système. - -<sect> Matériel supporté - -<p> -Debian n'impose pas un matériel requis, si ce n'est celui supporté -par le noyau Linux et les outils GNU. - -<p> -Plutôt que de tenter de décrire toutes les différentes configurations -matérielles qui sont supportées sur la plateforme PC, cette section -contient des informations générales et des pointeurs où trouver de -l'information supplémentaire. - -<p> -Il y a deux excellents endroits pour vérifier des informations -détaillées. La liste du matériel supporté par Debian -(<em>https://www.debian.org/releases/slink/i386/ch-hardware-req.en.html</em>) -et le HOWTO du Projet de Documentation Linux -<em>Compatibility-HOWTO</em> -(<em>http://metalba.unc.edu/LDP/HOWTO/Hardware-HOWTO.html</em>). Pour -des informations sur le support des cartes vidéos, vous pouvez aussi -jeter un coup d'oeil à <em>XFree86</em> -(<em>http://www.xfree86.org/</em>) sur leur site web. - -<sect1> Espace disque et de mémoire - -<p> -Vous devez avoir au minimum 4 Mo de mémoire et 35 Mo d'espace -disponible sur votre disque. Si vous désirez installer un nombre -raisonnable de logiciels, avec en particulier le système X Window, et -quelques programmes de développement ainsi que des bibliothèques, vous -aurez certainement besoin d'au moins 300 Mo. Pour une installation -complète, il vous faudra 800 Mo. Pour installer <em>tous</em> les -paquets de Debian, il vous faudra probablement environ 2 -Go. Actuellement, tout installer n'a pas de sens car certains paquets -procurent le même service. - -</sect1> -</sect> - -<sect> Avant de commencer - -<p> -Avant de commencer, assurez-vous bien de sauvegarder toutes vos -données présentes sur le système. La procédure d'installation peut -détruire toutes les données d'un disque dur ! Les programmes utilisés -lors de l'installation sont assez sûrs et nombreux ont des années -d'existence et d'exploitation; mais un faux mouvement de votre part -peut vous coûter cher. Même après avoir sauvegardé vos données, -réfléchissez bien lors de vos réponses et de vos actions. Deux minutes -de réflexion peuvent vous épargner des heures de travail non -nécessaire. - -<p> -Debian s'efforce au mieux de partager la place avec un ou plusieurs -autres systèmes d'exploitation. Si vous prévoyez cette option, -assurez-vous d'avoir le cédérom original ou les disquettes pour -pouvoir réinstaller les autres systèmes d'exploitation. Si vous -repartitionnez votre disque de boot, il se peut que vous ayez -à réinstaller le système d'amorçage<footnote><em>boot loader</em> en -anglais. C'est le responsable de la procédure de choix du système -d'exploitation au démarrage.</footnote> ou le système dans son -intégralité. - -<sect1> Les informations nécessaires - -<p> -Si votre ordinateur est connecté à un réseau vingt-quatre heures sur -vingt-quatre (<em>i-e</em> par une connexion Ethernet ou similaire et -non par une connexion <prgn>ppp</prgn>), vous devez demander à votre -administrateur les informations suivantes: - -<p> -<list> -<item> Votre nom d'hôte (« <em>hostname</em> »); -<item> Votre nom de domaine (« <em>domain name</em> »); -<item> L'adresse IP de votre ordinateur; -<item> L'adresse IP de votre réseau; -<item> Le masque réseau utilisé par votre réseau; -<item> L'adresse de votre réseau de diffusion en usage sur votre réseau (« <em>broadcast</em> »); -<item> L'adresse IP de la passerelle de routage par défaut (« <em>gateway</em> »), si votre réseau en possède une; -<item> Le système de votre réseau que vous devrez utiliser comme serveur DNS; -<item> La façon dont vous vous connectez au réseau via <em>ethernet</em>; -<item> Vérifiez si votre interface <em>Ethernet</em> est de type PCMCIA, et dans l'affirmative, relevez le type du contrôleur. -</list> - -<p> -Si votre seule connexion réseau est celle du téléphone via -<prgn>ppp</prgn>, ou tout autre type équivalent de connexion, il n'est -pas nécessaire de s'occuper du paramètrage réseau avant la fin -d'installation. Voir la partie 13.1 concernant le paramètrage d'une -connexion <prgn>ppp</prgn> sous Debian. -</sect1> -</sect> - -<sect> Partitionner son disque dur - -<p> -Avant d'installer la Debian sur votre ordinateur, il est généralement -de bon ton de planifier à l'avance l'organisation de votre disque -dur. Une partie de ce travail consiste à partitionner le disque. - -<sect1> Travaux préliminaires - -<p> -Le partitionnement d'un disque consiste simplement au fait de le -diviser en parties. Chaque partie sera indépendante des autres. C'est -un peu comme ajouter des murs à l'intérieur d'une maison: après, -décorer une pièce n'affecte pas l'aspect des autres pièces. - -<p> -Si vous avez déjà un système d'exploitation sur votre disque (Windows -95, Windows NT, DOS, etc.) et que vous désirez installer Debian -GNU-Linux au même endroit, il sera probablement nécessaire de -repartitionner le disque. De manière générale, transformer une -partition contenant déjà un système de fichier détruit toutes les -informations le contenant. Ainsi, vous devez absolument faire une -sauvegarde de toutes vos données avant tout repartitionnement. Pour -reprendre l'analogie avec la maison, vous devrez probablement retirer -tous les ornements d'un mur avant de le déplacer ou sinon, vous -risqueriez des les endommager. Heureusement, il existe une possibilité -pour certains utilisateurs; voir partie 4.3.6 pour plus -d'informations. - -<p> -Dans le cas le plus simple, le système GNU-Linux demande au moins une -partition pour fonctionner. Vous pouvez avoir une seule partition -contenant tout le système d'exploitation et vos fichiers -personnels. De nombreuses personnes optent pour un partitionnement -plus important pour le système GNU-Linux. Il y a deux raisons de -subdiviser son système avec un nombre plus important de petites -partitions. La première est pour une raison de sécurité. Si quelque -chose arrive et corrompt le système de fichiers, seule une partition -est généralement affectée. Ainsi, il n'est simplement nécessaire que -de remplacer la portion incriminée (à l'aide des sauvegardes que vous -avez pris soin d'effectuer consciencieusement). Au minimum, vous allez -devoir créer ce que l'on appelle généralement une <em>partition -root</em> ou <em>partition racine</em>. Elle contient les composants -essentiels du système. Si une autre partition est corrompue, vous -pouvez toujours amorcer votre système pour essayer de le réparer. Cela -peut vous épargner les ennuis d'une réinstallation complète du système -à partir de zéro. - -<p> -La seconde raison est généralement plus critique dans un environnement -commercial, mais elle dépend énormément de la finalité du -système. Supposons que quelque chose échappe à tout contrôle et -qu'elle se mette à dévorer l'espace disque disponible. Si le programme -en question a des privilège de super-utilisateur (<em>root</em>), le -système lui réservant un pourcentage du disque non disponible pour -les utilisateurs, vous pouvez tout à coup vous retrouver sans -ressource disque. Ce n'est vraiment pas une bonne idée étant donné que -le système en a besoin tout le temps (au moins au travers de la zone -d'échange<footnote>plus communément appelée le -<em>swap</em>.</footnote>) pour de nombreux usages. Par exemple, des -courriels non sollicités, comme le <em>spam</em>, peuvent -rapidement saturer une partition. En utilisant de nombreuses -partitions, vous pouvez vous protéger de ce genre de problème. Pour -garder l'exemple du courrier électronique, placer le répertoire -<em>/var/spool/mail</em> dans sa propre partition n'empêchera pas le -système de continuer à fonctionner, même en cas de saturation par -<em>spam</em>. - -<p> -Une autre raison apparaît lorsque vous avez des disques IDE de grande -capacité et que vous n'utilisez ni le mode LBA ni un pilote de -surcharge.<footnote>Voir le manuel de votre disque pour une -description de ces fonctionnalités.</footnote> Dans ce cas, il est -nécessaire de placer la partition racine à l'intérieur des 1024 -premiers cylindres de votre disque dur, ce qui représente généralement -environ 524 méga-octets. Voir la partie 4.3.3 pour obtenir plus -d'informations à ce sujet. - -<p> -La plupart des gens pensent qu'une partition d'échange est aussi une -nécessité absolue alors que ce n'est pas exact. Le <em>swap</em> est -une zone de stockage du système d'exploitation qui l'utilise comme une -<em>mémoire virtuelle</em> en complément de la mémoire vive. La placer -dans une partition séparée offre des performances accrues. Il est -aussi possible de forcer Linux à utiliser un simple fichier comme zone -d'échange mais ce n'est pas recommandé. - -<p> -Le seul réel inconvénient à utiliser des partitions multiples est -qu'il est généralement difficile d'appréhender à l'avance ses -besoins. Si vous sous-dimensionnez vos partitions, soit vous aurez -à réinstaller le système, soit vous aurez à jongler en déplaçant -quantité de choses pour faire de la place dans la partie -sous-taillée. D'un autre côté, si la partition est surdimensionnée, -vous perdrez de la place qui pourrait être utilisée pour autre chose... -</sect1> - -<sect1> Planifier l'usage du système - -<p> -Les besoins en place sur un disque et son schéma de partitionnement -sont fortement dépendants du type d'installation que vous avez décidé -de créer. - -<p> -Pour vous faciliter la vie, Debian offre un certain nombre de -<em>profils</em> par défaut dont certains sont énumérés un peu plus -loin. Les profils sont de simples jeux de paquets pré-sélectionnés en -vue d'une tâche particulière sur votre système. L'installation est -facilitée car tous les paquets requis dans le profil voulu sont -automatiquement marqués à installer. Chaque profil fournit la taille -globale du système après installation. Même si vous n'utilisez pas ces -profils, cette aparté est important pour planifier car il vous permet -de vous donner une idée de la taille de votre ou vos partitions -suivant vos besoins. La liste suivante donne quelques profils ainsi -que la taille associée: - -<list> -<item><prgn>Server_std</prgn> -<p> -Ceci est une petite configuration de serveur utile pour de très -petites machines qui ne conviendraient plus à un usage courant pour un -utilisateur. Elle possède par défaut un serveur FTP, un serveur web, -DNS, NIS et POP. Cela occupe environ 50 Mo. Bien sûr, ceci correspond -simplement à la taille des logiciels installés ; toutes les données -que vous aurez à traiter sont à rajouter. -<item><prgn>Dialup</prgn> -<p> -Ceci est typique d'une configuration classique de bureau avec un -système X Window, des applications graphiques, du son, de l'édition, -etc. La taille de l'ensemble des paquets occupe près de 500 Mo. -<item><prgn>Work_std</prgn> -<p> -Cette configuration convient aux petites machines ne pouvant supporter -X Window et ses applications graphiques. C'est aussi parfait pour un -ordinateur portable ou mobile. Cela occupe environ 140 Mo. Il est -possible aussi d'avoir une configuration sous X avec moins de 100 Mo. -<item><prgn>Devel_comp</prgn> -<p> -Ceci est un environnement de travail rassemblant tous les paquets de -développement populaires comme PERL, C et C++. Cela demande environ -475 Mo. En rajoutant X et quelques autres paquets utiles, vous devriez -tourner autour de 800 Mo pour ce type d'installation. -</list> - -Garder en mémoire que ces tailles n'incluent pas toutes les données -généralement présentes sur un disque, comme les fichiers des -utilisateurs, les courriels et les données. Il est toujours préférable -d'être généreux avec la taille de vos propres données et fichiers. De -plus, le répertoire Debian <em>/var</em> contient quantités -d'informations du système. Les fichiers de gestionnaire d'installation -des paquets peut facilement occuper 20 Mo de disque. En général, vous -devriez allouer au moins 50 Mo pour le répertoire <em>/var</em> car -les journaux de bord<footnote>plus communément appelés les fichiers de -<em>log</em></footnote>du système sont aussi stockés là. -</sect1> - -<sect1> Les limitations des disques PC - -<p> -Les BIOS des PC ajoutent de nouvelles contraintes au partitionnement -de disque. Il y a une limite au nombre de partitions -<em>primaires</em> et <em>logique</em> qu'un disque peut contenir. En -plus, il y a des limites à la taille de l'endroit où le BIOS va -chercher ses informations d'amorçage. On peut trouver plein -d'informations à ce sujet dans le mini-HOWTO Partition -(<em>http://metalab.unc.edu/LDP/HOWTO/mini/Partition.html</em>). Cette -partie va inclure une bref résumé pour vous aider à affronter la -plupart des situations. - -<p> -Les partitions <em>primaires</em> sont les partitions originelles des -disques durs de PC. On ne pouvait en créer plus de quatre. Pour -s'affranchir de cette limitation, les partitions <em>étendues</em> ou -<em>logiques</em> ont été inventées. En configurant une de vos -partitions <em>primaires</em> en <em>étendue</em>, vous pouvez -subdiviser la zone de cette partition en partitions logiques. Le -nombre de partitions logiques que vous pouvez créer est beaucoup moins -limité que le nombre de partitions primaires. Dans tous les cas, vous -ne pouvez créer qu'une seule partition étendue par disque. - -<p> -Linux limite le nombre de partitions par disque à quinze partitions -pour les disques SCSI (trois partitions primaires utilisables et douze -partitions logiques) et soixante trois partitions pour les disques IDE -(trois partitions primaires et soixante partitions logiques). - -<p> -La dernière chose qu'il est nécessaire de connaître au sujet du BIOS -du PC est que votre partition racine - c'est-à-dire la partition -contenant l'image du noyau - doit être incluse dans les 1024 premiers -cylindres de votre disque. Puisque généralement votre partition -racine est aussi votre partition d'amorçage, il faut vous assurer que -votre partition racine se trouve bien à l'intérieur des 1024 premiers -cylindres. - -<p> -Si vous avez un disque de grande capacité, il se peut que vous -utilisiez des techniques de translation de cylindres à l'intérieur de -votre BIOS comme la translation LBA (On peut se référer pour plus -d'informations au sujet des disques de grande capacité dans le -<em>Large Disk mini-HOWTO</em> -(<em>http://metalab.unc.edu/LDP/HOWTO/mini/Large-Disk.html</em>)). Si -vous utilisez ce schéma de translation de cylindres, votre partition -d'amorçage doit se trouver à l'intérieur de la représentation -translatée des 1024 cylindres. -</sect1> - -<sect1> Nom de périphériques sous Linux - -<p> -Les noms des disques et partitions sous Linux peuvent être différents -que ceux utilisés par d'autres systèmes d'exploitation. Vous devez -connaître ces noms que Linux utilise au moment de la création et du -montage des partitions. On trouve un schéma élémentaire dans la table -suivante. - -<p> -<example> - ---------------------------------------------------------- -| Périphériques | Nom sous Linux | -|----------------------------------------------------------| -| Premier lecteur de disquette | /dev/fd0 | -| Second lecteur de disquette | /dev/fd1 | -| Première partition sur /dev/hda | /dev/hda1 | -| (typiquement C: dans d'autres OS)| | -| Cinquième partition sur /dev/hdc | /dev/hdc5 | -| Seconde partition sur /dev/sdb | /dev/sdb2 | -| Disque IDE sur la première nappe | /dev/hda | -| IDE en maître ou cédérom | | -| Disque IDE sur la première nappe | /dev/hdb | -| IDE en esclave ou cédérom | | -| Disque IDE sur la seconde nappe | /dev/hdc | -| IDE en maître ou cédérom | | -| Disque IDE sur la seconde nappe | /dev/hdd | -| IDE en esclave ou cédérom | | -| Premier disque SCSI | /dev/sda | -| Second disque SCSI et les autres | /dev/sbb et ainsi de | -| | suite | -| Premier port série (COM1 dans | /dev/ttyS0 | -| d'autres OS) | | -| Second, troisième, etc. port | /dev/ttyS1, /dev/ttyS2| -| série | etc. | -| Unités de sauvegarde SCSI (à | /dev/st0, /dev/st1, | -| rembobinage automatique) | etc. | -| Unités de sauvegarde SCSI (à | /dev/nst0, /dev/nst1, | -| rembobinage non automatique) | etc. | -| Cédéroms SCSI | /dev/scd0, /dev/scd1, | - ---------------------------------------------------------- -</example> - -<p> -Les partitions de chaque disque sont représentées en ajoutant un -chiffre au numéro de disque. Par exemple, les noms <em>hda1</em> et -<em>hda2</em> représentent les première et seconde partitions du -premier disque IDE de votre système. Linux représente les partitions -primaires avec le nom du périphérique plus les nombres 1 à 4. Par -exemple, la première partition primaire du premier disque IDE est -<em>/dev/hda1</em>. Les partitions logiques sont numérotées à partir -de 5 donc la première partition logique est <em>/dev/hda5</em>. Garder -bien en mémoire que la partition étendue - c'est-à-dire la partition -primaire contenant les partitions logiques - n'est pas utilisable en -tant que tel. Ceci s'applique aussi bien aux disques SCSI qu'aux disques -IDE. - -<p> -Imaginons que vous ayez un système avec deux disques SCSI, un -à l'adresse 2 et l'autre à l'adresse 4. Le premier disque, à l'adresse -2, est appelé <em>sda</em> tandis que le second est appelé -<em>sdb</em>. Si le disque <em>sda</em> a trois partitions, elles -seront appelées <em>sda1, sda2</em> et <em>sda3</em>. On applique le -même raisonnement pour les partitions du disque <em>sdb</em>. Remarquez -que si vous possédez deux adaptateurs pour bus SCSI (contrôleurs), -l'ordre des périphériques peut porter à confusion. La meilleure -solution dans ce cas est encore de regarder les messages de -<em>boot</em>, en supposant que vous connaissez le modèle de vos -périphériques. -</sect1> - -<sect1> Schéma de partitionnement recommandé - -<p> -Comme décrit auparavant, il est recommandé d'avoir une petite -partition racine séparée et une grosse pour <em>/usr</em> s'il y a -suffisamment de place. Pour la plupart des utilisateurs, ce -partitionnement est très largement suffisant. Ceci est spécialement -recommandé si vous avez un petit disque car la création de nombreuses -partitions peut vous faire perdre de la place. - -<p> -Dans certains cas, il se peut que vous ayez besoin d'une partition -<em>/usr/local</em> séparée si vous planifier l'installation de -nombreux programmes non-inclus dans Debian. Si votre machine est un -serveur de courriel, vous aurez besoin d'une partition séparée pour -<em>/var/spool/mail</em>. Mettre <em>/tmp</em> sur sa propre partition -de 20 à 32 Mo est aussi une bonne idée. Si vous préparez un serveur -avec un grand nombre de comptes d'utilisateurs, c'est généralement une -bonne idée de préparer une grande partition séparée contenant -<em>/home</em> à des fins de sauvegarde des comptes des utilisateurs. -De façon générale, le partitionnement varie énormément d'un ordinateur -à l'autre et dépend essentiellement de son usage. - -<p> -Pour des systèmes très complexes, vous devez aller jeter un coup -d'oeil au <em>Multi Disks HOWTO</em> -(<em>http://metalab.unc.edu/LDP/HOWTO/Multi-Disk-HOWTO.html</em>). Il -contient de nombreuses informations techniques pour les gens désirant -configurer des serveurs. - -<p> -La taille de la partition de <em>swap</em> doit aussi être étudiée. Il -y a beaucoup de points de vue à ce sujet. Une règle approximative qui -ne fonctionne pas trop mal est d'avoir autant de <em>swap</em> que de -mémoire vive, quoiqu'il ne soit pas nécessaire de dépasser 64 Mo pour la -plupart des utilisateurs. Elle ne doit pas non plus être plus petite -que 16 Mo non plus. Bien sûr, il y a des tas d'exceptions. Si vous -essayez de résoudre simultanément 10 000 équations avec une machine -dotée de 256 Mo de mémoire vive, vous pouvez avoir besoin d'un -giga-octet (si ce n'est plus...) de <em>swap</em>. - -<p> -Par exemple, considérons une machine dotée de 32 Mo de mémoire vive et -d'un disque IDE de 1,7 Go sur <em>/dev/hda</em>. Il y a une partition -de 500 Mo pour un autre système d'exploitation sur -<em>/dev/hda1</em>. Une partition de <em>swap</em> de 32 Mo est -utilisée en <em>/dev/hda3</em> et le reste, environ 1,2 Go, sur -<em>/dev/hda2</em> est la partition Linux. -</sect1> - -<sect1> Partitionnement avant installation - -<p> -Il existe deux moments différents pendant lesquels partitionner: avant ou -après l'installation de Debian. Si votre ordinateur est entièrement -consacré à Debian, vous pouvez partitionner pendant l'installation -comme décrit dans la partie 5.5. Si vous avez une -machine équipée de plus d'un système d'exploitation, vous devez -généralement laisser l'autre système créer ses propres partitions. - -<p> -Les paragraphes suivant contiennent des informations sur la manière de -partitionner votre premier système d'exploitation avant l'installation -de Debian. Remarquez que vous allez avoir besoin de savoir comment -relier les noms des périphériques de votre système d'exploitation -à ceux des partitions Linux. - -<p> -<em>Partitionner à partir de DOS ou Windows</em> - -<p> -Si vous manipuler des partitions FAT ou NTFS existantes, il est -recommandé d'utiliser soit les outils natifs de Windows ou DOS, soit -le schéma plus loin. Sinon, il n'est pas nécessaire de partitionner -à partir de DOS ou Windows: les outils de partitionnement de Linux font -généralement un travail de meilleure qualité. - -<p> -<em>Réduire une partition existante</em> - -<p> -Un des cas les plus classiques d'installation est de le faire sur un -système contenant déjà le DOS (y compris Windows 3.1), Win32 (comme -Windows 95, 98 ou NT) ou OS/2 et d'y ajouter Debian sur le même disque -sans détruire l'ancien système. Comme décrit précédemment, réduire la -taille d'une partition existante conduit presque immanquablement à la -perte des données qu'elle contient, du moins sans prendre de -précautions. La méthode que nous allons décrire ici, bien que ne -garantissant pas de protéger vos données, marche très bien en -pratique. Mais vous <em>devez faire une sauvegarde</em> par -précaution. - -<p> -Avant d'aller plus loin, vous devez savoir comment vous comptez -diviser votre disque. La méthode décrite ici découpe seulement la -partition initiale en deux morceaux. Un contiendra l'ancien système -d'exploitation. L'autre sera utilisé par Debian. Pendant -l'installation de Debian, on vous laissera le choix de partitionner la -partie Debian à votre convenance, pour le <em>swap</em> ou pour le -système de fichiers. - -<p> -L'idée est de rassembler l'ensemble des données de la partition à son -début de façon à ce que l'on ne perde rien lors de la réduction. Il -est important de déplacer les données par paquets aussi petits que -possible de façon à réduire les chances qu'un fichier soit écrit en -fin de partition et réduise ainsi la taille disponible que vous pouvez -extraire de cette partition. - -<p> -La première chose que vous devez faire est une copie de FIPS qui est -disponible dans le répertoires <em>tools</em> de votre cédérom -Debian. Cette disquette doit être bootable. Sous DOS, une disquette -bootable peut être créée en utilisant la commande <prgn> sys a:</prgn> -sur un support précédemment formaté ou bien <prgn>format a; /s</prgn> -pour une disquette non formatée. Dézipez l'archive et copiez les -fichiers RESTORRB.EXE, FIPS.EXE et ERRORS.TXT sur la disquette -bootable. FIPS est fourni avec une très bonne documentation que l'on -vous recommande de lire. Vous devez absolument la lire si vous -utilisez une compression de disque ou un gestionnaire de disque. Créer -la disquette et lisez la documentation <em>avant</em> de poursuivre. - -<p> -L'étape suivante consiste à déplacer toutes les données au début de la -partition. DEFRAG, qui est fourni en standard dans les versions de DOS -6.0 et supérieures, peut très bien effectuer cette tâche. Regardez la -documentation de FIPS pour une liste d'outils analogues. Remarquez -bien que si vous utilisez Windows 95 ou plus, vous devez lancer DEFRAG -de cet environnement car le DOS ne connaît pas le système de fichier -VFAT utilisé pour accepter les noms longs dans les versions 95 et -ultérieures de Windows. - -<p> -Après avoir défragmenté le disque (ce qui peut prendre un certain -temps sur les disques de grande capacité), rebooter sur la disquette -FIPS que vous avez créée. Taper tout simplement <prgn>a:\ fips</prgn> et -suivez les instructions. - -<p> -Remarquez au passage qu'il existe de nombreux autres gestionnaires de -partitions que celui-ci, au cas où FIPS ne fonctionnerait pas bien -pour vous. -</sect1> - -<sect1> Les étapes d'installation de Debian -<p> - -Pour installer Debian la première fois, il vous faudra passer par les -différentes étapes suivantes: - -<list> -<item> Booter sur le système d'installation; -<item> Configurer le système de base; -<item> Installer le système de base; -<item> Booter sur le système de base précédemment installé; -<item> Installer le reste du système. -</list> - -<p> -Booter sur le système d'installation, pour la première étape, -s'effectue généralement avec la disquette de -secours<footnote><em>Rescue floppy</em> dans la distribution -Debian.</footnote> ou sur le cédérom. - -<p> -Aussitôt que vous avez booté le système Linux, le programme -<prgn>dbootstrap</prgn> se lance et vous guide pour effectuer la seconde -étape, la configuration du système de base. Cette étape est décrite en -détail dans le chapitre suivant. - -<p> -Le <em>système de base Debian</em> est un ensemble de paquets de base -recquis pour faire tourner Debian avec un système minimal et de façon -autonome. <prgn>dbootstrap</prgn> va vous l'installer à partir du cédérom, -comme décrit dans la partie 5. À partir du moment où vous avez -installé et configuré le système de base, votre machine est -complètement autonome. - -<p> -La dernière étape consiste à installer le reste du système -Debian. Ceci va inclure les applications et les documents que vous -utilisez vraiment sur votre ordinateur, comme le système X Window, des -éditeurs, des interpréteurs de commandes (plus connus sous leur -vocable anglaise <em>shell</em>) et des environnements de -développements. Ceci se fait à partir du cédérom. À partir de ce -point, vous aurez à utiliser les outils standard de gestion de -paquets sous Debian comme <prgn>dselect</prgn>. Cette étape est décrite -dans la partie 5.20. -</sect1> -</sect> - -<sect> Choisir son support d'installation - -<p> -Il faut choisir dans un premier temps le support à partir duquel vous -installerez le système. Ensuite, il faut choisir la méthode -d'installation du système de base. - -<p> -Pour booter sur la procédure d'installation, vous avez les choix -suivants: un cédérom bootable, des disquettes ou un système de -chargement au boot différent de celui fourni sous Linux. - -<p> -Booter avec les cédéroms est bien entendu la manière la plus facile -d'installer Debian. Mais toutes les machines ne supportent pas cette -méthode et il se peut que vous ayez besoin d'utiliser les disquettes. -Booter à partir de disquettes est supporté pour la plupart des -plateformes. La façon de le faire est décrit à la partie 4.4.2. - -<sect1> Installation à partir du cédérom - -<p> -Si votre machine supporte de booter sur un cédérom, vous n'avez pas -besoin de disquette. Mettez le cédérom dans son lecteur, éteignez -votre ordinateur et rallumez-le. Vous devriez voir un écran d'accueil -avec un curseur de boot en bas. Vous pouvez passez alors directement -à la partie 4.5. - -<p> -Si votre ordinateur ne « voit » pas vos cédéroms Debian, la solution -la plus simple est de se fabriquer deux disquettes de boot -(description dans la partie suivante) et de les utiliser pour lancer -Debian. Mais ne vous inquiétez pas: Debian en aura alors fini avec les -deux disquettes et elle trouvera le cédérom sans problème. -</sect1> - -<sect1> Installation à partir de disquettes - -<p> -Ce n'est pas difficile de booter à partir des disquettes. En effet, -votre cédérom contient toutes les informations pour créer les -disquettes nécessaires. Il vous sera demandé d'avoir deux -disquettes. Nommez la première <em>Disquette d'installation-secours -Debian 2.1</em> et la seconde <em>Disquette de modules-pilotes Debian -2.1</em>. - -<p> -<em> Créer des disquettes à partir des images de disquettes </em> - -<p> -Les images des disquettes sont des fichiers contenant l'ensemble -complet des éléments de la disquette de boot sous forme binaire. Les -images de disquette, comme <em>resc1440.bin</em>, ne peuvent être -copiées directement sur la disquette. Un programme spécial est utilisé -pour recopier les images des fichiers au format binaire. - -<p> -La première étape consiste à obtenir une invite DOS. Dans Windows 95, -et supérieur, vous pouvez l'obtenir en double-cliquant sur l'icône -MS-DOS ou en allant dans <em>Démarrer -> Programme -> -MS-DOS</em>. Ensuite, insérer le cédérom Debian GNU-Linux dans son -lecteur. Déplacez-vous alors dessus. Dans la plupart des cas, il -s'agit de D: - -<p> -<example> -C:\WINDOWS>D: -</example> - -<p> -Maintenant, déplacez-vous dans le répertoire contenant les images des -disquettes: - -<p> -<example> -D:\> CD \DISTS\SLINK\MAIN\DISKS-I386\2.1.8-1999-02-22 -</example> - -<p> -Si vous obtenez une erreur, vérifiez bien ce que vous avez tapé. Si -l'erreur persite, déplacez-vous manuellement dans -<prgn>\DISTS\SLINK\MAIN\DISKS-I386</prgn> et taper alors -<prgn>DIR</prgn> et allez alors dans le répertoire précité. Remarquez -que les commandes ci-dessus, et peut-être celles données un peu plus -loin, peuvent tenir sur une seule ligne sur votre écran même si elles -tiennent sur plusieurs lignes ici. - -<p> -Maintenant, vous êtes prêt à créer la première des deux -disquettes. Lancer le programme <prgn>rawrite2</prgn> pour les écrire: - -<p> -<example> -D:\DISTS\SLINK\MAIN\DISKS-I386\2.1.8-1999-02-22>rawrite2 -RaWrite 2.0 - Write disk file ta raw floppy diskette<footnote> Pour -écrire un fichier du disque dur vers une disquette au format -binaire.</footnote> -</example> -<p> -<prgn>Rawrite2</prgn> lance ainsi ses messages de démarrage. Ensuite, il -demande le nom du fichier et le lecteur de disquette: - -<p> -<example> -Enter disk image source file name<footnote>Entrer le nom du -fichier image cible</footnote>: resc1440.bin -Enter target diskette drive<footnote>Entrer le nom du lecteur de -disquette</footnote>: a: -</example> - -<p> -<prgn>Rawrite2</prgn> vous demande maintenant de bien vouloir insérer une -disquette dans le lecteur de disquette. Faîtes-le et appuyez sur -<em>Entrée</em> - -<p> -<example> -Please insert a formatted diskette into drive A: and press -ENTER-<footnote>Veuillez insérer une disquette formatée dans le lecteur A et appuyez sur Entrée</footnote>: -</example> - -<p> -À ce moment, <prgn>rawrite2</prgn> va créer la première des deux -disquettes. Il vous faut répéter le processus pour la seconde -disquette: - -<p> -<example> -D:\DISTS\SLINK\MAIN\DISKS-I386\2.1.8-1999-02-22>rawrite2 -RaWrite 2.0 - Write disk file ta raw floppy diskette -Enter disk image source file name: drv1440.bin -Enter target diskette drive: a: -Please insert a formatted diskette into drive A: and press -ENTER- : -</example> - -<p> -À partir de maintenant, les disquettes sont prêtes: vous pouvez les -utiliser pour booter. - -<p> -<em> Booter sur Debian</em> - -<p> -Vous êtes maintenant prêt à booter sur Debian. Éteignez votre système -d'exploitation en cours et placez la disquette d'installation-secours -dans le lecteur de disquette. Rallumez votre ordinateur. Vous devriez -avoir un écran de bienvenue et un curseur de prompteur en bas. -</sect1> -</sect> - -<sect> Booter sur la procédure d'installation - -<p> -Vous devriez avoir à ce stade un curseur de boot. Presser simplement -sur <em>Entrée</em> à cet endroit. - -<p> -Après avoir appuyé sur la touche <em>Entrée</em>, vous devriez voir le -message <prgn>Loading...</prgn> et ensuite <prgn>Uncompressing -Linux....</prgn> et une quantité d'informations partout sur l'écran, -voire sur plusieurs, au sujet du matériel de votre -système. Généralement, vous pouvez ignorer ces messages. Linux -recherche un grand nombre de périphériques variés et vous indique ce -qu'il trouve et ce qu'il ne trouve pas. Ne vous inquiétez pas de tous -ces messages à ce moment là. Attendez simplement jusqu'à ce que vous -aperceviez l'écran de choix en couleur. Si vous avez des problèmes, -voir le chapitre 17. -</sect> - -</chapt> -<chapt> Installation pas à pas - -<p> -<prgn>dbootstrap</prgn> est le nom du programme qui est lancé après avoir -booté sur la procédure d'installation. Il est responsable de la -configuration initiale du système et de l'installation du système de -base. - -<p> -Le travail principal de <prgn>dbootstrap</prgn> et celui de la -configuration de base du système sont de configurer certains éléments -basiques de votre système. Par exemple, cela inclut votre adresse IP, -votre nom de domaine et quelques autres paramètres de configuration -réseau, en cas de besoin. Cela comprend aussi la configuration des -modules du noyau qui sont les pilotes chargés par le noyau. Ces -modules comprennent les pilotes de sauvegarde externe, les pilotes -réseau, le support multilingues et plein d'autres -périphériques. Configurer ces choses fondamentales est fait -prioritairement car elles sont souvent nécessaires au bon -fonctionnement ultérieur de la machine lors des étapes de -configurations suivantes. - -<p> -<prgn>dbootstrap</prgn> est une application simple orientée -caractères. Elle est très facile à utiliser. Généralement, elle vous -guide à travers chaque étape du processus d'installation de façon -linéaire. Vous pouvez aussi revenir en arrière et répéter une étape si -vous vous êtes trompé. La navigation à l'intérieur de -<prgn>dbootstrap</prgn> s'effectue à l'aide des flèches du clavier, des -touches <em>Entrée</em> et <em>Tab</em>. - -<sect> Sélection d'un écran monochrome ou couleur - -<p> -Une fois que le système a terminé de booter, <prgn>dbootstrap</prgn> est -invoqué. La première chose que <prgn>dbootstrap</prgn> vous demande -concerne votre écran. Vous devez voir une fenêtre de dialogue <em>Select -Color or Monochrome display</em> (Sélectionner un écran -couleur ou monochrome). Si votre moniteur est capable -d'afficher de la couleur, appuyez sur <em>Entrée</em>. L'écran devrait -alors passer du noir et blanc en couleur. Déplacez-vous à l'aide des -flèches sur le bouton <em>Next</em> (suivant) et pressez alors de -nouveau la touche <em>Entrée</em> pour continuer l'installation. -</sect> - -<sect> Menu principal d'installation de Debian GNU/Linux - -<p> -Il se peut que vous aperceviez une boîte de dialogue disant <em>The -installation program is determining the current state of your system -and the next installation step should be performed</em> (Le -programme d'installation est en train de déterminer l'état actuel de -votre système et l'étape suivante d'installation ne devrait pas -tarder). C'est une phase pendant laquelle le programme -d'installation cherche à détecter automatiquement ce que vous aurez -probablement besoin de faire ensuite. Dans certains cas, il se peut -que vous n'aperceviez même pas cette boîte de dialogue. - -<p> -Pendant toute la procédure d'installation, vous aurez affaire au menu -principal, intitulé <em>Debian GNU-Linux Installation Main Menu</em> -(Menu principal d'installation de Debian GNU-Linux). Les choix situés -en haut du menu changent au fur et à mesure pour indiquer votre -progression dans l'installation du système. Phil Hughes écrivait dans -le <em>Linux Journal</em> (<em>http://www.linuxjournal.com</em>) que -vous pouviez apprendre à un poulet à installer une Debian ! Il -soulignait ainsi le fait que le menu de la procédure d'installation -consistait essentiellement à appuyer sur la touche <em>Entrée</em>. Le -premier choix du menu d'installation est l'action suivante que vous -aurez à effectuer si le système ne détecte pas que vous l'avez -déjà fait. Si vous sélectionnez <em>Next</em> (suivant) ici, l'étape -suivante dans l'installation du système est sélectionnée. -</sect> - -<sect> Configurer le clavier - -<p> -Assurez-vous que le bouton <em>Next</em> est mis en surbrillance et -appuyez sur <em>Entrée</em> pour entrer dans le menu de configuration -du clavier. - -<p> -Déplacez le curseur lumineux vers le clavier sélectionné et appuyer -sur <em>Entrée</em>. Utilisez les flèches pour vous déplacer. Dans de -nombreux cas, vous n'aurez qu'à sélectionner -<em>U.S. layout</em><footnote>NDT: surtout pas pour nous francophones -car vous risqueriez de vous arracher les cheveux... Prenez bien soin -de sélectionner un clavier conforme à vos origines (française, suisse, -belge ou canadienne) si tel est le cas.</footnote>. -</sect> - -<sect> Dernière chance de sauvegarder vos données ! - -<p> -Ne vous a-t-on pas déjà dit de sauvegarder vos disques ? Voici la -première occasion de les détruire et la dernière chance de sauvegarder -vos vieux systèmes. Si vous n'avez encore sauvegardé vos disques, -sortez la disquette ou le cédérom de son lecteur, éteignez le système -puis faîtes vos sauvegardes. -</sect> - -<sect> Partitionner un disque dur - -<p> -Quelque soit le choix proposé par le menu de sélection <em>Next</em>, -vous pouvez utiliser les flèches « haut » et « bas » pour sélectionner -<em>Partition a Hard Disk</em> (Partitionner un disque -dur). Allez-y et à partir de là, appuyez sur -<em>Entrée</em>. - -<p> -Le menu de <em>Partition a Hard Disk</em> vous présente une liste de -type de disques que vous pouvez partitionner et lance une application -de partitionnement appelée <prgn>cfdisk</prgn>. Vous devez créer au moins -une partition <em>Linux native</em> (de type 83) et vous aurez -probablement besoin d'une partition <em>Linux swap</em> (de type 82) -comme expliqué plus loin dans cette partie. - -<p> -Vous devez créer maintenant les partitions dont vous aurez besoin pour -installer Debian. Par exemple, on supposera que vous partionnerez un -disque dur vierge. - -<p> -La partition de boot doit se trouver à l'intérieur des 1024 premiers -cylindres de votre disque dur (voir paragraphe 4.3.3). En gardant cela -à l'esprit, utilisez la flèche droite pour mettre en surbrillance le -menu <em>New</em> (nouveau) et pressez alors sur <em>Entrée</em>. On -vous demandera alors de créer soit une partition <em>primaire</em> -soit une partition <em>logique</em>. Pour vous assurer que la -partition contenant l'information de boot soit bien dans les 1024 -premiers cylindres, créez en premier votre partition primaire. La -partition primaire sera votre partition <em>Linux native</em>. - -<p> -Mettez en surbrillance le menu principal et appuyez sur la touche -<em>Entrée</em>. Vous devez ensuite entrer la largeur de votre future -partition. Si vous ne savez pas quelle taille lui donner, allez voir -la partie 4.3.2. Ne pas oublier de laisser une place suffisante pour -la partition de <em>swap</em> (voire la partie 4.3.5). Entrez la -taille de la partition que vous désirez et presser sur -<em>Entrée</em>. Ensuite, il vous sera demandé si vous voulez la -placer au début de l'espace disponible ou à la fin. Placez la au début -pour être sûr d'être à l'intérieur des 1024 premiers cylindres. Mettez -en surbrillance <em>Beginning</em> et tapez sur <em>Entrée</em>. À ce -moment, vous devriez être retourné à l'écran principal. Remarquez bien -que la partition que vous venez de créer est maintenant affichée. Par -défaut, c'est une partition <em>Linux native</em>. Cette partition -doit maintenant être rendue amorçable. Assurez-vous que le menu -<em>Bootable</em> est en surbrillance et appuyez sur la touche -<em>Entrée</em>. On doit maintenant voir apparaître la champ -<em>Boot</em> dans cette partition dans la colonne <em>Flags</em> . - -<example> -IMPRESSION D'ÉCRAN DE CFDISK -</example> - -<p> -Avec la place restante, créez une nouvelle partition primaire. En -utilisant la flèche de direction du clavier, mettez en surbrillance le -champ <em>free space</em> (espace disponible) dans la liste des -partitions. Mettez en surbrillance maintenant le champ <em>New</em> et -faîtes de même que lorsque vous avez fabriqué la première partiton -primaire. Remarquez qu'elle est aussi affichée comme une partition -<em>Linux native</em>. Puisque vous allez la dédier au <em>swap</em>, -il va falloir la signaler comme telle. Assurez-vous de bien l'avoir -mis en surbrillance et ensuite appuyez sur la flèche gauche du clavier -jusqu'à ce que le menu <em>Type</em> soit mis en surbrillance. Pressez -alors sur la touche <em>Entrée</em>. On vous présente alors une liste -de types de partitions supportées. Le type <em>Linux swap</em> devrait -déjà être sélectionné. Si tel n'était pas le cas, entrez le numéro -dans la liste correspondant au <em>swap</em> (82) et pressez sur -<em>Entrée</em>. Votre partition de <em>swap</em> doit maintenant se -présenter sous forme de <em>Linux swap</em> dans la colonne <em>FS -Type</em> de l'écran principal. - -<p> -Votre écran <prgn>cfdisk</prgn> devrait ressembler à celui de la -figure 5.1. Les chiffres peuvent différer mais les colonnes -<em>Flags</em> et <em>FS Type</em> doivent être identiques. - -<p> -Jusqu'à maintenant, rien sur votre disque n'a été modifié. Si vous êtes -content de votre partionnement, appuyez sur la flèche gauche -jusqu'à <em>write</em> et appuyez alors sur la touche <em>Entrée</em>. -Votre disque dur est maintenant partitionné. Quittez l'application -<prgn>cfdisk</prgn> en sélectionnant le menu <em>Quit</em>. Une fois -quitté <prgn>cfdsik</prgn>, vous devez vous retrouvez dans -<prgn>dbootstrap</prgn>, l'application d'installation de Debian. -</sect> - -<sect> Initialiser et activer une partition de <em>swap</em> - -<p> -Cela doit être le choix suivant après avoir créé une partition de -disque (<em>initialize and Activate a Swap Partition</em>). Vous avez -le choix d'initialiser et d'activer une nouvelle partition de -<em>swap</em>, d'activer une partition déjà initialisée ou bien de -faire sans partition de <em>swap</em>. - -<p> -Une partition de <em>swap</em> est chaudement recommandée mais vous -pouvez faire sans si vous insistez et que votre système a plus de 4 Mo -de mémoire vive. Si vous désirez le faire, sélectionnez le choix -<em>Do Without a Swap Partition</em> (Faire sans partition de -<em>swap</em>) du menu et allez directement à la partie suivante. - -<p> -Il est toujours possible de réinitialiser une partition de -<em>swap</em>. Ainsi, sélectionnez <em>Initialize and Activate a Swap -Partition</em> (Activer et initialiser une partition de <em>swap</em>) -si vous n'êtes pas sûr de ce que vous faîtes. Dans un premier temps, -le menu va vous proposer une boîte de dialogue dans laquelle vous -pourrez lire <em> Please select the partition to activate as a swap -device</em> (veuillez sélectionner la partition à activer comme -<em>swap</em>). Le choix par défaut devrait être la partition de -<em>swap</em> que vous venez de paramétrer; si tel est le cas, appuyez -simplement sur la touche <em>Entrée</em>. - -<p> -Ensuite, on vous propose d'activer l'option de recherche des blocs non -lisibles, causés par des défauts sur la surface des plateaux des disques -sur l'intégralité de la partition. Ceci est très utile si vous avez -des disques MFM, RLL ou de vieux SCSI. Dans tous les cas, cela ne peut -pas faire de mal (bien que cela demande pas mal de temps). La plupart -des disques modernes fonctionnant correctement n'ont pas besoin de -cette étape car ils possèdent leur propre mécanisme interne pour -s'affranchir des blocs défectueux. - -<p> -Finalement, vous obtenez un message de confirmation car -l'initialisation va détruire toutes les données présentes -antérieurement sur la partition. Si tout est correct, sélectionnez -<em>Yes</em>. L'écran s'allumera lorsque le programme d'initialisation -tournera. -</sect> - -<sect> Initialiser une partition Linux - -<p> -À cet endroit, le choix suivant devrait s'intituler <em>Initialize a -Linux Partition</em> (Initialiser une partition Linux). Si ce n'est -pas le cas, soit vous n'avez pas achevé correctement le processus de -partitionnement, soit vous n'avez pas rempli un des menus concernant -la partition de <em>swap</em>. - -<p> -Vous pouvez initialiser une partition Linux, ou bien vous pouvez en -monter<footnote> francisation de <em>mount</em> qui est passé dans le -langage courant. On trouve parfois <em>mounter</em> qui est assez -laid il faut bien l'avouer :-)</footnote> une précédemment -initialisée. Remarquez bien que <prgn>dbootstrap</prgn> ne fera pas de -mise à jour d'un vieux système sans le détruire. Si vous êtes en train -de mettre à jour, Debian peut très bien le faire tout seul et il n'est -pas nécessaire d'utiliser <prgn>dbootstrap</prgn>. Les <em>releases -notes</em> de la Debian 2.1 contiennent les instructions de mise -à jour<footnote>https://www.debian.org/releases/slink/i386/releases-notes/ch-upgrading.en.html</footnote>. - -<p> -Si vous utilisez de vieilles partitions non vides, c'est-à-dire que -vous voulez juste nettoyer ce qu'il y a dessus, il suffit de les -initialiser (ce qui écrase tous les fichiers). De plus, vous devez -initialiser toutes les partitions que vous avez créées lors de l'étape -de partitionnement. La seule raison pour laquelle vous pourriez -omettre d'initialiser une partition à cette étape serait de monter une -partition que vous auriez déjà faîte à l'aide des disquettes -d'installation. - -<p> -Sélectionnez le menu <em>Next</em> pour initialiser et monter la -partition de disque « / ». La première partition que vous montez ou -que vous initialisez sera montée comme « / » (prononcer -<em>root</em><footnote>se prononce « route »...</footnote> -(racine)). On vous proposera, à l'instar de l'initialisation du -<em>swap</em> de vérifier les blocs défectueux. Cela ne mange pas de -pain de le faire mais cela peut prendre dix minutes ou plus si vous -possédez des disques de grande capacité. - -<p> -Une fois la partition / de montée, le menu suivant devrait être -<em>Install Operating system and modules</em> (Installer le système -d'exploitation et ses modules) à moins que vous n'ayez pas terminé une -des étapes précédentes. Vous pouvez utiliser les flèches de -déplacement pour sélectionner les menus d'initialisation ou de montage -de partitions de disques si vous avez d'autres partitions -à fabriquer. Si vous avez créé des partitions séparées pour -<em>/var</em>, <em>/usr</em> ou d'autres systèmes de fichiers, c'est -le moment de les initialiser et de les monter. - -<sect1> Monter une partition précédemment initialisée. - -<p> -Un pendant à l'étape <em>Initialise a Partition</em> (Initialiser une -partition) est celle de <em>Mount a Previously-Initialised -Partition</em> (Monter une partition précédemment -initialisée). Utilisez la si vous recommencez une installation qui a -été interrompue ou bien si vous montez des partitions -déjà initialisées. -</sect1> -</sect> - -<sect> Installation du système d'exploitation et ses modules - -<p> -Cela doit être l'étape suivante après avoir monté la partition racine, -sauf si vous avez déjà effectué cette tâche précédemment avec -<prgn>dbootstrap</prgn>. Vous devrez confirmer dans un premier temps -que le périphérique que vous avez monté sur la partition racine est -bien le bon. Par la suite, il vous sera proposé un ensemble de -périphériques à partir desquels vous pourrez installer le noyau et les -modules; ce sera généralement soit un cédérom soit le premier lecteur -de disquette. - -<p> -Si vous faîtes l'installation à partir de disquettes, vous aurez -à travailler avec la disquette de secours (<em>Rescue Floppy</em>) qui -est déjà probablement dans le lecteur et ensuite avec la disquette de -pilotes (<em>Drivers Floppy</em>). -</sect> - -<sect> Configuration du support PCMCIA - -<p> -Il y a une autre étape <em>avant</em> la configuration des -modules de pilotes de périphériques appelée « Configuration du -support PCMCIA » (<em>Configure PCMCIA Support</em>). Elle est utilisé -pour activer le support PCMCIA. - -<p> -Si vous avez une extension PCMCIA mais que vous ne l'utilisez pas pour -installer votre système Debian (c'est-à-dire installation avec une -carte ethernet PCMCIA), il n'est pas nécessaire de configurer le -support PCMCIA ici. Il est très facile de le configurer et de -l'activer plus tard, à la fin de l'installation. Dans tous les cas, si -vous devez installer quand même une extension PCMCIA pour le réseau, -vous devez la choisir ici et son support sera configuré antérieurement -à celui du réseau. - -<p> -Si vous avez besoin de PCMCIA, sélectionnez l'autre choix en dessous -de « Configuration des modules de pilotes de périphériques » -(<em>Configure Device Driver Modules</em>). On vous demandera alors le -nom du contrôleur PCMCIA de votre système. Dans la plupart des cas, ce -sera <prgn>i82365</prgn>. Quelques fois, vous pourrez aussi rencontrer -<prgn>tcic</prgn>. Votre vendeur-fournisseur d'ordinateur portable -doit vous procurer l'information. Vous pouvez généralement laisser les -autres champs d'options vides. Attention, certains matériels ont des -besoins particuliers; le <em>PCMCIA-HOWTO</em> -(<em>http://metalab.unc.edu/LDP/HOWTO/PCMCIA-HOWTO.html</em>) contient -plein d'informations au cas où les options par défaut ne -conviendraient pas. - -<p> -Dans certains cas exceptionnels, il se peut que vous ayez à modifier -le fichier <em>/etc/pcmcia/config.opts</em>. Vous devez ouvrir votre -seconde console virtuelle (<em>Alt-F2</em>) et éditer le fichier -dedans pour reconfigurer votre extension PCMCIA. Vous pouvez aussi -forcer un rechargement des modules par l'intermédiaire de -<prgn>insmod</prgn> et <prgn>rmmode</prgn>. - -<p> -Une fois que votre interface PCMCIA est correctement configurée et -installée, il vous faut passer à la configuration des pilotes de -périphériques comme décrit dans le paragraphe suivant. -</sect> - -<sect>Configuration des modules de pilotes de périphériques - -<p> -Sélectionnez le menu <em>Configure Device Driver Modules</em> -(configuration des modules de pilotes de périphériques) et passez en -revue les périphériques présents sur votre système. Configurez les -pilotes de ces périphériques et ces derniers seront chargés lors des -amorçages de votre système. - -<p> -Il n'est pas nécessaire de tout configurer à cette étape; ce qui est -crucial est d'avoir configuré les périphériques requis pour -l'installation d'un système de base. - -<p> -Une fois le système installé, vous pouvez reconfigurer les modules -à +tout moment grâce au programme <prgn>modconf</prgn>. - -<sect1> Configuration du réseau - -<p> -Vous aurez à configurer le réseau même si vous n'en avez pas. Dans ce -cas, vous n'aurez qu'à répondre aux deux premières questions - -<em>Choose the hostname</em> (Choisir le nom de domaine) et <em>Is -your systeme connected to a network ?</em> (Est-ce que votre système -est connecté à un réseau?). - -<p> -Si vous êtes connecté à un réseau, les informations de la partie 4.2.1 -vous seront nécessaires. Si votre connexion principale au réseau -utilise <prgn>ppp</prgn>, il ne vous faut PAS configurer le réseau -ici. - -<p> -<prgn>dbootstrap</prgn> va vous poser un certain nombre de questions -au sujet de votre réseau. Vous les obtiendrez à partir du paragraphe -4.2.1. Le système va au final faire un résumé des informations réseau -et vous demander une confirmation. Ensuite, vous devrez spécifier le -périphérique réseau que votre connexion réseau principale -utilise. Généralement, il s'agit de <prgn>eth0</prgn> (le premier -périphérique Ethernet). Sur un ordinateur portable, on rencontre plus -souvent comme périphérique réseau principal une interface -<prgn>pcmcia</prgn>. - -<p> -Voici quelques détails techniques pratiques: le programme s'assure que -l'adresse réseau IP est bien la résultante d'un <prgn>AND</prgn> de -votre adresse IP et de celle de votre masque réseau. Il s'assure aussi -que votre adresse de réseau de diffusion est bien la résultante d'un -<prgn>OR</prgn> de votre adresse IP avec l'inverse des bits de -l'adresse du masque réseau. Il s'assure aussi que votre passerelle de -routage est identique à votre serveur DNS. Vous pouvez les changer une -fois le système installé, si nécessaire, en éditant le fichier -<em>/etc/init.d/network</em> (sur un système Debian, les -<em>daemons</em> sont lancés par scripts dans le répertoire -<em>/etc/init.d</em>). -</sect1> -</sect> - -<sect> Installation du système de base. - -<p> -Lors la phase <em>Install the Base System</em> (Installation du -système de base), on vous proposera une liste de périphériques -à partir desquels installer votre système de base. Vous devrez -sélectionner ici le périphérique cédérom. - -<p> -Il apparaîtra alors un champ pour spécifier le chemin vers le fichier -<em>base2_1.tgz</em>. Si vous avez une version officielle du support -Debian, la valeur par défaut devrait être correcte. Sinon, entrez le -chemin où le système de base peut être trouvé, relativement au point -de montage du support. Comme lors de l'étape <em>Install Operating -System Kernel and Modules</em>, vous pouvez soit laisser -<prgn>dbootstrap</prgn> trouver seul le fichier ou taper le chemin -dans le champ. - -<sect1> Configuration du système de base - -<p> -À ce moment, vous avez chargé tous les fichiers qui font un système -Debian minimal mais vous devez faire quelques ajustements de -configuration avant que le système ne se lance. - -<p> -On vous demandera de sélectionner la zone horaire (<em>time -zone</em>). Il y a de nombreuses façons de spécifier votre zone -horaire; nous vous suggérons d'aller dans le tableau -<em>Directories</em> et de sélectionner votre pays (ou -continent). Cela change les zones horaires disponibles donc allez-y et -sélectionnez votre localité (c'est-à-dire, pays, province, état ou -ville) dans le tableau <em>Timezones</em>. - -<p> -Ensuite, on vous demandera si votre horloge système est réglée sur -l'heure GMT ou sur une heure locale. Sélectionnez GMT (c'est-à-dire, -répondez <em>Yes</em>) si vous ne désirez faire tourner que Linux sur -votre ordinateur; sélectionnez l'heure local (<em>local time</em>) -(c'est-à-dire, <em>No</em>) si vous utilisez un système autre que -Debian. Les systèmes Unix en général (et Linux en particulier) -utilisent l'heure GMT comme horloge système en interne et la convertissent -en heure locale pour les utilisateurs. Cela permet de garder des -traces des sauvegardes journalières au fil des ans et autorise aussi -un utilisateur à se loguer à partir d'une autre zone horaire pour -utiliser individuellement son heure locale sur son terminal. -</sect1> - -<sect1> Faire que Linux soit bootable directement à partir du disque dur - -<p> -Si vous choisissez de booter directement sur Linux à partir du disque -dur, on vous demandera d'installer un secteur d'enregistrement -principal (<em>master boot record</em> ou encore <em>MBR</em>). Si -vous utilisez un gestionnaire d'amorce (<em>boot manager</em>) (et c'est -probablement le cas si vous ne savez pas ce que c'est) et que vous -n'avez pas d'autres systèmes d'exploitation sur votre machine, -répondez <em>Yes</em> à cette question<footnote>Make Linux Bootable -Directly from the Hard Disk</footnote>. Remarquez bien que dans ce -cas, il ne vous sera plus possible de booter le DOS normalement sur -votre machine par exemple. Faîtes donc bien attention. Si vous -répondez <em>Yes</em>, la question suivante concernera l'endroit -chercher Linux pour booter au démarrage. Cela doit se régler dans la -<em>partition bootable</em> - celle qui doit être chargée à partir du -disque dur. - -<p> -Remarquez bien que booter différents systèmes d'exploitation sur une -seule machine relève un peu de la cuisine. Ce livre ne documente pas -l'ensemble des nombreux gestionnaires d'amorçage, qui varient beaucoup -selon l'architecture et même selon les sous architectures. Vous devrez -lire la documentation de votre gestionnaire d'amorçage pour avoir plus -d'informations. Dans tous les cas, gardez bien à l'esprit qu'en -travaillant sur les gestionnaires d'amorçage, il ne faut jamais être -trop prudent... - -<p> -Le gestionnaire d'amorçage standard pour les architectures i386 est -appelé <prgn>LILO</prgn>. C'est un programme complexe qui offre plein -de fonctionnalités, avec entre autre, un support du lancement de DOS, -NT et OS/2. Pour obtenir plus d'informations à ce sujet, vous pouvez -lire la documentation dans <em>/usr/doc/lilo</em> après que votre -système ait été configuré. -</sect1> -</sect> - -<sect> Fabriquer une disquette de boot - -<p> -Vous devrez faire une disquette de boot (<em>Boot floppy</em>) même si -vous avez prévu de booter directement à partir du disque. La raison -est qu'il est toujours possible d'avoir un défaut d'installation -à partir de <prgn>dbootstrap</prgn> mais jamais à partir d'une -disquette. Sélectionnez <em>Make a Boot Floppy</em> (Fabriquer une -disquette de boot) à partir du menu principal et insérer une disquette -vierge directement. Assurez-vous que la disquette n'est pas protégée -en écriture car le logiciel va la formater et écrire dessus. Écrivez -dessus <em>Boot personnalisé</em> et protégez la en écriture une fois -qu'elle a été fabriquée. -</sect> - -<sect> Le moment de vérité - -<p> -Le premier boot de votre système de son propre chef est ce que les -ingénieurs en électronique appellent le <em>test de la fumée</em>. Si -vous avez une disquette dans son lecteur, retirez-la. Puis -sélectionnez le menu <em>Reboot the system</em> (Rebooter le système). - -<p> -Si vous bootez directement sur Debian et que le système ne se lance -pas, utilisez soit votre support original d'installation (par exemple, -les disquettes de secours), soit votre disquette de boot personnalisé -si vous en avez créé une, et relancez votre système. Si vous -n'utilisez pas la disquette de boot personnalisé, il vous sera -probablement nécessaire d'ajouter des arguments lors du boot. Si vous -bootez via la disquette de secours ou tout autre support similaire, -il vous sera nécessaire de spécifier <prgn>rescue root=rootfs</prgn> -où <prgn>rootfs</prgn> est votre partition racine, comme -<em>/dev/hda1</em>. - -<p> -Debian devrait alors booter, et vous devriez voir les mêmes messages -que lorsque vous avez booté la première fois le système, avec ensuite -quelques nouveaux messages. -</sect> - -<sect> Ajouter un mot de passe root - -<p> -Le compte root est aussi appelé le compte <em>super-utilisateur</em>; -c'est un utilisateur qui permet d'outrepasser tous les systèmes de -protection sur votre système. Le compte root ne devrait être utilisé -que pour des tâches d'administration et pour une durée aussi courte que -possible. - -<p> -Chaque mot de passe créé devrait contenir six à huit caractères, -mélangeant minuscules et majuscules ainsi que des caractères de -ponctuation. Faîtes très attention en choisissant le mot de passe de -root car ce compte est vraiment très sensible. Évitez tous mots -contenus dans un dictionnaire ou bien tout renseignement personnel qui -peut être deviné. - -<p> -Si quelqu'un vous demande un jour le mot de passe de root, soyez très -prudent. Vous ne devriez jamais avoir à le donner, à moins de -ne pas être le seul à administrer la machine. -</sect> - -<sect> Créer un compte utilisateur ordinaire - -<p> -Le système va alors vous demander de créer un compte utilisateur -ordinaire (<em>Create an Ordinary User</em>). Ce compte pourrait être -votre compte principal personnel. Vous ne <em>devez pas utiliser</em> -le compte root pour une utilisation ordinaire quotidienne ou comme -compte personnel. - -<p> -Pourquoi donc ? Il est beaucoup plus difficile d'endommager le système -en étant un simple utilisateur qu'en root ; le système de fichiers est -bien protégé. Une autre raison est que vous pouvez à votre insu faire -tourner un <em>troyen</em><footnote>programme planqué sous un autre -pour ouvrir des brèches de sécurité dans votre système </footnote> - -c'est-à-dire un programme qui pourra utiliser les avantages du -super-utilisateur pour compromettre la sécurité du système dans votre -dos... Tout bon livre d'administration Unix traite ce sujet en -détail. Il est nécessaire d'en lire un si ce sujet est nouveau pour -vous. - -<p> -Nommez le compte utilisateur à votre convenance. Si votre nom est John -Smith, vous pouvez utiliser « smith », « john », « jsmith » ou « js ». -</sect> - - -<sect> Support des mots de passe cachés. - -<p> -Ensuite, on vous demandera si vous voulez activer les mots de passe -cachés (<em>shadow Password</em><footnote>terme tellement usité qu'il -vaut mieux le connaître...</footnote>). C'est un système -d'authentification qui sécurise un peu plus votre système Linux. Nous -vous recommandons ainsi de l'activer. La reconfiguration du <em>shadow -password</em> peut être faite ultérieurement avec le programme -<prgn>shadowconfig</prgn>. -</sect> - -<sect> Retirer le support PCMCIA - -<p> -Si vous n'utilisez pas d'interface PCMCIA, vous pouvez choisir de la -retirer maintenant. Cela permettra de faire un démarrage plus propre; -cela permet de remplacer votre noyau plus facilement (l'interface -PCMCIA requiert un grand nombre de dépendances entre les pilotes -PCMCIA, les modules du noyau et le noyau proprement dit). De façon -général, vous n'avez pas besoin du support PCMCIA si vous n'utilisez -pas de portable... -</sect> - -<sect> Sélection et installation de <em>profil</em> - -<p> -Le système va maintenant vous demander si vous désirez utiliser les -configurations prédéterminées offertes par Debian. Il est toujours -possible d'installer paquet par paquet ce que l'on veut installer sur -une nouvelle machine. C'est la tâche de <prgn>dselect</prgn> dont la -description se trouve plus loin. Mais cela peut être une longue tâche -avec les milliers de paquets disponibles dans Debian ! - -<p> -Ainsi, vous avez la possibilité de choisir à la place des -<em>tâches</em> ou des <em>profils</em>. Une <em>tâche</em> est la -finalité du travail que vous allez effectuer avec la machine, comme la -programmation en PERL, le traitement HTML ou bien la mise en page de -document en chinois. Vous pouvez choisir de nombreuses -<em>tâches</em>. Un <em>profil</em> est une catégorie de machines, -comme serveur de réseau ou station de travail personnelle. À la -différence des tâches, vous ne pouvez choisir qu'un profil à la fois. - -<p> -Pour résumé, si vous êtes pressé, choisissez un profil. Si vous avez -plus de temps, choisissez le profil personnalisé (<em>Custom -Profile</em>) et sélectionnez un ensemble de tâches. Si vous avez -beaucoup de temps et que vous désirez être minutieux avec le contrôle -de ce qui sera ou non installé, sortez de cette étape et lancez-vous -dans la toute puissance de <prgn>dselect</prgn>. - -<p> -Ensuite, vous allez entrer dans <prgn>dselect</prgn>. Si vous avez -sélectionné des tâches ou des profils, n'oubliez pas de sauter -l'étape <em>Select</em> (Sélectionner) de <prgn>dselect</prgn> car les -sélections ont déjà été effectuées. - -<p> -Un petit avertissement en ce qui concerne la taille des tâches telle -qu'elles sont présentées: la taille présentée pour chaque tâche est la -somme des tailles de ses paquets. Si vous choisissez deux tâches qui -se partagent certains paquets, le véritable espace disque requis sera -inférieur à la somme des tailles de deux tâches. - -<p> -Une fois que vous avez ajouté tous les <em>logins</em> (root et -personnel(s)), vous vous retrouvez dans le programme -<prgn>dselect</prgn>. <prgn>dselect</prgn> vous permet de sélectionner -les paquets à installer sur votre système. Si vous avez un cédérom ou -un disque dur contenant les paquets additionnels de Debian que vous -désirez installer sur votre système, ou bien si vous êtes connecté -à Internet, cela vous facilitera la vie. Sinon, vous pouvez quitter -<prgn>dselect</prgn> et le relancer plus tard après avoir ramener les -paquets Debian sur votre système. Vous devez être super-utilisateur -(root) quand vous voulez vous servir de <prgn>dselect</prgn>. Pour en -savoir plus <prgn>dselect</prgn>, voir section suivante. -</sect> - -<sect> Installation de paquets avec <prgn>dselect</prgn> - -<p> -Il est maintenant temps d'installer les paquets de logiciels de votre -choix sur votre système Debian. Ceci est effectué via l'outil de -gestion des paquets de Debian, <prgn>dselect</prgn>. - -<sect1> Introduction - -<p> -Cette partie documente <prgn>dselect</prgn> pour les utilisateurs -débutants. Elle n'a pas pour but de tout expliquer alors n'hésitez pas -à vous servir des écrans d'aide pour en savoir plus. - -<p> -<prgn>dselect</prgn> est utilisé pour sélectionner quel paquet vous -désirez installer (il y a à l'heure actuelle près de 2250 paquets dans -la Debian 2.1). Cela serait fait pour vous durant -l'installation. C'est un outil très puissant et quelque fois un peu -complexe. Ainsi, posséder quelques connaissances sur lui avant de -l'utiliser est fortement recommandé. Une utilisation incongrue de -<prgn>dselect</prgn> peut gravement endommager votre système. - -<p> -<prgn>dselect</prgn> va vous accompagner durant le processus -d'installation décrit ci-après: - -<list> -<item> Choix de la méthode d'accès à utiliser -<item> Mise à jour de la liste des paquets disponibles, si possible -<item> Sélection des paquets que vous voulez sur votre système -<item> Installation et mis à jour des paquets désirés -<item> Configuration des paquets non configurés -<item> Enlèvement des paquets non désirés -</list> - - -<p> -À chaque fois qu'une étape est achevée avec succès, -<prgn>dselect</prgn> vous emmène automatiquement à la -suivante. Effectuez chaque étape dans l'ordre sans en omettre une. - -<p> -Nous parlons ici et là dans ce document de lancer un autre -<em>shell</em>. Linux a six sessions de contrôle ou shell disponibles -en même temps. Vous pouvez circuler entre eux en pressant la -combinaison <em>Alt-F1</em> jusqu'à <em>Alt-F6</em>. Il vous suffit -alors de vous loguer dans un nouveau shell. La console utilisée lors -de l'installation est la première, c'est-à-dire <prgn>tty1</prgn> -alors presser <em>Alt-F1</em> si vous désirez y retourner. -</sect1> - -<sect1> Une fois que <prgn>dselect</prgn> est lancé - -<p> -Une fois dans <prgn>dselect</prgn>, vous devriez avoir l'écran suivant: - -<p> -<example> -Debian Linux 'dselect' package handling frontend. -0. [A]ccess Choose the access method to use. -1. [U]pdate Update list of available packages, if possible. -2. [S]elect Request which packages you want on your system. -3. [I]nstall Install and upgrade wanted packages. -4. [C]onfig Configure any packages that are unconfigured -5. [R]emove Remove unwanted software -6. [Q]uit Quit dselect -</example> - - -<p> -Détaillons un peu ces six étapes: - -<p> -<em>Access</em> (Accès) - -<p> -<example> -COPIE D'ÉCRAN DE dselect -</example> - -<p> -L'écran d'accès est visible sur la figure 5.2. - -<p> -C'est le lieu où l'on dit à <prgn>dselect</prgn> où sont les -paquets. Ignorez l'ordre d'apparition à l'intérieur du menu. Il est -très important de sélectionner la bonne méthode pour -l'installation. Il se peut que vous les ayez dans un ordre différent, -ou bien que vous en ayez plus ou moins ; ne vous inquiétez pas. Dans -la suite, on décrit les différentes méthodes. - -<p> -<list> -<item>multi_cd -<p> -Grande et puissante, cette méthode complexe est celle recommandée pour -installer une version récente de Debian à partir d'un jeu de cédéroms -de binaires. Chacun de ces cédéroms devraient contenir des -informations sur ses paquets ainsi que sur les paquets des cédéroms -précédents (dans le fichier <em>Package.cd</em>). Lorsque vous utilisez -cette méthode pour la première fois, assurez-vous que le cédérom n'est -pas monté. Placez ensuite le <em>dernier cédérom de binaires</em> du -jeu (les sources ne sont pas nécessaires) dans le lecteur et répondez -aux questions qui vous sont posés: - -<example> -CD-ROM drive location<footnote>emplacement du lecteur de CD-ROM</footnote> -Confirmation that your are using a multi-cd set<footnote>Confirmation de l'utilisation de l'option multi-cd</footnote> -The location of the Debian distribution on the disk(s)<footnote>Emplacement de la distribution Debian sur le(s) disque(s)</footnote> -[ possibly ] the location(s) of the Packages file(s)<footnote>[ peut-être ] l'(es) emplacement(s) des paquets</footnote>. -</example> - -<p> -Une fois que vous avez mis à jour la liste des paquets disponibles et -que vous avez sélectionné les paquets à installer, la méthode -<em>multi_cd</em> diverge d'une procédure normale. Il vous sera -demandé de lancer une installation pour chaque cédérom que vous -possédez, tour à tour. Malheureusement, en raison d'une limitation de -<prgn>dselect</prgn>, il n'est pas possible de changer de cédérom -à chaque étape ; la façon dont se déroule le travail pour chaque cédérom -est le suivant: - -<p> -<list> -<item> Insérez le cédérom dans votre lecteur. -<item> Sélectionnez <em>Install</em> à partir du menu principal de -<prgn>dselect</prgn>. -<item> Attendez jusqu'à ce que <prgn>dpkg</prgn> en ait fini avec -l'installation à partir du cédérom. (Cela peut indiquer une -installation effectuée avec succès, ou de possibles erreurs. Ne vous -en occupez pas pour le moment). -<item> Appuyez sur <em>Entrée</em> pour retourner à l'écran principal -du menu <prgn>dselect</prgn>. -<item> Répétez le tout avec le cédérom suivant. -</list> - -<p> -Il se peut qu'il soit nécessaire d'effectuer l'étape d'installation -plus d'une fois pour respecter l'ordre d'installation des -paquets. Certains paquets installés auparavant peuvent demander -l'installation d'autres paquets pour se configurer proprement. - -<p> -Lancer une étape de <em>Configure</em> est recommandée pour aider -à débloquer les paquets qui le seraient à cette étape. - -<item>multi_nfs, multi_mount - -<p> -Ceci est proche de la méthode de <em>multi_cd</em>: elles apportent -quelques raffinements supplémentaires sur le thème de la copie en -changeant de support - par exemple, installation à partir de multi_cd -exporté via NFS sur le lecteur de cédérom d'une autre machine. - -<item>apt - -<p> -Une des meilleures options pour installer à partir d'un miroir local -des archives Debian ou à partir du réseau. Cette méthode utilise le -système <prgn>apt</prgn> pour effectuer l'analyse complète des -dépendances et de l'ordre. Il est donc recommandé d'installer les -paquets dans le meilleur des ordres possibles. - -<p> -La configuration de cette méthode est traitée plus loin. Vous pouvez -choisir autant de sources différentes d'emplacements de paquets, en -les mélangeant avec des fichiers: <em>URLs</em> (pour les disques -locaux ou les disques montés par NFS) et <em>http:</em> ou -<em>ftp</em> pour les accès sur Internet. Attention, les options -<em>http</em> et <em>ftp</em> ne supportent pas l'authentification -locale via un proxy. - -<p> -Si vous avez un serveur de proxy soit pour le http soit pour le ftp -(ou pour les deux), assurez-vous que les variables d'environnement -<prgn>http_proxy</prgn> et <prgn>ftp_proxy</prgn> soient bien -positionnés. Positionnez-les à partir du shell avant de lancer -<prgn>dselect</prgn> en utilisant les commandes suivantes: - -<p> -<example> -# export http_proxy=http://gateway:3128/ -# dselect -</example> -</list> - -<p> -<em>Update</em> (mise à jour) - -<p> -<prgn>dselect</prgn> va lire les fichiers <em>Packages</em> ou -<em>Packages.gz</em> à partir du miroir et créer une base de données -sur votre système de tous les fichiers disponibles. Cela peut prendre -un peu de temps, tant pour le téléchargement que pour l'exécution du -traitement. - -<p> -<em>Select</em> (Sélection) - -<p> -Asseyez-vous sur votre chapeau: c'est ici que tout se passe. Le but de -l'exercice est de sélectionner seulement le paquet que l'on désire -installer. - -<p> -Appuyez sur <em>Entrée</em>. Si vous avez une machine lente, faîtes -très attention car l'écran va s'effacer et peut rester vierge pendant -environ 15 secondes. Alors, n'essayez pas de taper sur des touches -pendant ce temps-là. - -<p> -La première chose qui apparaît à l'écran est la première page de -l'aide. Vous pouvez obtenir l'aide à tout moment dans l'écrans -<em>Select</em> en tapant sur « ? ». Vous pouvez dérouler l'aide par -l'intermédiaire du «.». - -<p> -Avant de plonger plus en avant, notons bien ceci: - -<list> - -<item> Pour sortir de l'écran de sélection (<em>Select</em>) après -avoir tout sélectionné, il suffit de presser sur <em>Entrée</em>. Cela -retourne à l'écran principal s'il n'y a pas de problème de -sélection. Sinon, on vous demandera de régler le problème. Lorsque -vous êtes content avec tous les écrans proposés, appuyez sur -<em>Entrée</em> pour sortir. -<item> Les problèmes sont quelque chose de normal et sont même -attendus. Si vous sélectionnez un paquet A qui demande un paquet B -pour fonctionner, <prgn>dselect</prgn> vous avertira du problème et -tentera de vous proposer la meilleure des solutions. Si le paquet A -est en conflit avec le paquet B (c'est-à-dire qu'ils sont mutuellement -exclusifs), on vous demandera de trancher et d'en choisir un. -</list> - -<p> -Regardez les deux premières lignes de l'écran de -<prgn>dselect</prgn>. Cette en-tête est un rappel de certains -raccourcis claviers dressés dans le tableau suivant: - -<p> -<example> - ------------------------------------------------------ -| Touches | Description | - ------------------------------------------------------ -| + | Sélectionne le paquet à installer | -| = | Laisse le paquet en suspend | -| - | Retire le paquet | -| _ | Retire le paquet, ainsi que ses fichiers | -| | de configuration | -| i, I | Affichage cyclique des informations | -| o, O | Affichage cyclique des options de tri | -| v, V | Passage en mode verbeux/sobre | - ------------------------------------------------------ -</example> - -<p> -Le tableau suivant affiche les états que <prgn>dselect</prgn> utilise -pour marquer l'état de chaque paquet et son comportement. - -<p> -<example> - ----------------------------------------------------------- -| Drapeau | État | Valeurs possibles | -|----------------------------------------------------------- -| E | Erreur | Espace, R, I | -| I | État d'installation | Espace, *,-,U,C,I | -| O | Marqueur désuet | *, -, =, _, n | -| M | Marqueur | *, -, =, _, n | - ----------------------------------------------------------- -</example> - -<p> -Plutôt que de tout décrire ici, je vous renvoie aux écrans d'aide qui -sont bien expliqués. Un exemple quand même: - -<p> -Vous entrez dans <prgn>dselect</prgn> et trouver une ligne du genre: - -<p> -<example> -EIOM Pri Section Package Description -** Opt misc loadlin a loader (running under DOS) for LINUX -</example> - -<p> -Ceci dit que <prgn>loadlin</prgn> a été sélectionné lorsque vous avez -lancé <prgn>dselect</prgn> la dernière fois, et qu'il est toujours -sélectionné mais non installé. Pourquoi donc ? Sûrement parce que le -paquet <prgn>loadlin</prgn> n'est pas disponible physiquement. Il doit -être absent de votre miroir. - -<p> -L'information que <prgn>dselect</prgn> utilise pour obtenir tous les -bons paquets installés se cache à l'intérieur des paquets -eux-mêmes. Rien en ce bas monde n'est parfait, et il peut arriver que -les dépendances d'un paquet soient erronées, ce qui veut simplement -dire que <prgn>dselect</prgn> ne sera pas en mesure de résoudre la -situation. Une solution est possible via l'utilisateur pour redonner -le contrôle: cela prend la forme des commandes Q et X qui sont -disponibles dans l'écran de sélection. - -<list> -<item> Q -<p> - surcharge. Force <prgn>dselect</prgn> à ignorer les dépendances et -à faire ce que vous lui imposez. Les résultats, bien sûr, sont sous - votre entière responsabilité. -<item> X -<p> - Utilisez X si vous êtes complètement perdu. Cela remet les choses - telles qu'elles étaient auparavant et sort. -</list> - -Les raccourcis de l'écran de sélection de <prgn>dselect</prgn> qui -vous aide à ne pas être perdu sont R, U et D. - -<list> -<item> R -<p> - Détruit toutes les sélections faîtes durant ce niveau. N'affecte pas - les sélections faîtes aux niveaux précédents. -<item> U -<p> - Si <prgn>dselect</prgn> a proposé des changements, et que vous les - avez modifiés, U revient aux sélections de <prgn>dselect</prgn>. -<item> R -<p> - Enlève les sélections de <prgn>dselect</prgn> en ne laissant que les - vôtres. -</list> - -<p> -Un exemple suit. Le paquet <em>boot-floppies</em> (pas un exemple de -débutant, je sais, mais il a été choisi car il possède de nombreuses -dépendances) dépend des paquets suivants: - -<example> -- libc6-pi -- slang1-picn -- sysutils -- makedev -- newt0.25 -- newt0.25-dev -- popt -- zlibig -- zlibig-dev -- recode -</example> - -<p> -Le développeur maintenant le paquet <em>boot-floppies</em> pense que les -paquets suivants devraient aussi être installés. Ils ne sont pas, en -tout cas, indispensables: - -<example> -- lynx -- debiandoc-sgml -- unzip -</example> - -<p> -Lorsque vous sélectionnez <em>boot-floppies</em>, <prgn>dselect</prgn> -vous envoie dans l'écran de résolution des conflits. Vous remarquerez -que les paquets requis ont été sélectionnés. - -<p> -Pressez alors sur la touche R pour remettre les choses à leur point de -départ. - -<example> -EIOM Pri Section Package Description - __ Opt admin boot-floppie Scripts to create the Debian - __ Opt devel newt0.25-dev Developer's toolkit for newt - __ Opt devel slang1-dev The S-Lang programming library - __ Opt devel slang1-pic The S-Lang programming library -</example> - -<p> -Si vous décidez maintenant que vous ne voulez plus du paquet -<em>boot-floppies</em>, appuyez simplement sur <em>Entrée</em>. - -<p> -Pressez alors sur la touche D remet les choses à la même place que -lorsque vous les aviez sélectionnés la première fois: - -<example> -EIOM Pri Section Package Description - _* Opt admin boot-floppie Scripts to create the Debian - __ Opt devel newt0.25-dev Developer's toolkit for newt - __ Opt devel slang1-dev The S-Lang programming library - __ Opt devel slang1-pic The S-Lang programming library -</example> - -<p> -Pressez alors sur la touche U revient les sélections initiales de -<prgn>dselect</prgn>: - -<example> -EIOM Pri Section Package Description - _* Opt admin boot-floppie Scripts to create the Debian - _* Opt devel newt0.25-dev Developer's toolkit for newt - _* Opt devel slang1-dev The S-Lang programming library - _* Opt devel slang1-pic The S-Lang programming library -</example> - -<p> -Je vous suggère de laisser les paramètres par défaut pour le moment: -vous aurez amplement l'occasion de les modifier plus tard. - -<p> -Quoique vous décidiez, appuyez sur la touche <em>Entrée</em> pour -valider et retourner à l'écran principal. Si l'action résultante -conduit toujours à des problèmes à résoudre, vous serez à nouveau -renvoyé à un nouvel écran de résolution de conflit. - -<p> -Les touches R, U et D sont très utiles dans les situations « qu'est-ce -qui se passe si ? ». Vous pouvez expérimenter à volonté et ensuite -revenir à la situation initiale. <em>Ne les regardez pas</em> comme -une vitrine où il y aurait marqué « à ne briser qu'en cas de danger ». - -<p> -Après avoir fait vos sélections dans l'écran de sélection, appuyez sur -I pour obtenir une grande fenêtre, appuyez sur t pour aller au début -et utilisez les touches <em>Page Up</em> et <em>Page -Down</em><footnote>Écran haut et bas sur les claviers français: ce -sont les touches de droite du pavé situé au-dessus des flèches de -déplacement.</footnote> pour vous déplacer rapidement parmi les -sélections. Vous pouvez ainsi vérifier le résultat de votre travail et -détecter d'éventuelles erreurs. Certaines personnes ont -déselectionné des groupes entiers de paquets par erreur et ne s'en -sont rendu compte que trop tard. <prgn>dselect</prgn> est un outil -très puissant: ne le sous-utilisez pas... - -<p> -Vous devriez avoir la situation suivante: - -<example> - ----------------------------------------------------- -| Package category | Status | - ----------------------------------------------------- -| Recquired | all selected | -| Important | all selected | -| Standard | mostly selected | -| Optional | mostly deselected | -| Extra | mostly deselected | - ----------------------------------------------------- -</example> - -<p> -Heureux ? Appuyez sur la touche <em>Entrée</em> pour sortir du -processus de sélection. Vous pouvez y revenir et à nouveau -sélectionnez si vous le désirez. - -<p> -<em>Install</em> (Installation) - -<p> -<prgn>dselect</prgn> travaille sur la totalité des paquets et installe -ceux sélectionnés. Il vous pose des questions pour appliquer vos -décisions. Il est souvent pratique de passer sur un autre shell pour -comparer une ancienne configuration avec une nouvelle. Si l'ancien -fichier est <em>conf.modules</em>, le nouveau sera -<em>conf.modules.dpkg-dist</em>. - -<p> -Le défilement à l'écran se passe parfois très rapidement sur les -machines puissantes. Vous pouvez toujours le stopper et le redémarrer -à l'aide des combinaisons respectives de touches <em>Ctrl-s</em> et -<em>Ctrl-q</em>. À la fin de la tâche, vous aurez une liste des -paquets non installés. - -<p> -Il peut arriver qu'un paquet ne soit pas installé car il dépend d'un -autre qui est décrit comme à installer mais qui ne l'est pas -encore. La solution consiste à relancer <em>Install</em> une nouvelle -fois. Il a été reporté des cas où il a été nécessaire de le relancer -quatre fois avant que tout ne se mette en place correctement. Cela -varie beaucoup suivant votre méthode d'acquisition. - -<p> -<em>Configure</em> (Configuration) - -<p> -La plupart des paquets sont configurés à l'étape précédente mais toute -chose restée en suspens peut être achevée ici. - -<p> -<em>Remove</em> (Suppression) - -<p> -Suppression des paquets installés que l'on désire retirer. - -<p> -<em>Quit</em> (Quitter) - -<p> -Je suggère de lancer <prgn>/etc/cron.daily/find</prgn> à ce moment car -vous avez de nombreux nouveaux fichiers sur votre système. Ensuite, -vous pourrez utiliser <prgn>locate</prgn> pour obtenir l'emplacement -de n'importe quel fichier. -</sect1> - -<sect1> Quelques remarques pour conclure - -<p> -Lorsque le processus d'installation lance <prgn>dselect</prgn> pour -vous, vous devez être impatient de lancer Debian aussitôt que -possible. Hé bien, préparez-vous à prendre une heure - ou plus - pour -apprendre à vous en servir et à l'utiliser judicieusement. Lorsque -vous entrez pour la première fois dans l'écran de sélection, n'en -faîtes <em>aucune</em> - appuyez simplement sur la touche -<em>Entrée</em> - et observez les problèmes de dépendances. Essayez de -les résoudre. Si vous vous retrouvez une nouvelle fois dans l'écran -principal, lancer <em>Select</em> une nouvelle fois. - -<p> -Vous pouvez vous faire une idée de la taille d'un paquet en appuyant -deux fois sur i et en regardant le champ <em>Size</em> (Taille). Ceci -est la taille du paquet avec compression donc la décompression du -paquet risque d'être nettement plus importante (voir le champ -<em>Installed-Size</em> (Taille après installation) qui est en -kilo-octets, pour la déterminer). - -<p> -Installer un nouveau système Debian est une chose complexe mais -<prgn>dselect</prgn> peut vous aidez à rendre la chose la plus aisée -possible. Prenez donc bien le temps d'apprendre à vous en servir. Lisez -les écrans d'aide et expérimentez les touches i, I, o et O. Utilisez -la touche R. Ce sera tout pour ici mais cela devrait être suffisant -pour vous en servir avec efficacité. -</sect1> -</sect> - -<sect> Glossaire - -<p> -Les termes suivants sont largement utilisés dans ce livre et de -façon générale lorsque l'on parle de Debian. - -<p> -<em>Paquet</em> - -<p> -C'est un fichier contenant tout le nécessaire à l'installation, à la -désinstallation et à l'utilisation d'un programme particulier. Le -logiciel qui gère les paquets est -<prgn>dpkg</prgn>. <prgn>dselect</prgn> est une interface -à <prgn>dpkg</prgn>. Les utilisateurs expérimentés utilisent souvent -<prgn>dpkg</prgn> pour installer ou retirer un paquet. - -<p> -<em>Nom de paquet</em> - -<p> -Tous les noms de paquets sont de la forme -<em>xxxxxxxxxxx.deb</em>. Voici un exemple de noms de paquets simples: - -<example> -- efax_08a-1.deb -- lrzsz_0.12b-1.deb -- mgetty_0.99.2-6.deb -- minicom_1.75-1.deb -- term_2.3.5-5.deb -- uucp_1.06.1-2.deb -- uutraf_1.1-1.deb -- xringd_1.10-2.deb -- xtel_3.1-2.deb -</example> - - -</sect> - - </chapt> -<chapt> Se loguer - -<p> -Votre système est maintenant installé ! Vous pouvez vous congratuler -du bon travail effectué ! Il est temps maintenant de lancer le système -pour l'utiliser. Dans ce chapitre, nous allons vous faire découvrir -les lignes de commande Debian, quelques principes de sécurité et -comment sortir du système. Dans les chapitres suivants, nous -détaillerons plus ces sujets et nous vous ferons découvrir l'interface -graphique de Debian, X11. - -<sect> Les premiers pas - -<p> -Après avoir quitter <prgn>dselect</prgn>, le <em>login</em> suivi du -prompteur se présentent à vous. Vous pouvez maintenant vous -loguer<footnote>J'ai délibérément francisé le terme anglais <em>to log -in</em> tellement ce terme est devenu un standard en français -</footnote> en utilisant le <em>login</em> et le mot de passe que vous -avez choisi. Votre système est maintenant prêt à être -utilisé. Examinons ce que veut dire se loguer et comment cette -procédure fonctionne. - -<p> -Pour utiliser Debian, vous devez vous identifier personnellement au -système. Cela lui permettra de savoir qui vous êtes, quels sont vos -droits et quelles sont vos préférences. - -<p> -Pour en arriver là, vous avez un <em>nom d'utilisateur</em> ou un -<em>login</em><footnote>Encore une fois, le terme anglais est -tellement usité qu'il vaut mieux l'apprendre et -l'utiliser</footnote>. Si vous avez installé Debian vous-même, il vous -a été demandé de fournir un tel nom durant l'installation. Si vous -vous connectez à un système administré par quelqu'un d'autre, vous -aurez à lui demander de vous fournir un compte sur le système ainsi -que son nom. - -<p> -Vous avez aussi un mot de passe et ainsi personne ne peut prétendre -s'identifier à votre place. Si vous n'avez pas de mot de passe, tout -le monde peut se connecter à votre place sur votre ordinateur depuis -Internet et faire des tas de mauvaises choses. Si vous vous préoccupez -un tant soit peu de sécurité, vous devez avoir un mot de passe. - -<p> -De nombreuses personnes préfèrent croire que les autres ne feront rien -de méchant sur leur compte. Il est raisonnable de croire que votre -environnement de travail n'encourage pas la paranoïa. C'est une -attitude parfaitement raisonnable. Cela dépend de vos priorités -personnelles et de votre environnement. Il est certain qu'un système -familial n'a pas les mêmes besoins en sécurité qu'une installation -militaire. Debian vous permet aussi bien d'être sécurisé -qu'insécurisé. Cela reste à votre convenance. - -<p> -Lorsque vous démarrez Debian, vous apercevez un prompteur -(<em>prompt</em>): c'est l'ordinateur qui se met en attente -d'informations. Dans ce cas, le prompteur est <prgn>login:</prgn>. - -<p> -Vous devez taper votre nom d'utilisateur et, lorsque l'on vous le -demande, votre mot de passe. Le mot de passe n'apparaît pas à l'écran -lors de sa frappe. Appuyez sur la touche <em>Entrée</em> après avoir -entré le nom d'utilisateur et après le mot de passe. Si vous trompez -lors de la frappe de votre nom d'utilisateur ou lors de celle du mot -de passe, vous aurez à recommencer. - -<p> -Si vous effectuez l'opération correctement, vous verrez un message -rapide et ensuite un $ suivi d'un prompteur. Le $ est écrit par un -programme spécial appelé le <em>shell</em><footnote>ou -<em>interpréteur de commandes</em> en français mais le terme -<em>shell</em> est aussi utilisé que <em>log</em> ou -<em>login</em></footnote>. Il est appelé le <em>prompteur du -shell</em>. C'est l'endroit où vous envoyez les commandes au système. - -<p> -Essayez d'entrer la commande <prgn>whoami</prgn> maintenant. Il y a un -<em>curseur</em> à la droite du prompteur du shell. Votre curseur est -un petit tiret ou rectangle qui indique où l'on va taper. Il doit se -déplacer au cours de la frappe. Finissez toujours une commande shell -par la touche <em>Entrée</em>. - -<p> -<prgn>whoami</prgn><footnote>littéralement <em>Qui -suis-je</em></footnote> vous renvoie votre nom d'utilisateur. Vous -obtenez ensuite un nouveau prompteur de shell. - -<p> -Dans le reste du livre, lorsque nous parlons d'entrer une commande, -vous aurez à la taper après le prompteur du shell puis la valider avec -la touche <em>Entrée</em>. - -<p> -Lorsque vous avez fini de travailler, il se peut que vous désiriez -quitter votre système. Pour sortir du shell, entrez la commande -<prgn>exit</prgn>. Gardez bien à l'esprit que si vous restez logué, -quelqu'un peut venir et utiliser votre compte. Par chance, vous pouvez -faire confiance en vos collègues de travail ou aux personnes de chez -vous; mais si vous ne pouvez accorder votre confiance dans votre -entourage, vous devrez être certain de vous être délogué avant votre -départ. -</sect> - -<sect> Historique des commandes et édition de la ligne de commande - -<p> -Tout ce que vous tapez après le prompteur du shell et avant de valider -par <em>Entrée</em> est appelé une <em>ligne de commande</em>. C'est -une ligne de texte qui demande à l'ordinateur de faire quelque -chose. Le shell par défaut de Debian offre de nombreuses -fonctionnalités pour rendre plus aisée l'entrée de la ligne de -commande. - -<p> -Vous pouvez revenir aux commandes précédentes pour les lancer -à nouveau ou vous pouvez les modifier avec facilité et ensuite les -relancer. Essayez ceci: entrez n'importe quelle commande, comme -<prgn>whoami</prgn>. Ensuite, appuyez sur la flèche de direction -verticale vers le haut. La commande <prgn>whoami</prgn> va -réapparaître après le prompteur. Vous pouvez alors appuyer sur -<em>Entrée</em> pour lancer une seconde fois la commande -<prgn>whoami</prgn>. - -<p> -Si vous avez entré de nombreuses commandes, vous pouvez appuyer sur la -flèche plusieurs fois pour naviguer au travers des différentes -commandes. Cette fonctionnalité est très pratique si vous répétez la -même chose plusieurs fois de suite, ou si vous tapez mal une commande -et que vous la rappeliez pour la corriger. Vous pouvez aussi utiliser -la flèche verticale vers le bas pour circuler dans l'autre sens, vers -les commandes les plus récentes. Lorsqu'il n'y a plus de commande -à afficher, l'ordinateur envoie alors un signal sonore. - -<p> -Vous pouvez aussi vous déplacer sur la ligne de commande pour -effectuer des transformations. La façon la plus simple est d'utiliser -les flèches de déplacements horizontaux gauche et droite. Essayez de -taper <prgn>whoami</prgn> à la place de <prgn>whoami</prgn>. Utilisez -alors la flèche de déplacement horizontal vers la gauche pour revenir -en arrière vers le s. Vous pouvez effacer le s à l'aide de la touche -<em>backspace</em><footnote>touche située au-dessus de la touche -<em>Entrée</em> et comportant une flèche horizontal en direction -arrière du défilement normal de l'écran, d'où son nom (<em>back</em> -arrière et <em>space</em> espace)</footnote> ou <em>Suppr</em>. - -<p> -Il y a bien d'autres fonctionnalités avancées mais il n'est pas -nécessaire de les mémoriser maintenant. Essayez <em>Ctrl-a</em> pour -vous retrouver directement au début de la ligne de -commande. <em>Ctrl-k</em> (le k est pour <em>kill</em>, tuer en -anglais) détruira tous les caractères situés à droite jusqu'à la fin -de la ligne; essayez-la à partir du milieu d'une ligne de -commande. <em>Ctrl-y</em> renvoie la dernière chose que vous avez -détruite en l'insérant à la position courante du curseur (y est pour -<em>yank</em> en anglais). <em>Ctrl-e</em> déplace le curseur -jusqu'à la fin de la ligne de commande. - -<p> -Allez de l'avant et jouez avec l'édition de la ligne de commandes pour -commencer à la maîtriser. Expérimentez. -</sect> - -<sect> Travailler en tant que Root - -<p> -Puisque Debian est un système multi-utilisateurs, il est nécessaire -d'en désigner un de particulier ou un programme pour être capable de -tout faire sur le système. Le noyau n'autorise pas l'utilisateur -normal à changer des fichiers importants du système. Cela signifie -que les choses restent dans l'état où elles sont, à l'abris des -accidents, des virus et même des tours de magie. À la différence de -certains autres systèmes d'exploitation, Debian est à l'abris de ce -genre de tracas. Il n'est pas nécessaire d'utiliser un programme -d'anti-virus. - -<p> -Parfois, il est quand même nécessaire de changer des fichiers -importants. Par exemple, vous pouvez avoir envie d'installer un -nouveau logiciel ou bien de configurer votre connexion réseau. Pour le -faire, il vous faut des pouvoirs plus étendus que ceux d'un -utilisateur normal. Vous devez devenir l'utilisateur <em>root</em> -(parfois appelé aussi le <em>super-utilisateur</em>). - -<p> -Pour devenir root, il vous suffit de vous loguer avec le nom -d'utilisateur <em>root</em> et le mot de passe de root. Ceci a été -fait durant l'installation: voir la section 5.15 pour plus de détails. - -<p> -Dans de nombreux sites, seul l'administrateur système possède le mot -de passe de root et seul l'administrateur système peut faire les -tâches dévolues à root. Si vous utilisez votre propre ordinateur -personnel, <em>vous</em> êtes l'administrateur système, bien-sûr. Si -vous n'avez pas les privilèges du super-utilisateur, il vous sera -nécessaire de passer la main à votre administrateur système pour les -tâches qui requièrent les privilèges de root. - -<p> -Parfois, vous aurez accès au mot de passe de root, souvent dans des -organisations ou sur des serveurs d'écoles, car l'administrateur -système vous fait confiance dans sa juste utilisation. Dans ce cas, il -vous sera possible d'aider l'administrateur et de personnaliser le -système pour vos besoins. Mais vous devrez toujours agir de façon -responsable, en respectant tout le temps les autres utilisateurs. - -<p> -Si vous possédez le mot de passe de root, essayez de vous loguer en -tant que root maintenant. Entrer la commande <prgn>whoami</prgn> pour -vérifier votre identité. Et ensuite, <em>déloguez-vous -immédiatement</em>. Lorsque vous êtes root, le noyau ne vous protège -pas de vous-même car root a les permissions de tout faire sur tout le -système. N'expérimentez pas en tant que root. En fait, ne faîtes rien -sous root qui ne soit absolument nécessaire. Ce n'est pas tant un -problème de sécurité qu'un problème de stabilité. Votre système s'en -portera d'autant mieux qu'il est protégé de vos erreurs. - -<p> -Il se peut que vous trouviez la commande <prgn>su</prgn> plus pratique -pour se loguer en tant que root. <prgn>su</prgn> vous permet de -prendre l'identité d'un autre utilisateur, généralement root à moins -qu'elle ne soit suivie du nom de quelqu'un d'autre (Vous pouvez -essayer de vous en souvenir en disant que <prgn>su</prgn> signifie -<em>Super User</em> bien que certains disent que c'est pour <em>Set -UserID</em> (positionne l'ID de l'utilisateur)). - -<p> -Voici quelque chose à essayer. Loguez-vous en tant que simple -utilisateur, c'est-à-dire, en n'étant pas root. Après, votre session -devrait ressembler à quelque chose comme cela: - -<p> -<example> -$ whoami Vérifie votre nom d'utilisateur -username Renvoie votre nom d'utilisateur -$ su Demande au système les droits super-utilisateurs -Password: Taper votre mot de passe root ici -machine:~# whoami -root Vous êtes maintenant root -machine:~# exit Sort de votre shell root -$ exit Sort de votre shell "normal" -</example> - -<p> -Lorsque vous faîtes des tâches d'administration système, vous devriez -les faire autant que possible en tant que simple utilisateur. Ensuite, -utilisez <prgn>su</prgn> pour la partie qui requiert les privilèges -de root. Pour le faire, taper <prgn>su user</prgn> où -<prgn>user</prgn> est l'utilisateur que vous voulez devenir. Vous -devrez connaître le mot de passe de l'utilisateur en question, -bien-sûr, à moins que vous ne soyez root à ce moment là ou bien que -l'utilisateur n'ait pas de mot de passe. -</sect> - -<sect> Consoles virtuelles - -<p> -Le noyau Linux supporte les consoles virtuelles. Ceci permet de faire -de votre simple écran et clavier un système de type terminaux -multiples connectés au même système. Heureusement, l'utilisation des -consoles virtuelles est triviale sous Debian: il y a des touches -dédiées pour aller d'une console à l'autre rapidement. Pour l'essayer, -loguez dans votre système puis pressez sur <em>Alt-F2</em> (appuyez -simultanément sur la touche <em>Alt</em> et sur <em>F2</em> qui est la -touche de fonction numéro deux). - -<p> -Vous devriez vous retrouver avec une demande de login. Ne paniquez -pas. Vous êtes maintenant sur la console virtuelle (<em>VC</em> pour -<em>virtual console</em> en anglais) numéro deux ! Loguez-vous et -faîtes quelque chose - quelques commandes <prgn>whoami</prgn> ou -n'importe quoi d'autre - pour vous assurez qu'il s'agit bien d'un -nouveau shell. Maintenant vous pouvez retourner à la console numéro un -en pressant <em>Alt-F1</em>. Ou bien vous pouvez aussi aller sur la -console numéro trois avec <em>Alt-F3</em>. - -<p> -Debian est fourni avec six consoles actives par défaut, qui sont -accessibles avec la combinaison de la touche <em>Alt</em> et des -touches de fonctions <em>F1</em> jusqu'à <em>F6</em>. (Techniquement, -il y a plus de six consoles actives mais seules six sont accessibles -pour vous loguer. Les autres sont réservées pour le système X Window -ou d'autres tâches.) - -<p> -Si vous utilisez le système X Window, il se lance généralement sur la -première console virtuelle non utilisable - probablement la -sept. Dès-lors, pour passer de la console virtuelle sous X à une des -six autres consoles, vous devez ajouter la touche <em>Ctrl</em> à la -séquence de touches. Ainsi, il faut faire <em>Ctrl-Alt-F1</em> pour -aller à la console virtuelle numéro un. Mais vous pouvez aller d'une -console texte vers une console X en n'utilisant que la touche -<em>Alt</em>. Si vous ne quitter jamais X, vous n'avez pas à vous -inquiéter à ce sujet, X passera automatiquement sur sa console -virtuelle au démarrage. - -<p> -Une fois que vous les aurez maîtrisées, les consoles virtuelles -deviendront certainement un outil indispensable pour faire plusieurs -choses en même temps (Le système X Window offre la même -fonctionnalité, au détail près qu'il s'agit de fenêtres multiples -plutôt que de consoles). Vous pouvez lancer différents programmes dans -chaque console virtuelle ou vous loguer en root dans une et en -vous-même dans une autre. Ou bien chacun dans la famille n'utilise que -sa console virtuelle. Ceci est particulièrement pratique si vous -utilisez X car dans ce cas, vous pouvez lancer plusieurs sessions X en -même temps dans différentes consoles. -</sect> - -<sect> Arrêter le système - -<p> -<em>N'éteignez pas simplement l'ordinateur ! Vous risquez de perdre -des données de valeurs !</em> - -<p> -Si vous êtes le seul utilisateur de la machine, vous pouvez avoir -envie de l'éteindre une fois votre travail terminé. - -<p> -Pour éviter de fatiguer certains composants, il est recommandé de -n'éteindre sa machine qu'une fois par jour, lorsque tout le travail -est terminé. L'allumage et l'arrêt des ordinateurs sont les deux -causes principales d'usure et de fatigue des composants internes de -l'ordinateur. Allumer et fermer votre ordinateur une fois par jour est -certainement le meilleur compromis entre votre facture d'électricité -et la durée de vie de votre machine. - -<p> -C'est une mauvaise chose que d'éteindre l'ordinateur en appuyant -simplement sur le bouton d'alimentation du courant lorsque vous avez -fini de travailler. C'est aussi une mauvaise idée que de rebooter la -machine (avec le bouton <em>Reset</em>) sans avoir pris auparavant -quelques précautions. Le noyau Linux, pour augmenter ses performances, -utilise un <em>cache disque</em>. Cela signifie qu'il garde -temporairement en mémoire certaines informations stockées sur le -disque. Puisque la mémoire est des milliers de fois plus rapide qu'un -disque dur, certaines opérations sur les fichiers sont ainsi beaucoup -plus rapides. Périodiquement, ces informations en mémoire sont -retranscrites sur le disque. Cette opération est appelée -<em>syncing</em>. En vue d'éteindre ou de rebooter votre machine, il -est nécessaire de lui dire de tout nettoyer en mémoire et de le placer -sur l'unité de stockage permanent. - - -<p> -Pour rebooter, tapez simplement <prgn>reboot</prgn> ou appuyez sur -<em>Alt-Ctrl-Suppr</em>. - -<p> -Pour éteindre l'ordinateur il vous faut vous loguer en tant que -root. Vous n'avez alors qu'à taper la commande <prgn>shutdown -h -now</prgn>. Le système va alors dérouler la procédure d'extinction, y -compris la commande <prgn>sync</prgn> qui nettoie le cache disque -comme décrit précédemment. Lorsque vous apercevez <em>System -halted</em>, il est possible d'éteindre sans danger l'ordinateur. Si -vous avez un BIOS qui supporte l'APM (<em>Advanced Power -Management</em>) et un noyau aussi, l'ordinateur peut se couper tout -seul et ainsi vous épargner des problèmes. APM est très commun pour -les ordinateurs portables et on le trouve aussi parfois dans certaines -cartes mères d'ordinateurs de bureau. - -</sect> - -</chapt> -<chapt> Les bases - -<p> -Il est maintenant temps d'explorer le système plus en détail. Vous -avez vu comment se loguer et éteindre le système. Dans ce chapitre, -nous allons explorer la ligne de commandes sous Linux, comment Linux -gère fichiers et répertoires et quelques règles de base pour vous -identifier des autres. - -<sect> La ligne de commandes et les pages de <prgn>man</prgn> - -<p> -Nous avons déjà discuté de la ligne de commandes - qui sont, -rappelons-le, les commandes que vous tapez après le prompteur du -shell. Cette partie décrit la structure de lignes de commandes -beaucoup plus compliquées. - -<p> -Une ligne de commandes minimale contient juste le nom d'une commande, -comme <prgn>whoami</prgn>. Mais bien d'autres choses sont -possibles. Par exemple, vous pouvez taper <prgn>man -whoami</prgn>. Cette commande appelle l'aide en ligne de la commande -<prgn>whoami</prgn> (Vous devrez vous déplacer à l'aide de la touche -<em>espace</em> page par page et taper sur <em>q</em> pour -sortir). Une commande plus compliquée est <prgn>man -k -PostScript</prgn>. Cette ligne de commandes se compose de trois -parties. Elle commence par le nom de commande -<prgn>man</prgn>. Ensuite, on trouve une <em>option</em> ou -<em>indicateur</em>, <prgn>-k</prgn>, suivi d'un <em>argument</em>, -<prgn>PostScript</prgn>. Certains disent que tout sauf le nom de la -commande est <em>paramètre</em> de la commande. Ainsi, les options et -les arguments sont tous deux des paramètres. - -<p> -Les options changent le comportement d'une commande, en activant une -fonctionnalité particulière. Généralement, on trouve un « - » les -précédant. Les utilitaires GNU ont aussi une « forme longue » pour les -options; la forme longue de <prgn>-k</prgn> est -<prgn>--apropos</prgn>. Vous pouvez entrer <prgn>man -h</prgn> ou -<prgn>man --help</prgn> pour obtenir la liste complète des options de -la commande <prgn>man</prgn>. Chaque commande a sa propre liste -d'options, bien qu'elle partage généralement les options -<prgn>--help</prgn> et <prgn>--version</prgn>. Certaines commandes, -comme <prgn>tar</prgn>, ne demande pas de « - » devant leurs options -pour des raisons historiques. - -<p> -Tout ce qui n'est pas une option et qui n'est pas le nom d'une -commande est un <em>argument</em> (et dans le cas présent, -<prgn>PostScript</prgn>). Les arguments ont des tas de finalités ; -dans la plupart des cas, ce sont les noms de fichiers dont la commande -doit s'occuper. Dans ce cas, <prgn>PostScript</prgn> est le mot que -l'on fait chercher à la commande <prgn>man</prgn>. Dans le cas de -<prgn>man whoami</prgn>, l'argument est le nom de la commande dont -vous recherchez des informations. - -<p> -Voici un résumé de la ligne de commande <prgn>man -k PostScript</prgn> - -<p> -<list> -<item> <prgn>man</prgn> -<p> -Le nom de la commande demande à l'ordinateur d'aller chercher les -pages du manuel. Ceci est une documentation des commandes. Par -exemple, <prgn>man whoami</prgn> ira vous chercher la documentation de -la commande <prgn>whoami</prgn>. -<item><prgn>-k</prgn> -<p> -L'option, change le comportement de la commande -<prgn>man</prgn>. Normalement, <prgn>man</prgn> s'attend à un nom de -commande, tel <prgn>whoami</prgn>, comme argument et va chercher la -documentation de cette commande. Mais avec l'option <prgn>-k</prgn> ou -<prgn>--apropos</prgn>, il s'attend à ce que l'option soit un -mot-clé. Il sort alors la liste de toutes les pages de manuel le -comportant. -<item><prgn>PostScript</prgn> -<p> -est l'argument; en raison de la présence de l'option <prgn>-k</prgn>, -c'est le mot-clé à rechercher. -</list> - -<p> -Allez-y et tapez la commande <prgn>man -k PostScript</prgn> et vous -verrez apparaître une liste de pages de manuel de votre système qui -ont un rapport avec le postscript. Si vous n'avez pas installé de -nombreux logiciels, il se peut que vous voyiez apparaître à la place : -<prgn>PostScript: nothing appropriate</prgn> (<prgn>PostScript: rien -de trouvé</prgn>). -</sect> - -<sect> Description de la ligne de commande - -<p> -Remarque: vous pouvez sauter cette partie si vous voulez avancer -rapidement. - -<p> -Il existe une façon concise et traditionnelle de décrire la -<em>syntaxe</em> d'une commande. La <em>syntaxe</em> veut dire la -façon correcte de combiner les options variées ainsi que les -arguments. Par exemple, si vous tapez <prgn>man man</prgn> pour -obtenir la page de manuel de <prgn>man</prgn>, vous apercevrez un -certain nombre de descriptions de syntaxe débutant par le nom de -commande <prgn>man</prgn>. Une d'entre elle devrait ressembler à ceci: - -<p> -<prgn>man -k [-M path] keyword ...</prgn> - -<p> -Tout ce qui se trouve entre crochet ([ ]) est optionnel. Dans ce cas, -il n'est pas nécessaire d'utiliser l'option <prgn>-M</prgn> mais si -vous le faîtes, il est alors nécessaire d'utiliser un argument de type -<prgn>path</prgn><footnote>C'est-à-dire le chemin d'accès en bon -français.</footnote>. Vous devez utiliser l'option <prgn>-k</prgn> et -l'argument <prgn>keyword</prgn> (mot-clé). Les <prgn>...</prgn> -signifient qu'il peut y avoir encore beaucoup de choses à la suite, -notamment plusieurs mots clés. - -<p> -Regardons d'un peu plus près les descriptions complexes de la page de -manuel de <prgn>man</prgn>: - -<example> -man [-c|-w|-tZT device] [-adhu7V] -[-m system[,...]] [-L locale] [-p string] -[-M path] [=P pager] [-r prompt] [-S list] -[-e extension] [[section] page ...] ... -</example> - -<p> -Il n'est pas nécessaire d'aller plus en avant (et ne vous inquiétez -pas quant à sa signification), mais attirez votre attention sur -l'organisation de la description. - -<p> -Premièrement, ce rassemblement en grappe d'options veut généralement -dire que vous pouvez en utiliser une ou plusieurs dans différentes -combinaisons. Ainsi, <prgn>-adhu7V</prgn> veut tout simplement dire -que vous pouvez aussi n'utiliser que <prgn>-h</prgn>. Bien sûr, vous -pouvez utiliser toutes les combinaisons. Cette description ne rend pas -forcément les choses très claires. Par exemple, <prgn>-h</prgn> est -incompatible avec les autres options mais vous pouvez faire <prgn>man --du</prgn>. Malheureusement, cette description de format ne rend pas -cette approche très claire. - -<p> -Ensuite, le symbole | signifie « ou ». Ainsi, vous pouvez utiliser -l'option <prgn>-c</prgn>, l'option <prgn>-w</prgn> <em>ou</em> -l'option <prgn>-tZT</prgn>, suivi d'un argument <prgn>device</prgn>. - -<p> -Enfin, remarquez bien que vous devez respecter les crochets car ils -indiquent les unités optionnelles. Ainsi, si vous avez une -<prgn>section</prgn>, vous devez aussi avoir une <prgn>page</prgn> -parce que <prgn>page</prgn> n'est pas optionnelle à l'intérieur du -groupe <prgn>[[section] page]</prgn>. - -<p> -Il n'est pas nécessaire de mémoriser tout cela. Il suffit juste de -revenir à cette partie pour lire la documentation. -</sect> - -<sect> Fichiers et répertoires - -<p> -Les <em>fichiers</em> sont une facilité pour stocker et organiser -l'information, analogue aux documents papier. Ils sont organisés en -<em>répertoires</em> qui sont appelés <em>dossiers</em> sur certains -autres systèmes. Regardons d'un peu plus près l'organisation des -fichiers sur un système Debian: - -<p> -<list> -<item> / -<p> -Un simple / représente la répertoire racine. Tous les autres fichiers -et répertoires sont contenus dans le répertoire racine. Si vous venez -du monde DOS ou Windows, / est similaire à ce que le C: signifie pour -le DOS qui est la racine du système de fichiers. Une différence -importante entre DOS et Linux est que DOS garde toujours C: (pour le -premier disque dur), A: (premier lecteur de disquettes) et D: (soit le -lecteur de cédérom soit le second disque dur) alors que Linux organise -tous ses fichiers autour de la même racine /. <item> -<prgn>/home/janeq</prgn> -<p> -C'est le répertoire personnel de l'utilisateur <em>janeq</em>. En -lisant de gauche à droite, pour aller dans ce répertoire, on commence -dans le répertoire racine, puis dans le répertoire <prgn>home</prgn> -et enfin dans celui de <prgn>janeq</prgn>. -<item> <prgn>/etc/X11/XF86Config</prgn> -<p> -C'est le fichier de configuration du système X Window. Il réside dans -le sous-répertoire <prgn>X11</prgn> du répertoire -<prgn>/etc</prgn>. <prgn>/etc</prgn> est lui-même un sous-répertoire du -répertoire racine /. -</list> - -<p> -<em>Choses importantes à retenir</em> - -<p> -<list> -<item> - Les noms de fichiers sont sensibles à la casse utilisée. Cela veut - dire que MONFICHIER et MonFichier sont différents. -<item> - Le répertoire racine (<em>root</em> en anglais) se réfère uniquement - à /. Ne confondez pas avec le root de l'utilisateur root, - l'utilisateur du système avec les « supers pouvoirs ». <item>Chaque - répertoire a un nom, qui peut contenir n'importe quels lettres ou - symboles <em> à l'exception de </em> /. Le répertoire racine est une - exception; son nom est / (prononcé « slash » ou - « répertoire racine » ou « répertoire root ») et - il ne peut être renommé. -<item> - Bien que vous puissiez utiliser n'importe quels lettres ou symboles - pour un nom de fichier, en pratique c'est une assez mauvaise - idée. Il est souhaîtable d'éviter les caractères qui ont souvent une - signification particulière dans les lignes de commandes comme - <prgn>{ } ( ) [ ] ' ` " \ / > < | ; ! # & ^ * %</prgn> -<item> - Évitez d'ajouter des espaces dans les noms de fichiers. Si vous - désirez séparer les mots dans un nom, les meilleurs choix sont - la période, l'hyphénation ou le tiret souligné « _ ». Vous pouvez - aussi mettre en majuscule le début de chaque mot comme - dans <prgn>CommeCeci</prgn>. -<item> - Chaque fichier et répertoire sont désignés par un <em>nom de fichier - pleinement qualifié</em>, un <em>nom de fichier absolu</em> ou un - <em>chemin</em> qui donne la séquence des répertoires que l'on doit - traverser pour atteindre le fichier. Les trois termes sont - synonymes. Tous les noms de fichiers absolus commencent par le - répertoire racine / et il y a un / devant chaque répertoire ou - fichier du nom de fichier. Le premier / est le nom du répertoire - mais les autres sont de simples séparateurs pour distinguer les - parties du nom de fichier. -<item> - Les noms utilisés portent parfois à confusion. Prenons l'exemple - suivant: -<example> -/usr/share/keytables/us.map.gz -</example> - C'est un nom de fichier pleinement qualifié. Pourtant, certaines - personnes le désignent comme un <em>chemin</em>. D'autres personnes - s'en servent pour désigner le fichier <prgn>us.map.gz</prgn> comme - un seul nom de fichier. -<item> - Il y a aussi une autre utilisation du mot - <em>chemin</em><footnote><em>path</em> en anglais. À connaître aussi - absolument.</footnote>. Mais le contexte est toujours suffisamment - clair pour faire la distinction. -<item> - Les répertoires sont rangés sous forme d'arbre. Tous les noms de - fichiers absolus commencent avec le répertoire racine. Le répertoire - racine possède un certain nombre de branches, comme - <prgn>/etc</prgn> et <prgn>/usr</prgn>. Ces sous-répertoires se - subdivisent eux-mêmes en branches en de nombreux sous-répertoires, - comme <prgn>/etc/init.d</prgn> et - <prgn>/usr/local</prgn>. L'ensemble est appelé <em>l'arbre des - répertoires</em>. -<item> - Vous pouvez faire l'analogie avec un nom de fichier absolu et la - route partante de la base de l'arbre (/) à la fin d'une branche (le - fichier). Vous entendrez aussi parler certaines personnes de l'arbre - des répertoires comme d'un <em> arbre familial</em>. Certains - répertoires ont des « parents » et un chemin montre l'arbre - généalogique complet. -<item> - Il existe aussi des chemins relatifs qui commencent ailleurs que - dans le répertoire racine. On y reviendra plus tard. -<item> - Aucun répertoire ne correspond à un périphérique physique comme - votre disque dur. Ceci diffère profondément du DOS et de Windows - pour qui tout chemin commence par un nom de périphérique comme - C:\. L'arbre des répertoires est une abstraction du périphérique - matériel et vous pouvez donc l'utiliser sans savoir ce qu'il y a - dessous. Tous vos fichiers peuvent être contenus dans un disque - ou - vous pouvez très bien avoir vingt disques, certains connectés sur - des ordinateurs différents répartis n'importe où sur le réseau. Vous - ne pouvez deviner en jetant juste un coup d'oeil sur l'arbre des - répertoires sur quel(s) périphérique(s) matériel(s) se trouvent vos - fichiers. -</list> - -<p> -Ne vous inquiétez si tout ceci n'est pas complètement clair pour vous: -il y a de nombreux exemple à venir. - -<sect1> Utilisation des fichiers: un tutoriel - -<p> -Pour utiliser votre système, vous devrez connaître comment créer, -déplacer, renommer et détruire fichiers et répertoires. Cette partie a -pour but de montrer comment le faire avec les commandes standard de -Debian. - -<p> -La meilleure méthode d'apprentissage est encore d'essayer. Tant que -vous n'êtes pas root (et vous n'avez pas maintenant à créer -d'importants fichiers personnels), vous ne pouvez faire de catastrophe -irrémédiable. Lancez-vous - tapez chacune de ces commandes après le -prompteur et appuyer ensuite sur la touche <em>entrée</em>: - -<p> -<example> -pwd -</example> - -<p> -Le répertoire en cours est toujours considéré comme le <em>répertoire -courant de travail</em> pour le shell que vous utilisez. Vous pouvez -toujours le visualiser à l'aide de la commande <prgn>pwd</prgn> qui -signifie <em>Print Working Directory</em> (affiche le répertoire de -travail). <prgn>pwd</prgn> affiche donc le nom du répertoire dans -lequel vous travaillez - et probablement <prgn>/home/votrenom</prgn>. - -<p> -<example> -ls -</example> - -<p> -<prgn>ls</prgn> signifie <em>list</em> (affiche) comme pour <em>list -files</em> (affiche les fichiers). Lorsque vous tapez la commande -<prgn>ls</prgn>, le système renvoie une liste de tous les fichiers de -votre répertoire courant. Si vous venez d'installer Debian, votre -répertoire de travail est certainement vide et <prgn>ls</prgn> ne -renvoie rien en sortie car il n'y a pas de fichier à afficher. - -<p> -<example> -cd / -</example> - -<p> -<prgn>cd</prgn> signifie <em>change directory</em> (change de -répertoire). Dans ce cas, on lui a demandé de changer pour le -répertoire racine. - -<p> -<example> -pwd -</example> - -<p> -Ceci pour vérifier que vous êtes bien dans le répertoire racine. - -<p> -<example> -ls -</example> - -Pour jeter un coup d'oeil au contenu de /. - -<p> -<example> -cd -</example> - -<p> -Taper <prgn>cd</prgn> sans argument sélectionne votre répertoire -personnel - <prgn>/home/votrenom</prgn> - comme répertoire -courant. Essayez <prgn>pwd</prgn> pour vérifier. - -<p> -Avant de continuer, il vous faut savoir qu'il y a vraiment deux sortes -de fichiers. Certains d'entre eux commencent par /, le répertoire -racine, comme <prgn>/etc/profile</prgn>. Ils sont appelés <em>noms de -fichiers absolus</em> car ils se réfèrent au même fichier quelque soit -le répertoire courant. L'autre sorte de fichiers sont les <em>fichiers -relatifs</em>. - -<p> -Seuls deux répertoires ne sont utilisés qu'avec des noms de fichiers -relatifs: « . » et « .. ». Le répertoire . se -réfère au répertoire courant et .. au répertoire parent. Ce sont des -raccourcis. Ils existent dans <em>tous</em> les répertoires. Même le -répertoire racine à un répertoire parent - c'est son propre parent ! - -<p> -Ainsi, tous les fichiers comprenant . ou .. sont <em>relatifs</em> car -leur expression dépend du répertoire courant. Si je suis dans -<prgn>/usr/bin</prgn> et que je tape <prgn>../etc</prgn>, je me réfère -à <prgn>/usr/etc</prgn>. Si je suis dans <prgn>/var</prgn> et que je -tape <prgn>../etc</prgn>, je me réfère à <prgn>/etc</prgn>. Remarquez -bien que le nom de fichier sans le répertoire racine possède -implicitement à son commencement ./ . Ainsi, vous pouvez taper -indifféremment <prgn>/local/bin</prgn> ou bien -<prgn>./local/bin</prgn>, ce qui signifie exactement la même chose. - -<p> -Un dernier petit truc: le <em>tilda</em> ~ est équivalent à votre -répertoire personnel. Ainsi, taper <prgn>cd ~</prgn> revient au même -que taper <prgn>cd</prgn> sans argument. Vous pouvez donc taper -<prgn>cd ~/divers/monsousrepertoire</prgn> à la place de <prgn>cd -/home/votrenom/divers/monsousrepertoire</prgn>. De façon analogue, -<prgn>~myuser</prgn> est l'équivalent du répertoire personnel de -l'utilisateur <em>myuser</em> qui est probablement quelque chose comme -<prgn>/home/myuser</prgn>; ainsi, <prgn>~myuser/docs/debian.ps</prgn> -est équivalent à <prgn>/home/myuser/doc/debian.ps</prgn>. - -<p> -Il y a encore quelques commandes à essayer maintenant que vous -maîtrisez les chemins relatifs. Tapez <prgn>cd</prgn> pour revenir -dans votre répertoire personnel. - -<p> -<example> -mkdir divers -</example> - -<p> -Cela fabrique dans votre répertoire personnel un répertoire nommé -<prgn>divers</prgn>. Vous allez utiliser ce répertoire pour essayer -quelques autres commandes. Vous pouvez essayer <prgn>ls</prgn> pour -vérifier que votre nouveau répertoire existe bien. - -<p> -<example> -cd divers -</example> - -<p> -Ceci change le répertoire vers <prgn>divers</prgn>. - -<p> -<example> -mkdir monsousrepertoire -</example> - -<p> -Ceci crée un sous-répertoire de <prgn>divers</prgn>. - -<p> -<example> -cp /etc/profile . -</example> - -<p> -<prgn>cp</prgn> est un raccourci pour <em>copy</em> -(copier). <prgn>/etc/profile</prgn> est juste un fichier quelconque de -votre système. Ne vous souciez pas de ce qu'il fait pour le -moment. Nous l'avons recopié dans . (rappelez-vous que . signifie -simplement « le répertoire dans lequel je me trouve maintenant » -c'est-à-dire le répertoire courant de travail). Donc, ceci crée une -copie de <prgn>/etc/profile</prgn> et la place dans votre répertoire -<prgn>divers</prgn>. Essayez de taper <prgn>ls</prgn> pour vérifier -qu'il y a bien un fichier appelé <prgn>profile</prgn> dans votre -répertoire courant de travail au même niveau que le répertoire -<prgn>monsousrepertoire</prgn>. - -<p> -<example> -more profile -</example> - -<p> -Ceci vous permet de visualiser le contenu du fichier -<prgn>profile</prgn>. <prgn>more</prgn> est utilisé pour visualiser le -contenu des fichiers textes. Il est appelé <prgn>more</prgn> car il ne -montre qu'une page d'écran du fichier à la fois et il faut appuyer sur -la barre d'espace pour visualiser la suite. <prgn>more</prgn> sortira -de lui-même lorsqu'il aura atteint la fin du fichier ou lorsque vous -aurez taper sur q (<em>quit</em> pour quitter). - -<p> -<example> -more /etc/profile -</example> - -<p> -va s'assurer que la copie est bien conforme à l'original. - -<p> -<example> -mv profile monsousrepertoire -</example> - -<p> -<prgn>mv</prgn> signifie <em>move</em> (déplacer). Vous avez déplacé -le fichier <prgn>profile</prgn> du répertoire courant dans le -sous-répertoire <prgn>monsousrepertoire</prgn> que vous avez créé -précédemment. - -<p> -<example> -ls -</example> - -<p> -vérifie qu'il n'existe plus de fichier <prgn>profile</prgn> dans le -répertoire courant. - -<p> -<example> -ls monsousrepertoire -</example> - -<p> -s'assure que <prgn>profile</prgn> a bien été déplacé dans le -répertoire <prgn>monsousrepertoire</prgn>. - -<p> -<example> -cd monsousrepertoire -</example> - -<p> -Ceci change de répertoire vers le répertoire -<prgn>monsousrepertoire</prgn>. - -<p> -<example> -mv profile myprofile -</example> - -<p> -Remarquez bien que contrairement à de nombreux autres systèmes, il n'y -a pas de différence entre renommer un fichier et le déplacer. Ainsi, -on ne trouve pas de commande <prgn>rename</prgn> (renomme). Signalons -aussi que le second argument peut aussi bien être un répertoire pour -déplacer le fichier dedans qu'un nom de fichier pour le -renommage. <prgn>cp</prgn> fonctionne de la même façon. - -<p> -Comme d'habitude, vous pouvez taper <prgn>ls</prgn> pour regarder le -résultat. - -<p> -<example> -mv myprofile .. -</example> - -<p> -De la même façon que . signifie « le répertoire où je suis maintenant -», .. signifie « le parent du répertoire courant ». Et dans le cas -présent, le répertoire <prgn>divers</prgn> créé précédemment. Utilisez -<prgn>ls</prgn> pour vérifier où se trouve <prgn>myprofile</prgn> -maintenant. - -<p> -<example> -cd .. -</example> - -<p> -Change de répertoire vers le répertoire parent, c'est-à-dire ici -<prgn>divers</prgn> où vous venez de déplacer <prgn>myprofile</prgn>. - -<p> -<example> -rm myprofile -</example> - -<p> -<prgn>rm</prgn> signifie <em>remove</em> (effacer) donc cela efface le -fichier <prgn>myprofile</prgn>. Faîtes très attention ! Détruire un -fichier sur un système GNU-Linux est <em>définitif</em> car il n'y a -pas de fonction inverse. Si vous effacez un fichier, c'est fini <em> -à jamais</em>... Prenez bien vos précautions.... On répète: détruire un -fichier sur un système GNU-Linux est <em>définitif</em> car il n'y a -pas de fonction inverse. Si vous effacez un fichier, c'est fini <em> -à jamais</em>... Prenez bien vos précautions<footnote>Relisez-le encore -une fois: détruire un fichier sur un système GNU-Linux est -<em>définitif</em> car il n'y a pas de fonction inverse. Si vous -effacez un fichier, c'est fini <em> à jamais</em>... Prenez bien vos -précautions....</footnote>.... - -<p> -<example> -rmdir monsousrepertoire -</example> - -<p> -<prgn>rmdir</prgn> est la même chose que <prgn>rm</prgn> mais pour les -répertoires. Remarquez que <prgn>rmdir</prgn> ne fonctionne qu'avec -des répertoires vides. Si le répertoire contient des fichiers, vous -devez les détruire en premier ou bien utiliser <prgn>rm -r</prgn> à la -place de <prgn>rmdir</prgn>. - -<p> -<example> -cd .. -</example> - -<p> -Ceci vous permet de sortir du répertoire courant et de vous déplacer -dans le répertoire parent. Maintenant vous pouvez taper la séquence -suivante: - -<p> -<example> -rmdir divers -</example> - -<p> -Ceci détruira les derniers restes de notre essai. - -<p> -Nous savons maintenant comment créer, copier, déplacer, renommer et -détruire fichiers et répertoires. Nous avons aussi appris quelques -raccourcis comme taper simplement <prgn>cd</prgn> pour revenir dans -son répertoire personnel et comment . et .. désignent respectivement -le répertoire courant et le répertoire parent. Vous devez aussi -retenir les concepts de répertoire racine, ou /, et de l'alias ~ pour -votre répertoire personnel. -</sect1> - -<sect1> Fichiers cachés et <prgn>ls -a</prgn> - -<p> -Lorsque vous tapez <prgn>ls</prgn> les fichiers commençant par un . ne -sont pas affichés. Traditionnellement, ces fichiers contiennent des -informations de configurations, de préférences et toutes sortes de -choses du même acabit. Ils vous sont cachés dans votre travail -quotidien. Des exemples simples de fichiers cachés sont -<prgn>~/.emacs, ~/.newsrc, ~/.bashrc, ~/.xsession</prgn> et -<prgn>~/.fvwmrc</prgn>. Ils sont respectivement utilisés par -<em>Emacs</em>, le lecteur de niouses, le shell <em>Bash</em>, le -système <em>X-Window</em> et le gestionnaire de fenêtres -<em>fvwm</em>. Il est conventionnel d'ajouter un <prgn>rc</prgn> final -aux fichiers cachés mais certains programmes ne le font pas. Il y a -aussi des répertoires cachés, comme <prgn>~/.gimp</prgn> ou -<prgn>~/.netscape</prgn> qui rassemblent les préférences pour <em>The -Gimp</em> et <em>Netscape</em>. - -<p> -Parfois, un fichier créera automatiquement un fichier caché ; par -exemple, <em>Netscape</em> vous permets d'éditer dans une fenêtre -graphique vos préférences et de sauvegarder vos choix. D'autres fois, -vous devrez les créer vous-même à l'aide d'un éditeur de texte. C'est -la façon traditionnelle de faire mais vous avez à apprendre le format -particulier de chaque fichier, ce qui est un inconvénient au début -mais vous donne par la suite beaucoup de puissance. -</sect1> -</sect> - -<sect> Processus - -<p> -Nous avons déjà souligné le fait que GNU-Linux est un système -multi-tâches. Il peut traiter plusieurs choses simultanément. Chacune -de ces tâches est appelé <em>processus</em> (<em>process</em> en -anglais). La meilleure façon de comprendre ce qui précède est de taper -<prgn>top</prgn> après le prompteur du shell. Vous obtiendrez une -liste des processus triés suivant le temps que votre ordinateur met -à les traiter. Leur ordre change continuellement devant vos yeux. En -haut de l'écran, vous devez apercevoir quelques informations sur le -système: combien il y a d'utilisateurs connectés, combien il y a de -processus, combien de mémoire vous avez et combien vous en utilisez -réellement. - -<p> -Dans la colonne à l'extrème gauche, vous apercevrez les utilisateurs -propriétaires de chaque processus. À l'extrème droite, vous trouverez -la liste des commandes évoquées. Vous avez certainement remarqué que -<prgn>top</prgn> lui-même, lancé par vous, est presqu'en haut de la -liste (car à chaque fois que <prgn>top</prgn> vérifie l'usage du -microprocesseur (CPU), il l'active lui-même et utilise le CPU pour -faire la vérification). - -<p> -Remarquez que toutes les commandes se terminant pas « d » - comme -<prgn>kflushd</prgn> ou <prgn>inetd</prgn> - sont des -<em>daemons</em>. - -<p> -Les <em>daemons</em><footnote><em>Daemons</em> en anglais se traduit -par démons mais j'ai préféré garder le terme anglo-saxon car ce n'est -pas un nom mais un acronyme.</footnote> signifient à l'origine -<em>Disk And Extensions MOnitor</em> (surveillance des disques et des -extensions). Un daemon est un processus non interactif ce qui veut -dire qu'il est lancé par le système et que l'utilisateur n'a pas -à s'en occuper. Les daemons servent à fournir des services comme la -connexion Internet, l'impression ou le courrier électronique. - -<p> -Maintenant, appuyez sur <prgn>u</prgn> et entrez votre nom -d'utilisateur. La commande <prgn>u</prgn> sert à afficher les seules -processus appartenant à un utilisateur; cela permet d'ignorer tous les -daemons et tous les processus appartenant à d'autres -utilisateurs. Vous devez voir <prgn>bash</prgn>, le nom de votre -shell. Vous aurez toujours le nom de votre shell. - -<p> -La colonne numéro deux vous renvoie le PID pour <em>Process -IDentication</em> (identificateur de processus). On assigne à chaque -signal un unique PID. Vous pouvez utiliser les PID pour contrôler -individuellement les processus (on approfondira le sujet -ultérieurement). Un truc utile est la commande <prgn>?</prgn> qui vous -renvoie une liste des commandes disponibles sous <prgn>top</prgn>. - -<p> -Il se peut que vous vous posiez la question de la différence entre un -processus et un programme. En pratique, on utilise indifféremment l'un -pour l'autre. Techniquement parlant, un <em>programme</em> est le jeu -d'instruction écrit par un programmeur et gardé sur le disque. Le -<em>processus</em> est l'instanciation en mémoire de ce programme sous -Linux. Mais il n'est pas primordial de faire une réelle différence. - -<p> -Beaucoup de vos interventions avec un ordinateur vont consister -à contrôler les processus. Vous allez devoir les faire partir, les -arrêter et les observer. Votre outil privilégié pour cela est le -shell. -</sect> - -<sect> Le shell - -<p> -Le <em>shell</em>, ou <em>interpréteur de commandes</em>, vous permet -d'interagir avec votre ordinateur. Il est appelé <em>shell</em> -(coquillage) car il vous fournit un environnement de travail, comme -une sorte de petite maison électronique pour vos travaux informatiques -(pensez à l'abri de l'ermite). - -<p> -La fonction la plus simple du shell est de lancer les autres -programmes. Vous tapez le nom du programme que vous voulez lancer, -avec à la suite les arguments que vous voulez et le shell demandera au -système de lancer le programme pour vous. - -<p> -Bien sûr, les systèmes graphiques avec fenêtres fournissent le même -type de services. Techniquement, Windows 95 fournit un shell graphique -et le système X Window fournit un autre type de shell graphique. Mais -le terme <em>shell</em> est communément employé en sous-entendant -<em>shell pour lignes de commandes</em>. - -<p> -Cela va sans le dire mais les hackers travaillant sur un shell ne se -contentent pas de lancer simplement des commandes. Votre shell regorge -d'astuces cachées et de fonctionnalités puissantes si vous désirez -vous en servir. - -<p> -Il y a de très nombreux shells différents disponibles. La plupart -d'entre eux sont basés soit sur le <em>Bourne Shell</em> soit sur le -<em>C shell</em>, deux des plus vieux shells. Le nom originel du -Bourne Shell est <prgn>sh</prgn> et celui du C shell, -<prgn>csh</prgn>. Les différentes variantes du Bourne Shell sont le -<em>Bourne Again Shell</em> du projet GNU (<prgn>bash</prgn>, le shell -par défaut de Debian), le <em>Korn Shell</em> (<prgn>ksh</prgn>) et le -<em>Z shell</em> (<prgn>zsh</prgn>). Il y a aussi <prgn>ash</prgn>, -une implémentation traditionnelle du Bourne shell. La plus connue des -variantes du C shell est <prgn>tcsh</prgn> (le <prgn>t</prgn> est un -tribu payé aux systèmes d'exploitation <em>TENEX and TOPS-20</em> qui -ont inspiré quelques parties de <prgn>tcsh</prgn> en sus de -<prgn>csh</prgn>). - -<p> -<prgn>bash</prgn> est certainement le meilleur choix pour un nouvel -utilisateur. C'est le shell par défaut et il comprend des tas de -fonctionnalités que vous allez apprécier. Mais chaque shell possède -ses avantages. Si vous voulez expérimenter, installez les différents -paquets de shell et changez votre shell avec la commande -<prgn>chsh</prgn>. Tapez simplement <prgn>chsh</prgn>, fournissez -votre mot de passe et lorsque demandé, choisissez votre nouveau -shell. Lorsque vous vous reloguerez de nouveau, vous utiliserez le -nouveau shell. -</sect> - -<sect> Gérer les processus avec <prgn>bash</prgn> - -<p> -Debian est un système multi-tâches donc vous avez besoin d'un moyen de -faire plus d'une chose à la fois. Les environnements graphiques, comme -X, fournissent un élément naturel pour le faire: ils autorisent -plusieurs fenêtres simultanément. Naturellement, <prgn>bash</prgn>, et -tous les autres shells, fournissent des facilités similaires. - -<p> -Récemment, vous avez utilisé <prgn>top</prgn> pour jeter un coup -d'oeil sur tous les processus de votre système. Votre shell vous -propose des façons aisées de suivre les commandes que vous avez -lancées à partir de ce shell. Chaque ligne de commande lance un -<em>job</em> (aussi appelé un <em>groupe de processus</em>) qui sera -suivi par le shell. Un job peut être simplement un processus ou bien -un ensemble de processus tubés (plus sur les tubes un peu plus tard). - -<p> -Entrer une ligne de commande lance un job. Essayez de taper <prgn>man -cp</prgn> et la page de manuel de <prgn>cp</prgn> va apparaître -à l'écran. Le shell va tourner en arrière-plan et revenir en avant-plan -une fois la lecture de la page terminée (ou vous pouvez taper sur q -pour éviter d'avoir à dérouler toute la page pour sortir). - -<p> -Mais admettons que vous désiriez faire quelque chose d'autre pendant -la lecture du manuel. Pas de problème. Appuyez sur <em>Ctrl-z</em> -pour suspendre la lecture du manuel (mis en arrière-plan du job -courant) et ainsi remettre en avant-plan le shell. Lorsque vous -suspendez un job, <prgn>bash</prgn> vous donne immédiatement quelques -informations à son sujet et ensuite il renvoie un prompteur. Vous -devriez apercevoir quelque chose comme cela à l'écran: - -<p> -<example> -NAME cp - copy files SYNOPSIS cp [options] source ---More-- -[1]+ Stopped man cp -$ -</example> - -<p> -Observez bien les deux dernières lignes. Les deux dernières comportent -l'information sur le job et vous avez le prompteur du shell. - -<p> -<prgn>bash</prgn> assigne à chaque ligne de commande un <em>numéro de -job</em> donné par le shell. Cela vous permet de vous référer -facilement à un processus. Dans ce cas, <prgn>man cp</prgn> porte le -numéro 1, indiqué par <prgn>[1]</prgn>. Le signe <prgn>+</prgn> veut -dire que c'est le dernier job à avoir été mis en -arrière-plan. <prgn>bash</prgn> vous renvoie aussi l'état courant du -job - <prgn>Stopped</prgn> - ainsi que la ligne de commande. - -<p> -Il y a de nombreuses choses à faire avec les jobs. Avec <prgn>man -cp</prgn> toujours suspendu, essayez la commande suivante: - -<p> -<example> -man ls -</example> - -<p> -Cela crée un nouveau job. - -<p> -<example> -Ctrl-z -</example> - -<p> -Cela le suspend; vous devriez voir les informations du job. - -<p> -<example> -man mv -</example> - -<p> -Lance un nouveau job. - -<p> -<example> -Ctrl-z -</example> - -<p> -Le suspend aussi. - -<p> -<example> -jobs -</example> - -<p> -Demande au <prgn>bash</prgn> d'afficher l'état de tous les jobs en -cours. Le résultats devraient ressembler à : - -<p> -<example> -{$} jobs -[1] Stopped man cp -[2]- Stopped man ls -[3]+ Stopped man mv -{$} -</example> - -<p> -Remarquez bien que les - et + qualifient respectivement -l'avant-dernier et le dernier job en arrière-plan. - -<p> -<example> -fg -</example> - -<p> -Cela place le dernier job en arrière-plan (<prgn>man mv</prgn>, celui -avec le +) de nouveau en avant-plan. Si vous pressez la barre -d'espace, la page de manuel va se dérouler. - -<p> -<example> -Ctrl-z -</example> - -<p> -Suspend à nouveau <prgn>man mv</prgn>. - -<p> -<example> -fg %1 -</example> - -<p> -Vous pouvez vous référer à n'importe quel job en utilisant % suivi de -son numéro. Si vous utilisez <prgn>fg</prgn> sans lui spécifier de -job, c'est le dernier actif qui sera réveillé. - -<p> -<example> -Ctrl-z -</example> - -<p> -Suspend à nouveau <prgn>man cp</prgn>. - -<p> -<example> -kill %1 -</example> - -<p> -Détruit le job numéro 1. <prgn>bash</prgn> fait un rapport -d'information du job qui devrait ressembler à: - -<p> -<example> -$ kill %1 -[1] - Terminated man cp -$ -</example> - -<p> -<prgn>bash</prgn> se contente de demander au job de se terminer et -parfois ce dernier ne veut pas. Dans ce cas, vous devez ajouter -l'option <prgn>-KILL</prgn><footnote>. De nombreuses personnes -utilisent le signal -9 plutôt que le nom du signal. Dans tous les cas, -c'est techniquement moins portable que d'utiliser le nom du -signal</footnote> pour arrêter la demande de destruction et commencer -la destruction. Par exemple: - -<p> -<example> -$ kill -KILL %1 -[1]- Killed man mv -$ -</example> - -<p> -L'option <prgn>-KILL</prgn> force une destruction inconditionnelle du -job. - -<p> -En des termes plus techniques, <prgn>kill</prgn> se contente d'envoyer -un signal. Par défaut, il envoie un signal de terminaison -(<prgn>TERM</prgn> ou <prgn>signal 15</prgn>) mais vous pouvez très -bien spécifier un signal et l'option <prgn>-KILL</prgn> (<prgn>signal -9</prgn>) est le signal qui force la terminaison. La commande -<prgn>kill</prgn> n'est pas forcément appropriée pour l'envoi de -signaux ; par exemple, envoyer le signal <prgn>TSTP</prgn> -(<prgn>terminal stop</prgn>) suspend le processus et permet de le -récupérer plus tard. - -<p> -<example> -top -</example> - -<p> -Cela nous renvoie à l'écran la sortie de <prgn>top</prgn>. Envoyez la -commande <prgn>u</prgn> dans <prgn>top</prgn> pour ne visualiser que -vos processus. Regardez dans la colonne de droite les commandes -<prgn>man ls</prgn> et <prgn>man mv</prgn>. <prgn>man cp</prgn> n'est -plus là puisque vous l'avez tuée. <prgn>top</prgn> vous montre les -processus vous appartenant ; remarquez bien que le PID à gauche de -l'écran ne correspond pas au numéro de job. - -<p> -Il se peut que vous ne voyez pas vos processus car trop bas pour -apparaître à l'écran. Si vous utilisez X (voir chapitre 11), vous -pouvez redimensionner votre <prgn>xterm</prgn> pour résoudre le -problème. - -<p> -Même ces simples jobs sont en réalité des processus multiples, -incluant le processus <prgn>man</prgn> et le visualiseur -<prgn>more</prgn> qui vous permet de faire défiler les pages une par -une. Vous devez apercevoir les processus <prgn>more</prgn> dans -<prgn>top</prgn>. - -<p> -Vous vous demandez peut-être comment nettoyer les deux jobs -restant. Vous pouvez soit les tuer (avec la commande -<prgn>kill</prgn>) ou bien les remettre en avant-plan (avec -<prgn>fg</prgn>) puis les quitter. Rappelez-vous que la commande -<prgn>jobs</prgn> vous renvoie la liste des jobs en cours et leur -état. - -<p> -Une touche finale: la documentation de <prgn>bash</prgn> est plutôt -bonne mais il vaut mieux aller la chercher dans le système d'aide -<prgn>info</prgn> que dans les pages de manuel. Pour la lire, tapez -<prgn>info bash</prgn>. Voir la partie 16.2 pour les instructions -pour se servir de la commande <prgn>info</prgn>. <prgn>bash</prgn> -contient aussi une très bonne documentation en ligne accessible via la -commande <prgn>help</prgn>. <prgn>help</prgn> renvoie une liste de -sujets disponibles. On peut accéder directement à l'information en -tapant <prgn>help sujet en question</prgn>. Essayez <prgn>help -cd</prgn> par exemple. Cela vous fournira des détails sur les -arguments <prgn>-L</prgn> et <prgn>-P</prgn> reconnus par -<prgn>cd</prgn>. -</sect> - -<sect> Quelques fonctionnalités de <prgn>bash</prgn> - -<p> -Cette partie mentionne rapidement quelques fonctionnalités couramment -utilisées sous <prgn>bash</prgn>. Pour une discussion plus complète, -reportez-vous au chapitre 8. - -<sect1> Le complètement par tabulation - -<p> -Le shell <prgn>bash</prgn> est capable de deviner quel fichier ou -commande vous êtes en train de taper et les compléter automatiquement -pour vous. Il suffit simplement de taper le début de la commande ou du -fichier et d'appuyer sur la touche de tabulation. Si <prgn>bash</prgn> -trouve un complètement unique, il finira le mot et ajoutera un espace -à la fin. S'il trouve de multiples complètements<footnote>On trouve -parfois <em>complétion</em> qui n'est qu'un barbarisme engendré -à partir du terme anglais <em>completion</em>.</footnote>, il propose -l'ensemble de ses choix possibles en émettant un signal sonore. Vous -pouvez alors entrer le nombre de lettres suffisantes pour le rendre -unique et appuyez sur la touche de tabulation à nouveau. S'il n'existe -pas de complètement, <prgn>bash</prgn> émet simplement un signal -sonore. -</sect1> -</sect> - -<sect> Protéger votre identité - -<p> -Les systèmes de type Unix sont multi-utilisateurs et vous avez donc -votre propre identité comme utilisateur sur le système. Tapez -<prgn>finger votrenomdutilisateur</prgn> pour voir les informations -qui sont publiquement disponibles. Pour changer le nom et le shell -affichés ici, vous pouvez utiliser la commande <prgn>chfn</prgn> et -<prgn>chsh</prgn>. Seul root peut vous changer votre login et votre -répertoire d'attache. Vous devez avoir vu <em>No plan</em>. Un -<em>plan</em> est une simple information que vous voulez rendre -publique. Pour créer un plan, vous placer toute l'information que vous -voulez montrer aux autres dans un fichier appelé -<prgn>.plan</prgn>. Pour le faire, vous devrez vous servir d'un -éditeur de texte (voir chapitre 10.2). Ensuite, utilisez à nouveau -<prgn>finger</prgn> pour observer le résultat. Les autres peuvent -utiliser finger sur vous pour voir votre <em>plan</em> ou vérifier si -vous avez reçu ou lu votre courrier électronique. - -<p> -Remarquez bien que l'information de <prgn>finger</prgn> est disponible -à travers tout l'Internet par défaut. Si vous ne le voulez pas, lisez -la documentation de <prgn>inetd</prgn> et le fichier -<prgn>/etc/services</prgn>. Éventuellement, la page de manuel peut -décrire la mise en oeuvre mais il n'est pas évident que cela puisse -réellement vous aider. -</sect> - - </chapt> -<chapt> Utiliser le shell - -<p> -En lisant les chapitres précédents, vous avez déjà interagit avec le -shell. Le shell est le programme qui reçoit vos commandes et qui les -exécute. Dans ce chapitre, nous allons explorer le shell plus en -avant, avec une mention spéciale pour le personnaliser afin de lui -faire faire le travail que vous voulez qu'il fasse. - -<sect> Les variables d'environnement - -<p> -Chaque processus a un <em>environnement</em> associé. Un environnement -est ensembles de <em>variables d'environnement</em>. Une variable est -une valeur modifiable avec un nom déterminé. Par exemple, le nom -<em>EMAIL</em> peut se référer à la valeur -<prgn>joe@nowwhere.com</prgn>. Sa valeur peut changer ; <em>EMAIL</em> -peut aussi se référer à <prgn>jane@somewhere.com</prgn>. - -<p> -Puisque le shell n'est qu'un processus parmi d'autres, il possède -aussi son environnement. Vous pouvez visualiser votre environnement en -entrant la commande <prgn>printenv</prgn>. La figure suivante donne un -exemple de résultat de sortie de cette commande. Sur votre système, la -sortie sera différente bien que similaire. - -<p> -<example> -PAGER=less -HOSTNAME=icon -MAILCHECK=60 -PS1=$ -USER=username -MACHTYPE=i486-pc-linux-gnu -EDITOR=emacs -DISPLAY=:0.0 -LOGNAME=username -SHELL=/bin/bash -OSTYPE=linux-gnu -HISTSIZE=150 -TERM=xterm-debian -TEXEDIT=jed -PATH=/usr/sbin:/usr/sbin/:/usr/local/bin/: -/usr/bin/:/bin/:/usr/bin/X11/:/usr/games -_=/usr/bin/printenv -</example> - -<p> -Les variables d'environnement sont une façon de configurer le -système. Par exemple, la variable <em>EDITOR</em> vous permet de -sélectionner votre éditeur préféré pour poster des <em>news</em>, -écrire du courrier électronique et ainsi de suite. - -<p> -Régler ses variables d'environnement est quelque chose de triviale. En -pratique, commençons par personnaliser votre prompteur de shell ainsi -que votre visualiseur de texte avec les variables -d'environnement. Tout d'abord, commençons par un peu -d'informations basiques. - -<p> -<example> -man less -</example> - -<p> -Cette commande vous permet d'accéder au manuel en ligne de la commande -<prgn>less</prgn>. Pour éviter de dérouler tout le texte d'un seul -coup à l'écran, <prgn>man</prgn> invoque un <em>pageur</em> qui vous -déroule le texte page par page, à chaque fois que vous appuyez sur la -touche <em>espace</em>. Par défaut, le pageur utilisé est -<prgn>more</prgn>. - -<p> -Continuons et regardons un peu la page de manuel de <prgn>less</prgn>, -qui est un pageur très puissant. Affichez la page suivante en appuyant -sur espace et q pour quitter. <prgn>more</prgn> quitte aussi -automatiquement la page en arrivant à la fin. - -<p> -<example> -export PAGER=less -</example> - -<p> -Après avoir lu les avantages de <prgn>less</prgn>, il se peut que vous -vouliez l'utiliser pour lire les pages de manuel. Pour ce faire, vous -devez positionner la variable d'environnement <em>PAGER</em>. - -<p> -La commande pour ajuster une variable d'environnement dans -<prgn>bash</prgn> a toujours le format suivant: - -<p> -<example> -export NOM=valeur -</example> - -<p> -<prgn>export</prgn> signifie déplacer la variable du shell dans votre -environnement. Cela veut dire que les programmes autres que le shell -(par exemple, un visualiseur de textes) seront capables d'y accéder. - -<p> -<example> -echo $PAGER -</example> - -<p> -C'est la façon la plus aisée d'accéder au contenu de la -variable. <em>$PAGER</em> demande en fait au shell d'insérer la valeur -de <em>PAGER</em> <em>avant</em> d'invoquer la -commande. <prgn>echo</prgn> renvoie simplement l'argument: dans ce -cas, cela renvoie simplement la valeur du contenu de <em>PAGER</em>, -c'est-à-dire <prgn>less</prgn>. - -<p> -<example> -man more -</example> - -<p> -renvoie maintenant la page de manuel de <prgn>more</prgn>. Mais -maintenant, <prgn>man</prgn> utilise <prgn>less</prgn> comme pageur. - -<p> -<prgn>less</prgn> a beaucoup plus de fonctionnalités que -<prgn>more</prgn>. Par exemple, vous pouvez paginer en arrière -à l'aide de la touche <prgn>b</prgn>. Vous pouvez aussi vous déplacer en -avant et en arrière à l'aide des flèches de -direction. <prgn>less</prgn> ne sort pas lorsque vous avez atteint le -bas du fichier de la page de manuel: il attend que vous appuyez sur la -touche <prgn>q</prgn>. - -<p> -Vous pouvez essayer quelques spécificités de la commande -<prgn>less</prgn>, comme <prgn>b</prgn>, pour vérifier qu'elles ne -fonctionnent pas avec <prgn>more</prgn>. - -<p> -<example> -unset PAGER -</example> - -<p> -Si vous ne désirez pas spécifier un pageur, vous pouvez appliquer la -commande <prgn>unset</prgn> à la variable. <prgn>man</prgn> utilisera -alors <prgn>more</prgn> par défaut, comme il le faisait avant que vous -ne changiez la variable. - -<p> -<example> -echo $PAGER -</example> - -<p> -Comme la variable <em>PAGER</em> a été détruite, <prgn>echo</prgn> ne -renverra rien. - -<p> -<example> -PS1=bonjour: -</example> - -<p> -Pour s'amuser, tentons de modifier le prompteur. $ devrait maintenant -être modifié. Voici les étapes en détails: - -<p> -<example> -$ echo $PS1 -$ -$PS1=bonjour: -bonjour:echo Mon prompteur est $PS1 -Mon prompteur est bonjour: -bonjour: -</example> - -<p> -<prgn>export</prgn> n'est pas nécessaire car vous ne modifier que le -comportement de votre propre shell. Il n'y a pas de raison d'exporter -dans l'environnement de tous les programmes pour faire le -test. Techniquement parlant, <em>PS1</em> est plutôt une <em>variable -de shell</em> qu'une variable d'environnement. - -<p> -Si vous le voulez, vous pouvez exporter la variable de shell, la -transformant ainsi en variable d'environnement. Si vous agissez de la -sorte, les programmes lancés à partir du shell pourront la voir. -</sect> - -<sect> Où les commandes résident: la variable <em>PATH</em> - -<p> -Lorsque vous tapez une commande dans votre shell, ce dernier doit -trouver le programme correspondant sur votre disque avant de -l'exécuter. Si le shell devait examiner l'ensemble du disque dur, cela -serait extrêmement lent. À la place, il se contente d'aller chercher -dans un ensemble de répertoires contenu dans la variable -d'environnement <em>PATH</em>. Cette liste de répertoires est le -<em>chemin d'accès</em> du shell. Lorsque vous entrez une commande, le -shell va chercher dans chacun des répertoires de ce chemin pour -trouver la commande que vous lui avez demandé de lancer. - -<p> -Il se peut que vous ayez à changer la variable <em>PATH</em> si vous -installez vous-même des programmes à des endroits non -conventionnels. La valeur du <em>PATH</em> est une liste de -répertoires séparés par des « : ». - -<p> -<example> -/usr/local/bin:/usr/bin/:/bin:/usr/bin/X11:/usr/games -</example> - -<p> -Cette valeur est définie dans le fichier <prgn>/etc/profile</prgn> et -applicable à tous les utilisateurs. Il est très facile de modifier -cette valeur, comme d'ailleurs l'ensemble des variables -d'environnement. Si vous tapez la commande <prgn>ls</prgn>, le shell -va d'abord la chercher dans <prgn>/usr/local/bin</prgn>; -<prgn>ls</prgn> ne s'y trouve pas donc il va continuer et la chercher -dans <prgn>/usr/bin/</prgn> ; comme cela échoue encore, il vérifie -<prgn>/bin</prgn>. Il la trouve enfin et stoppe sa recherche pour -exécuter le programme <prgn>/bin/ls</prgn>. Si la commande -<prgn>/usr/bin/X11/ls</prgn> existe (ce n'est pas le cas mais c'est pour -l'exemple), elle serait tout simplement ignorée. - -<p> -Vous pouvez voir quel <prgn>ls</prgn> le shell va utiliser grâce à la -commande <prgn>type</prgn>. <prgn>type ls</prgn> va vous renvoyer -<prgn>/bin/ls</prgn>. Essayez-la vous-même. - -<p> -<example> -$ type type -type is a shell builtin<footnote>type est une fonction interne du shell</footnote> -</example> - -<p> -<prgn>type</prgn> n'est pas vraiment un programme: c'est une -fonctionnalité du shell mais vous pouvez l'utiliser comme un programme -extérieur. - -<p> -Il y a de nombreuses commandes de la même sorte. Tapez <prgn>man -builtins</prgn> pour visualiser la page les décrivant. De façon -générale, il n'est pas nécessaire de savoir si une commande est une -fonctionnalité interne ou bien un programme extérieur. Mais il faut -garder à l'esprit qu'une fonctionnalité interne ne sera pas visible -via un <prgn>ps</prgn> ou un <prgn>top</prgn> car il ne s'agit pas -d'un processus séparé: c'est une partie intégrante du shell. -</sect> - -<sect> Fichiers de configuration - -<p> -De nombreuses applications sous Linux vous permettent de modifier leur -comportement à certains moment en transformant les fichiers contenant -leurs informations de configuration. Ces fichiers de configuration -peuvent contenir des informations de lancement, des réglages de -configuration ou bien des ajustements pour la sortie. En général, un -nom de fichier de configuration est basé sur le nom de l'application -qu'il est sensé modifier. Cette convention de nom permet de déterminer -rapidement à quelle application appartient quel fichier de -configuration pour les réglages. - -<sect1> Configuration système contre configuration personnelle - -<p> -Il est important de se rappeler qu'il y a deux façons différentes de -configurer sur un système Debian. La <em>configuration système</em> -affecte tous les utilisateurs. Ces configurations se trouve dans le -répertoire <prgn>/etc</prgn> et donc il est généralement nécessaire -d'être root pour modifier ces fichiers. Vous pouvez avoir besoin de -configurer la façon dont se connecte le système à Internet par -exemple, ou bien configurer les butineurs HTML pour leur faire -afficher la page de la société en se lançant. Si vous désirez -effectuer le changement pour tous les utilisateurs à la fois, vous -devez faire les transformations dans <prgn>/etc</prgn>. Des fichiers -de configuration simples de <prgn>/etc</prgn> sont -<prgn>/etc/X11/XF86Config, /etc/lynx.cfg</prgn> et -<prgn>/etc/ppp/options</prgn>. En fait, presque tous les fichiers de -<prgn>/etc</prgn> sont des fichiers de configuration. - -<p> -La <em>configuration personnelle</em> n'affecte qu'un simple -utilisateur. Les fichiers cachés sont utilisés à cette fin. Par -exemple, le fichier <prgn>~/.newrc</prgn> contient une liste -d'articles sur USENET (groupes de discussions) que vous avez lus et -à quels groupes vous avez souscrit. Cela permet à des lecteurs de news -comme <prgn>trn</prgn> ou <prgn>GNUS</prgn> de n'afficher que les -articles non lus dans les groupes qui vous intéressent. Cette -information est bien-sûr propre à chaque utilisateur du système et -ainsi chacun possède son propre <prgn>.newrc</prgn> dans son -répertoire de travail personnel. -</sect1> -</sect> - -<sect> Aliases - -<p> -Si vous utilisez la même commande de nombreuses fois, il se peut que -vous vous fatiguiez à la taper. <prgn>bash</prgn> vous permet d'écrire -un raccourci - on dit <em>alias</em> - de votre commande. - -<p> -Admettons que vous désiriez toujours utiliser les options -<prgn>--almost-all</prgn> et <prgn>--color=auto</prgn> de -<prgn>ls</prgn>. Faîtes un alias: - -<p> -<example> -alias myls='ls --almost-all --color=auto' -</example> - -<p> -Maintenant, il vous suffit de taper <prgn>myls</prgn> à la place de la -commande complète. Pour voir ce qu'est réellement <prgn>myls</prgn>, -il suffit de taper <prgn>type myls</prgn>. Pour voir la liste complète -des <em>aliases</em> que vous avez défini, taper simplement -<prgn>alias</prgn> tout seul comme commande. -</sect> - -<sect> Contrôler les entrées et les sorties - -<p> -Au fur et à mesure de vos expériences avec Linux, vous allez -comprendre combien manipuler les entrées et sorties des applications -est un concept très puissant. Cette partie décrit quelques points de -ce que peut vous apportez la redirection des entrées-sorties. - -<sect1> <prgn>stdin</prgn>, <prgn>stdout</prgn>, tubes et redirection - -<p> -Chaque processus a au moins trois connexions avec le monde -extérieur. L'<em>entrée standard</em> est une des sources des données -du processus. La <em>sortie standard</em> est un des endroits où le -processus envoie ses données et l'<em>erreur standard</em> est -l'endroit où le processus envoie ses messages d'erreurs (on les -abrège généralement par <prgn>stdin</prgn>, <prgn>stdout</prgn> et -<prgn>stderr</prgn>). - -<p> -Les mots « source » et « endroit » sont -intentionnellement vagues. Ces lieux d'entrées-sorties standards -peuvent changer avec les utilisateurs. Cela peut être l'écran, le -clavier, un fichier et même une connexion réseau. Vous pouvez -spécifier les endroits à utiliser. - -<p> -Lorsque vous lancez un programme à partir du shell, l'entrée standard -est généralement le clavier et la sortie standard, ainsi que les -erreurs, s'affichent sur votre écran. Vous pouvez bien sûr demander -à votre shell de modifier ce comportement. - -<p> -Par exemple, la commande <prgn>echo</prgn> envoie son entrée standard -sur sa sortie standard, normalement à l'écran. Mais vous pouvez -décider de l'envoyer plutôt dans un fichier à l'aide de -<em>l'opérateur de redirection de sortie</em>, > . Par exemple, pour -écrire le mot « Bonjour » dans le fichier -<prgn>monfichier</prgn>, utilisez la commande suivante: - -<p> -<example> -echo Bonjour > monfichier -</example> - -<p> -Utilisez ensuite <prgn>cat</prgn> ou bien votre pageur -(<prgn>more</prgn> ou <prgn>less</prgn>) pour visualiser le contenu du -fichier <prgn>monfichier</prgn>. - -<p> -<example> -$ echo Bonjour > monfichier -$ cat monfichier -Bonjour -$ -</example> - - -<p> -Vous pouvez changer l'entrée standard d'une commande avec -<em>l'opérateur de redirection d'entrée</em>, < . Par exemple, -<prgn>cat < monfichier</prgn>. En pratique, ce n'est pas -commode. Pour simplifier, <prgn>cat</prgn> accepte un fichier pour -argument. Ainsi, vous pouvez vous contenter de taper <prgn>cat -monfichier</prgn> et l'effet sera identique. - -<p> -Si l'on approfondit un peu, la commande <prgn>cat < -monfichier</prgn> signifie que le shell ouvre le fichier -<prgn>monfichier</prgn> et envoie son contenu dans l'entrée standard -de <prgn>cat</prgn>. <prgn>cat monfichier</prgn>, sans l'opérateur de -redirection, signifie que la commande <prgn>cat</prgn> reçoit un -argument unique (<prgn>monfichier</prgn>), l'ouvre d'elle-même et -ensuite l'affiche à l'écran. - -<p> -Il y a bien-sûr une raison pour cette double fonctionnalité. Par -exemple, il est possible de connecter la sortie standard d'une -commande sur l'entrée standard d'une autre commande. Cela s'appelle un -<em>tube</em> (<em>pipeline</em> en anglais). Cela utilise -l'<em>opérateur tube</em><footnote>Cela dépend de votre clavier: cela -peut apparaître comme une barre verticale ou une barre verticale en -deux parties mais cela doit toujours se trouver au-dessus du contre -<em>slash</em> (NDT: pour les claviers <em>qwerty</em> -uniquement... tapez <prgn>Alt Gr 6</prgn> pour les -<em>azerty)</em></footnote>, | . - -<p> -Peut-être désirez-vous voir la <em>GNU General Public License</em> -à l'envers ? Pour le faire, utilisez la commande <prgn>tac</prgn> (c'est -un <prgn>cat</prgn> mais inversé). Essayez: - -<p> -<example> -tac /usr/doc/copyright/GPL -</example> - -<p> -Malheureusement, cela défile beaucoup trop rapidement pour être -lisible. Donc vous ne voulez avoir que quelques paragraphes: la -solution est un tube: - -<p> -<example> -tac /usr/doc/copyright/GPL | less -</example> - -<p> -Cela prend donc la sortie standard de <prgn>tac</prgn>, qui est la GPL -lue à l'envers, et l'envoie dans l'entrée standard de -<prgn>less</prgn>. - -<p> -Vous pouvez enchaîner ainsi autant de commandes que vous le -désirez. S'il vous prend une envie inexpliquable de transformer tous -les G en Q, il vous suffit d'utiliser la commande <prgn>tr G Q</prgn> -comme ceci: - -<p> -<example> -tac /usr/doc/copyright/GPL | tr G Q | less -</example> - -<p> -Vous pouvez obtenir le même résultat en utilisant des fichiers -temporaires et des redirections, par exemple: - -<p> -<example> -tac /usr/doc/copyright/GPL > tmpfile -tr G Q < tmpfile > tmpfile2 -less < tmpfile2 -rm tmpfile tmpfile2 -</example> - -<p> -Il est clair qu'un tube est bien plus pratique. -</sect1> -</sect> - -<sect> Expansion de nom de fichier - -<p> -Vous désirez souvent utiliser une commande sur tout un groupe de -fichiers. Des caractères spéciaux (<em>wildcards</em>) sont utilisés -pour créer des <em>termes génériques d'expansion de nom de -fichiers</em>. Une série de lettres et des caractères spéciaux -permettent ainsi de lister des fichiers. Par exemple, le motif -<prgn>/etc/*</prgn> remplace la liste de tous<footnote>Actuellement, -les fichiers commençant par un point ne sont pas inclus dans -l'expansion de *</footnote> les fichiers de <prgn>/etc</prgn>. - -<p> -* est un motif qui remplace n'importe quelle série de caractères et - ainsi l'expression <prgn>/etc/*</prgn> fournira la liste de tous les - fichiers commençant par <prgn>/etc/</prgn>. - -<p> -Cette liste de fichiers est très utile comme un jeu d'arguments pour une -commande. Par exemple, le répertoire <prgn>/etc</prgn> contient une -série de sous-répertoires appelés <prgn>rc0.d, rc1.d</prgn>, -etc... Normalement, pour visualiser le contenu de ces répertoires, -vous devriez taper les commandes suivantes: - -<p> -<example> -ls /etc/rc0.d /etc/rc1.d /etc/rc2.d /etc/rc3.d -ls /etc/rc4.d /etc/rc5.d /etc/rc6.d /ect/rcS.d -</example> - -<p> -C'est particulièrement lourd et pénible. À la place, il suffit -d'utiliser le caractère spécial « ? » comme suit: - -<p> -<example> -ls /etc/rc?.d -</example> - -<p> -<prgn>/etc/rc?.d</prgn> renvoie alors une liste de nom de fichiers, -commençant par <prgn>rc</prgn>, suivant d'un caractère et se terminant -pas <prgn>.d</prgn>. - -<p>Les caractères spéciaux disponibles sont les suivants: - -<p> -<list> -<item> * -<p> - Correspond à n'importe quel groupe de 0 ou plus de caractères. -<item> ? -<p> - Correspond à un caractère quelconque mais unique. -<item> <prgn>[...]</prgn> -<p> - Si vous entourez des caractères de crochets, le résultat est une - correspondance avec ces caractères. Par exemple, <prgn>[abc]</prgn> - correspond soit à un <prgn>a</prgn>, soit à un <prgn>b</prgn> ou - soit à un <prgn>c</prgn>. Si vous ajouter un ^ après le premier - crochet, on retourne le sens. Ainsi, <prgn>[^abc]</prgn> correspond - à tous les caractères qui ne sont pas un <prgn>a</prgn>, un - <prgn>b</prgn> ou un <prgn>c</prgn>. Vous pouvez aussi inclure un - intervalle comme <prgn>[a-j]</prgn> qui correspond à tout entre - <prgn>a</prgn> et <prgn>j</prgn>. La correspondance est sensible -à la casse des caractères donc si vous voulez inclure toutes les - lettres, vous devz utilisez <prgn>[a-zA-Z]</prgn>. -</list> - -<p> -Les motifs d'expansion sont très simples, à partir du moment où vous -les voyez dans des exemples concrets: - -<p> -<list> -<item> <prgn>*.txt</prgn> -<p> - Cela vous fournit la liste de tous les fichiers finissant pas - <prgn>.txt</prgn> puisque * correspond à tout. -<item> <prgn>*.[hc]</prgn> -<p> - Cela vous fournit une liste de fichier se terminant soit par - <prgn>.h</prgn> soit par <prgn>.c</prgn>. -<item> <prgn>a??</prgn> -<p> - Cela vous fournit la liste de tous les fichiers de trois lettres - commençant par un <prgn>a</prgn>. -<item><prgn>[^a]??</prgn> -<p> - Cela vous fournit la liste de tous les fichiers de trois lettres ne - commençant pas par la lettre <prgn>a</prgn>. -<item> <prgn>a*</prgn> -<p> - Cela vous fournit l'ensemble des fichiers commençant par - <prgn>a</prgn> sans tenir compte de leur nombre de lettres. -</list> - -</sect> - -</chapt> -<chapt> Un peu plus sur les fichiers - -<p> -Dans la partie 7.2, nous avons montré comment déplacer et renommer -des fichiers avec <prgn>mv</prgn>, comment les copier avec -<prgn>cp</prgn>, comment les détruire avec <prgn>rm</prgn>, comment -détruire des répertoires avec <prgn>rmdir</prgn> et comment en créer -avec <prgn>mkdir</prgn>. Ce chapitre va couvrir des aspects un peu -plus avancés du traitement de fichiers. - -<sect> Permissions - -<p> - Les systèmes Unix et GNU sont paramétrables pour pouvoir autoriser de - nombreuses personnes à utiliser la même machine tout en conservant - secrets certains fichiers ou en empêchant certaines personnes de - modifier certains fichiers. Vous pouvez le vérifier par - vous-même. Loguez-vous en tant que vous-même, c'est-à-dire <em>PAS en - root</em>. - -<p> -<example> -whoami -</example> - -<p> -Ceci pour vérifier que vous n'êtes pas root. Ensuite, entrer la -commande suivante: - -<p> -<example> -rm /etc/resolv.conf -</example> - -<p> -L'ordinateur devrait vous répondre <prgn>Permission denied</prgn> -<footnote><prgn>Permission -refusée</prgn></footnote>. <prgn>/etc/resol.conf</prgn> est un des -fichiers essentiels de configuration du système. Vous n'êtes pas -autorisé à le modifier ou l'effacer si vous n'êtes pas root. Cela -préserve le système d'une maladresse accidentelle. Si l'ordinateur est -dans un organisme public, comme dans un bureau ou une école, cela le -préserve des utilisateurs travaillant dessus. - -<p> -Maintenant, tapez <prgn>ls -l /etc/resolv.conf</prgn>. - -<p> -Cela devrait vous renvoyer quelque chose comme cela: - -<p> -<example> --rw-r--r-- 1 root root 119 Feb 23 1997 /etc/resolv.conf -</example> - -<p> -L'option <prgn>-l</prgn> de <prgn>ls</prgn> lui demande d'ajouter des -informations additionnelles. Les informations sur la partie droite -sont faciles à interpréter. La taille du fichier fait 119 octets. La -date de dernière modification est le 23 février 1997 et le nom du -fichier est <prgn>/etc/resolv.conf</prgn>. Sur la partie gauche de -l'écran, les choses sont un tout petit peu plus compliquées. - -<p> -Tout d'abord, une brève explication technique: <prgn>-rw-r--r--</prgn> -est le <em>mode</em> du fichier, le <prgn>1</prgn> correspond au -nombre de liens physiques vers ce fichier (ou le nombre de fichiers -dans le répertoire) et les deux <prgn>root</prgn> sont les -propriétaires respectifs du fichier et du groupe auquel appartient le -fichier. - -<p> -Tout ceci est du charabia. Étudions les choses plus calmement. - -<sect1> Les droits de propriété d'un fichier - -<p> -Tous les fichiers ont deux <em>propriétaires</em>: un utilisateur et -un groupe. Le cas précédent peut porter à confusion car il y a un -groupe nommé <em>root</em> et en même temps un utilisateur nommé -<em>root</em>. Les groupes sont juste un rassemblement d'utilisateurs -à qui on donne collectivement le droit d'accéder à une partie du -système. Un bon exemple est le groupe <em>games</em>. Vous pouvez -créer un groupe <em>games</em> sur votre ordinateur et le paramétrer -de façon à ce que seuls les gens appartenant à ce groupe aient -l'autorisation de jouer sur la machine. - -<p> -Il y a des exemples plus pratiques: considérons le cas de la -configuration d'une machine pour une école. Il y a certains fichiers -dont vous voulez restreindre l'accès aux professeurs seulement, et pas -aux élèves. Vous créez donc un groupe dans lequel vous rassemblez tous -les professeurs. Ensuite, vous pouvez indiquer au système que certains -fichiers appartiennent au groupe <em>professeurs</em> et que personne -d'autre n'y a accès. - -<p> -Explorons les groupes du système. En premier lieu, vous pouvez -utiliser la commande <prgn>groups</prgn> du shell. Cela vous fournit -une liste de groupes auxquels vous appartenez: - -<p> -<example> -$ groups -system-wide configuration!permissions!file -ownershipusername dialout: cdrom floppy audio -</example> - -<p> -Vous semblez donc n'appartenir qu'à un groupe, qui est identique -à votre nom d'utilisateur. Dans tous les cas, root peut vous ajouter -dans d'autres groupes. L'exemple suivant montre une personne membre de -cinq groupes: - -<p> -<example> -less /etc/group -</example> - -<p> -Ce fichier contient la liste des groupes disponibles sur votre -système. Remarquez bien le groupe root (le seul membre de ce groupe -est l'utilisateur root) et le groupe qui correspond à votre nom -d'utilisateur. Il y a aussi des groupes comme <em>dialout</em> (les -utilisateurs autorisés à lancer le modem) et <em>floppy</em> (les -utilisateurs qui ont accès au lecteur de disquette). Il est probable -que votre système ne soit pas configuré pour avoir l'usage de ces -groupes. Il est préférable que seul root ait accès au lecteur de -disquettes ou au modem pour le moment. Pour les détails en ce qui -concernent ce fichier, reportez-vous au <prgn>man group</prgn>. - -<p> -<example> -ls -l /home -</example> - -<p> -Cette commande vous montre que tous les répertoires utilisateurs sont -la propriété de leur utilisateur et de leur groupe personnel. - -<p> -<em> Si vous venez d'installer Debian, vous êtes peut-être le seul -utilisateur. Vous pouvez ajouter d'autres utilisateur à l'aide de la -commande <prgn>adduser</prgn>.</em> -</sect1> - -<sect1> Mode - -<p> -En plus d'être la propriété d'un seul utilisateur et d'un seul groupe, -chaque fichier et répertoire possède aussi un mode qui détermine qui a -le droit de lire, d'écrire et d'exécuter un fichier (et de le lancer -s'il s'agit d'un programme). Il y a d'autre petites fonctionnalités -apportées par le mode mais ce sont des réglages avancées et nous les -laisserons de côté pour le moment. - -<p> -Un mode ressemble à cette sortie de <prgn>ls</prgn>: -<prgn>-rw-r--r--</prgn>. À partir de maintenant, nous allons découvrir -neuf ensembles: celui qui contrôle les permissions de -<em>lecture</em>, d'<em>écriture</em> et d'<em>exécution</em> pour le -propriétaire du fichier, pour le groupe auquel se rattache le fichier -et pour les autres personnes (<em>others</em>) (tous ceux du système, -quelque fois appelé le <em>monde</em>). - -<p> -Dans la ligne mode, le premier « élément » donne le type de -fichier. Le - signifie que c'est un fichier normal (<em>regular -file</em>). Si nous avions eu <prgn>d</prgn>, cela aurait été un -répertoire<footnote><prgn>d</prgn> pour <em>directory</em> en -anglais</footnote>. Il y a aussi quelques autres possibilités mais qui -sont trop complexes pour le cadre de cette partie. Pour plus détails, -allez voir la partie 15.2.2. - -<p> -Les neuf éléments restant sont utilisés pour définir le mode du -fichier. Les neuf bits basics (<em><prgn>r</prgn>ead, -<prgn>w</prgn>rite</em> et <em>e<prgn>x</prgn>ecute</em> pour -l'utilisateur, le groupe et les autres) sont définis en trois blocs de -<prgn>rxw</prgn>. - -<p> -Si toutes les permissions sont activées et qu'il s'agit d'un fichier -normal, le mode va ressembler à ceci: - -<example> --rxwrxwrxw -</example> - -<p> -Si c'était un répertoire avec toutes les permissions désactivées pour -le monde et activées pour tous les utilisateurs et le groupe, cela -ressemblerait à: - -<example> -drxwrxw--- -</example> - -<p> -Le tableau suivant indique la signification des permission de lecture, -écriture et exécution pour les fichiers et les répertoires: - -<p> -<example> - --------------------------------------------------------------- -| Code | Nom | Ce que cela permet | Ce que cela permet | -| | | aux fichiers | aux répertoires | - --------------------------------------------------------------- -| r | lecture | Examen du contenu | Liste le contenu | -| | | du fichier | du répertoire | - --------------------------------------------------------------- -| | | Modification |Ajout ou destruction| -| w | écriture| du fichier | de fichiers dans le| -| | | | répertoire | - --------------------------------------------------------------- -| x |exécution| lancer en tant que |Accéder aux fichiers| -| | | commande | du répertoire | - --------------------------------------------------------------- -</example> - -<p> -Les modes du répertoire peuvent porter un peu à confusion donc voici -une série d'exemples des effets de combinaisons diverses. - -<p> -<example> -r-- -</example> - -<p> -L'utilisateur, le groupe et les autres avec ces permissions peuvent -afficher le contenu du répertoire mais ne peuvent rien faire -d'autre. Les fichiers contenus dans ce répertoire ne peuvent être lus, -modifiés ou manipulés de quelle que façon que ce soit. La seule action -autorisée consiste à lire le répertoire en lui-même ce qui revient -à afficher ce qu'il contient et donc la liste des fichiers. - -<p> -<example> -rw- -</example> - -<p> -La permission d'écriture n'a pas d'effet en l'absence de celle -d'exécution donc ce mode se comporte exactement comme le mode -précédent. - -<p> -<example> -r-x -</example> -<p> - -<p> -Ce mode permet aux fichiers présents dans le répertoire d'être -visibles et permet aussi d'accéder à ces fichiers. Dans tous les cas, -les fichiers ne peuvent être créés ou détruits. <em>Accéder</em> -signifie que vous pouvez voir, changer et exécuter les fichiers -suivant leurs permissions respectives. - -<p> -<example> ---x -</example> - -<p> -Les fichiers de ce répertoire sont accessibles mais le contenu du -répertoire ne l'est pas. Il vous faut donc connaître à l'avance le nom -du fichier que vous recherchez (à moins d'avoir des talents de -devin). Les fichiers ne peuvent être ni créés ni détruits. - -<p> -<example> -rwx -</example> - -<p> -Vous pouvez faire tout ce que vous voulez avec les fichiers de ce -répertoire tant que vous respectez leurs permissions respectives. - -<p> -Les permissions d'écriture d'un répertoire détermine si vous pouvez -détruire des fichiers dans ce répertoire. Un fichier en lecture seule -pourra être effacé si vous avez les permissions d'écriture dans le -répertoire le contenant. Vous ne pouvez détruire un fichier d'un -répertoire en lecture seule même si vous avez les droits d'écriture -sur le fichier. - -<p> -Cela signifie que si vous êtes le propriétaire d'un répertoire, vous -pouvez toujours détruire un de ses fichiers, y compris si ce fichier -appartient à root. - -<p> -La permission d'exécution d'un répertoire détermine la possibilité -d'avoir accès aux fichiers - si bien sûr leurs permissions respectives -l'autorisent. Si vous avez le droit d'exécution d'un répertoire, les -droits d'exécution de ses fichiers devraient suivre. Sinon, les -permissions des fichiers ne servent à rien: vous y avez accès dans -tous les cas. -</sect1> - -<sect1> Les permissions en pratique - -<p> -Cette partie contient une série d'exemples pour montrer comment -utiliser les permissions. Pour changer les permissions, on utilise la -commande <prgn>chmod</prgn>. - -<p> -<example> -cd ; touch monfichier -</example> - -<p> -Il y a une série de nouveaux trucs ici. En premier, vous pouvez -utiliser <prgn>;</prgn> pour mettre deux commandes sur la même -ligne. Vous pouvez entrer la commande précédente comme suit: - -<p> -<example> -$ cd -$ touch monfichier -</example> - -<p> -ce qui revient au même que - -<p> -<example> -$ cd; touch monfichier -</example> - -<p> -Les deux méthodes conduisent au même résultat. - -<p> -Rappelez-vous que <prgn>cd</prgn> employé seul vous renvoie dans votre -répertoire personnel. <prgn>touch</prgn> est normalement utilisé pour -modifier la date de création d'un fichier à la date courante. Mais -cela a une autre fonctionnalité intéressante. Si le fichier n'existe -pas, <prgn>touch</prgn> le crée. Ainsi, vous êtes en train de créer un -fichier pour pouvoir faire des expérimentations dessus. Utilisez -<prgn>ls -l</prgn> pour observer que le fichier a bien été créé et -remarquez son mode de permission: - -<p> -<example> -$ ls -l --rw-r--r-- 1 user user 0 Nov 18 22:04 monfichier -</example> - -<p> -Bien-sûr, la date et le nom du groupe et de l'utilisateur seront -différents chez vous. La taille du fichier est <prgn>0</prgn> car -<prgn>touch</prgn> a créé un fichier vide. <prgn>-rw-r--r--</prgn> est -le mode de permission par défaut sous Debian. - -<p> -<example> -chmod u+x monfichier -</example> - -<p> -Cette commande <em>ajoute</em> (<prgn>+</prgn>) des permissions -d'<em>exécution</em> (<prgn>x</prgn>) pour l'<em>utilisateur</em> -(<prgn>u</prgn>) à qui appartient le fichier. Utilisez <prgn>ls --l</prgn> pour en voir les effets. - -<p> -<example> -chmod go-r monfichier -</example> - -<p> -Maintenant, vous <em>ôtez</em> (<prgn>-</prgn>) les permissions de -<em>lecture</em> (<prgn>r</prgn>) au <em>groupe</em> (<prgn>g</prgn>) -à qui appartient le fichier et à tous les <em>autres</em> -(<prgn>o</prgn>). À nouveau, utilisez <prgn>ls -l</prgn> pour voir les -modifications. - -<p> -<example> -chmod ugo=rx monfichier -</example> - -<p> -Ici, vous positionnez (<prgn>=</prgn>) les permissions de lecture et -d'exécution pour l'utilisateur, le groupe et les autres. Cela -positionne les permissions exactement comme vous l'avez spécifié et -enlève les autres permissions. Ainsi, seules les permissions -<prgn>rx</prgn> seront activées, et toutes les permissions -<prgn>w</prgn> seront retirées. À partir de maintenant, personne ne -peut modifier le fichier. - -<p> -<example> -chmod a-x monfichier -</example> - -<p> -est un raccourci<footnote><prgn>a</prgn> est pour <em>all</em> (tous) -en anglais.</footnote> pour <prgn>ugo</prgn>. Ainsi, seules les -permissions d'exécution vont être retirées. - -<p> -<example> -rm monfichier -</example> - -Avec cette commande, nous allons tenter de détruire le fichier mais -sans les droits d'écriture. <prgn>rm</prgn> va alors s'assurer de -votre certitude en affichant le message suivant<footnote><prgn>rm: -détruire le fichier protégé en écriture -`monfichier'?</prgn></footnote>: - -<p> -<example> -rm: remove 'monfichier', overriding mode 0444 ? -</example> - -<p> -Vous devrez répondre en tapant <prgn>y</prgn> et ensuite en appuyant -sur <prgn>Entrée</prgn>. Ceci est une fonctionnalité de -<prgn>rm</prgn> et non une conséquence des permissions. L'autorisation -de détruire un fichier vient des droits sur le répertoire et vous avez -les droits sur ce répertoire. Dans ce cas, <prgn>rm</prgn> essaie -d'être le plus convivial possible en se figurant que si vous ne -vouliez pas changer les permissions (et <em>a fortiori</em> enlever -les droits d'écriture), vous ne vouliez pas plus le détruire et ainsi -il vous demande de faire le choix. - -<p> -Qu'est-ce donc cette affaire <prgn>0444</prgn> dans la question de -<prgn>rm</prgn> ? Les modes de permission sont en fait un nombre de 12 -bits comme celui-ci: <prgn>000100100100</prgn>. <prgn>0444</prgn> est -représentation octal (i-e en base 8) qui est la base conventionnelle -pour écrire un mode. Ainsi, vous pouvez écrire <prgn>chmod 444 -monfichier</prgn> à la place de <prgn>chmod ugo=r monfichier</prgn>. -</sect1> -</sect> - -<sect> Présentation des fichiers et de leurs emplacements - -<p> -Maintenant que vous êtes capable de naviguer au gré des répertoires, -allons faire un tour auprès des fichiers et des répertoires que vous -avez créés en installant Debian. Si vous êtes curieux, faîtes un -<prgn>cd</prgn> dans chacun d'entre eux et tapez <prgn>ls</prgn> pour -voir leur contenu. Si le résultat ne tient pas dans l'écran, essayez -<prgn>ls | less</prgn> où | est le caractère <em>tube</em> que l'on -trouve généralement au même emplacement que la touche <em>retour -arrière</em><footnote>NDT: du moins chez nos voisins anglo-saxons. Les -francophones, avec des claviers <em>azerty</em>, le trouverons à la -touche 6 en faisant <em>Alt Gr - 6</em>.</footnote>. - -<p> -<list> -<item> <prgn>/</prgn> -<p> - Comme on l'a déjà mentionné, il s'agit du répertoire racine qui - contient tous les autres répertoires. -<item> <prgn>/root</prgn> -<p> - Attention, ne confondez pas <prgn>/</prgn> avec <prgn>/root</prgn> ! - <prgn>/root</prgn> est le répertoire personnel de l'utilisateur root - (super-utilisateur). C'est un répertoire appelé <prgn>/root</prgn> - mais ce n'est pas le répertoire racine (NDT: <em>root directory</em> - en anglais d'où la confusion chez nos voisins anglophones). -<item><prgn>/home</prgn> -<p> - C'est l'endroit où l'on place le répertoire personnel de tous les - utilisateurs normaux - c'est-à-dire tous sauf le root. Chaque - répertoire personnel est appelé du nom de l'utilisateur; par exemple - <prgn>/home/jane</prgn>. Si vous utilisez un système de taille - conséquente, comme pour une école ou une entreprise, votre - administrateur système a peut-être créé des répertoires - supplémentaires pour contenir les répertoires personnels: - <prgn>/home1</prgn> et <prgn>/home2</prgn> par exemple. Dans - d'autres systèmes, on peut apercevoir un niveau supplémentaire de - sous-répertoire : -<example> - /home/eleves/nomdutilisateur, - /home/equipe/nomdutilisateur, etc... -</example> -</list> - -<p> -Votre répertoire personnel est l'endroit où vous placez vos travaux -personnels, votre courrier électronique et tous les autres documents, -ainsi que vos fichiers de configurations personnelles. C'est votre « -chez vous » dans le système... - -<p> -<list> -<item> <prgn>/bin</prgn> -<p> - Ce répertoire contient les « binaires » et les fichiers - exécutables indispensables au fonctionnement du système. Des - exemples sont le shell (<prgn>bash</prgn>) et les commandes - relatives aux fichiers comme <prgn>cp</prgn>. <item> - <prgn>/sbin</prgn> -<p> - Ce répertoire contient les « binaires systèmes ». Ce sont - les utilitaires que l'utilisateur root ou l'administrateur système - auront à utiliser. Vous n'aurez probablement jamais à y avoir accès - dans votre travail quotidien. <item> <prgn>/usr</prgn> -<p> - Ce répertoire contient beaucoup de fichiers susceptibles de vous - intéresser. Il a de nombreux sous-répertoires. <prgn>/usr/bin</prgn> - et <prgn>/usr/sbin</prgn> sont très proches de <prgn>/bin</prgn> et - <prgn>/sbin</prgn> à l'exception près que les fichiers y figurant ne - sont pas considérés comme « vitaux pour le système ». -<p> - Bien que non essentiel au bon fonctionnement de l'ordinateur, - <prgn>/usr</prgn> contient bien des applications très utiles pour - travailler. Ainsi, dans <prgn>/usr</prgn>, vous trouverez les - répertoires <prgn>/usr/man</prgn>, <prgn>/usr/doc</prgn> et - <prgn>/usr/info</prgn>. Ils contiennent respectivement les pages de - manuel, la documentation et les pages info. Et n'oubliez pas non - plus <prgn>/usr/games</prgn> ! -<item> <prgn>/usr/local</prgn> -<p> - Le système Debian n'installe rien dans ce répertoire. Vous devrez - l'utiliser pour installer des logiciels que vous compilerez vous - même ou tout logiciel non contenu dans un paquet Debian. Vous pouvez - aussi l'installer dans votre répertoire personnel si vous êtes le - seul à l'utiliser. -<item> <prgn>/etc</prgn> -<p> - Ce répertoire contient l'ensemble des fichiers de configuration du - système. Lorsque vous désirez changer quelque chose au système qui - impacte tous les utilisateurs de votre ordinateur - comme votre - connexion Internet ou bien un changement de carte vidéo - vous aurez - probablement à vous loguer en root et à modifier un fichier dans - <prgn>/etc</prgn>. -<item><prgn>/tmp</prgn> -<p> - Vous trouverez ici les fichiers temporaires de votre système, la - plupart d'entre eux créés par le système. Ce répertoire est - généralement nettoyé régulièrement ou à chaque <em>boot</em> du - système. Vous pouvez créer des fichiers ici mais gardez à l'esprit - qu'ils peuvent être détruits automatiquement. -<item> <prgn>/var</prgn> -<p> - Ce répertoire contient les fichiers « variables » que le - système change automatiquement. Par exemple, les courriels entrants - sont stockés ici. Le système garde une trace de ses actions ici. Il - y a un grand nombre d'autres fichiers engendrés automatiquement - ici. Vous pouvez prêter attention au contenu du répertoire de - <prgn>/var/log</prgn> où vous pourrez trouver des messages d'erreurs - qui peuvent vous aider à comprendre ce qui ne va pas dans votre - système en cas de défaillance. -</list> - -<p> -Il y a évidemment bien d'autres répertoires dans votre système, bien -trop d'ailleurs pour que l'on puisse tous les décrire ici. - -<p> -Pour changer quelque chose, vous aurez certainement à vous contenter -de votre répertoire personnel et de <prgn>/etc</prgn>. Sur un système -Debian, il y a rarement une occasion de changer quelque chose d'autre -car tout est automatiquement installé pour vous. - -<p> -<prgn>/etc</prgn> est utilisé pour configurer le système comme un -tout. Vous n'utiliserez votre propre répertoire personnel que pour -configurer votre propre environnement et stocker vos propres -données. L'idée de base est de vous confiner dans -<prgn>/home/votrenom</prgn> pour le travail quotidien et ainsi, vous -ne pourrez rien casser ailleurs. À l'occasion, vous vous loguerez en -tant que root pour paramétrer quelque chose mais seulement si c'est -absolument nécessaire. Bien-sûr, si vous utilisez Debian à l'école ou -bien en entreprise et que quelqu'un d'autre est l'administrateur -système, vous n'aurez pas accès au compte root et vous ne pourrez -changer des choses que dans votre compte personnel (ou dans les -comptes où vous avez accès). Ceci limite ce que vous pouvez faire avec -le système. -</sect> - -<sect> La compression de fichier avec <prgn>gzip</prgn> - -<p> -Il est souvent bien pratique de réduire la taille d'un fichier - -disons, pour le télécharger plus rapidement, ou bien pour gagner de la -place sur votre disque dur. Le programme affecté à cette tâche est -<prgn>gzip</prgn> (GNU zip). Voici comment il fonctionne: - -<p> -<example> -$ cd; cp /etc/profile ./monfichier -</example> - -<p> -Cela vous renvoie dans votre répertoire personnel et copie un fichier -arbitrairement choisi (<prgn>/etc/profile</prgn>) dans votre -répertoire courant en le renommant <prgn>monfichier</prgn>. - -<p> -<example> -$ ls -l -</example> - -<p> -Affiche le contenu du répertoire courant. Remarquez bien la taille de -<prgn>monfichier</prgn>. - -<p> -<example> -$ gzip monfichier -</example> - -<p> -Ceci comprime <prgn>monfichier</prgn>. - -<p> -<example> -$ ls -l -</example> - -<p> -Observez le résultat de cette commande: <prgn>monfichier</prgn> -s'appelle maintenant <prgn>monfichier.gz</prgn>. Il est aussi beaucoup -plus petit. - -<p> -<example> -$ gunzip monfichier.gz; ls -l -</example> - -<p> -Ceci décomprime le fichier. Remarquez bien que <prgn>monfichier</prgn> -est retourné dans son état d'origine. Et remarquez aussi que pour -décomprimer, il faut utiliser <prgn>gunzip</prgn> et non -<prgn>gzip</prgn>. - -<p> -<example> -$ rm monfichier -</example> - -<p> -Utilisez cette commande pour effacer le fichier puisqu'on ne l'avait créé -juste que pour expérimenter. -</sect> - -<sect> Rechercher des fichiers - -<p> -Il y a deux utilitaires pour rechercher un fichier: <prgn>find</prgn> -et <prgn>locate</prgn>. <prgn>find</prgn> recherche vraiment les -fichiers dans leur état présent. <prgn>locate</prgn> recherche dans un -index engendré automatiquement par le système chaque matin à 6h42 -(c'est un <prgn>cron</prgn> dont on trouvera une explication un peu -plus loin dans le livre). <prgn>locate</prgn> ne sera jamais capable -de trouver un fichier créé après la génération de l'index. Bien-sûr, -puisque <prgn>locate</prgn> recherche dans un index, il est beaucoup -plus rapide - un peu comme rechercher dans l'index d'un livre plutôt -qu'effeuiller chaque page. - -<p> -Pour comparer les deux façons de faire une recherche, on va supposer -que l'on ne se rappelle plus où est le fichier de configuration -<prgn>XF86Config</prgn> du serveur X. - -<p> -<example> -$ locate XF86Config -</example> - -<p> -Cela devrait être très rapide. Vous allez obtenir une liste de noms de -fichier <em>contenant</em> <prgn>XF86Config</prgn>, quelque chose -comme: - -<p> -<example> -/etc/X11/XF86Config -/usr/X11R6/lib/X11/XF86Config -/usr/X11R6/lib/X11/XF86Config.eg -/usr/X11R6/man/man5/XF86Config.5x.gz -</example> - -<p> -Maintenant, essayez la commande <prgn>find</prgn>: - -<p> -<example> -$ find / -name XF86Config -</example> - -<p> -Vous allez entendre une activité intense du disque dur, et cela va -prendre un temps assez long. Le résultat devrait ressembler à: - -<p> -<example> -/ect/X11/XF86Config -/usr/X11R6:lib/X11/XF86Config -find: /var/spool/cron/atjobs: Permission denied -find: /var/spool/cron/atspool: Permission denied -find: /var/lib/xdm/authdir: Permission denied -</example> - -<p> -Remarquez que <prgn>find</prgn> n'a trouvé que les fichiers appelés -<em>exactement</em> <prgn>XF86Config</prgn> et non pas ceux contenant -cette chaîne de caractères. <prgn>find</prgn> a aussi essayé de -rechercher dans tous les répertoires du système - y compris ceux dont -vous n'avez pas les droits d'accès. C'est la raison pour laquelle vous -avez les messages <prgn>Permission denied</prgn> (<prgn>Permission non -accordée</prgn>). - -<p> -Leur syntaxe aussi est différente. Avec <prgn>find</prgn>, vous devez -choisir à partir de quel répertoire effectuer la recherche alors que -<prgn>locate</prgn> choisit automatiquement le répertoire racine. Et -vous devez spécifiez votre recherche en utilisant l'option -<prgn>-name</prgn>. Vous pouvez aussi rechercher des fichiers avec des -tas d'autres critères, comme les dates de modification ou les -propriétaires. Pour utiliser <prgn>find</prgn> dans une recherche de -fichiers dont le nom contient <prgn>XF86Config</prgn>, il vous faut -utiliser un motif de recherche: - -<p> -<example> -$ find / -name '*XF86Config*' -</example> - -<p> -Comme la plupart des outils en lignes de commandes, <prgn>find</prgn> -accepte des motifs comme arguments. - -<p> -De façon générale, <prgn>find</prgn> est un outil beaucoup plus -puissant et <prgn>locate</prgn> est un outil très rapide pour des -recherches journalières. L'intégralité des recherches possible -prendrait un temps fou à expliquer. Pour plus de détails, tapez -<prgn>info find</prgn> qui vous conduira au travers des méandres des -subtilités de <prgn>find</prgn> et <prgn>locate</prgn>. -</sect> - -<sect> Déterminer le contenu d'un fichier - -<p> -Debian vous offre un utilitaire capable de deviner le contenu d'un -fichier à votre place. Bien que cela ne soit pas à 100% sûr, vous -pouvez utiliser cette commande pour explorer votre système. - -<p> -<example> -$ file /bin/cp -</example> - -<p> -Vous devriez avoir quelque chose comme ceci: - -<p> -<example> -/bin/cp: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), stripped -</example> - -<p> -Si l'on retire les parties techniques, on peut dire que c'est un -fichier exécutable pour machine Intel. - -<p> -<example> -$ file /etc/init.d/boot -</example> - -<p> -La commande précédente vous donne la réponse suivante: - -<p> -<example> -/etc/init.d/boot: Bourne shell script text -</example> - -<p> -ce qui veut dire que c'est un fichier texte contenant un script écrit -en Bourne shell. -</sect> - -<sect> Utiliser un gestionnaire de fichier - -<p> -Plutôt que manipuler les fichiers à la main, vous pouvez utilisez un -<em>gestionnaire de fichiers</em>. Si vous manipulez de nombreux -fichiers à la fois, un gestionnaire de fichiers peut rendre votre -travail plus efficace. Il y a des gestionnaires de fichiers orienté -texte, comme <prgn>GNU Midnight Commander (mc)</prgn> et un grand -nombre de gestionnaires de fichiers pour X Window (par exemple -<prgn>gmc</prgn> qui est la version X Window de <prgn>GNU Midnigt -Commander</prgn>). - -<p> -Décrire chacun d'entre est hors du propos de ce livre mais vous pouvez -les essayer si la ligne de commande ne vous sied pas. -</sect> - -</chapt> -<chapt> Travailler avec des fichiers textes - -<p> -Les fichiers textes sont prédominants sur un système GNU-Linux. Ils se -trouvent absolument partout, des fichiers de documentations aux -fichiers de configuration. Par chance, il est très facile de les -manipuler. - -<sect> Lire des fichiers textes - -<p> -Un fichier texte est simplement un fichier qui ne contient que des -caractères interprêtables par un être humain. Il n'y a rien à dire de -spécial de plus à son sujet. L'autre type de fichier est le fichier -binaire qui est destiné à être interprêté par l'ordinateur. - -<p> -Vous pouvez visualiser n'importe quel type de fichiers avec le pagineur -<prgn>less</prgn> si vous l'avez installé (installez-le si vous ne -l'avez pas, c'est très simple). Tapez <prgn>less /etc/profile</prgn> -pour lire un exemple de fichier texte. Remarquez bien que vous -pouvez lire des caractères mêmes si leur signification reste -obscure. Tapez <prgn>less /bin/ls</prgn> pour visualiser un fichier -binaire. Comme vous pouvez vous en apercevoir, le programme -<prgn>ls</prgn> n'est pas lisible par un être humain. - -<p> -Parfois, vous trouverez des fichiers finissant par <prgn>.gz</prgn> -. Ces fichiers sont lisibles avec <prgn>zless</prgn>. Vous pouvez -l'utiliser comme ceci: - -<p> -<example> -zless /usr/doc/ae/changelog.Debian.gz -</example> - -<p> -<em> <prgn>zless</prgn> est idéal pour lire la documentation qui est la -plupart du temps comprimée au format <prgn>.gz</prgn></em> . - -<p> -La différence entre les deux sortes de fichiers est purement en -rapport avec ce qu'ils contiennent à la différence de certains autres -systèmes (comme le DOS ou MacOS) qui les traitent de façon différente. - -<p> -Les fichiers textes peuvent contenir des scripts shell, de la -documentation, des notices de <em>copyrights</em> ou tout autre texte -lisible par un être humain. - -<p> -Incidemment, ceci illustre la différence entre le <em>code source</em> -et les <em>binaires exécutables</em>. <prgn>/bin/ls</prgn> est un -fichier binaire exécutable que vous pouvez télécharger sur votre -Debian mais vous pouvez aussi télécharger un fichier texte qui -explique à l'ordinateur comment créer <prgn>/bin/ls</prgn>. Le fichier -texte est alors le code source. Comparer la nature de -<prgn>/bin/ls</prgn> et <prgn>/etc/profile</prgn> illustre combien le -code source est important pour quelqu'un qui veut comprendre ou -modifier une partie d'un logiciel. Les logiciels libres vous -fournissent, à vous ou bien à vos consultants, tout le code source de -chaque application. -</sect> - -<sect> Les éditeurs de textes - -<p> -Un <em>éditeur de textes</em> est le programme utilisé pour créer ou -changer le contenu d'un fichier texte. La plupart des systèmes -d'exploitation possède leur éditeur de textes: DOS a -<prgn>edit</prgn>, Windows a <prgn>Notepad</prgn> et MacOS a -<prgn>SimplyText</prgn>. - -<p> -Debian fournit une grande quantité d'éditeurs de -textes. <prgn>vi</prgn> et <prgn>Emacs</prgn> en sont les deux grands -classiques et ce sont probablement les plus puissants et les plus -utilisés. <prgn>vi</prgn> et <prgn>Emacs</prgn> sont tous les deux -complexes et requièrent un certain apprentissage, mais ils peuvent -éditer du texte avec une efficacité extraordinaire. <prgn>Emacs</prgn> -tourne à la fois en mode console et sous X Window; <prgn>vi</prgn> -tourne normalement seulement en mode console mais la variante -<prgn>vim</prgn> possède une option <prgn>-g</prgn> qui lui permet de -tourner sous X. - -<p> -Il existe des éditeurs de textes plus simples comme -<prgn>nedit</prgn>, <prgn>ae</prgn>, <prgn>jed</prgn> et -<prgn>xcoral</prgn>. <prgn>nedit</prgn> et <prgn>xcoral</prgn> -fournissent une interface basée sur le système X Window très -conviviale et facile à utiliser. Il existe aussi de multiples variantes -de <prgn>vi</prgn>. Vous pouvez aussi trouver une variante de -<prgn>Emacs</prgn> appelée <prgn>XEmacs</prgn>. - -<p> -Ce livre n'aborde pas l'utilisation d'un éditeur en détail, bien que -nous allons rapidement faire une introduction à <prgn>ae</prgn> qui -est petit, rapide et peut être trouvé sur les disquettes de secours de -Debian. Il est donc recommandé de savoir s'en servir au cas -où... Lorsque vous désirerez faire de l'édition de texte de façon plus -sérieuse, voyez du côté de <prgn>vim</prgn> ou de <prgn>GNU -Emacs</prgn>. <prgn>Emacs</prgn> fournit un excellente présentation -interactif<footnote>mais en anglais...</footnote> de ses capacités; -pour le lire, lancer <prgn>Emacs</prgn> avec la commande -<prgn>emacs</prgn> et taper <prgn>F1 t</prgn>. <prgn>Emacs</prgn> est -un très bon choix pour les nouveaux utilisateurs intéressés par un -éditeur tout usage ou pour la programmation. -</sect> - -<sect> Utiliser <prgn>ae</prgn> - -<p> -Vous pouvez lancer <prgn>ae</prgn> en lui donnant le nom d'un fichier -à éditer, comme cela: - -<p> -<example> -$ ae fichier.txt -</example> - -<p> -Cela va vous faire entrer dans l'écran d'édition. La partie supérieure -vous propose une aide sommaire; la partie inférieure montre le nom du -fichier que vous éditez. Se déplacer dans cet éditeur est simple: il -suffit d'utiliser les flèche de déplacement. Vous pouvez sauver le -fichier en tapant <prgn>C-x C-s</prgn> et ensuite sortir en tapant -<prgn>C-x C-c</prgn>. Lorsque vous serez à l'aise, vous pourrez -supprimer l'aide en tapant <prgn>C-x C-h</prgn>. C'est tout ! Gardez -à l'esprit que cet éditeur ne vous permet que de l'édition très -basique. Pour programmer, ou bien pour des travaux d'édition plus -avancés, vous chercherez un autre éditeur de textes comme il a été dit -précédemment. -</sect> - -</chapt><chapt> Le système X Window - -<p> -Le but de ce chapitre est de décrire l'interface graphique utilisateur -du système X Window. Cela suppose que vous avez réussi à configurer X -comme décrit dans le manuel d'installation (même si le manuel -d'installation n'est pas encore écrit; vous aurez besoin d'utiliser le -XFree86 HOWTO, le contenu de <prgn>/usr/doc/X11</prgn> et ce -chapitre). Une fois X installé, vous pouvez entrer dans -l'environnement X soit en tapant <prgn>startx</prgn> soit via -<prgn>xdm</prgn>: cela dépend de vos choix pendant la configuration. - -<sect> Introduction à X - -<p> -Une <prgn>GUI</prgn> (<em>Graphical User Interface</em>, une interface -graphique utilisateur) fait partie des systèmes Windows et de -MacOS. Il est pratiquement impossible d'écrire une application pour -ces systèmes sans utiliser ces GUI et les systèmes ne peuvent être -utilisés à l'aide de lignes de commandes. GNU-Linux est plus modulaire -car il est composé de petits composants indépendants que l'on peut ou -non utiliser suivant ses besoins ou ses préférences. Un des ces -composants est le système X Window, que l'on appelle simplement X. - -<p> -Ce composant est aussi appelé parfois X11. Remarquez bien que -l'appellation « X Windows » est incorrecte. - -<p> -X en lui-même est une manière pour les programmes de discuter avec -la souris et la carte vidéo sans savoir quel type de matériel il y a -au bout. En fait, c'est une <em>abstraction</em> du matériel -graphique. Les applications des utilisateurs parlent au serveur X dans -le langage du serveur X, le serveur X le traduisant alors dans le -langage de votre matériel. Cela signifie que votre programme n'a -qu'à être écrit une fois et qu'ensuite il tournera sur tous les -ordinateurs. - -<p> -Dans le jargon de X, le programme qui parle au matériel est connu sous -le vocable <em>serveur X</em>. Les applications qui demandent au -serveur X d'afficher une fenêtre sur l'écran sont appelés <em>clients -X</em>. Le serveur X inclut un pilote pour la carte vidéo et donc vous -devez avoir un serveur X qui reconnaît votre carte vidéo. - -<p> -Le serveur X ne fournit aucune fonctionnalité que l'on peut attendre -d'une <em>GUI</em>, comme redimensionner une fenêtre ou bien les réarranger. Un -client X spécial, appelé le <em>gestionnaire de fenêtres</em>, dessine -les bords des fenêtres et les barres de titre, redimensionne et -réarrange les fenêtres et fournit des facilités pour lancer d'autres -clients X via un menu. Des gestionnaires de fenêtres spécifiques -peuvent avoir d'autres fonctionnalités. - -<p> -Les gestionnaires de fenêtres présents dans un système Debian sont -<prgn>fvwm</prgn>, <prgn>fvwm2</prgn>, <prgn>icewm</prgn>, -<prgn>afterstep</prgn>, <prgn>olvwm</prgn>, <prgn>wmaker</prgn>, -<prgn>twm</prgn> et <prgn>enlightenment</prgn>. Vous devrez -probablement tous les essayer avant de ne garder que votre favori. - -<p> -Ni le serveur X, ni le gestionnaire de fenêtres ne fournissent de -<em>gestionnaire de fichiers</em>, c'est-à-dire qu'il n'existe pas de -fenêtres contenant les icônes de vos fichiers et répertoires. Vous -pouvez lancer un gestionnaire de fichiers en tant qu'application -séparée, et il y en a de nombreux de disponibles. Le projet de bureau -GNOME se développe autour d'un gestionnaire de fichiers basé sur des -icônes et sur d'autres fonctionnalités basées sur des -<em>GUI</em>. Allez voir la page -GNOME<footnote>http://www.gnome.org/</footnote> pour obtenir les -dernières nouvelles. - -<p> -La dernière fonctionnalité de X est sa <em>transparence au -réseau</em>: cela signifie que les clients X ne s'occupent pas de -savoir s'ils discutent avec un serveur X tournant sur la même machine -qu'eux ou sur un serveur X fonctionnant quelque part sur le réseau. De -façon pratique, cela veut dire que vous pouvez faire tourner -à distance votre programme sur une autre machine très puissante et -sortir l'affichage sur votre machine. -</sect> - -<sect> Lancer l'environnement X - -<p> -Il y a deux façons de lancer X. La première est de le lancer -manuellement aussitôt que vous en avez besoin. Pour ce faire, -Loguez-vous dans une console et tapez <prgn>startx</prgn>. Cela lance -X et vous met automatiquement sur sa console virtuelle. - -<p> -La seconde façon (et recommandée) de lancer X est d'utiliser -<prgn>xdm</prgn> (<em>X display manager</em>, le gestionnaire -d'affichage graphique). Basiquement, <prgn>xdm</prgn> vous propose un -joli prompteur graphique de login sur la console virtuelle de X -(probablement la 7) et vous pouvez vous loguer à partir de là. - -<p> -Par défaut, n'importe quelle méthode lancera aussi une -<prgn>xterm</prgn> qui est une petite fenêtre contenant un prompteur -de shell. À partir de ce prompteur, vous pouvez taper n'importe -quelles commandes comme vous le faisiez sur une console texte. Vous -pouvez ainsi refaire tous les exemples du livre en utilisant -l'<prgn>xterm</prgn>. La seule différence entre une <prgn>xterm</prgn> -et la console texte est qu'il n'est pas nécessaire de se loguer dans -l'<prgn>xterm</prgn> puisque vous l'êtes déjà sous X. - -<p> -Il y a d'autre part beaucoup de choses que vous ne pouvez faire que -sous X et dont on va parler dans ce chapitre. - -<p> -<em>Attention: la fenêtre par défaut de l'<prgn>xterm</prgn> a une -toute petite fonte. Si vous avez un tout petit moniteur ou une -définition élevée ou bien encore de mauvais yeux, il se peut que vous -vouliez changer cet état de fait. Pour ce faire, effectuez les -étapes suivantes:</em> - -<p> -<list> -<item> - Déplacez le curseur de la souris au centre de la fenêtre - <prgn>xterm</prgn>. -<item> - Appuyez sur la touche <em>Control</em> et le bouton droit de la - souris simultanément. Vous devriez voir apparaître un menu de - fontes. -<item> - Pointez sur la fonte que vous voulez et relâchez le bouton de la - souris. -</list> -</sect> - -<sect> Les opérations élémentaires sous X - -<p> -Il y a certaines opérations très communes sous X avec lesquelles il va -falloir vous familiariser. Cette partie décrit quelques opérations -élémentaires que vous pouvez trouver très pratiques. - -<sect1> La souris - -<p> -La souris sous X fonctionne presque de la même façon que sous les autres -systèmes d'exploitation à l'exception du fait qu'elle possède trois -boutons. Si votre souris n'en possède que deux, vous pouvez simuler le -troisième bouton du milieu en appuyant sur les deux boutons -simultanément. Ce n'est pas très pratique; donc investir dans une -souris trois boutons bon marché n'est pas une mauvaise idée. Il y en a -de disponible chez tous les détaillants informatiques. - -<p> -Les boutons sont numérotés de gauche à droite, en supposant que vous -placiez votre souris dans votre main droite. Le premier bouton est -alors sur la gauche, le deuxième au milieu et le troisième sur la -droite. Vous pouvez rencontrer soit la numérotation soit les positions -dans la documentation. - -<p> -X possède une fonctionnalité interne simple de copier-coller. Pour -sélectionner le texte à copier, vous devez à cliquer puis à déplacer la -souris avec le bouton gauche. Cela devrait sélectionner le texte -à copier, en supposant bien sûr que l'application en question supporte -le copier-coller. Pour restituer le texte, vous n'avez qu'à cliquer -avec le bouton du milieu dans une autre application X. Par exemple, -vous recevez un courriel contenant une URL. Vous pouvez la -sélectionner avec le bouton gauche et ensuite cliquer dans le champ -<em>ad hoc</em> de votre butineur avec le bouton du milieu pour la -recopier. -</sect1> - -<sect1> Les clients X - -<p> -Les programmes communiquant avec le serveur X sont appelés des <em>clients -X</em>. La plupart de ces programmes lui demandent d'afficher une fenêtre -à l'écran. - -<p> -Vous pouvez lancer un client X de la même façon que vous lancez un -autre programme Debian. Tapez simplement le nom du programme en ligne -de commandes. Essayez de taper <prgn>xterm</prgn> dans la fenêtre -<prgn>xterm</prgn> déjà existante et vous aurez une nouvelle fenêtre -<prgn>xterm</prgn> qui apparaîtra à l'écran. - -<p> -Vous devez vous apercevoir que la première <prgn>xterm</prgn> est -bloquée car le shell attend que la seconde <prgn>xterm</prgn> se -finisse. Pour éviter ce problème, vous devez lancer le client X en -arrière-plan, en utilisant le & après le nom de la commande, comme -ceci: <prgn>xterm &</prgn>. Si vous oubliez, vous pouvez lancer un -processus déjà existant en arrière-plan: commencez par le suspendre -avec <em>Ctrl-z</em> et ensuite placez-le en arrière-plan avec la -commande <prgn>bg</prgn>. - -<p> -Si vous utilisez régulièrement un programme, votre gestionnaire de -fenêtres doit vous fournir un moyen plus pratique de le lancer via un -menu graphique. -</sect1> -<sect1> Problèmes - -<p> -Parfois, lorsque vous lancez un client X à partir d'un menu graphique, -vous n'arrivez pas à voir les messages d'erreurs en cas d'échec. Vous -pouvez les trouver dans le fichier <prgn>~/.xsession-errors</prgn>. -</sect1> - -<sect1> Quitter l'environnement X - -<p> -Pour sortir de X, il est nécessaire d'utiliser un -menu. Malheureusement pour les débutants, cela change avec chaque -gestionnaire de fenêtres et pour la plupart d'entre eux, cela peut -être fait de nombreuses façons différentes. S'il existe un menu -évident, rechercher une entrée du style <em>Exit</em> (quitter) ou -bien <em>Close the Window Manager</em> (Fermer le gestionnaire de -fenêtres). Si vous n'apercevez aucun menu, essayez de cliquer avec -chacun des boutons sur l'arrière-plan de l'écran. Si tout cela a -échoué, vous pouvez toujours tuer le serveur X en pressant sur la -combinaison <em>Ctrl-Alt-Backspace</em>. Bien entendu, tuer le serveur -vous fait perdre toutes les données non sauvegardées des applications -encore ouvertes. -</sect1> - -<sect1> Personnaliser le lancement de X - -<p> -Lorsque vous lancez X, Debian exécute quelques scripts shell qui -lancent votre gestionnaire de fenêtres et d'autres clients X. Par -défaut, il y a un gestionnaire de fenêtres, un <prgn>xconsole</prgn> -et une <prgn>xterm</prgn>. - -<p> -Pour personnaliser votre lancement de X, le fichier -<prgn>/etc/X11/config</prgn> doit contenir la ligne -<prgn>allow-user-xsession</prgn>. Si ce n'est pas le cas, loguez-vous -en root et ajoutez la maintenant. Ensuite reloguez en tant que -vous-même et continuez cette présentation. - -<p> -Vous pouvez voir ce que fait Debian au lancement de X dans le fichier -<prgn>/etc/X11/Xsession</prgn>. Remarquez bien que vous pouvez changer -le comportement de <prgn>/ect/X11/Xsession</prgn> en modifiant le -fichier <prgn>/ect/X11/config</prgn> qui spécifie les caractéristiques -du système par défaut. - -<p> -Pour lancer les clients de votre choix au démarrage de X, vous devez -créer un fichier script exécutable appelé <prgn>.xsession</prgn> dans -votre répertoire personnel. - -<p> -<example> -$ touch ~/.xession -</example> - -<p> -pour le créer et - -<p> -<example> -$ chmod u+x ~/.xsession -</example> - -<p> -pour le rendre exécutable. - -<p> -Une fois que <prgn>.xession</prgn> est créé, il est nécessaire de -le modifier pour pouvoir faire quelque chose d'utile avec votre éditeur -de textes favori. Vous pouvez faire ce que vous voulez dans ce -script. Dans tous les cas, lorsque les processus du script -s'arrêteront, la session X aussi s'arrêtera. - -<p> -De façon pratique, cela signifie que vous devez toujours terminer vos -scripts avec un appel à <prgn>exec</prgn>. Quelque soit le programme -que vous appelez avec <prgn>exec</prgn>, il remplacera le processus en -cours par ce programme et ainsi les commandes suivantes après la ligne -<prgn>exec</prgn> seront ignorées. Le programme que vous appellerez via -<prgn>exec</prgn> deviendra le nouveau propriétaire du processus de -script, ce qui signifie que X s'arrêtera lorsque le nouveau programme -s'arrêtera. - -<p> -Mettez par exemple à la fin de votre <prgn>.xsession</prgn> une ligne -avec <prgn>exec fvwm</prgn>. Cela signifie que le gestionnaire de -fenêtres <prgn>fvwm</prgn> sera lancé au démarrage de X. Lorsque vous -quitterez votre gestionnaire de fenêtres <prgn>fvwm</prgn>, vous -quitterez aussi la session X et tous les autres clients seront -fermés. Il n'est pas absolument nécessaire de lancer un gestionnaire -de fenêtres ici; vous pouvez y écrire <prgn>exec xterm</prgn> et dans -ce cas, tapez <prgn>exit</prgn> dans cette <prgn>xterm</prgn> -particulière fermera toute la session X. - -<p> -Si vous désirez lancer d'autres clients avant votre <prgn>exec</prgn>, -il sera nécessaire de les lancer en arrière-plan. Sinon, -<prgn>.xsession</prgn> s'arrêtera jusqu'à ce que chaque client -existant disparaisse, et ainsi de suite, ligne après ligne. Voyez la -partie précédente pour envoyer un processus en arrière-plan -(basiquement, vous devez ajouter un & à la fin de la ligne, comme pour -<prgn>xterm&</prgn>). - -<p> -Vous pouvez tirer parti de ceci. Si vous désirez lancer des commandes -à la fin de votre session X, vous pouvez lancer votre gestionnaire de -fenêtres, ou quoi que ce soit d'autre équivalent, dans votre -<prgn>.xsession</prgn> et attendre qu'il finisse. Pour ce faire, -n'utilisez pas <prgn>exec</prgn> ni les &. Entrez simplement -<prgn>fvwm</prgn>. Ensuite, placez les commandes de votre choix après -<prgn>fvwm</prgn>. - -<p> -Quelques exemples de fichiers <prgn>.xession</prgn> devraient vous -aider. Dans les exemples, remplacez <prgn>fvwm</prgn> par le -gestionnaire de fenêtres de votre choix. - -<p> -Le plus simple des <prgn>.xsession</prgn> est celui qui ne fait que -lancer un gestionnaire de fenêtres: - -<p> -<example> -exec fvwm -</example> - -<p> -Cela lance <prgn>fvwm</prgn> et la session X s'achève lorsque l'on -quitte <prgn>fvwm</prgn>. Si vous faîtes la même chose mais sans le -<prgn>exec</prgn>, rien ne semblera différent à première vue. Mais en -arrière-plan, <prgn>.xsession</prgn> sera en attente des réactions de -<prgn>fvwm</prgn> et <prgn>.xsession</prgn> ne s'arrêtera qu'à la fin -de <prgn>fvwm</prgn>. Utilisez <prgn>exec</prgn> est plus léger car -<prgn>fvwm</prgn> remplace alors <prgn>.xsession</prgn> plutôt que -d'attendre qu'il s'arrête. Vous pouvez le vérifier à l'aide des -commandes <prgn>ps</prgn> ou <prgn>top</prgn>. - -<p> -Un fichier <prgn>.xsession</prgn> plus complet lance quelques clients -X avant de lancer le gestionnaire de fenêtres. Par exemple, vous -pouvez avoir envie d'avoir des <prgn>xterm</prgn> et un -<prgn>xclock</prgn> après le démarrage de X. Pas de problème: entrez -simplement <prgn>xterm& xterm& xclock& exec fvwm</prgn>. Deux -<prgn>xterms</prgn> se lanceront au démarrage en arrière-plan, ainsi -qu'un <prgn>xclock</prgn> et ensuite le gestionnaire de fenêtres sera -lancé. Lorsque vous quittez le gestionnaire de fenêtres, vous -quitterez aussi X. - -<p> -Vous pouvez essayer sans la mise en arrière-plan pour voir ce qui se -passe. Entrez la commande: <prgn>xterm xclock exec -fvwm</prgn>. <prgn>xterm</prgn> se lance, et attend que vous en -sortiez. Ensuite, <prgn>xclock</prgn> se lance. Vous devez quitter -<prgn>xclock</prgn> pour lancer <prgn>fvwm</prgn>. Les commandes sont -lancées séquentiellement car le script attend que chacune d'entre -elles se finisse avant passer à la suivante. - -<p> -Vous pouvez utiliser le caractère séquentiel de cette exécution -à votre avantage. Peut-être avez-vous envie de garder chaque jour une -trace de l'heure de votre arrêt de travail : - -<p> -<example> -xterm& -xclock& -fvwm -date >> ~/heures-de-sortie -</example> - -<p> -Cela va mettre en arrière-plan <prgn>xterm</prgn> et -<prgn>xclock</prgn> et lancer <prgn>fvwm</prgn> et attendre qu'il -finisse. À la sortie de <prgn>fvwm</prgn>, cela exécutera la dernière -ligne, qui extrait la date courante et l'envoie dans le fichier -<prgn>~/heures-de-sortie</prgn>. - -<p> -Pour finir, vous pouvez avoir un programme autre qu'un gestionnaire de -fenêtres pour déterminer la sortie du serveur X: - -<p> -<example> -xclock& -fvwm& -exec xterm -</example> - -<p> -Ce script va envoyer <prgn>xclock</prgn>et <prgn>fvwm</prgn> en -arrière-plan et se remplacer par <prgn>xterm</prgn>. Lorsque vous -quittez cette <prgn>xterm</prgn>, votre session X s'arrête. - -<p> -La meilleure façon d'apprendre comment fonctionne -<prgn>.xession</prgn> est encore de l'essayer. N'oubliez pas de -le rendre rendre exécutable: l'oublier est une erreur très classique. -</sect1> -</sect> - -</chapt><chapt> Les systèmes de fichiers - -<p> -Un système Debian utilise un système de fichiers pour stocker et gérer -vos données. Ce chapitre est une introduction au système de fichiers, -décrivant comment ajouter et retirer des systèmes de fichiers et -comment sauvegarder votre système. - -<sect> Concepts - -<p> -C'est probablement une bonne idée de faire un peu de théorie avant de -discuter de l'utilisation des disques. En particulier, vous devez -comprendre le concept de <em>système de fichiers</em>. Cela peut être -un peu déroutant à cause des significations diverses d'un système de -fichiers. - -<p> -<em>Le</em> système de fichiers concerne l'arborescence entière des -répertoires qui débute par le répertoire racine « / » comme -décrit dans les chapitres précédents. - -<p> -Un système de fichiers signifie généralement n'importe quelle -organisation de fichiers et répertoires sur un périphérique physique -particulier. « Organisation » signifie la structure -hiérarchique des répertoires et toute les informations sur les -fichiers que l'on veut garder: leur taille, leurs permissions, -etc... Ainsi, vous pourriez avoir un système de fichiers sur votre -disque dur et un autre sur chacune de vos disquettes. - -<p> -On utilise aussi le terme « système de fichiers » pour -désigner le <em>type particulier</em> de système de fichiers. Par -exemple, MS-DOS et Windows 3.1 organisent les fichiers d'une certaine -façon: les noms de fichiers ne peuvent dépasser huit caractères par -exemple et il n'existe aucune information de permission sur les -fichiers. Linux appelle ça le système de fichier -<prgn>msdos</prgn>. Linux a aussi son propre système de fichiers -appelé <prgn>ext2</prgn> (version 2 du système de fichiers -<prgn>ext</prgn>). Vous utiliserez la plupart du temps le système de -fichiers <prgn>ext2</prgn> à moins d'accéder à des fichiers issus -d'autres systèmes d'exploitation, ou bien d'avoir des besoins -particuliers. - -<p> -Tout périphérique physique que vous désirez utiliser pour garder des -fichiers doit avoir au moins un système de fichiers. Cela signifie un -système de fichiers au second sens du terme, c'est-à-dire une -hiérarchie de fichiers et de répertoires avec l'information qui va -avec. On parle là du troisième sens. Si vous avez plus d'un système de -fichiers sur un périphérique unique, chaque système de fichiers peut -avoir un type différent. Par exemple, vous pouvez avoir en même temps -une partition DOS et une partition Linux sur votre disque dur. -</sect> - -<sect> <prgn>mount</prgn> et <prgn>/etc/fstab</prgn> - -<p> -Cette partie décrit comment monter une disquette ou un lecteur ZIP, -parle du répertoire <prgn>/dev</prgn> et discute comment l'arbre des -répertoires peut se distribuer sur de nombreux périphériques physiques -ou des partitions. - -<sect1> Monter un système de fichiers - -<p> -Dans un système GNU-Linux, il n'y a pas forcément de correspondance -entre les répertoires et les périphériques physiques comme cela existe -sous Windows pour lequel chaque périphérique a son propre arbre de -répertoires commençant par une lettre (comme C:\). - -<p>Au lieu de ça, chaque périphérique physique, un disque dur ou bien -une disquette, peut contenir un ou plusieurs systèmes de -fichiers. Pour rendre un système de fichiers accessible, on lui donne -un répertoire particulier dans l'autre système de fichiers. Pour -éviter des problèmes de circularité le système de fichiers racine (qui -contient le répertoire racine « / ») n'est contenu dans -aucun autre système de fichiers. Vous y avez accès automatiquement -après avoir lancé Debian. - -<p> -Un répertoire dans un système de fichiers qui contient un autre -système de fichiers est appelé <em>point de montage</em>. Un point de -montage est un répertoire dans un premier système de fichier (sur un -périphérique, comme votre disque dur par exemple), qui -« contient » un second système de fichiers, lequel peut être -placé ailleurs, sur un lecteur de disquette par exemple. Pour accéder -à un système de fichiers, vous devez le monter sur un point de -montage. - -<p> -Ainsi, par exemple, vous pouvez monter un cédérom au point de montage -<prgn>/cdrom</prgn>. Cela signifie que si vous allez jeter un coup -d'oeil dans le répertoire <prgn>cdrom</prgn>, vous y verrez le contenu -du cédérom. Le répertoire <prgn>/cdrom</prgn> lui-même est en fait sur -votre disque dur. Pour des tas de raisons pratiques, le contenu du -cédérom devient une partie du système de fichiers racine et lorsque -vous tapez des commandes ou bien que vous utilisez des programmes, -l'emplacement réel des fichiers n'importe pas. Vous auriez pu avoir -créé un répertoire appelé <prgn>/cdrom</prgn> et mis quelques fichiers -à l'intérieur et tout ce serait passé de la même façon. Lorsque vous -avez monté un système de fichiers, il n'est plus nécessaire de prêter -la moindre attention à son emplacement physique. - -<p> -Toutefois, avant de monter un système de fichiers ou d'en créer un -nouveau sur un disque qui n'en contient pas, il est nécessaire de se -référer aux périphériques eux-mêmes. Chaque périphérique a son nom et -ces noms se trouvent dans le répertoire <prgn>/dev</prgn>. Si vous tapez -<prgn>ls /dev</prgn> maintenant, vous apercevrez une longue liste de -l'ensemble des périphériques possibles (dont la liste est fournie -chapitre 4). Une liste plus détaillée peut être trouvée sur votre -système dans le fichier -<prgn>/usr/src/linux/Documentation/devices.txt</prgn>. - -<p> -Vouloir monter un système de fichiers, c'est dire à Linux d'associer -un système de fichiers sur tel périphérique avec tel point de montage -particulier. Dans la procédure, il faudra aussi indiquer quel type de -système de fichiers on veut. -</sect1> - -<sect1> Exemple: monter un cédérom - -<p> -Comme exemple élémentaire, nous allons monter un cédérom -comme celui que vous avez utilisé pour installer Debian. Vous avez -besoin d'être root pour faire cela donc faîtes attention: chaque fois -que vous êtes root, vous avez le pouvoir de manipuler tout le système -et pas simplement vos seuls fichiers. Ces commandes supposent d'autre -part que vous avez un cédérom dans le lecteur: vous devez donc le -mettre maintenant. Ensuite, commencez avec la commande suivante: - -<p> -<example> -su -</example> - -<p> -Si vous ne l'avez pas déjà fait, vous devez soit vous loguer en tant -que root soit obtenir les privilèges du super-utilisateur via la -commande <prgn>su</prgn>. Si vous utilisez <prgn>su</prgn>, ajoutez le -mot de passe de root quand on vous le demande. - -<p> -<example> -ls /cdrom -</example> - -<p> -Utilisez cette commande pour voir ce que contient le répertoire -<prgn>/cdrom</prgn> avant de commencer. Si vous n'avez pas de -répertoire <prgn>/cdrom</prgn>, il vous faudra le créer en utilisant -<prgn>mkdir /cdrom</prgn>. - -<p> -<example> -mount -</example> - -<p> -Taper simplement <prgn>mount</prgn> sans argument donne la liste des -systèmes de fichiers actuellement montés. - -<p> -<example> -mount -t iso9660 CD-device /cdrom -</example> - -<p> -Avec cette commande, vous devez mettre le nom de votre cédérom à la -place de <prgn>CD-device</prgn>. Si vous n'êtes pas sûr, mettez -<prgn>/dev/cdrom</prgn> car la procédure d'installation devrait avoir -créé ce lien symbolique sur le système. Si cela échoue, essayez les -différents périphériques IDE: <prgn>/dev/hdc</prgn>, etc... Vous devez -voir un message du type<footnote>mount: le périphérique bloc /dev/hdc -est protégé en écriture, montage en lecture seule</footnote>: - -<example> -mount: block device /dev/hdc is write protected, mounting read-only -</example> - -<p> -L'option <prgn>-t</prgn> spécifie le type de système de fichiers, dans -ce cas <prgn>iso9660</prgn>. L'argument suivant est le nom du -périphérique à monter et le dernier argument est le point de -montage. Il y a de nombreux autres arguments possibles pour -<prgn>mount</prgn>; allez voir la page de manuel pour plus de détails. - -<p> -Une fois le cédérom monté, vous remarquerez que le plateau du cédérom -ne s'ouvre pas:: vous devez le démonter avant de pouvoir le démonter. - -<p> -<example> -ls /cdrom -</example> - -<p> -confirme maintenant que <prgn>/cdrom</prgn> contient bien ce qu'il y a -dans votre cédérom. - -<p> -<example> -mount -</example> - -<p> -Affiche à nouveau la liste des systèmes de fichiers ; remarquez que -votre lecteur est maintenant monté. - -<p> -<example> -umount /cdrom -</example> - -<p> -Ceci démonte le cédérom. Il est maintenant à nouveau possible de -sortir le cédérom de son lecteur. Attention, la commande est -<prgn>umount</prgn> sans <prgn>n</prgn> même s'il s'agit de -démonter<footnote><em>unmount</em> en anglais, d'où la remarque -</footnote> le système de fichiers. - -<p> -<example> -exit -</example> - -<p> -N'oubliez pas de vous déloguer du compte root. Déloguez-vous -immédiatement, juste pour être sûr. -</sect1> - -<sect1> <prgn>/etc/fstab</prgn>: automatiser la procédure de montage. - -<p> -Le fichier <prgn>/etc/fstab</prgn> (qui veut dire <em>file system -table</em>, table des systèmes de fichiers) contient les descriptions -des fichiers que vous montez souvent. Ces systèmes de fichiers peuvent -être montés avec des commandes réduites, comme <prgn>mount -/cdrom</prgn>. Vous pouvez aussi faire qu'ils soient montés -automatiquement au démarrage. - -<p> -Jetons un coup d'oeil à ce fichier en tapant <prgn>more -/etc/fstab</prgn>. Il devrait y avoir deux ou plusieurs entrées -configurées automatiquement lors de la procédure d'installation. Cela -devrait probablement ressembler à quelque chose comme cela: - -<p> -<example> -# /etc/fstab: static file system information -# -# < file system > < mount point > < type > < options > - -# < dump > < pass > -/dev/hda1 / ext2 defaults 0 1 -/dev/hda3 none swap sw 0 0 -proc /proc proc defaults 0 0 -/dev/hda5 /tmp ext2 defaults 0 2 -/dev/hda6 /home ext2 defaults 0 2 -/dev/hda7 /usr ext2 defaults 0 2 -/dev/hdc /cdrom iso9660 ro, noauto 0 0 -/dev/fd0 /floppy auto noauto,sync 0 0 -</example> - -<p> -La première colonne affiche les périphériques présents sur le -système. La seconde colonne est le point de montage, la colonne -suivante étant le type de système de fichiers. Remarquez que la -partition de <em>swap</em> (<prgn>/dev/hda3</prgn> dans l'exemple) n'a -pas de point de montage et donc il y a un <prgn>none</prgn> dans la -colonne correspondante. - -<p> -Les trois dernières colonnes méritent une explication plus -approfondie. - -<p> -La cinquième colonne est utilisée par l'utilitaire <prgn>dump</prgn> -pour décider quand sauvegarder le système de fichiers. Dans la plupart -des cas, vous pouvez mettre 0 ici. - -<p> -La sixième colonne est utilisée par <prgn>fsck</prgn> pour décider -dans quel ordre vérifier les systèmes de fichiers au démarrage. Le -système de fichiers racine ou principal doit avoir le <prgn>1</prgn> -dans son champ, les systèmes de fichiers n'ayant besoin d'aucune -vérification (comme la partition de <em>swap</em>) doivent avoir un -<prgn>0</prgn> et tous les autres doivent avoir un <prgn>2</prgn>. Il -est vrai que la partition de <em>swap</em> ne possède pas vraiment un -système de fichiers, au sens où elle ne contient pas des fichiers et -des répertoires mais elle est utilisée par le noyau Linux comme -mémoire secondaire. Quoiqu'il en soit, pour des raisons historiques, -la partition de <em>swap</em> est toujours contenu dans le fichier -incluant les systèmes de fichiers. - -<p> -La quatrième colonne contient une ou plusieurs options à utiliser -lors du montage du système de fichiers. Vous pouvez vérifier la page -de manuel de <prgn>mount</prgn> pour un résumé. Allez voir aussi le -chapitre 7.1. -</sect1> - -<sect1> Supports extractibles (disquettes, lecteur Zip, etc.) - -<p> -Ajoutez les lignes suivantes dans votre fichier -<prgn>/etc/fstab</prgn>: - -<p> -<example> -/dev/sda1 /mnt/zip ext2 noauto,user 0 0 -/dev/sda4 /mnt/dos msdos no,user 0 0 -</example> - -<p> -À partir de maintenant, vous êtes capable de monter une cartouche Zip -formatée en DOS avec la commande <prgn>mount /mnt/dos</prgn> et vous -pouvez monter une cartouche Zip formatée pour Linux avec la commande -<prgn>mount /mnt/zip</prgn>. - -<p> -Si vous avez des disques durs SCSI sur votre système, vous devez -changer <prgn>sda</prgn> en <prgn>sdb</prgn> ou <prgn>sdc</prgn> dans -l'exemple ci-dessus. -</sect1> -</sect> - -<sect> Les outils de sauvegarde - -<p> -Les sauvegardes sont quelque chose de fondamental dans tous les -systèmes d'exploitation. Debian GNU-Linux fournit différents -utilitaires que vous pourrez utiliser à votre convenance. De plus, -bien que la plupart de ces utilitaires aient été créés originellement -pour des sauvegardes sur bandes, vous pourrez les utiliser pour plein -d'autres choses. Par exemple, <prgn>tar</prgn> est utilisé pour -distribuer des programmes sur Internet. Voici une liste des -utilitaires que vous pourrez trouver sur le système: - -<p> -<list> -<item> -<p> - <prgn>Taper</prgn> est un programme basé sur des menus, très - convivial et qui peut sauvegarder sur de nombreux supports. Sa - limitation est qu'il n'est pas capable de faire des sauvegardes - supérieures à 4 Go. -<item> -<p> - <prgn>dump</prgn> a été créé spécialement pour les bandes: sa force - principale réside dans son interface pour la restauration de - fichiers, les sauvegardes de systèmes de fichiers de bas niveau et - la sauvegarde incrémentale. Sa limitation réside dans le fait qu'il - n'est pas capable de sauvegarder via NFS ou d'autres systèmes de - fichiers différents de <prgn>ext2</prgn> et quelques petits défauts - de conception. -<item> -<p> - <prgn>GNU tar</prgn> (raccourci de <em>Tape ARchiver</em>, archiveur - d'enregistrements) est une implémentation de ce qui est probablement - la façon la plus utilisée de sauvegarder quelque chose sous Linux - aujourd'hui. Cela fournit un bon outil multi-usage et peut - s'accomoder de l'ensemble des supports utilisés. De plus, de - nombreux systèmes sont capables de lire un fichier <prgn>tar</prgn> - ce qui le rend très portable. Les défauts de <prgn>tar</prgn> sont - qu'il contient un pauvre outil de sauvegarde incrémentale en - comparaison de <prgn>dump</prgn> et aucun écran de sélection de - restauration automatique. -</list> - -<sect1> <prgn>tar</prgn> - -<p> -Parce que <prgn>tar</prgn> est vraiment très utilisé, et pas seulement -pour des tâches de sauvegardes, nous allons en parler un peu ici. Pour -plus de détails, lisez la page de manuel de <prgn>tar</prgn>, les -instructions pour lire une page de manuel sont dans la partie 7.1. - -<p> -<prgn>tar</prgn> est un archiveur. Cela veut dire que <prgn>tar</prgn> -est capable de rassembler plusieurs fichiers et les combiner en un seul -grand fichier pour les écrire sur un périphérique de sauvegarde comme -une bande. Une fois que vous avez ce grand fichier, vous voulez -souvent le comprimer: l'option <prgn>-z</prgn> est alors très -bien. Ainsi, <prgn>tar</prgn> est une façon pratique de distribuer des -programmes et des données sur Internet et vous vous rendrez compte -qu'il est beaucoup utilisé à cette fin. - -<p> -Voici une ligne de commande <prgn>tar</prgn> simple: - -<p> -<example> -tar -zcvf monfichier.tar.gz /usr/local/bin -</example> - -<p> -Regardons un peu comment se décompose la commande <prgn>tar</prgn>: - -<list> -<item> <prgn>tar</prgn> -<p> - Nom de la commande -<item> <prgn>-</prgn> -<p> - Options de la commande <prgn>tar</prgn> - <list> - <item> <prgn>z</prgn> - <p> - demande à <prgn>tar</prgn> d'utiliser <prgn>gzip</prgn> pour - comprimer automatiquement . Si vous utilisez cette option, il - est bon d'ajouter l'extension <prgn>.gz</prgn> à votre fichier - <prgn>tar</prgn>. <item> <prgn>c</prgn> - <p> - demande à <prgn>tar</prgn> de créer une nouvelle archive - <item> <prgn>v</prgn> - <p> - active le mode verbeux: <prgn>tar</prgn> vous explique ce qu'il - fait pendant qu'il crée l'archive. - <item> <prgn>f</prgn> - <p> - ceci indique que la chaîne suivante de la ligne de commande est - le nom du fichier à créer ou le périphérique à utiliser. Si - j'utilisais <prgn>/dev/st0</prgn> ici, par exemple, cela - enverrait l'écriture de la sauvegarde sur le lecteur de bandes. - </list> -<item> <prgn>monfichier.tar.gz</prgn> -<p> - C'est le nom du fichier à créer. -<item> <prgn>/usr/local/bin</prgn> -<p> - C'est le nom du fichier ou du répertoire à placer dans l'archive. Il - est aussi possible de spécifier différents emplacements ici. -</list> - -<p> -Vous trouverez de nombreux fichiers <prgn>tar.gz</prgn> (ou plus -simplement <prgn>.tgz</prgn>) sur Internet. Vous pouvez les -désarchiver avec la commande suivante: - -<p> -<example> -tar -zxvf nomdufichier.tar.gz -</example> -</sect1> -</sect> - -</chapt><chapt> Réseau - -<p> -Un des très grands avantages de GNU-Linux sur les autres systèmes -réside dans son support réseau. Peu de systèmes peuvent rivaliser avec -les fonctionnalités présentes au sein d'un système GNU-Linux. Dans ce -chapitre, nous allons vous expliquer comment configurer vos -périphériques réseau. - -<sect> <prgn>PPP</prgn> - -<p> -Cette partie est une aide pour une installation rapide de -<prgn>PPP</prgn> sur Debian. Si vous désirez aller plus loin, -tournez-vous vers l'excellent PPP-HOWTO du Projet de Documentation -Linux. Si vous êtes curieux ou si vous avez des besoins -particuliers,le HOWTO examine ces questions en détail. - - -<sect1> Introduction - -<p> -Si vous vous connectez à Internet via une ligne de téléphone, vous -voudrez certainement utiliser <prgn>PPP</prgn> (<em>Point-to-Point -Protocol</em>, protocole de liaison point-à-point). C'est la méthode -standard de connexion auprès des FAI (Fournisseurs d'Accès -à Internet). En plus d'utiliser <prgn>PPP</prgn> pour vous connecter -chez votre FAI, vous pourrez autoriser les connexions de l'extérieur -- ce qui vous permettra de vous connecter sur une machine à distance. -</sect1> - -<sect1> Préparation - -<p> -Configurer une liaison <prgn>PPP</prgn> sur un système Debian -GNU-Linux est élémentaire une fois que vous possédez toutes les -informations dont vous allez avoir besoin. Debian rend les choses très -faciles avec ses outils simples de configuration. - -<p> -Avant de vous lancer, assurez-vous de bien avoir toutes les -informations de votre FAI. Cela peut inclure: - -<list> -<item> Nom d'utilisateur ou login -<item> Mot de passe -<item> Votre adresse IP (<em>Internet Protocol</em>) fixe si -nécessaire (cela doit ressembler à quelque chose comme -<prgn>209.81.8.242</prgn>). Cette information n'est pas nécessaire -pour la plupart des FAI. -<item> Le masque réseau (cela doit ressembler à quelque chose comme -<prgn>255.255.255.248</prgn>). Cette information n'est pas nécessaire -pour la plupart des FAI. -<item> Les adresses IP des serveurs DNS de votre FAI -<item> Toute procédure de login particulière requis chez votre FAI -</list> - -<p> -Ensuite, il va falloir examiner votre configuration matérielle: la -façon dont votre modem fonctionner avec GNU-Linux et sur quel port -série il est connecté. - -<p> -Voici une règle simple pour déterminer si votre modem va fonctionner: -si c'est un « winmodem » ou bien un modem intégré, cela ne -fonctionnera pas. Ces modems sont bon marché car ils ont très peu de -fonctionnalités et ils demandent à l'ordinateur de compenser leur -incapacité. Malheureusement, cela signifie qu'ils sont complexes -à programmer et les fabricants ne donnent généralement pas leurs -spécifications aux développeurs. - -<p> -Si vous avez un modem avec son propre circuit embarqué ou bien un -modem extérieur, vous ne devriez pas avoir de problème. - -<p> -Sur les systèmes GNU-Linux, les ports séries sont référencés comme -<prgn>/dev/ttyS0</prgn>, <prgn>/dev/ttys1</prgn> et ainsi de -suite. Votre modem est certainement connecté soit au port 0 soit au -port 1, l'équivalent du COM1 et COM2 sous Windows. Si vous ne savez -pas où est connecté votre modem, lancez le programme -<prgn>wvdialconf</prgn> pour essayer de le détecter (voir plus -bas). Sinon, vous pouvez toujours essayer les deux et regardez lequel -fonctionne... - -<p> -Si vous désirez discuter avec votre modem ou vous connecter à votre -FAI sans utiliser <prgn>PPP</prgn>, vous pouvez utiliser le programme -<prgn>minicom</prgn>. Il se peut que vous ayez besoin d'installer le -paquet <prgn>minicom</prgn> pour disposer du programme. -</sect1> - -<sect1> La voie facile: <prgn>wvdial</prgn> - -<p> -La façon la plus facile d'obtenir une liaison <prgn>PPP</prgn> -fonctionnelle est d'utiliser le programme <prgn>wvdial</prgn>. Il fait -des propositions raisonnables et tente de paramétrer les choses pour -vous. Si cela fonctionne, vous êtes verni. Sinon, vous aurez à faire -les choses à la main. - -<p> -Assurez-vous d'avoir bien installé les paquets suivants: - -<p> -<list> -<item> <prgn>ppp</prgn> -<item> <prgn>ppp-pam</prgn> -<item> <prgn>wvdial</prgn> -</list> - -<p> -Lorsque vous installez <prgn>wvdial</prgn>, on vous donne l'occasion -de le configurer. Sinon, pour configurer <prgn>wvdial</prgn>, procédez -comme suit en vous loguant en root à l'aide de la commande -<prgn>su</prgn>: - - -<p> -<example> -touch /etc/wvdial.conf -</example> - -<p> -<prgn>touch</prgn> va créer le fichier suivant s'il n'existe pas: le -programme de configuration requiert un fichier déjà existant. - -<p> -<example> -wvdialconf /etc/wvdial.conf -</example> - -<p> -Cela signifie que vous êtes en train de créer le fichier de -configuration <prgn>/etc/wvdial.conf</prgn>. - -<p> -Répondez aux questions qui apparaissent -à l'écran. <prgn>wvdialconf</prgn> va aussi rechercher votre modem et -vous indiquer sur quel port série il se trouve. Inscrivez le résultat -quelque part pour vous en souvenir un peu plus tard. -</sect1> -</sect> - -<sect> Ethernet - -<p> -Une autre façon très populaire de se connecter à Internet est de -passer via un LAN (<em>Local Area Network</em>, réseau local) qui -utilise Ethernet.Cela vous donne un réseau local à haut débit en plus -de la connexion à Internet. Heureusement, vous avez déjà dû configurer -le réseau pendant l'installation et dès lors, il n'y rien d'autre -à faire. Si jamais vous désirez modifier votre configuration, voici les -fichiers intéressants: - -<p> -<list> -<item> <prgn>/etc/init.d/network</prgn> -<p> - Pour votre adresse IP, le masque réseau et la route par défaut. -<item> <prgn>/etc/hostname</prgn> -<p> - Pour enregistrer votre nom d'hôte. -<item> <prgn>/etc/hosts</prgn> -<p> - Pour enregistrer aussi votre nom d'hôte et votre adresse IP. -</list> -</sect> - -</chapt><chapt> Installer et désinstaller des logiciels - -<p> -Ce chapitre décrit les façons d'installer et de désinstaller des -paquets de logiciels. Il y a plusieurs façons de le faire. Ici, nous -n'allons parler de l'installation et de la désinstallation de -logiciels pré-empaquetés comme les paquets Debian. L'installation -à partir de sources restera à votre charge. - -<sect> À quoi sert un utilitaire de maintenance de paquet - -<p> -Une application ou un programme utilitaire rassemblent généralement -plusieurs fichiers. Cela peut inclure des bibliothèques, des fichiers -de données comme des scénarios de jeux ou des icônes, des fichiers de -configurations, des pages de manuels et la documentation. Lorsque vous -installez un programme, vous voulez être sûr d'avoir tous les fichiers -dont vous avez besoin à la bonne place. - -<p> -Vous devez aussi être capable de désinstaller un programme. Lorsque -vous désinstallez, vous devez être sûr que tous les fichiers associés -sont détruits. Et de plus, si les fichiers sont partagés par d'autres -programmes dans le système, vous voulez être sûr de les conserver. - -<p> -Enfin, vous devez être capable de faire la mise à jour d'un -programme. Lorsque vous effectuez une mise à jour, vous désirez -détruire les fichiers obsolètes et ajouter les nouveaux, sans ne rien -casser au système existant. - -<p> -Le système de gestion des paquets de Debian offre une solution à ces -problèmes. Il vous autorise à installer, désinstaller et mettre -à jours les paquets de logiciels, qui ne sont qu'un petit ensemble -contenant les fichiers du programme et les informations qui aident -l'ordinateur à gérer le paquet correctement. Les paquets Debian ont un -nom se terminant par <prgn>.deb</prgn> et ils sont disponibles sur le -site <prgn>FTP</prgn> ou bien sur votre cédérom officiel de Debian. -</sect> - -<sect> <prgn>dpkg</prgn> - -<p> -La manière la plus simple d'installer un simple paquet que vous venez -de télécharger est d'utiliser la commande <prgn>dpkg -i</prgn> (qui -est un raccourci pour <prgn>dpkg --install</prgn>). Admettons que vous -ayez téléchargé le paquet <prgn>icewm_0.8.12-1.deb</prgn> et que vous -désirez l'installer. Loguez-vous d'abord en tant que root et tapez -ensuite <prgn>dpkg -i icewm_0.8.12-1.deb</prgn> et <prgn>icewm</prgn>, -version 0.8.12, sera installé. Si vous avez déjà une ancienne version, -<prgn>dpkg</prgn> se chargera de la mise à jour plutôt que d'installer -deux versions en même temps. - -<p> -Si vous désirez désinstaller un paquet, vous avez deux options. La -première est la plus intuitive: <prgn>dpkg -r icewm</prgn>. Cela -retirera le paquet <prgn>icewm</prgn> (<prgn>-r</prgn> est un -raccourci pour <prgn>--remove</prgn> (désinstaller)). Remarquez bien -qu'il est juste nécessaire de donner le nom <prgn>icewm</prgn> pour la -désinstallation tandis que l'installation requiert l'extension -<prgn>.deb</prgn>. - -<p> -<prgn>--remove</prgn> va laisser les fichiers de configuration du -paquet dans votre système. Un fichier de configuration est défini -comme tout fichier que vous avez pu éditer pour personnaliser le -programme du système ou vos préférences. Ainsi, si vous décidez de -réinstaller un peu plus tard le programme, vous n'aurez pas à le -re-personnaliser. - -<p> -Mais si vous désirez réellement nettoyer les fichiers de -configuration, <prgn>dpkg</prgn> propose une option -<prgn>--purge</prgn>. <prgn>dpkg --purge icewm</prgn> nettoiera tous -les derniers fichiers associés au paquet <prgn>icewm</prgn>. -</sect> - -<sect> <prgn>dselect</prgn> - -<p> -<prgn>dselect</prgn> est une très bonne interface -à <prgn>dpkg</prgn>. <prgn>dselect</prgn> offre une interface à base de -menus à <prgn>dpkg</prgn> et est capable de sélectionner -automatiquement tous les fichiers appropriés à partir d'un cédérom ou -bien d'un site FTP. Pour plus de détails sur <prgn>dselect</prgn>, -reportez-vous à la partie 4.20. -</sect> - -<sect> Compiler un logiciel - -<p> -De nombreux programmes sont fournis sous forme de sources, la plupart -du temps au format <prgn>tar.gz</prgn>. Premièrement, vous devez -détarer le fichier <prgn>tar.gz</prgn>; pour plus de détails sur -comment faire cette opération, reportez-vous à la partie 12.3.1. Avant -de compiler un paquet, vous aurez besoin d'installer <prgn>gcc</prgn>, -<prgn>libc6-dev</prgn> et autres assimilés -« <prgn>-dev</prgn> ». Vous les trouverez pour la plupart -d'entre eux dans la section <prgn>devel</prgn> de -<prgn>dselect</prgn>. - -<p> -Lorsque vous aurez installé les paquets appropriés, allez via -<prgn>cd</prgn> dans le répertoire que <prgn>tar</prgn> a créé pour -vous. À partir de ce moment-là, vous aurez à lire les instructions -d'installation. La plupart des programmes fournissent un fichier -INSTALL ou README qui vous indique comment procéder. -</sect> - -</chapt><chapt> Pour en savoir plus... - -<p> -À présent, vous possédez de bonnes bases pour construire votre système -GNU-Linux. Dans ce chapitre, nous allons aborder quelques notions très -utiles des fonctionnalités avancées de GNU-Linux. - -<sect> Les expressions rationnelles - -<p> -Une <em>expression rationnelle</em> est une description d'un ensemble -de caractères. On utilise cette description pour éplucher un fichier -à la recherche d'un texte correspondant à cette expression -rationnelle. Les expressions rationnelles sont analogues aux motifs de -recherche du shell (voir partie 8.6) mais elles sont plus compliquées -et beaucoup plus puissantes. elles sont à la fois plus compliquées et -plus puissantes. - -<p> -Une expression rationnelle est formée de texte et de -<em>méta-caractères</em>. Un méta-caractère est simplement un -caractère avec une signification particulière. Les méta-caractères -comprennent les signes suivants: -<example> -. * [] - \ ^ $ -</example> - -<p> -Si une expression rationnelle ne comprend que du texte (pas de -méta-caractère), cela correspond exactement au texte. Par exemple, -l'expression rationnelle <prgn>mon expression rationnelle</prgn> -correspond exactement au texte <prgn>mon expression rationnelle</prgn> -et à rien d'autre. Les expressions rationnelles prennent -habituellement en compte la casse. - -<p> -Vous pouvez utiliser la commande <prgn>egrep</prgn> pour extraire les -lignes d'un fichier qui contiennent une expression rationnelle. Sa -syntaxe est la suivante: - -<p> -<example> -egrep 'regexp' nomdefichier1 ... -</example> - -<p> -Les guillemets simples ne sont pas obligatoires mais cela ne mange pas -de pain de les ajouter. - -<p> -Par exemple, pour trouver toutes les lignes contenant le mot GNU dans -la GPL, vous tapez: - -<p> -<example> -egrep 'GNU' /usr/doc/copyright/GPL -</example> - -<p> -<prgn>egrep</prgn> va vous égrener les lignes correspondantes sur la -sortie standard. Si vous voulez toutes les lignes contenant -<prgn>freedom</prgn> (liberté) suivi d'un ensemble quelconque de -caractères et suivi du mot GNU, vous pouvez taper: - -<p> -<example> -egrep 'freedom.*GNU' /usr/doc/copyright/GPL -</example> - -<p> -Le <prgn>.</prgn> signifie « n'importe quel caractère » et -le <prgn>*</prgn> signifie « zéro ou plus de la chose -précédente » soit dans ce cas « zéro ou plus de n'importe -quel caractère ». Ainsi, <prgn>.*</prgn> correspond bien -à n'importe quel texte. <prgn>egrep</prgn> effectue un traitement ligne -par ligne donc <prgn>freedom</prgn>et <prgn>GNU</prgn> doivent se -trouver sur la même ligne. - -<p> -Voici un récapitulatif des méta-caractères dans expressions -rationnelles: - -<p> -<list> -<item> <prgn>.</prgn> -<p> - Correspond à un seul caractère, à l'exception du caractère - <em>newline</em> (retour chariot) -<item> <prgn>*</prgn> -<p> - Correspond à zéro ou plus d'occurences de ce qui précède. Ainsi, - l'expression <prgn>a*</prgn> correspond à zéro ou plus de - <prgn>a</prgn> minuscule et <prgn>.*</prgn> correspond à zéro ou - plus de caractères quelconques. -<item> <prgn>[caractères]</prgn> -<p> - Les crochets doivent contenir un ou plusieurs - caractères. L'expression complète correspond exactement à l'ensemble - des caractères. Ainsi, <prgn>[abc]</prgn> correspond à un - <prgn>a</prgn>, un <prgn>b</prgn> et un <prgn>c</prgn>. Cela ne - correspond pas à une chaîne vide et cela ne correspond pas non plus - à un caractère autre que ces trois-là. <item> <prgn>^</prgn> -<p> - Impose la correspondance en début de ligne. L'expression - <prgn>^The</prgn> ne correspond à <prgn>The</prgn> que si elle - apparaît en début de ligne: il ne peut y avoir d'espace, ou de - texte, avant le <prgn>The</prgn>. Si vous désirez autoriser des - espaces, vous pouvez autoriser 0 ou plus d'espaces avec <prgn>^ - *The</prgn>. -<item> <prgn>$</prgn> -<p> - Impose la correspondance en fin de ligne. <prgn>fin$</prgn> - requiert que le texte <prgn>fin</prgn> soit placé en fin de ligne - sans espace ni texte à la fin. -<item> <prgn>[^caractères]</prgn> -<p> - C'est la négation de la liste des caractères entre - crochets. <prgn>[^abc]</prgn> correspond à tout caractère simple, -à l'exception de a, b ou c. -<item> <prgn>[caractères-caractères]</prgn> -<p> - Vous pouvez inclure un intervalle dans une liste de caractères entre - crochets. Pour faire la correspondance avec toutes les lettres - minuscules, utilisez <prgn>[a-z]</prgn>. Vous pouvez multiplier les - intervalles: ainsi, pour avoir les trois premières lettres de - l'alphabet et les trois dernières, essayez - <prgn>[a-cx-z]</prgn>. Pour avoir toutes les lettres dans toutes les - casses, essayez <prgn>[a-zA-Z]</prgn>. Vous pouvez mélanger les - intervalles avec des caractères simples ou bien le méta-caractère - <prgn>^</prgn>: <prgn>[^a-zBZ]</prgn> signifie « tout sauf une - lettre minuscule, un B ou ou un Z ». -<item> <prgn>()</prgn> -<p> - Vous pouvez utiliser les parenthèses pour regrouper les expressions - rationnelles, comme dans des expressions mathématiques. -<item> <prgn>||</prgn> -<p> - signifie « ou ». Vous pouvez vous en servir pour fournir - une série d'expressions alternatives. On met généralement ces - expressions entre parenthèses comme ceci: <prgn>c(ad|ab|at)</prgn> - correspond à <prgn>cad</prgn>, <prgn>cab</prgn> ou - <prgn>cat</prgn>. Sans les parenthèses, cela aurait correspondu -à <prgn>cad</prgn> ou bien <prgn>ab</prgn> ou bien <prgn>at</prgn>. - <item> <prgn>\</prgn> -<p> - Protège tout caractère spécial. Si vous désirez trouver un - <prgn>*</prgn>, vous devez taper <prgn>\*</prgn>. Le \ signifie - d'ignorer le sens usuel de <prgn>*</prgn>. -</list> - -<p> -Voici une série d'exemples concrets pour vous aider. - -<p> -<list> -<item> <prgn>c.pe</prgn> correspond à <prgn>cope, cape, caper</prgn> -<item> <prgn>c\.pe</prgn> correspond à <prgn>c.pe, c.per</prgn> -<item> <prgn>sto*p</prgn> correspond à <prgn>stp, stop, stoop</prgn> -<item> <prgn>car.*n</prgn> correspond à <prgn>carton, cartoon, carmen</prgn> -<item> <prgn>xyz.*</prgn> correspond à <prgn>xyz</prgn> et tout ce qui -s'ensuit. Certains outils, comme <prgn>egrep</prgn>, ne font la -correspondance que jusqu'à la fin de la ligne. -<item> <prgn>^The</prgn> correspond à <prgn>The</prgn> en début de ligne -<item> <prgn>atime$</prgn> correspond à <prgn>atime</prgn> en fin de ligne -<item> <prgn>^Only</prgn> correspond à <prgn>Only</prgn> en début de -ligne - pas d'espace, de caractère, rien. Seul <prgn>Only</prgn> -est accepté. -<item> <prgn>b[aou]rn</prgn> correspond à <prgn>barn, born, burn</prgn> -<item> <prgn>ver[D-F]</prgn> correspond à <prgn>verD, verE, verF</prgn> -<item> <prgn>ver[^0-9]</prgn> correspond à <prgn>Ver</prgn> suivi de -tout sauf d'un chiffre. -<item> <prgn>the[ir][re]</prgn> correspond à <prgn>thier, therr, -there, theie</prgn> -<item> <prgn>[A-Za-z][A-Za-z]*</prgn> correspond à tous les mots composés -seulement de lettres et d'au moins une lettre. Cela ne peut pas -contenir des chiffres ou des espaces. -</list> -</sect> - -<sect> Notions avancées sur les fichiers - -<p> -Maintenant que vous avez compris les bases sur les fichiers, il est -temps d'apprendre plus de choses à leur sujet. - -<sect1> La véritable nature des fichiers: les liens physiques et les -i-noeuds - -<p> -Chaque fichier de votre système est représenté par un <em>i-noeud</em> -(en anglais, <em>inode</em> pour <em>Information Node</em>, prononcez -« aïe-node », noeud d'information). un i-noeud contient -toutes les informations du fichier. Cependant, l'i-noeud n'est pas -directement visible. De plus, chaque i-noeud est lié au système de -fichiers par un ou plusieurs liens physiques. Les liens physiques -contiennent le nom du fichier et le numéro d'i-noeud. L'i-noeud -contient le fichier en lui-même, c'est-à-dire, l'emplacement où -l'information est stockée sur le disque, les permissions d'accès, le -type de fichier et ainsi de suite. Le système peut trouver n'importe -quelle i-noeud s'il a son numéro. - -<p> -Un simple fichier peut avoir plus d'un lien physique. Cela signifie -que tous ces fichiers multiples correspondent au même fichier -(c'est-à-dire qu'ils sont associés au même numéro d'i-noeud). Cependant, -vous ne pouvez faire de lien physique entre des systèmes de fichiers: -tous les liens physiques à un fichier particulier (i-noeud) doivent être -dans le même système de fichiers. C'est parce que chaque système de -fichiers possède sa propre table d'i-noeuds et que l'on ne peut -dupliquer des numéros d'i-noeud sur différents systèmes de fichiers. - -<p> -Parce que tous les liens physiques à une certaine i-noeud se réfèrent au -<em>même fichier</em>, vous pouvez modifier le fichier en l'appelant -par un nom et voir ensuite les modifications en l'appelant par un des -autres noms. Essayez ceci: - -<p> -<example> -cd; echo "Bonjour" > premierlien -</example> - -<p> -Vous allez dans votre répertoire personnel et vous créez un premier -fichier appelé <prgn>premierlien</prgn> contenant le mot -« Bonjour ». Ce que vous venez de faire est juste de -rediriger la sortie de <prgn>echo</prgn> (<prgn>echo</prgn> renvoie -juste ce que vous lui donnez) en la plaçant dans -<prgn>premierlien</prgn>. Allez voir le chapitre sur le shell pour de -plus amples explications. - -<p> -<example> -cat premierlien -</example> - -<p> -Pour vérifier le contenu de <prgn>premierlien</prgn>. - -<p> -<example> -ln premierlien secondlien -</example> - -<p> -Crée un lien physique: <prgn>secondlien</prgn> pointe maintenant sur -le même i-noeud que <prgn>premierlien</prgn>. - -<p> -<example> -cat secondlien -</example> - -<p> -Pour confirmer que <prgn>secondlien</prgn> est bien identique -à <prgn>premierlien</prgn>. - -<p> -<example> -ls -l -</example> - -<p> -Remarquez bien que le nombre de liens physiques affiché pour -<prgn>premierlien</prgn> et <prgn>secondlien</prgn> est 2. - -<p> -<example> -echo "change" >> secondlien -</example> - -C'est une nouvelle redirection du shell (ne vous souciez pas des -détails). Vous avez ajouté le mot « change » -à <prgn>secondlien</prgn>. Confirmez-le avec <prgn>cat -secondlien</prgn>. - -<p> -<example> -cat premierlien -</example> - -<p> -<prgn>premierlien</prgn> a aussi le mot « change » ! C'est -parce que <prgn>premierlien</prgn> et <prgn>secondlien</prgn> se -réfèrent au <em>même fichier</em>. Peu importe comment vous l'appelez -lorsque vous le modifiez. - -<p> -<example> -chmod a+rwx premierlien -</example> - -<p> -Cela modifie les permissions de <prgn>premierlien</prgn>. Entrez la -commande <prgn>ls -l</prgn> pour vérifier que les permissions de -<prgn>secondlien</prgn> ont aussi été modifiées. Cela signifie que les -informations de permission résident dans l'i-noeud, et non dans le lien. - -<p> -<example> -rm premierlien -</example> - -<p> -Cela détruit le lien. C'est une astuce de <prgn>rm</prgn>. Cela -détruit en réalité le lien et non le fichier. Maintenant, tapez -<prgn>ls -l</prgn> et remarquez que <prgn>secondlien</prgn> est -toujours là. Notez bien aussi que le nombre de liens est passé de 2 -à 1. - -<p> -<example> -rm secondlien -</example> - -<p> -Cela détruit le second lien. Quand il ne reste plus de lien rattaché -à un fichier, Linux détruit le fichier lui-même c'est-à-dire son i-noeud. - -<p> -Tous les fichiers fonctionnent ainsi, et même les fichiers spéciaux -comme les périphériques (comme <prgn>/dev/hda</prgn>). - -<p> -Un répertoire n'est qu'une liste de nom de fichiers et de numéros -d'i-noeuds, c'est-à-dire une liste de liens physiques. Lorsque vous -créez un lien physique, vous ajouter seulement une association -numéro-nom à un répertoire. Lorsque vous détruisez un fichier, vous -détruisez juste un lien physique d'un répertoire. -</sect1> - -<sect1> Types de fichiers - -<p> -Nous avons dissimulé jusqu'à présent le fait que le noyau Linux -considère presque tout comme un fichier. Cela inclut les répertoires -et les périphériques. Ce sont juste des genres de fichiers un peu -spéciaux. - -<p> -Comme vous devez vous le rappelez, le premier caractère dans <prgn>ls --l</prgn> renvoie le type du fichier. Pour un fichier ordinaire, cela -ne renvoie que <prgn>-</prgn> tout simplement. Les autres possibilités -sont les suivantes: - -<p> -<list> -<item> <prgn>d</prgn> : répertoire -<item> <prgn>l</prgn> : lien symbolique -<item> <prgn>b</prgn> : périphérique bloc -<item> <prgn>c</prgn> : périphérique caractère -<item> <prgn>p</prgn> : tube nommé -<item> <prgn>s</prgn> : socket -</list> - -<p> -<em>Liens symboliques</em> - -<p> -Les liens symboliques (aussi appelés <em>symlink</em> ou liens -logiciels) sont l'autre type de lien avec les liens physiques. Un lien -symbolique est un fichier spécial qui « pointe vers » un -lien physique de n'importe quel système de fichiers monté. Lorsque -vous tentez de lire le contenu d'un lien symbolique, cela vous renvoie -le contenu du fichier pointé plutôt que le contenu du lien en -lui-même. Puisque les répertoires, les périphériques et autres liens -symboliques sont des fichiers, vous pouvez pointer un lien symbolique -sur chacun de ces objets. - -<p> -Pour résumé, un lien physique est un nom de fichier et son numéro -d'i-noeud. Un fichier est réellement un i-noeud: un emplacement sur un -disque, le type du fichier, les modes de permission, etc... Un lien -symbolique est un i-noeud qui contient le nom du lien physique. Un -lien symbolique appareille deux noms de fichiers ensemble tandis qu'un -lien physique appareille un nom de fichier avec un numéro d'i-noeud. - -<p> -Tous les liens physiques d'un même fichier ont le même état. Cela veut -dire qu'il n'y en a pas un de privilégié. Si vous effectuez une -opération sur l'un, c'est comme la faire sur n'importe lequel d'entre -eux. C'est parce que le lien physique réfère au même i-noeud. Les -opérations sur les liens symboliques, pour leurs parts, affectent -parfois le propre i-noeud du lien (celui contenant le nom du lien -physique) et parfois affectent le lien physique sur lequel ils -pointent. - -<p> -Il y a un certain nombre de différences importantes entre les liens -symboliques et les liens physiques. - -<p> -Les liens symboliques peuvent traverser des systèmes de -fichiers. C'est parce qu'ils contiennent les noms complets des -fichier, en partant d'un répertoire racine et que les noms complets de -fichiers sont uniques. Puisque les liens physiques pointent vers un -numéro d'i-noeud et que les numéros d'i-noeuds sont uniques -qu'à l'intérieur d'un système de fichiers, ils deviendraient impossible -de les qualifier avec certitude si l'on ne connaissait pas le système de -fichiers. - -<p> -Vous pouvez faire des liens symboliques vers des répertoires mais cela -n'est pas possible pour les liens physiques. Chaque répertoire a des -liens physiques - son référencement dans son répertoire parent, son -entrée <prgn>.</prgn> et l'entrée <prgn>..</prgn> dans chacun de ses -sous-répertoires - mais pour pouvoir ordonner le système de fichiers, -aucun autre lien physique n'est autorisé. En conséquence de quoi, le -nombre de fichiers d'un répertoire est égal au nombre de liens -physiques du répertoire moins deux (vous retirez le nom du répertoire -et le lien <prgn>.</prgn> ). - -<p> -Pour comparer un lien physique et un lien symbolique: vous pouvez -uniquement faire un lien physique sur un fichier existant car il doit -exister un numéro d'i-noeud sur lequel se référer. Par contre, vous -pouvez faire un lien symbolique sur n'importe quel fichier, qu'il existe -+réellement ou pas. - -<p> -Détruire un lien symbolique détruit seulement le lien. Cela n'a pas -d'impact sur le fichier anciennement pointé. Détruire le seul lien -physique d'un fichier conduit à détruire le fichier. - -<p> -Essayez ceci: - -<p> -<example> -cd; ln -s /tmp/moi MonTmp -</example> - -<p> -Vous vous positionnez dans votre répertoire personnel. <prgn>ls</prgn> -avec l'option <prgn>-s</prgn> fabrique un lien symbolique et dans ce -cas, ce lien s'appelle <prgn>MonTmp</prgn> et pointe sur le fichier -<prgn>/tmp/moi</prgn>. - -<p> -<example> -ls -l MonTmp -</example> - -<p> -Vous devriez observer une sortie du genre: - -<p> -<example> -lrxwrxwrxw 1 havoc havoc 7 Dec 6 12:50 MyTmp -> /tmp/me -</example> - -<p> -La date ainsi que l'utilisateur et le groupe devrait être différents -pour vous. Notez le type du fichier: <prgn>l</prgn>. Cela indique un -lien symbolique. Regardez aussi les permissions. Les liens symboliques -ont toujours ces permissions. Si vous tentez de changer les -permissions d'un fichier symbolique via <prgn>chmod</prgn>, vous allez -réellement changer les permissions du fichier sur lequel il pointe. - -<p> -<example> -chmod 700 MonTmp -</example> - - -<p> -Vous devriez obtenir un <prgn>No such file or directory</prgn> (pas -trouvé de fichier ou de répertoire portant ce nom) car le fichier -<prgn>/tmp/moi</prgn> n'existe pas. Remarquez que cela n'a pas empêché -la création du lien symbolique. - -<p> -<example> -mkdir /tmp/moi -</example> - -<p> -Cela crée le répertoire <prgn>/tmp/moi</prgn>. - -<p> -<example> -chmod 700 MonTmp -</example> - -<p> -devrait maintenant fonctionner sans problème. - -<p> -<example> -touch MonTmp/monfichier -</example> - -<p> -Pour créer un fichier dans <prgn>MonTmp</prgn>. - -<p> -<example> -ls /tmp/moi -</example> - -<p> -Le fichier a vraiment été créé dans <prgn>/tmp/moi</prgn>. - -<p> -<example> -rm MonTmp -</example> - -<p> -Détruit le lien symbolique. Remarquez que cela ne retire que le lien -et non ce vers quoi il pointe. Ensuite, vous devez utiliser -<prgn>rm</prgn> et non pas <prgn>rmdir</prgn>: - -<p> -<example> -rm /tmp/moi/monfichier; rmdir /tmp/moi -</example> - -<p> -Cela nettoie tout ce qu'il reste. - -<p> -<em> Fichiers périphériques </em> - -<p> -Les fichiers périphériques se réfèrent à un périphérique physique ou -virtuel de votre système, comme votre disque dur, votre carte vidéo, -votre écran et votre clavier. Un exemple de périphérique virtuel est -la console, représentée par <prgn>/dev/console</prgn>. - -<p> -Il y a deux sortes de périphériques: bloc et caractère. On peut avoir -accès aux <em>périphériques caractères</em> caractère par -caractère. Rappelez-vous que la plus petite unité de données qui peut -être écrite ou bien être lue à partir du périphérique est un caractère -(octet). - -<p> -On peut accéder aux <em>périphériques bloc</em> avec des unités plus -grandes appelées blocs, qui contiennent un certain nombre de -caractères. Votre disque dur est un périphérique bloc. - -<p> -Vous pouvez lire ou écrire dans des fichiers périphériques comme vous -le feriez avec n'importe quelle autre sorte de fichiers, quoique le -fichier puisse contenir alors un étrange baragouin incompréhensible -à nous autres humains. Écrire n'importe quoi dans ces fichiers n'est pas -une bonne idée. Parfois si. Par exemple, vous pouvez envoyer un -fichier PostScript dans le périphérique de l'imprimante -<prgn>/dev/lp0</prgn> ou bien envoyer des commandes de modem au -fichier périphérique idoine à partir du bon port série. - -<p> -Il existe un fichier particulier appelé <prgn>/dev/null</prgn>. Il -détruit tout ce qu'il reçoit. Si vous ne voulez pas quelque chose, -envoyez-le dans <prgn>/dev/null</prgn>. C'est essentiellement un -puits sans fond. Si vous tentez de lire <prgn>/dev/null/</prgn>, -vous obtiendrez un <em>end-of-file</em> (EOF, caractère de fin de -fichier) immédiatement. <prgn>/dev/zero</prgn> est similaire, -à l'exception du fait que sa lecture vous renverra le caractère -<prgn>\0</prgn> (pas le même que le chiffre 0). - -<p> -<em>Tubes nommés (FIFO)</em> - -<p> -Un tube nommé est un fichier qui agit comme un tube. Vous entrez -quelque chose dans le fichier et cela ressort. Ceci est appelé une -FIFO (<em>First-In-First-Out</em>, premier entré, premier sorti) car -la première chose que vous entrez est aussi la première chose que l'on -sort. - -<p> -Si vous écrivez dans un tube nommé, le processus d'écriture ne -s'arrête pas tant qu'il y a quelque chose à lire dans le tube. Si vous -lisez dans un tube nommé, le processus de lecture attend qu'il y ait -quelque chose à lire avant de s'arrêter. La taille du tube est -toujours zéro. Il ne stocke pas de donnée: il lie simplement deux -processus à travers le signe « | » du shell. Dans tous les -cas, puisque le tube a un nom, les deux processus n'ont pas -à appartenir à la même ligne de commandes ou même à être lancé par le -même utilisateur. - -<p> -Vous pouvez essayer ceci: - -<p> -<example> -cd; mkfifo montube -</example> - -<p> -Activez alors le tube: - -<p> -<example> -echo "bonjour" > montube & -</example> - -<p> -Cela place le processus qui essaie d'écrire « bonjour » dans -le tube en arrière-plan. Remarquez bien que le processus ne rend pas -la main: il attend que quelqu'un vienne lire dans le tube: - -<p> -<example> -cat montube -</example> - -<p> -À ce moment, le processus <prgn>echo</prgn> s'achève car -<prgn>cat</prgn> a lu le tube et le processus <prgn>cat</prgn> a -affiché <prgn>bonjour</prgn>. - -<p> -<example> -rm montube -</example> - -<p> -Vous pouvez détruire les tubes comme n'importe quel autre fichier. - - -<p> -<em>Les sockets</em> - -<p> -Les sockets sont similaires aux tubes mais elles ne fonctionnent -qu'à travers un réseau. C'est de cette façon que votre ordinateur -travaille en réseau. Vous avez peut-être entendu parler de -« WinSock », qui sont les sockets de Windows. - -<p> -Nous n'irons pas plus loin sur ce sujet car vous n'aurez pas -l'occasion de vous en servir, à moins de programmer. En tout cas, si -vous apercevez un fichier marqué avec un type <prgn>s</prgn> sur votre -ordinateur, vous saurez de quoi il s'agit. -</sect1> - -<sect1> Le système de fichiers <prgn>proc</prgn> - -<p> -Le noyau Linux fournit un système de fichiers particulier qui est -monté sous <prgn>/proc</prgn> dans les systèmes Debian. C'est ce que -l'on appelle un « pseudo-système de fichiers » parce qu'il -n'existe pas réellement sur vos périphériques physiques. - -<p> -Le système de fichiers <prgn>proc</prgn> contient des informations sur -le système et sur les processus en cours. Certains des -« fichiers » de <prgn>proc</prgn> sont raisonnablement -compréhensibles par un être humain (essayez <prgn>cat -/proc/meminfo</prgn> et <prgn>cat /proc/cpuinfo</prgn>). Les autres -fichiers sont un amas incompréhensible de chiffres. Les utilitaires -systèmes traduisent les informations contenues dans ces chiffres et -vous les présentent de façon plus compréhensible. - -<p> -Les gens paniquent souvent lorsqu'ils remarquent qu'un fichier en -particulier - <prgn>/proc/kcore</prgn> - est souvent énorme, C'est, -à un cheval près, une copie du contenu de la mémoire de votre -ordinateur. Il est utilisé pour déboguer le noyau. Il n'existe nulle -part physiquement donc ne vous préoccupez pas de sa taille. - -<p> -Si vous désirez en savoir plus sur <prgn>/proc</prgn>, tapez <prgn>man -5 proc</prgn>. -</sect1> - -<sect1> Copie à grande échelle - -<p> -Il est parfois nécessaire de recopier un répertoire dans un autre -emplacement. Peut-être avez-vous ajouté un nouveau disque dur et vous -désirez faire une copie de <prgn>/usr/local</prgn> dessus. Il y a -plusieurs façons de procéder: - -<p> -La première est d'utiliser la commande <prgn>cp</prgn>. La commande -<prgn>cp -a</prgn> demande à <prgn>cp</prgn> de préserver le maximum -d'informations. Vous pourriez ainsi utiliser la commande suivante: - -<p> -<example> -cp -a /usr/local /destination -</example> - -<p> -Cependant, il existe quelques cas qui ne fonctionnent -pas<footnote>comme les fichiers morcelés et les liens physiques par -exemple</footnote>. Dès-lors, la meilleure façon de procéder lors -d'une grande copie est d'enchaîner deux commandes <prgn>tar</prgn> -consécutives, comme ceci: - -<p> -<example> -tar -cSpf - /usr/local | tar -xvSpf -C /destination -</example> - -<p> -La première commande <prgn>tar</prgn> archive le répertoire et -l'entube dans le second. La seconde commande déploie l'archive dans -l'emplacement spécifié avec l'option <prgn>-C</prgn>. -</sect1> -</sect> - -<sect> Sécurité - -<p> -Dans la partie 9.1, nous avons parlé des permissions sur les fichiers -dans Linux. C'est une façon fondamentale de sécuriser votre -système. Si vous faîtes tourner un système multi-utilisateurs ou un -serveur, il est primordial d'établir des bonnes permissions. Une bonne -règle de base consiste à configurer les fichiers avec les permissions -les plus basses autorisant leur bon usage. - -<p> -Si vous faîtes tourner un serveur en réseau, il y a quelques petites -bricoles auxquelles il faut faire attention. Premièrement, vous devez -désinstaller ou arrêter les services que vous n'utilisez pas. Un bon -point de départ est le fichier <prgn>/ect/inetd.conf</prgn>. Vous -pouvez probablement désactiver quelques services. Pour la plupart des -services réseau, vous pouvez contrôler qui y a accès. Les fichiers -<prgn>/etc/host.allow</prgn> et <prgn>/etc/hosts.deny</prgn> -(documentés dans <prgn>man 5 hosts_access</prgn>) peuvent contrôler -qui a accès à quel service. Vous devez aussi être à jour des rustines -(<em>patches</em>) ou des mises-à-jour proposées par Debian. Elles -sont disponibles dans votre miroir FTP de Debian. - -<p> -Les règles suivantes de bon sens doivent aussi s'appliquer: - -<p> -<list> -<item> Ne révélez à personne votre mot de passe. -<item> N'envoyez jamais votre mot de passe en clair à travers Internet -en utilisant <prgn>telnet</prgn> ou <prgn>ftp</prgn>. Utilisez des -protocoles de cryptage ou évitez de vous loguer à distance. -<item> Évitez d'utiliser le compte root le plus possible -<item> N'installez pas de logiciels non sûrs et ne les installez par en -tant que root -<item> Évitez de laisser des accès libre en écriture dans la mesure du -possible. <prgn>/tmp</prgn> est une exception à cette règle. -</list> - -<p> -Bien que cela soit de peu d'utilité pour quelqu'un qui ne fait pas -tourner un serveur, cela vaut la peine de se renseigner sur les -questions de sécurité. Le mécanisme de sécurité de Debian vous protège -de la plupart des virus. -</sect> - -<sect> Le développement de logiciels avec Debian - -<p> -Debian est une plateforme privilégiée pour le développement de -logiciels et la programmation. Voici une liste des langages et -pseudo-langages supportés: C, C++, Objective-C, Perl, Python, m4, -Ada, Pascal, Java, awk, Tcl/Tk, SQL, assembleur, Bourne shell, csh et -bien d'autres encore. L'écriture de programmes est hors du propos de -ce livre mais voici les programmes de développement parmi les plus -populaires que l'on trouve sur Debian: - -<p> -<list> -<item> <prgn>gcc</prgn> -<p> - Le compilateur C de GNU: un compilateur moderne et optimisé de C. -<item> <prgn>g++</prgn> -<p> - Le compilateur C++ extrait de <prgn>gcc</prgn> -<item> <prgn>cpp</prgn> -<p> - Le pré-processeur de C de <prgn>gcc</prgn> -<item> <prgn>perl</prgn> -<p> - L'interpréteur Perl. Perl est un super langage multi-usages. -<item> <prgn>gdb</prgn> -<p> - Le débogueur GNU. Il est utilisé pour déboguer de nombreux langages. -<item> <prgn>gprof</prgn> -<p> - Extraction de profile. Ce programme vous aide à optimiser votre - programme pour augmenter ses performances. -<item> <prgn>emacs</prgn> -<p> - <em>GNU Emacs</em> est un éditeur et un environnement intégré de travail. -<item> <prgn>as</prgn> -<p> - C'est l'assembleur de GNU. -</list> -</sect> - -</chapt> -<chapt> Lire la documentation et obtenir de l'aide - -<sect> Les sources de documentation - -<p> -Sur un système Debian, vous pouvez trouver la documentation aux -emplacements suivants: - -<p> -<list> -<item> Pages de manuel, que l'on peut lire avec la commande <prgn>man</prgn> -<item> Pages info, que l'on peut lire avec la commande <prgn>info</prgn> -<item> Les répertoires de <prgn>/usr/doc/paquets</prgn> où -<em>paquet</em> est le nom du paquet -Debian<footnote><prgn>zless</prgn> est très pratique pour lire les -fichiers de <prgn>/usr/doc</prgn>. Voir chapitre 10.1 pour plus de -détails.</footnote> -<item> Le répertoire <prgn>/usr/doc/HOWTO</prgn> contient les HOWTOs -du Projet Linux de Documentation, si vous avez installé les paquets -les contenant. -<item> La plupart des commandes ont une option <prgn>-h</prgn> ou -<prgn>--help</prgn>. Tapez le nom de la commande suivi d'une de ces -options pour essayer. -<item> Le Projet de Documentation de Debian -(<em>https://www.debian.org/ddp/</em>) fournit aussi quelques -manuels. -<item> La page d'assistance de Debian -(<em>https://www.debian.org/support/</em>) possède sa FAQ et quelques -autres documents. Vous pouvez aussi essayer le site oueb de Linux -(<em>http://www/linux.org</em>). -</list> - -<p> -Cette déroutante profusion de sources de documentations existe pour des -tas de raisons. Par exemple, <prgn>info</prgn> est supposé remplacer -le <prgn>man</prgn> mais <prgn>man</prgn> n'a toujours pas disparu -à ce jour. Mais dans tous les cas, il est rassurant de savoir que tant -de documentations existent ! - -<p> -Ainsi, où chercher pour obtenir de l'aide ? Voici quelques -suggestions: - -<p> -<list> -<item> Utilisez la page info ou l'option <prgn>--help</prgn> pour -avoir un résumé rapide de la syntaxe et des options de la -commande. Utilisez aussi la page de manuel si le programme n'a pas de -page info. -<item> Utilisez la page info si le programme possède une documentation -à ce format. -<item> Si cela ne donne rien, allez voir dans -<prgn>/usr/doc/nomdepaquet</prgn> -<item> Utilisez les HOWTOs pour régler une chose particulière ou -chercher une information sur un matériel particulier. Par exemple, -l'<prgn>Eternet-HOWTO</prgn> regorge d'informations sur les cartes -Ethernet et le <prgn>PPP-HOWTO</prgn> explique en détail comment -configurer une liaison <prgn>ppp</prgn>. -<item> Utilisez les manuels du Projet de Documentation Debian pour les -concepts inhérents et spécifiques à Debian. -<item> Si tout cela ne donne rien, demandez de l'aide -à quelqu'un. Voir la partie 16.4 pour cela. -</list> - -<p> -Comment utiliser les pages de manuel est expliqué à la partie 7.1. C'est très -simple: appuyez sur la touche espace pour aller à la page suivante et -appuyez sur <prgn>q</prgn> pour quitter le manuel. Utiliser -<prgn>info</prgn>, visualiser les fichiers de <prgn>/usr/doc</prgn> et -demander de l'aide à quelqu'un font l'objet des parties suivantes du -chapitre. -</sect> - - -<sect> Utiliser <prgn>info</prgn> - -<p> -<prgn>info</prgn> est le visualiseur de documentation de GNU. Certains -programmes fournissent leur documentation au format <prgn>info</prgn> -et vous pouvez utiliser <prgn>info</prgn> pour la lire. Vous pouvez -lancer le visualiseur en tapant simplement <prgn>info</prgn> ou en lui -passant un argument comme ceci: - -<p> -<example> -info emacs -</example> - -<p> -Vous pouvez obtenir aussi des informations sur <prgn>info</prgn> -lui-même en appelant le tutoriel interne: - -<p> -<example> -info info -</example> - -<p> -Maintenant, vous pouvez vous déplacer à l'aide des touches suivantes: - -<p> -<list> -<item> <prgn>flèches</prgn> -<p> - Pour déplacer le curseur au sein du document. -<item> <prgn>m RET</prgn> -<p> - Sélectionne le choix d'un menu sous le curseur. -<item> <prgn>u</prgn> -<p> - Pour « remonter » dans le document. -<item> <prgn>n</prgn> -<p> - Pour aller à la page suivante. -<item> <prgn>p</prgn> -<p> - Pour aller à la page précédente. -<item> <prgn>s</prgn> -<p> - Pour rechercher quelque chose. -<item> <prgn>g</prgn> -<p> - Pour aller à une page spécifique. -<item> <prgn>q</prgn> -<p> - Quitter <prgn>info</prgn> -</list> - -<p> -Vous remarquerez que la ligne supérieure de l'écran indique les pages -<em>next</em> (suivantes), <em>previous</em> (précédentes) et -<em>up</em> (supérieures) qui correspondent aux actions des touches -<prgn>n</prgn>, <prgn>p</prgn> et <prgn>u</prgn>. -</sect> - -<sect> HOWTO - -<p> -En plus de ses livres, le Projet de Documentation Linux a diffusé une -série de petits documents décrivant comment configurer des aspects -particuliers de GNU-Linux. Par exemple, le SCSI-HOWTO décrit les -complications de l'utilisation du SCSI - une façon standard de -communiquer avec des périphériques - sous GNU-Linux. De façon -générale, les HOWTOs ont plus de détails techniques sur des -configurations matérielles et sont souvent plus à jour que ce manuel. - -<p> -Il y a des paquets Debian pour les HOWTOs. <prgn>doc-linux-text</prgn> -contient l'ensemble des HOWTOs au format texte et -<prgn>doc-linux-html</prgn> les contient (surprise!) au format html -pour naviguer. Remarquez bien que Debian fournit des traductions de -ces HOWTOs si l'anglais n'est pas votre langue maternelle. Debian a des -paquets en allemand, français, espagnol, italien, japonais, coréen, -polonais, suédois et chinois des HOWTOs. On les trouve généralement -dans les paquets <prgn>doc-linux-<em>languagecode</em></prgn> où -<em>languagecode</em> est <prgn>fr</prgn> pour le français, -<prgn>es</prgn> pour l'espagnol, etc... Si vous les avez installés, -vous les trouverez dans <prgn>/usr/doc/HOWTO</prgn>. Quoi qu'il en -soit, vous trouverez toujours les toutes dernières versions sur le -réseau sur la page du LDP: - -<p> -<example> -http://metalab.unc.edu/LDP/ -</example> - -<sect> Aide personnalisée - -<p> -L'emplacement correct<footnote>Les francophones ont leur propre liste -avec l'avantage du support de leur langue maternelle: -debian-user-french@lists.debian.org</footnote> pour demander de l'aide sur -Debian est la liste de distribution des utilisateurs de Debian -à <prgn>debian-user@lists.debian.org</prgn> (envoyer un courriel -à <prgn>debian-user@lists.debian.org</prgn>). Si vous savez vous servir -d'IRC, vous pouvez utiliser le canal <prgn>#debian</prgn> sur -<prgn>irc.debian.org</prgn>. Vous pouvez trouver de l'aide sur -GNU-Linux en général dans la hiérarchie USENET -<prgn>comp.os.linux.*.</prgn> Il est aussi possible d'embaucher des -consultants pour fournir un service d'assistance garantie. Le site -oueb de Debian (<em> https://www.debian.org</em>) fournit d'autres -informations sur beaucoup de ces ressources. - -<p> -Une nouvelle fois, ne contactez pas les auteurs (et le traducteur!) de -ce livre pour obtenir de l'aide. Nous ne serons de toute façon -certainement pas capables de répondre à votre problème spécifique. Si -vous vous adressez à <prgn>debian-user</prgn>, vous recevrez quantité -de messages de qualité, et qui plus est rapidement. - -<p> -Restez toujours courtois et faîtes l'effort de lire la -documentation. Rappelez-vous bien que Debian résulte d'un effort -collectif de volontaires et que les personnes vous font une faveur en -vous donnant un peu de leur temps pour vous aider. Beaucoup d'entre -eux font payer ce même service plusieurs centaines de dollars pendant -la journée. - -<p> -<em> Ce qu'il faut faire pour poser des questions </em> - -<p> -<list> - -<item> Lire tout d'abord la documentation de base en premier. Les -trucs comme les options des commandes et ce que fait une commande en -fait partie. Cela inclut aussi les pages de manuel et la documentation -au format info. -<item> Vérifier les documents HOWTOs si votre question concerne un -réglage comme une connexion <prgn>ppp</prgn> ou <prgn>Ethernet</prgn>. -<item> Essayez d'être sûr que la réponse ne se trouve pas dans ce -livre. -<item> N'ayez pas peur de demander, après avoir fait l'effort -d'essayer de comprendre. -<item> N'ayez pas peur de demander des explications conceptuelles, des -conseils sur tous les aspects que l'on ne trouve pas dans les -documentations. -<item> Joignez toute information intéressante. Vous devez toujours -mentionner la version de Debian que vous utilisez. Vous pouvez aussi -mentionner le numéro de version de tout paquet pertinent. La commande -<prgn>dpkg -l nomdupaquet </prgn> vous le fournit. Vous pouvez aussi -signaler ce que vous avez tenté et ce qu'il est advenu. N'oubliez -d'inclure les messages d'erreur complets et exacts, s'il y en a. -<item> Ne vous excusez pas d'être un nouveau sur Linux. Il n'y a pas -de raison d'être un expert pour pouvoir utiliser GNU-Linux, pas plus -qu'il est nécessaire d'être une mécanique pour conduire une -automobile. -<item> Ne postez pas ou n'envoyez pas de courriel en HTML. Certaines -versions de Netscape ou d'Internet Explorer postent par défaut en HTML -plutôt qu'en texte. Beaucoup de gens vont carrément alors ignorer ces -courriels car de nombreux lecteurs de courriels ont des difficultés -à lire ce format. Il y a une préférence quelque part pour désactiver le -support HTML. -<item> Soyez courtois. Rappelez-vous que Debian est un effort -collectif de bénévoles et quiconque vous aide vous donne une partie de -son temps libre. -<item> Renvoyez votre question à la liste si vous n'avez pas eu de -réponse après quelques jours. Il y avait peut-être de nombreux -messages et il est passé inaperçu. Ou peut-être que personne ne -connaissait la réponse et si personne n'est capable de répondre la -fois suivante, il s'agit d'une sacrée colle. Vous pourriez peut-être -fournir plus d'informations la fois suivante. -</list> -</sect> - -<sect> Extraire des informations du système - -<p> -Lorsque vous diagnostiquez un problème ou lorsque vous demandez de -l'aide, vous aurez besoin d'extraire des informations de votre -système. Voici quelques façons d'y parvenir: - -<p> -<list> -<item> Examinez les fichiers placés dans <prgn>/var/log</prgn> -<item> Examinez la sortie du message de la commande <prgn>dmesg</prgn> -<item> Lancez la commande <prgn>uname -a</prgn> -</list> -</sect> - - - - -</chapt> -<chapt> Problèmes - -<p> -Dans Debian, comme partout ailleurs, les choses ne fonctionnent pas -toujours comme vous vous y attendez ou comme vous voulez qu'elles le -fassent. Bien que Debian ait une solide réputation d'être robuste et -stable, ses réactions à vos commandes peuvent parfois être -inattendues. Ici, nous allons tenter de lever le voile sur des -problèmes courants très fréquemment rencontrés. - - -<sect> Difficultés classiques - -<p> -Cette partie a pour but de fournir quelques solutions aux difficultés -les plus fréquemment rencontrées à l'usage par les utilisateurs. - -<sect1> Travailler avec des noms de fichiers étranges - -<p> -Vous pourrez parfois accidentellement créer un fichier dont le nom -comporte un caractère normalement absent d'un nom de fichier. Les -exemples sont l'inclusion d'espace, un trait d'union placé au début du -nom ou tout simplement des guillemets. Il se peut que l'accès, la -destruction ou le renommage de ces fichiers vous posent des -difficultés. - -<p> -Voici quelques trucs pour vous aider: - -<p> -<list> -<item> Essayez d'entourer le nom de fichier d'apostrophes simples, comme ceci: -<p> -<prgn>less 'Fichier avec espaces.txt'</prgn> -<item> Insérez un <prgn>./</prgn> avant le nom de fichier: -<p> -<prgn>less './-un étrange fichier.txt'</prgn> -<item> Utilisez des motifs: -<p> -<prgn>less Fichier?avec?espaces.txt</prgn> -<item> Utilisez un contre-slash devant chaque caractère inhabituel -<p> -<prgn>less Fichier\ avec\ espaces.txt</prgn> -</list> -</sect1> - -<sect1> Imprimer - -<p> -Une source d'ennui commune est le système d'impression sous -Debian. Traditionnellement, l'impression a toujours été un aspect -puissant mais complexe d'Unix. Cependant, Debian la rend plus -simple. La façon la plus simple est d'utiliser le paquet -<prgn>magicfilter</prgn>. <prgn>magicfilter</prgn> va vous poser une -série de questions au sujet de votre imprimante et la configurer pour -vous. Si vous avez des soucis d'impression, essayez -<prgn>magicfilter</prgn>. -</sect1> - -<sect1> Les problème sous X - -<p> -De nombreuses questions tournent autour de X. Voici quelques trucs si -vous avez quelques difficultés à paramétrer le système X Window. - -<p> -<list> -<item>Pour les problèmes de souris, lancez <prgn>XF86Setup</prgn> et -essayez les options PS/2, Microsoft, MouseSystems et Logitech. La -plupart des souris devraient correspondre à l'une d'entre elles. Le -périphérique pour les souris est <prgn>/dev/psaux</prgn> pour celle -PS/2 et un port série comme <prgn>/dev/ttyS0</prgn> pour les souris -série. -<item> Si vous ne connaissez pas votre chipset vidéo, lancez -<prgn>SuperProbe</prgn>: cela permet souvent de le déterminer pour -vous. -<item> Si votre écran ne possède pas beaucoup de couleurs, essayez de -sélectionner une autre carte ou indiquez à X quelle quantité de -mémoire vidéo vous possédez. -<item> Si votre écran reste blanc, ou bien si vous avez un texte -illisible en lançant X, vous avez probablement sélectionné un taux de -rafraîchissement incorrect. Retournez dans <prgn>XF86Setup</prgn> ou -<prgn>xf86config</prgn> et revérifiez ces réglages. -<item> <prgn>xvidtune</prgn> peut vous aider à régler l'image si elle -est trop à droite ou trop à gauche ou bien si elle est trop haute ou -trop basse. -<item><prgn>xdpyinfo</prgn> peut vous donner des informations sur une -session X en cours. -<item><prgn>XF86Setup</prgn> peut vous régler votre profondeur de couleurs -par défaut. -<item> Vous pouvez sélectionner votre gestionnaire de fenêtres par -défaut en modifiant <prgn>/etc/X11/window-managers</prgn>. -<item> <prgn>/var/log/xdm-errors</prgn> peut contenir des informations -utiles si vous avez des problèmes en lançant <prgn>xdm</prgn>. -</list> -</sect1> -</sect> - -<sect> Problème lors de la procédure de boot - -<p> -Si vous avez des problèmes durant la phase de boot, comme un blocage -du noyau pendant la procédure d'amorçage, ou que le noyau ne -reconnaisse pas les périphériques que vous avez ou encore que les -lecteurs ne soient reconnus proprement, la première chose à faire est -de vérifier les paramètres de boot. On les obtient en pressant sur la -touche <prgn>F1</prgn> lors du boot sur la disquette de secours. - -<p> -La plupart du temps, les problèmes se résolvent en supprimant quelques -périphériques et en bootant à nouveau. Les modems internes, les cartes -son et les périphériques <em>Plug-n-Play</em> sont souvent -problématiques. - -<p> -Tecras, et quelques autres portables, et certains non portables -n'arrivent pas à vider le cache lorsqu'ils passent en A20. Ceci est -provoqué par les noyaux bzImage et non par les noyaux zImages. Si -votre ordinateur souffre de ce problème, vous verrez un message lors -du boot disant <prgn>saying A200 gating failed</prgn>. Dans ce cas, il -est nécessaire d'utiliser les images de boot « tecra ». - -<p> -Si vous avez toujours des problèmes, envoyez un rapport de -bogue. Envoyez un courriel à -<example>submit@bugs.debian.org</example> -Vous DEVEZ inclure les lignes suivantes en en-tête de votre courriel: - -<p> -<example> -Package: boot-floppies -Version: version -</example> - -<p> -Assurez-vous que la <em>version</em> que vous fournissez est celle que -vous avez utilisé avec les disquettes de boot. Si vous ne connaissez -pas la version exacte, fournissez la date à laquelle vous avez -téléchargé les disquettes, et ajoutez à partir de quelle distribution -vous les avez obtenues: « stable » ou « frozen ». - -<p> -Vous devez aussi inclure les informations suivantes dans votre rapport -de bogues: - -<p> -<list> -<item> <prgn>architecture</prgn>: i386 -<item> <prgn>model</prgn>: votre matériel principal et le modèle -<item> <prgn>memory</prgn>: la quantité de RAM -<item> <prgn>SCSI</prgn>: les adapteurs, s'il y en a. -<item> <prgn>cd-rom</prgn>: type de cédérom et son interface (ATAPI) -<item> <prgn>network card</prgn>: votre carte réseau, si vous en avez une. -<item> <prgn>pcmcia</prgn>: le détail de vos périphériques PCMCIA -</list> - -<p> -Cela dépend de la nature du bogue mais il peut être pertinent de -donner le modèle du disque dur, la capacité du disque et le modèle de -carte vidéo. - -<p> -Dans le rapport de bogue, décrivez le problème et joignez les derniers -messages visibles du noyau dans le cas d'un blocage du noyau. Décrivez -les étapes qui vous ont amenées dans cet état. -</sect> - -</chapt> -<chapt> Booter le système - -<p> -Cette partie montre ce qui se passe lors du boot de GNU-Linux. - -<p> -La façon dont vous amorcez votre système dépend de la façon dont vous -l'avez configuré à l'installation. Dans le meilleur des cas, vous -n'avez qu'à allumer votre ordinateur. Mais il se peut que vous deviez -insérer une disquette. - -<p> -Linux est appelé par un programme appelé LILO (LInux LOader, -littéralement « chargeur de linux »). LILO peut aussi -charger un autre système d'exploitation et vous demander sur quel -système vous désirez booter. - -<p> -La première chose qui se passe lorsque vous allumez un PC de type -Intel est l'exécution du BIOS. BIOS signifie <em>Basic Input Output -System</em> (système d'entrée-sortie simple). C'est un programme -résidant perpétuellement sur l'ordinateur et stocké en lecture seule -sur un composant. Il effectue quelques tests basiques et ensuite -recherche une disquette dans le premier lecteur de disquettes. S'il la -trouve, il recherche un secteur d'amorce (<em>boot sector</em>) et -lance le code se trouvant dessus s'il existe. S'il y a une disquette -sans secteur d'amorce, le BIOS va vous afficher un message du type: -<prgn>Non-system disk</prgn> ou <prgn>disk -error</prgn><footnote><em>Disque non-système</em> et <em>mauvaise -disquette</em></footnote>. Retirez alors la disquette et appuyez sur -une touche pour relancer la procédure de boot. - -<p> -S'il n'y a pas de disquette dans le lecteur, le BIOS recherche un MBR -(<em>Master Boot Record</em>) sur le disque dur. Il lance le code -exécutable trouvé dessus qui charge le système d'exploitation. Sur des -systèmes GNU-Linux, LILO peut occuper le MBR et charger GNU-Linux. - -<p> -Ainsi, si vous avez décidé d'installer LILO sur votre disque dur, vous -devriez apercevoir LILO au démarrage de votre ordinateur. À partir de -ce moment-là, vous pouvez appuyer sur la touche <em>shift</em> pour -sélectionner quel système d'exploitation charger et appuyez sur -<em>Tab</em> pour afficher la liste des options. Tapez sur une de ces -options et appuyez sur la touche <em>Entrée</em>. LILO va charger le -système demandé. - -<p> -Si vous n'appuyez pas sur la touche <em>shift</em>, LILO chargera -automatiquement le système par défaut au bout de cinq secondes. Si -vous le désirez, vous pouvez changer le système par défaut, le nombre -de systèmes et le temps d'attente avant le chargement. - -<p> -Si vous n'avez pas installé LILO sur votre disque dur, vous avez -probablement créé une <em>disquette de boot</em>. La disquette de boot -va avoir LILO dessus. Tout ce que vous avez à faire est d'installer la -disquette dans son lecteur et rallumer l'ordinateur; le BIOS va la -trouver avant de vérifier le MBR du disque. Pour retourner à un -système non-linux, sortez la disquette et redémarrez -l'ordinateur. Assurez-vous bien de suivre la procédure (voir 6.6) de -redémarrage correctement. - -<p> -LILO charge le noyau linux à partir du disque et ensuite le laisse -agir. (le noyau est le programme central du système d'exploitation qui -contrôle tous les autres programmes). Le noyau est totalement -indépendant du BIOS ou de LILO. - -<p> -Sur les plateformes non Intel, les choses se passent un peu -différemment. Mais après avoir booté, les choses sont identiques - ou -quasiment. - -<p> -Linux examine le matériel sur lequel il va tourner. Il veut savoir -quel type de disque dur vous avez, si vous avez ou non un bus souris, -un réseau et quelques autres choses du même acabit. Linux ne peut se -rappeler ces choses entre chaque boot donc il doit se poser ces -questions à chaque démarrage. Heureusement, il ne <em>vous</em> pose -pas les questions mais le fait directement au matériel. Lors du boot, -le noyau Linux affiche des messages pour indiquer ce qu'il fait. - -<p> -Le processus de recherche peut poser des problèmes mais s'il devait le -faire, vous auriez déjà dû rencontrer ces problèmes lors de la -première installation de GNU-Linux. Si vous avez des problèmes, -reportez-vous aux instructions d'installation ou bien posez des -questions sur les listes de distribution. - -<p> -Le noyau permet simplement l'existence d'autres programmes donc une -fois que tout est ok pour lui, il doit lancer un autre programme pour -rendre les choses plus fonctionnelles. Le programme que le noyau lance -est <prgn>init</prgn>. Après que le noyau ait lancé <prgn>init</prgn>, -il ne lance jamais plus d'autres programmes. Le noyau devient alors un -gestionnaire et un fournisseur de services. - -<p> -Lorsque <prgn>init</prgn> se lance, il lance un certain nombre de -scripts (des fichiers contenant des commandes) qui préparent le -système à être utilisé. Il y a des routines de maintenance et de -nombreux programmes qui font des choses comme fournir un prompteur de -login, écouter les connexions réseau et garder une trace des activités -de l'ordinateur. - -</chapt> -<chapt> La Licence Publique Générale de GNU - -<p> -<em> -This is an unofficial translation of the GNU General Public License into -french. It was not published by the Free Software Foundation, and does not -legally state the distribution terms for software that uses the GNU -GPL--only the original English text of the GNU GPL does that. However, we -hope that this translation will help french speakers understand the GNU GPL -better. -</em> - -<p> -Ceci est une traduction non officielle de la <em>GNU General Public -License</em> en français. Elle n'a pas été publiée par la <em>Free -Software Foundation</em>, et ne détermine pas les termes de distribution -pour les logiciels qui utilisent la GNU GPL--seul le texte anglais -original de la GNU GPL en a le droit. Cependant, nous espérons que -cette traduction aidera les francophones à mieux comprendre la GPL. - -<p> -Nous autorisons la FSF à apporter toute modification qu'elle jugera -nécessaire pour rendre la traduction plus claire. - -<sect> -GNU GENERAL PUBLIC LICENSE - -<p> -Version 2, juin 1991 - -<p> -Copyright © 1989, 1991, Free Software Foundation Inc. 675 Mass Ave, -Cambridge, MA02139, États-Unis. - -<p> -Il est permis à tout le monde de reproduire et distribuer des copies -conformes de ce document de licence, mais aucune modification ne doit y être -apportée. - -<p> -Préambule - -<p> -Les licences relatives à la plupart des logiciels sont destinées -à supprimer votre liberté de les partager et de les modifier. Par -contraste, la licence publique générale <em>GNU General Public -License</em> veut garantir votre liberté de partager et de modifier -les logiciels libres, pour qu'ils soient vraiment libres pour tous -leurs utilisateurs. La présente licence publique générale s'applique -à la plupart des logiciels de la <em>Free Software Foundation</em>, ainsi -qu'à tout autre programme dont les auteurs s'engagent à l'utiliser. -(Certains autres logiciels sont couverts par la Licence Publique -Générale pour Bibliothèques GNU à la place). Vous pouvez aussi -l'appliquer à vos programmes. - -<p> -Quand nous parlons de logiciels libres, nous parlons de liberté, non de -gratuité. Nos licences publiques générales veulent vous garantir : - -<list> -<item> que vous avez toute liberté de distribuer des copies des -logiciels libres (et de facturer ce service, si vous le souhaitez) ; -<item> que vous recevez les codes sources ou pouvez les obtenir si -vous le souhaitez ; -<item> que vous pouvez modifier les logiciels ou en utiliser des -éléments dans de nouveaux programmes libres ; -<item> et que vous savez que vous pouvez le faire. -</list> - -<p> -Pour protéger vos droits, nous devons apporter des restrictions, qui vont -interdire à quiconque de vous dénier ces droits, ou de vous demander de vous -en désister. Ces restrictions se traduisent par certaines responsabilités -pour ce qui vous concerne, si vous distribuez des copies de logiciels, ou si -vous les modifiez. - -<p> -Par exemple, si vous distribuez des copies d'un tel programme, gratuitement -ou contre une rémunération, vous devez transférer aux destinataires tous les -droits dont vous disposez. Vous devez vous garantir qu'eux-mêmes, par -ailleurs, reçoivent ou peuvent recevoir le code source. Et vous devez leur -montrer les présentes dispositions, de façon qu'ils connaissent leurs -droits. - -<p> -Nous protégeons vos droits en deux étapes : - -<enumlist> -<item> Nous assurons le droit d'auteur (<em>copyright</em>) du logiciel, et - -<item>Nous vous proposons cette licence, qui vous donne l'autorisation légale - de dupliquer, distribuer et/ou modifier le logiciel. -</enumlist> - -<p> -De même, pour la protection de chacun des auteurs, et pour notre propre -protection, nous souhaitons nous assurer que tout le monde comprenne qu'il -n'y a aucune garantie portant sur ce logiciel libre. Si le logiciel est -modifié par quelqu'un d'autre puis transmis à des tiers, nous souhaitons que -les destinataires sachent que ce qu'ils possèdent n'est pas l'original, de -façon que tous problèmes introduits par d'autres ne se traduisent pas par -une répercussion négative sur la réputation de l'auteur original. - -<p> -Enfin, tout programme libre est en permanence menacé par des brevets de -logiciels. Nous souhaitons éviter le danger que des sous-distributeurs d'un -programme libre obtiennent à titre individuel des licences de brevets, avec -comme conséquence qu'ils ont un droit de propriété sur le programme. Pour -éviter cette situation, nous avons fait tout ce qui est nécessaire pour que -tous brevets doivent faire l'objet d'une concession de licence qui en -permette l'utilisation libre par quiconque, ou bien qu'il ne soit pas -concédé du tout. - -<p> -Nous présentons ci-dessous les closes et dispositions concernant la -duplication, la distribution et la modification. - -<p> -Conditions d'exploitation portant sur la duplication, la distribution et la -modification - -<enumlist> - -<item> - Le présent contrat de licence s'applique à tout programme ou autre - ouvrage contenant un avis, apposé par le détenteur du droit de - propriété, disant qu'il peut être distribué au titre des - dispositions de la présente Licence Publique Générale. Ci-après, le - « Programme » désigne l'un quelconque de ces programmes ou - ouvrages, et un « ouvrage fondé sur le programme » désigne - soit le programme, soit un ouvrage qui en dérive au titre de la loi - sur le droit d'auteur ; plus précisément, il s'agira d'un ouvrage - contenant le programme ou une version de ce dernier, soit mot à mot, - soit avec des modifications et/ou traduit en une autre langue - (ci-après, le terme « modification » englobe, sans aucune - limitation, les traductions qui en sont faites). Chaque titulaire de - licence sera appelé « concessionnaire ». -<p> - Les activités autres que la duplication, la distribution et la - modification ne sont pas couvertes par la présente licence ; elles - n'entrent pas dans le cadre de cette dernière. L'exécution du - programme n'est soumise à aucune restriction, et les résultats du - programme ne sont couverts que si son contenu constitue un ouvrage - fondé sur le programme (indépendamment du fait qu'il a été réalisé - par exécution du programme). La véracité de ce qui précède dépend - de ce que fait le programme. - -<item> - Le concessionnaire peut dupliquer et distribuer des copies mot -à mot du code source du programme tel qu'il les reçoit, et ce sur un - support quelconque, du moment qu'il appose, d'une manière - parfaitement visible et appropriée, sur chaque exemplaire, un avis - approprié de droits d'auteur (<em>Copyright</em>) et de renonciation -à garantie ; qu'il maintient intacts tous les avis qui se rapportent - à la présente licence et à l'absence de toute garantie ; et qu'il - transmet à tout destinataire du programme un exemplaire de la - présente licence en même temps que le programme. -<p> - Le concessionnaire peut facturer l'acte physique de transfert d'un - exemplaire, et il peut, à sa discrétion, proposer en échange d'une - rémunération une protection en garantie. - -<item> - Le concessionnaire peut modifier son ou ses exemplaires du - programme ou de toute portion de ce dernier, en formant ainsi un - ouvrage fondé sur le programme, et dupliquer et distribuer ces - modifications ou cet ouvrage selon les dispositions de la section 1 - ci-dessus, du moment que le concessionnaire satisfait aussi -à toutes ces conditions : -<list> -<item> Le concessionnaire doit faire en sorte que les fichiers modifiés - portent un avis, parfaitement visible, disant que le - concessionnaire a modifié les fichiers, avec la date de tout - changement. - -<item> Le concessionnaire doit faire en sorte que tout ouvrage qu'il - distribue ou publie, et qui, en totalité ou en partie, contient le - programme ou une partie quelconque de ce dernier ou en dérive, - soit concédé en bloc, à titre gracieux, à tous tiers au titre des - dispositions de la présente licence. - -<item> Si le programme modifié lit normalement des instructions - interactives lors de son exécution, le concessionnaire doit, quand - il commence l'exécution du programme pour une telle utilisation - interactive de la manière la plus usuelle, faire en sorte que ce - programme imprime ou affiche une annonce, comprenant un avis - approprié de droits d'auteur, et un avis selon lequel il n'y a - aucune garantie (ou autrement, que le concessionnaire fournit une - garantie), et que les utilisateurs peuvent redistribuer le - programme au titre de ces dispositions, et disant à l'utilisateur - comment visualiser une copie de cette licence (exception : si le - programme par lui-même est interactif mais n'imprime normalement - pas une telle annonce, l'ouvrage du concessionnaire se fondant sur - le programme n'a pas besoin d'imprimer une annonce). -</list> - -<item> - Les exigences ci-dessus s'appliquent à l'ouvrage modifié pris en - bloc. Si des sections identifiables de cet ouvrage ne dérivent pas - du programme et peuvent être considérées raisonnablement comme - représentant des ouvrages indépendants et distincts par eux-mêmes, - alors la présente licence, et ses dispositions, ne s'appliquent pas - à ces sections quand le concessionnaire les distribue sous forme - d'ouvrages distincts. Mais quand le concessionnaire distribue ces - mêmes sections en tant qu'élément d'un tout qui représente un - ouvrage se fondant sur le programme, la distribution de ce tout doit - se faire conformément aux dispositions de la présente licence, dont - les autorisations, portant sur d'autres concessionnaires, s'étendent - à la totalité dont il est question, et ainsi à chacune de ces - parties, indépendamment de celui qu'il a écrite. -<p> - Ainsi, cette section n'a pas pour but de revendiquer des droits ou - de contester vos droits sur un ouvrage entièrement écrit par le - concessionnaire ; bien plus, l'intention est d'exercer le droit de - surveiller la distribution d'ouvrages dérivée ou collective se - fondant sur le programme. -<p> - De plus, un simple assemblage d'un autre ouvrage ne se fondant pas - sur le programme, avec le programme (ou avec un ouvrage se fondant - sur le programme) sur un volume d'un support de stockage ou - distribution, ne fait pas entrer l'autre ouvrage dans le cadre de la - présente licence. - -<item> - Le concessionnaire peut dupliquer et distribuer le programme (ou un - ouvrage se fondant sur ce dernier, au titre de la Section 2), en - code objet ou sous une forme exécutable, au titre des dispositions - des Sections 1 et 2 ci-dessus, du moment que le concessionnaire - effectue aussi l'une des opérations suivantes : -<list> -<item> Lui joindre le code source complet correspondant, exploitable par - une machine, code qui doit être distribué au titre des Sections 1 - et 2 ci-dessus sur un support couramment utilisé pour l'échange de - logiciels ; ou bien - -<item> Lui joindre une offre écrite, dont la validité se prolonge pendant - au moins 3 ans, de transmettre à un tiers quelconque, pour un - montant non supérieur au coût pour le concessionnaire, de - réalisation physique de la distribution de la source, un - exemplaire complet, exploitable par une machine, du code source - correspondant, qui devra être distribué au titre des dispositions - des Sections 1 et 2 ci-dessus sur un support couramment utilisé - pour l'échange des logiciels ; ou bien - -<item> Lui joindre les informations que le concessionnaire a reçues, pour - proposer une distribution du code source correspondant (cette - variante n'est autorisée que pour la distribution non commerciale, - et seulement si le concessionnaire a reçu le programme sous forme - exécutable ou sous forme d'un code objet, avec une telle offre, - conformément à l'alinéa b) ci-dessus). -</list> -<p> - Le code source d'un ouvrage représente la forme préférée de - l'ouvrage pour y effectuer des modifications. Pour un ouvrage - exécutable, le code source complet représente la totalité du code - source pour tous les modules qu'il contient, plus tous fichiers de - définitions d'interface associés, plus les informations en code - machine pour commander la compilation et l'installation du - programme exécutable. Cependant, à titre d'exceptions spéciales, le - code source distribué n'a pas besoin de comprendre quoi que ce soit - qui est normalement distribué (sous forme source ou sous forme - binaire) avec les composants principaux (compilateur, noyau de - système d'exploitation, etc.) du système d'exploitation sur lequel - est exécuté le programme exécutable, à moins que le composant, par - lui-même, soit joint au programme exécutable. -<p> - Si la distribution de l?exécutable ou du code objet est réalisée de - telle sorte qu'elle offre d'accéder à une copie à partir d'un lieu - désigné, alors le fait d'offrir un accès équivalent à la - duplication du code source à partir de ce même lieu s'entend comme - distribution du code source, même si des tiers ne sont pas - contraints de dupliquer la source en même temps que le code objet. - -<item> - Le concessionnaire ne peut dupliquer, modifier, concéder en - sous-licence ou distribuer le programme, sauf si cela est - expressément prévu par les dispositions de la présente - licence. Toute tentative pour autrement dupliquer, modifier, - concéder en sous-licence ou distribuer le programme est répétée - nulle, et met automatiquement fin aux droits du concessionnaire au - titre de la présente licence. Cependant, les parties qui ont reçu - des copies, ou des droits, de la part du concessionnaire au titre - de la présente licence, ne verront pas expirer leur contrat de - licence, tant que ces parties agissent d'une manière parfaitement - conforme. - -<item> - Il n'est pas exigé du concessionnaire qu'il accepte la présente - licence, car il ne l'a pas signée. Cependant, rien d'autre - n'octroie au concessionnaire l'autorisation de modifier ou de - distribuer le programme ou ses ouvrages dérivés. Ces actions sont - interdites par la loi si le concessionnaire n'accepte pas la - présente licence. En conséquence, par le fait de modifier ou de - distribuer le programme (ou un ouvrage quelconque se fondant sur le - programme), le concessionnaire indique qu'il accepte la présente - licence, et qu'il a la volonté de se conformer à toutes les closes - et dispositions concernant la duplication, la distribution ou la - modification du programme ou d'ouvrages se fondant sur ce dernier. - -<item> - Chaque fois que le concessionnaire redistribue le programme (ou - tout ouvrage se fondant sur le programme), le destinataire reçoit - automatiquement une licence de l'émetteur initial de la licence, - pour dupliquer, distribuer ou modifier le programme, sous réserve - des présentes closes et dispositions. Le concessionnaire ne peut - imposer aucune restriction plus poussée sur l'exercice, par le - destinataire, des droits octroyés au titre des présentes. Le - concessionnaire n'a pas pour responsabilité d'exiger que des tiers - se conforment à la présente licence. - -<item> - Si, en conséquence une décision de justice ou une allégation - d'infraction au droit des brevets, ou pour toute autre raison (qui - n'est pas limitée à des problèmes de propriétés industrielles), des - conditions sont imposées au concessionnaire (par autorité de - justice, par convention ou autrement), qui entrent en contradiction - avec les dispositions de la présente licence, elles n'exemptent pas - le concessionnaire de respecter les dispositions de la présente - licence. Si le concessionnaire ne peut procéder à la distribution - de façon à satisfaire simultanément à ces obligations au titre de - la présente licence et à toutes autres obligations pertinentes, - alors, en conséquence de ce qui précède, le concessionnaire peut ne - pas procéder du tout à la distribution du programme. Par exemple, - si une licence de brevet ne permettait pas une redistribution du - programme, sans redevances, par tous ceux qui reçoivent des copies - directement ou indirectement par l'intermédiaire du - concessionnaire, alors le seul moyen par lequel le concessionnaire - pourrait satisfaire tant à cette licence de brevet qu'à la présente - licence, consisterait à s'abstenir complètement de distribuer le - programme. -<p> - Si une partie quelconque de cette section est considérée comme - nulle ou non exécutoire dans certaines circonstances particulières, - le reste de cette section est réputé s'appliquer, et la section - dans son ensemble est considérée comme s'appliquant dans les autres - circonstances. -<p> - La présente section n'a pas pour objet de pousser le - concessionnaire à enfreindre tous brevets ou autres revendications - à droit de propriété, ou encore à contester la validité de une ou - plusieurs quelconques de ces revendications ; la présente section a - pour objet unique de protéger l'intégrité du système de - distribution des logiciels libres, système qui est mis en oeuvre - par les pratiques liées aux licences publiques. De nombreuses - personnes ont apporté une forte contribution à la gamme étendue des - logiciels distribués par ce système, en comptant sur l'application - systématique de ce système ; c'est à l'auteur/donateur de décider - s'il a la volonté de distribuer le logiciel par un quelconque autre - système, et un concessionnaire ne peut imposer ce choix. -<p> - La présente section veut rendre parfaitement claire ce que l'on - pense être une conséquence du reste de la présente licence. - -<item> - Si la distribution et/ou l'utilisation du Programme est restreinte - dans certains pays, sous l'effet de brevets ou d'interfaces - présentant un droit d'auteur, le détenteur du droit d'auteur - original, qui soumet le Programme aux dispositions de la présente - licence, pourra ajouter une limitation expresse de distribution - géographique excluant ces pays, de façon que la distribution ne - soit autorisée que dans les pays ou parmi les pays qui ne sont pas - ainsi exclus. Dans ce cas, la limitation fait partie intégrante de - la présente licence, comme si elle était écrite dans le corps de la - présente licence. -<p> - La <em>Free Software Foundation</em> peut, de temps à autre, - publier des versions révisées et/ou nouvelles du <em>General Public - License</em>. Ces nouvelles versions seront analogues, du point de - vue de leur esprit, à la présente version, mais pourront en - différer dans le détail, pour résoudre de nouveaux problèmes ou de - nouvelles situations. -<p> - Chaque version reçoit un numéro de version qui lui est propre. Si - le programme spécifie un numéro de version de la présente licence, - qui s'applique à cette dernier et "à toute autre version - ultérieure", le concessionnaire a le choix de respecter les closes - et dispositions de cette version, ou une quelconque version - ultérieure publiée par la <em>Free Software Foundation</em>. Si le programme - ne spécifie pas de numéro de version de la présente licence, le - concessionnaire pourra choisir une version quelconque publiée -à tout moment par la <em>Free Software Foundation</em>. - -<item> - Si le concessionnaire souhaite incorporer des parties du programme - dans d'autres programmes libres dont les conditions de distribution - sont différentes, il devrait écrire à l'auteur pour demander son - autorisation. Pour un logiciel soumis à droit d'auteur par la <em>Free - Software Foundation</em>, il devra écrire à la <em>Free Software Foundation</em> - ; nous faisons quelquefois des exceptions à cette règle. Notre - décision va être guidée par le double objectif de protéger le - statut libre de tous les dérivés de nos logiciels libres, et de - favoriser le partage et la réutilisation des logiciels en général. -<p> - ABSENCE DE GARANTIE - -<item> - COMME LA LICENCE DU PROGRAMME EST CONCÉDÉE À TITRE GRATUIT, IL N'Y - AUCUNE GARANTIE S'APPLIQUANT AU PROGRAMME, DANS LA MESURE AUTORISÉE - PAR LA LOI EN VIGUEUR. SAUF MENTION CONTRAIRE ÉCRITE, LES - DÉTENTEURS DU DROIT D'AUTEUR ET/OU LES AUTRES PARTIES METTENT LE - PROGRAMME À DISPOSITION "EN L'ÉTAT", SANS AUCUNE GARANTIE DE QUELQUE - NATURE QUE CE SOIT, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS - LIMITATION, LES GARANTIES IMPLICITES DE COMMERCIALISATION ET DE - L'APTITUDE À UN OBJET PARTICULIER. C'EST LE CONCESSIONNAIRE QUI - PREND LA TOTALITÉ DU RISQUE QUANT A LA QUALITÉ ET AUX PERFORMANCES - DU PROGRAMME. SI LE PROGRAMME SE RÉVÉLAIT DÉFECTUEUX, C'EST LE - CONCESSIONNAIRE QUI PRENDRAIT À SA CHARGE LE COÛT DE L'ENSEMBLE DES - OPÉRATIONS NÉCESSAIRES D'ENTRETIEN, RÉPARATION OU CORRECTION. - -<item> - EN AUCUN CAS, SAUF SI LA LOI EN VIGUEUR L'EXIGE OU SI UNE - CONVENTION ÉCRITE EXISTE À CE SUJET, AUCUN DÉTENTEUR DE DROITS - D'AUTEUR, OU AUCUNE PARTIE AYANT LE POUVOIR DE MODIFIER ET/OU DE - REDISTRIBUER LE PROGRAMME CONFORMÉMENT AUX AUTORISATIONS CI-DESSUS, - N'EST RESPONSABLE VIS-À-VIS DU CONCESSIONNAIRE POUR CE QUI EST DES - DOMMAGES, Y COMPRIS TOUS DOMMAGES GÉNÉRAUX, SPÉCIAUX, ACCIDENTELS - OU INDIRECTS, RÉSULTANT DE L'UTILISATION OU DU PROGRAMME OU DE - L'IMPOSSIBILITÉ D'UTILISER LE PROGRAMME (Y COMPRIS, MAIS SANS - LIMITATION, LA PERTE DE DONNÉES, OU LE FAIT QUE DES DONNÉES SONT - RENDUES IMPRÉCISES, OU ENCORE LES PERTES ÉPROUVÉES PAR LE - CONCESSIONNAIRE OU PAR DES TIERS, OU ENCORE UN MANQUEMENT DU - PROGRAMME À FONCTIONNER AVEC TOUS AUTRES PROGRAMMES), MÊME SI CE - DÉTENTEUR OU CETTE AUTRE PARTIE A ÉTÉ AVISÉ DE LA POSSIBILITÉ DE - TELS DOMMAGES. -<p> - FIN DES CONDITIONS D'EXPLOITATION -<p> - ------------------------------------------------------------------------ -</enumlist> - -</sect> - - -<sect>Comment appliquer ces dispositions à vos nouveaux programmes? - -<p> -Si le concessionnaire développe un nouveau programme, et s'il en souhaite -l'utilisation la plus large possible dans le public, le meilleur moyen d'y -arriver est d'en faire un logiciel libre, que tout le monde pourra -redistribuer et modifier au titre des présentes dispositions. - -<p> -Dans ce but, il convient de rattacher au programme les avis suivants. Le -moyen le plus sûr consiste à les rattacher au début de chaque fichier -source, pour avertir le plus efficacement possible de l'exclusion de -garantie ; et chaque fichier doit comporter au moins la ligne <em>copyright</em>, -et un pointeur indiquant où est localisée la totalité de l'avis. - -<p> -Une ligne pour donner le nom du programme et une idée de ce qu'il fait. - -<p> -<prgn> -Copyright © 19yy nom de l'auteur -</prgn> - -<p> -<prgn> -Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le -modifier conformément aux dispositions de la Licence Publique Générale GNU, -telle que publiée par la <em>Free Software Foundation</em> ; version 2 de la licence, -ou encore (à votre choix) toute version ultérieure. -</prgn> -<p> -<prgn> -Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE -GARANTIE ; sans même la garantie implicite de COMMERCIALISATION ou -D'ADAPTATION A UN OBJET PARTICULIER. Pour plus de détail, voir la Licence -Publique Générale GNU . -</prgn> -<p> -<prgn> -Vous devez avoir reçu un exemplaire de la Licence Publique Générale GNU en -même temps que ce programme ; si ce n'est pas le cas, écrivez à la Free -Software Foundation Inc., 675 Mass Ave, Cambridge, MA 02139, États-Unis. -</prgn> -<p> -Ajoutez aussi des informations sur le moyen permettant d'entrer en contact -avec vous par courrier électronique (e-mail) et courrier normal. - -<p> -Si le programme est interactif, prévoyez en sortie un court avis, tel que -celui qui est présenté ci-dessous, lors du démarrage en mode interactif. - -<p> -<prgn> -Gnomovision version 69, Copyright © 19 yy nom de l'auteur -</prgn> -<p> -<prgn> -Gnomovision est livré absolument SANS AUCUNE GARANTIE ; pour plus de -détail, tapez « show w ». Il s'agit d'un logiciel libre, et -vous avez le droit de le redistribuer dans certaines conditions ; pour -plus de détail, tapez « show c ». -</prgn> - -<p> -Les instructions hypothétiques « show w » et « show -c » doivent présenter les parties appropriées de la Licence -Publique Générale. Bien évidemment, les instructions que vous utilisez -peuvent porter d'autres noms que « show w » et « show -c » ; elles peuvent même correspondre à des clics de souris ou -à des éléments d'un menu, selon ce qui convient à votre programme. -<p> -Si nécessaire, vous devrez aussi demander à votre employeur (si vous -travaillez en tant que programmeur) ou à votre éventuelle école ou -université, de signer une "renonciation à droit d'auteur" concernant le -programme. En voici un échantillon (il suffit de modifier les noms) : -<p> -<prgn> -Yoyodyne, Inc., par la présente, renonce à tout intérêt de droits -d'auteur dans le programme « Gnomovision » (qui fait des -passages au niveau des compilateurs) écrit par James Hacker. -</prgn> -<p> -<prgn> -Signature de Ty Coon, 1er avril 1989 -</prgn> -<p> -<prgn> -Ty Coon, President of Vice -</prgn> -<p> -La présente Licence Publique Générale n'autorise pas le concessionnaire -à incorporer son programme dans des programmes propriétaires. Si votre -programme est une bibliothèque de sous-programmes, vous pouvez considérer -comme plus intéressant d'autoriser une édition de liens des applications -propriétaires avec la bibliothèque. Si c'est ce que vous souhaitez, vous -devrez utiliser non pas la présente licence, mais la Licence Publique -Générale pour Bibliothèques GNU. -</sect> - -</chapt></book> diff --git a/french/international/french/translations/debian_package_intro.html/b414.html b/french/international/french/translations/debian_package_intro.html/b414.html deleted file mode 100644 index dcfb06eca33..00000000000 --- a/french/international/french/translations/debian_package_intro.html/b414.html +++ /dev/null @@ -1,172 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE -> Quelques livres d'introduction sur la programmation sous - Linux/Unix - </TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="UP" -TITLE="Pour plus d'informations" -HREF="c400.html"><LINK -REL="PREVIOUS" -TITLE="Pour plus d'informations" -HREF="c400.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="c400.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -> </TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN414" -> Quelques livres d'introduction sur la programmation sous - Linux/Unix - </A -></H1 -><P -><I -> Beginning Linux Programming - </I ->, Matthew - et Stones - , <SPAN -CLASS="PUBDATE" -> 1996 - </SPAN ->, <SPAN -CLASS="PUBLISHERNAME" -> Wrox Press - </SPAN ->, ISBN: 1874416680 - .</P -><P -><I -> Programming With GNU Software - </I ->, Loukides - et Oram - , <SPAN -CLASS="PUBLISHERNAME" -> O'Reilly & Associates - </SPAN ->, <SPAN -CLASS="PUBDATE" -> 1996 - </SPAN ->, ISBN: 1-56592-112-7 - .</P -><P -><I -> The Unix Programming Environment - </I ->, Kernighan - et Pike - , <SPAN -CLASS="PUBLISHERNAME" -> Prentice-Hall Inc. - </SPAN ->, <SPAN -CLASS="PUBDATE" -> 1984 - </SPAN ->, ISBN: 0-13-937681-x - .</P -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="c400.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -> </TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Pour plus d'informations</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="c400.html" ->Supérieur</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -> </TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/french/international/french/translations/debian_package_intro.html/book1.html b/french/international/french/translations/debian_package_intro.html/book1.html deleted file mode 100644 index 3f1a646172c..00000000000 --- a/french/international/french/translations/debian_package_intro.html/book1.html +++ /dev/null @@ -1,179 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE -> Créer un paquet Debian - </TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="NEXT" -TITLE=" Note du traducteur - " -HREF="f13.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="BOOK" -><H1 -CLASS="TITLE" -><A -NAME="AEN2" ->Créer un paquet Debian</A -></H1 -><H3 -CLASS="AUTHOR" -> Jaldhar - Vyas - </H3 -><H4 -CLASS="AFFILIATION" -></H4 ->et Frédéric - Dumont - <HR><DIV -CLASS="TOC" -><DL -><DT -><B ->Table des matières</B -></DT -><DT -><A -HREF="f13.html" ->Note du traducteur</A -></DT -><DT ->1. <A -HREF="c19.html" ->Introduction et premiers pas</A -></DT -><DT ->2. <A -HREF="c95.html" ->Création du paquet</A -></DT -><DD -><DL -><DT -><A -HREF="c95.html#AEN142" ->control</A -></DT -><DT -><A -HREF="c95190.html" ->Makefile</A -></DT -><DT -><A -HREF="c95211.html" ->rules</A -></DT -><DT -><A -HREF="c95223.html" ->dirs</A -></DT -><DT -><A -HREF="c95230.html" ->copyright</A -></DT -><DT -><A -HREF="c95236.html" ->README.debian</A -></DT -><DT -><A -HREF="c95241.html" ->changelog</A -></DT -><DT -><A -HREF="c95264.html" ->conffiles</A -></DT -><DT -><A -HREF="c95267.html" ->*.ex</A -></DT -></DL -></DD -><DT ->3. <A -HREF="c364.html" ->Construction</A -></DT -><DT ->4. <A -HREF="c400.html" ->Pour plus d'informations</A -></DT -><DD -><DL -><DT -><A -HREF="b414.html" ->Quelques livres d'introduction sur la programmation sous - Linux/Unix</A -></DT -></DL -></DD -></DL -></DIV -></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -> </TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="f13.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -> </TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Note du traducteur</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/french/international/french/translations/debian_package_intro.html/c19.html b/french/international/french/translations/debian_package_intro.html/c19.html deleted file mode 100644 index 6e52197aa4d..00000000000 --- a/french/international/french/translations/debian_package_intro.html/c19.html +++ /dev/null @@ -1,345 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE -> Introduction et premiers pas - </TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="PREVIOUS" -TITLE=" Note du traducteur - " -HREF="f13.html"><LINK -REL="NEXT" -TITLE=" Création du paquet - " -HREF="c95.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="f13.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="c95.html" ->Suivant</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN19" ->Chapitre 1. Introduction et premiers pas - </A -></H1 -><P -> Ce qui fait de Debian une distribution de si haut niveau est, - entre autre, son système de paquet. Bien qu'il y aie une grande - quantité de logiciels disponibles au format Debian, il est - parfois nécessaire d'installer des logiciels qui ne le sont - pas. Vous vous êtes peut-être demandé comment faire vos propres - paquets, et vous pensez que c'est difficile. J'ai moi-même (NdT - : c'est l'auteur qui parle, pas moi) commencé à travailler avec - les paquets Debian, et j'ai été plaisamment surpris de la - facilité de la tâche. Vous devez avoir quelques connaissances - sur la programmation Unix, mais vous ne devez pas être un - gourou. - </P -><P -> C'est la seconde version (NdT : et la première version - française) de cet article. Rien ne reste fixe très longtemps - dans le monde Debian, aussi ai-je fait certains changements - importants pour rester à jour. J'ai également inclus certains - conseils repris des mailing-lists des Utilisateurs et - Développeurs Debian, ou suggérés par les lecteurs. - </P -><P -> Avant de commencer, vous aurez besoin d'installer et de - configurer les paquets suivants. Je suppose que vous utilisez - Hamm, la distribution "instable" de Debian. Dans ce contexte, - "instable" signifie "en cours de développement". Hamm deviendra - la prochaine version (2.0) de Debian. - </P -><P -> Les paquets suivants sont disponibles dans la section devel de la - distribution. - </P -><P -></P -><DL -><DT ->binutils</DT -><DD -><P -> Les programmes de ce paquet sont utilisés pour assembler - et lier les fichiers objets -- les trucs dont sont faits - les programmes. - </P -></DD -><DT ->gcc</DT -><DD -><P -> C'est le compilateur C de GNU. La plupart des programmes - pour Linux sont écrits en C. - </P -></DD -><DT ->libc6-dev</DT -><DD -><P -> Ce sont les librairies C et les fichiers d'entête dont gcc - a besoin pour créer les fichiers objets. Au moment ou - j'écris, Debian est en transition entre libc5 et - libc6. Tous les nouveaux paquets devraient être créés en - utilisant libc6. Pour des instructions sur la façon de - passer à libc6, lisez le - <A -HREF="http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html" -TARGET="_top" -> mini-HOWTO - </A -> - de Scott Ellis. - </P -></DD -><DT ->libg++272</DT -><DD -><P -> Les librairies C++. fakeroot en a besoin. - </P -></DD -><DT ->make</DT -><DD -><P -> En général, la création d'un programme se fait en - plusieurs étapes. Plutôt que de taper encore et encore les - mêmes commandes, vous pouvez utiliser make pour - automatiser le processus. - </P -></DD -><DT ->fakeroot</DT -><DD -><P -> Comme le nom le suggère, ce programme simule le statut de - root nécessaire pour une partie de la création. Bien qu'en - cours de développement, fakeroot est - utilisable. Auparavant, il fallait un accès root ou un - programme comme sudo, mais ceci est plus facile et devrait - être plus sûr. - </P -></DD -></DL -><P -> Le paquet suivant est dans la section interpreters de la distribution - </P -><P -></P -><DL -><DT ->cpp</DT -><DD -><P -> Le pré-processeur C. - </P -></DD -></DL -><P -> Les paquets suivants sont dans la section utils de la distribution. - </P -><P -></P -><DL -><DT ->cpio</DT -><DD -><P -> C'est un archiveur comme tar ou zip. Requis par dpkg-dev. - </P -></DD -><DT ->file</DT -><DD -><P -> Ce programme bien utile détermine le type d'un - fichier. Requis par dpkg-dev. - </P -></DD -><DT ->debmake</DT -><DD -><P -> C'est un ensemble de plus haut niveau pour la création de - paquets Debian. Vous n'en avez pas vraiment besoin, mais - je le recommande. Il rend le processus nettement plus - simple, surtout pour les débutants. Nous utiliserons - debmake pour créer notre exemple de paquet. - </P -></DD -><DT ->dpkg-dev</DT -><DD -><P -> Ce paquet contient les outils nécessaire pour créer les - archives Debian. Il contient également les manuels du - Programmeur Debian et de Programmation de dpkg (NdT : - vérifier la traduction française du titre, en supposant - que cette traduction existe). - </P -></DD -><DT ->devscript</DT -><DD -><P -> Ce paquet est un compagnon de debmake et contient des - scripts utiles pour la création et la maintenance des - paquets. - </P -></DD -><DT ->patch</DT -><DD -><P -> patch prend un fichier contenant la liste des différences - produites par le programme diff, et l'applique à un - original, produisant la version patchée. - </P -></DD -></DL -><P -> Les paquets suivants sont dans la section doc de la distribution. - </P -><P -></P -><DL -><DT ->debian-policy</DT -><DD -><P -> Il s'agit de la source d'information définitive concernant - la création de paquet Debian. Si vous constatez la moindre - différence entre le manuel des normes et cet article, le - manuel des normes est la référence. - </P -></DD -><DT ->developers-reference</DT -><DD -><P -> Des informations pour les personnes désirant devenir des - développeurs Debian officiels. - </P -></DD -></DL -><P -> Vous aurez aussi besoin du paquet de cryptage pgp, pour signer - votre paquet. Ceci est particulièrement important si vous - désirez distribuer votre paquet à d'autres personnes. Cependant, - à cause d'une loi américaine, vous ne pouvez pas le télécharger - depuis le miroir ftp Debian le plus proche. Par contre, le site - ftp contient à la racine un fichier nomme README.non-us qui vous - dira comment obtenir une copie de pgp. - </P -><P -> Cette description que j'ai donnée ci-dessus ne sert que - d'introduction à ce que chaque paquet fait. Avant de continuer, - consultez attentivement la documentation de chaque - programme. Cela semble lourd a priori, mais plus tard vous serez - content de l'avoir fait. - </P -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="f13.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="c95.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Note du traducteur</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Création du paquet</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/french/international/french/translations/debian_package_intro.html/c364.html b/french/international/french/translations/debian_package_intro.html/c364.html deleted file mode 100644 index 0b67e2d2a87..00000000000 --- a/french/international/french/translations/debian_package_intro.html/c364.html +++ /dev/null @@ -1,253 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE ->Construction</TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="PREVIOUS" -TITLE=" *.ex - " -HREF="c95267.html"><LINK -REL="NEXT" -TITLE="Pour plus d'informations" -HREF="c400.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="c95267.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="c400.html" ->Suivant</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN364" ->Chapitre 3. Construction</A -></H1 -><P -> Nous sommes enfin prêt pour la création du paquet. - </P -><P -> Allez dans le répertoire principale d'Empire et lancez build - <PRE -CLASS="SCREEN" -> <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->cd ..</B -></TT -> - <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->build</B -></TT -> - </PRE -> - </P -><P -> Si vous avez fait des erreurs et que build échoue, et que vous - essayez encore, vous pouvez rencontrer un petit problème. La - deuxième fois que vous lancez build, vous pouvez avoir un - message d'erreur comme ceci : - <PRE -CLASS="PROGRAMLISTING" -> dpkg-source: unrepresentable changes to source - </PRE -> - </P -><P -> Cette erreur apparaît quand le paquet n'a pas été correctement - nettoyé. Soyez sûr que le but clean du makefile de l'application - retire tous les fichiers inutiles. Si nous relisons le makefile - d'Empire, nous voyons que clean n'efface pas l'exécutable - empire. clobber le fait à la place (lignes 79-84). Aussi nous - changeons la ligne 17 du fichier rules en : - <PRE -CLASS="PROGRAMLISTING" -> 17 -make clobber - </PRE -> - </P -><P -> Quand build a fini avec succès, remontez d'un répertoire : - <PRE -CLASS="SCREEN" -> <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->cd ..</B -></TT -> - </PRE -> - </P -><P -> Vous verrez quatre nouveaux fichiers - <P -></P -><DL -><DT ->empire_1.1-2_i386.deb</DT -><DD -><P -> est le paquet Debian complet. Vous pouvez utiliser dpkg - ou dselect pour l'installer ou le retirer comme - n'importe quel autre paquet. - </P -></DD -><DT ->empire_1.1-2_i386.changes</DT -><DD -><P -> Au fur et à mesure que vous travaillez sur un paquet, - son comportement va changer et de nouvelles capacités - seront ajoutées. Les personnes qui téléchargent votre - paquet peuvent regarder ce fichier et voir ce qui a - changé. Le fichier est généré à partir de - empire-1.1/debian/changelog. Il contient aussi la liste - des fichiers du paquet. Les longues chaînes de - caractères sont les sommes MD5 du fichier. Une personne - qui télécharge vos fichiers peut les tester avec le - programme md5sum (voir la page de manuel) et si les - numéros ne correspondent pas, elle saura que le fichier - est corrompu ou modifié. - </P -></DD -><DT ->empire_1.1.orig.tar.gz</DT -><DD -><P -> Ceci est le source original empaqueté de sorte que si - quelqu'un veut recréer votre paquet depuis le début, il - peut. - </P -></DD -><DT ->empire_1.1-2.dsc</DT -><DD -><P -> Ceci est un résumé du contenu du code source. Ce fichier - est généré à partir du fichier - empire-1.1/debian/control. - </P -></DD -></DL -> - </P -><P -> Et voilà. Vous êtes maintenant l'heureux créateur d'une nouvelle - archive Debian. Il reste encore beaucoup de travail à faire - avant d'être totalement conforme aux normes Debian (voyez le - Manuel des Normes pour plus de détails). Avec un peu de chance, - cette introduction vous aura montré que le processus complet - n'est pas aussi dur que beaucoup le pensent. - </P -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="c95267.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="c400.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->*.ex</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Pour plus d'informations</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/french/international/french/translations/debian_package_intro.html/c400.html b/french/international/french/translations/debian_package_intro.html/c400.html deleted file mode 100644 index 46becfe0a2f..00000000000 --- a/french/international/french/translations/debian_package_intro.html/c400.html +++ /dev/null @@ -1,176 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE ->Pour plus d'informations</TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="PREVIOUS" -TITLE="Construction" -HREF="c364.html"><LINK -REL="NEXT" -TITLE=" Quelques livres d'introduction sur la programmation sous - Linux/Unix - " -HREF="b414.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="c364.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="b414.html" ->Suivant</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN400" ->Chapitre 4. Pour plus d'informations</A -></H1 -><DIV -CLASS="FORMALPARA" -><P -><B -> L'aide spécifique à Debian - . </B -> <P -></P -><UL -><LI -><P -> Lisez toute la documentation dans /usr/doc/dpkg, - /usr/doc/debian, /usr/doc/debmake (surtout - README.debian.gz) et les pages de manuel pour tous les - programmes mentionnés dans cet article. - </P -></LI -><LI -><P -> En joignant la mailing list Debian Mentor - (debian-mentors@lists.debian.org), vous pourrez faire - équipe avec des développeurs Debian expérimentés qui - seront heureux de répondre à vos questions. Vous pouvez - vous inscrire - <A -HREF="mailto:debian-mentors-requests@lists.debian.org" -TARGET="_top" -> ici - </A ->. - </P -></LI -><LI -><P -> Si vous avez encore des questions, demandez sur la - mailing list Debian Developers - (debian-devel@lists.debian.org). Vous pouvez vous - inscrire - <A -HREF="mailto:debian-devel-requests@lists.debian.org" -TARGET="_top" -> ici - </A ->. - </P -></LI -></UL -> - </P -></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="c364.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="b414.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Construction</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Quelques livres d'introduction sur la programmation sous - Linux/Unix</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/french/international/french/translations/debian_package_intro.html/c95.html b/french/international/french/translations/debian_package_intro.html/c95.html deleted file mode 100644 index 4f14899ac10..00000000000 --- a/french/international/french/translations/debian_package_intro.html/c95.html +++ /dev/null @@ -1,575 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE -> Création du paquet - </TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="PREVIOUS" -TITLE=" Introduction et premiers pas - " -HREF="c19.html"><LINK -REL="NEXT" -TITLE="Makefile" -HREF="c95190.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="c19.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="c95190.html" ->Suivant</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN95" ->Chapitre 2. Création du paquet - </A -></H1 -><DIV -CLASS="TOC" -><DL -><DT -><B ->Table des matières</B -></DT -><DT -><A -HREF="c95.html#AEN142" ->control</A -></DT -><DT -><A -HREF="c95190.html" ->Makefile</A -></DT -><DT -><A -HREF="c95211.html" ->rules</A -></DT -><DT -><A -HREF="c95223.html" ->dirs</A -></DT -><DT -><A -HREF="c95230.html" ->copyright</A -></DT -><DT -><A -HREF="c95236.html" ->README.debian</A -></DT -><DT -><A -HREF="c95241.html" ->changelog</A -></DT -><DT -><A -HREF="c95264.html" ->conffiles</A -></DT -><DT -><A -HREF="c95267.html" ->*.ex</A -></DT -></DL -></DIV -><P -> Maintenant que vous avez installé les bons paquets et lu la - documentation, vous êtes prêt à commencer. Comme exemple, nous - allons créer un paquet Debian pour empire. Il s'agit d'un jeu de - stratégie où vous créez un empire. - </P -><P -> La première chose à faire est de télécharger le paquet - original. Sunsite est le plus grand miroir Linux que je - connaisse, aussi ai-je cherché dans mon miroir sunsite local et - l'ai trouvé - <A -HREF="http://www.cdrom.com/pub/linux/sunsite/games/strategy/empire.tar.gz" -TARGET="_top" -> ici - </A ->. - </P -><P -> Il y a deux types de paquets que vous pouvez faire, source et - binaire. Un paquet source contient le code que vous pouvez - compiler en un programme. Un paquet binaire contient juste le - programme fini. Si vous désirez contribuer un paquet à la - distribution Debian officielle, il doit venir avec des sources - librement utilisables. Consultez le - <A -HREF="https://www.debian.org/social_contract.html#guidelines" -TARGET="_top" -> Contrat social de Debian - </A -> - (NdT : le lire pour trouver la - traduction exacte des Guidelines...) pour les détails - exacts. Empire est disponible en source donc on pourra faire des - paquets source et binaire. - </P -><P -> debmake veut que les sources soient dans un répertoire nommé - <nom_paquet>-<numéro_version>, aussi créons un - répertoire empire-1.1 et décompressons le fichier .tgz dedans - (j'ai eu le numéro de version du fichier lsm qui vient avec - chaque programme chargé sur sunsite). - <PRE -CLASS="SCREEN" -> <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->mkdir empire-1.1</B -></TT -> - <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->mv empire.tar.gz empire-1.1</B -></TT -> - <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->cd empire-1.1</B -></TT -> - <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->tar -xvzf empire.tar.gz</B -></TT -> - </PRE -> - et si tout va bien - <PRE -CLASS="SCREEN" -> <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->rm empire.tar.gz</B -></TT -> - </PRE -> - </P -><P -> Quand vous lancez deb-make, certaines informations sont - utilisées. L'une d'entre elles est votre adresse email qui sera - inclue dans le paquet de sorte que les gens peuvent vous - contacter si ils ont des problèmes. Si vous voulez utiliser une - autre adresse que l'adresse actuelle, mettez la dans la variable - d'environnement EMAIL avant de lancer deb-make, comme ceci : - <PRE -CLASS="SCREEN" -> <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->export EMAIL=jaldhar@debian.org</B -></TT -> - </PRE -> - </P -><P -> Il vous sera demandé le genre de paquet que vous voulez générer. - </P -><P -></P -><DL -><DT ->single</DT -><DD -><P -> Choisissez ceci pour créer un paquet unique. - </P -></DD -><DT ->multiple</DT -><DD -><P -> Choisissez ceci pour créer plusieurs .deb à partir d'un - seul ensemble de code source. L'un des intérêts est de - diviser un paquet très gros en plus petites pièces de - sorte que les utilisateurs peuvent choisir ce qu'ils - installent. - </P -></DD -><DT ->library</DT -><DD -><P -> Choisissez ceci pour créer au moins deux .deb, l'un avec - la librairie dans /usr/lib, - l'autre,<nom_lib>-dev_<version_lib>.deb, avec - la documentation et les fichiers entêtes. - </P -></DD -></DL -><P -> Maintenant, lançons deb-make et choisissons l'option single. - <PRE -CLASS="SCREEN" -> <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->deb-make</B -></TT -> - </PRE -> - </P -><P -> Quand deb-make a fini, si vous tapez cd .., vous constatez qu'un - nouveau répertoire a été créé, nommé empire-1.1.orig, qui - contient le code source original et qui ne sera par la suite - plus modifié. Le répertoire empire-1.1 existe toujours. C'est - là que seront fait les changements. Il y a un nouveau répertoire - nommé debian. Examinez-le. - <PRE -CLASS="SCREEN" -> <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->cd empire-1.1/debian</B -></TT -> - </PRE -> - </P -><P -> Il y a plusieurs fichiers dans ce répertoire. Nous allons les - éditer pour configurer le comportement du paquet. - </P -><H1 -><A -NAME="AEN142" ->control</A -></H1 -><P -> Ce fichier contient les valeurs que dpkg et dselect utilisent - pour gérer le paquet. Voici ce que deb-make a créé pour nous : - <PRE -CLASS="PROGRAMLISTING" -> 1 Source: empire - 2 Section: unknown - 3 Priority: extra - 4 Maintainer: Jaldhar H. Vyas <jaldhar@debian.org> - 5 Standards-Version: 2.3.0.0 - 6 - 7 Package: empire - 8 Architecture: any - 9 Depends: ${shlibs:Depends} - 10 Description: Missing - 11 Missing - </PRE -> - (j'ai ajouté les numéros de lignes) - </P -><P -> Les lignes 1-5 sont les informations de contrôle du paquet - source. La ligne 1 est le nom du paquet source. - </P -><P -> La ligne 2 est la section du paquet. Changeons la en games. - </P -><P -> La ligne 3 indique à quel point il est important que - l'utilisateur installe ce paquet. Comme, hélas, notre jeu - n'est vraiment pas important, nous pouvons le laisser en - extra. La section et la priorité sont en fait uniquement - utilisés par dselect quand il trie les paquets et sélectionne - par défaut. Lisez le manuel des normes pour des indications - sur les valeurs à mettre. - </P -><P -> La ligne 4 est le nom et l'adresse email du responsable. - </P -><P -> La ligne 5 est la version du standard des Normes Debian que ce - paquet suit. - </P -><P -> Les lignes 7-11 concernent le paquet binaire. - </P -><P -> La ligne 7 est le nom du paquet binaire. - </P -><P -> La ligne 8 décrit l'architecture CPU pour laquelle ce paquet a - été compilé. Nous pouvons y laisser n'importe quoi car - <B -CLASS="COMMAND" ->dpkg-gencontrol(1)</B -> y mettra la valeur appropriée. - </P -><P -> La ligne 9 montre un des grands points forts du système de paquet - Debian. Les paquets peuvent être liés aux autres d'une manière ou - d'une autre. Outre les Depends, les autres relations sont - Recommands, Suggests, Pre-depends, Conflicts, Provides et - Replaces. Voici ce qu'ils signifient : - <P -></P -><DL -><DT ->Depends</DT -><DD -><P -> dpkg et dselect n'installeront votre paquet que si le - paquet duquel il dépend est installé. Utilisez cette - relation si votre programme ne tourne que si un autre - paquet est présent. - </P -></DD -><DT ->Recommends</DT -><DD -><P -> dselect n'installera votre paquet que si le paquet - recommandé est installé. dpkg vous laissera - l'installer sans restriction. Utilisez ceci pour les - paquets qui ne sont pas vraiment nécessaires, mais qui - sont souvent utilisés avec votre programme. - </P -></DD -><DT ->Suggests</DT -><DD -><P -> quand un utilisateur installe votre programme, dselect - lui demandera s'il doit installer les paquets - suggérés. dpkg ne s'en soucie pas. Utilisez ceci pour - les paquets qui fonctionnent bien avec votre - programme, mais qui ne sont pas nécessaires. - </P -></DD -><DT ->Pre-depends</DT -><DD -><P -> Cette relation est plus forte que Depends. dpkg et - dselect n'installeront votre programme que si les - paquets dont il pré-dépend sont installés et - correctement configurés. N'utilisez ceci que rarement, - et toujours après en avoir discuté sur la mailing-list - debian-devel. - </P -></DD -><DT ->Conflicts</DT -><DD -><P -> ni dpkg ni dselect n'installeront votre programme - à moins que chaque paquet avec lequel il est en conflit - n'ait été retiré. - </P -></DD -><DT ->Provides</DT -><DD -><P -> Pour certains types de paquets, lorsque de multiples - versions sont disponibles, des noms virtuels ont été - définis. La liste complète est dans - usr/doc/debian-policy/virtual-package-names-list.text.gz. - Utilisez ceci si votre programme fourni un paquet - virtuel. - </P -></DD -><DT ->Replaces</DT -><DD -><P -> Utilisez ceci quand votre programme remplace un autre - paquet. dpkg et dselect retirerons le paquet remplacé - avant d'installer le votre. - </P -></DD -></DL -> - </P -><P -> Ces champs ont une même syntaxe. C'est une liste de noms de - paquets séparés par des virgules. Les noms de paquets peuvent - être aussi une liste de noms alternatifs de paquets, séparés - par une barre verticale |. Le champs peut être restreint à des - versions particulières pour chaque nom de paquet. On l'indique - entre parenthèses après chaque nom de paquet. Les parenthèses - contiennent l'une des relations suivantes, suivie par un - numéro de version : <<, <=, =, >=, >>. Les - relations signifient, dans l'ordre, strictement plus vieux, - plus vieux ou égal, égal, plus récent ou égal, strictement - plus récent. La dernière capacité que je veux vous montrer est - $(shlibs:Depends). Ce champs sera automatiquement rempli par - debmake avec les noms de toutes les librairies partagées - (DLLs) telles que libc6, utilisées par le programme, de sorte - que vous n'avez pas à les indiquer vous-même. Une fois ceci - dit, vous pouvez laisser la ligne 9 telle quelle, car Empire - ne dépend d'aucun autre paquet. - </P -><P -> La ligne 10 est la description courte. La plupart des gens ont des - écrans texte de 80 caractères de long, aussi cela ne devrait pas - dépasser les 50 caractères. Changeons le en "an empire-building - strategy game". - </P -><P -> La ligne 11 est la description longue. Ce devrait être un - paragraphe qui donne plus de détail sur le paquet. La première - colonne de chaque ligne doit être vide. Il ne doit pas y avoir - de ligne vide. Mettez un . dans la deuxième colonne pour - simuler une ligne vide. - </P -><P -> Voici la nouvelle version du fichier de contrôle : - <PRE -CLASS="PROGRAMLISTING" -> 1 Source: empire - 2 Section: games - 3 Priority: extra - 4 Maintainer: Jaldhar H. Vyas <jaldhar@debian.org> - 5 Standards-Version: 2.3.0.0 - 6 - 7 Package: empire - 8 Architecture: any - 9 Depends: ${shlibs:Depends} - 10 Description: an empire-building strategy game - 11 A solitaire empire game (sometimes called 'VMS Empire'), colorized and - 11a speed tuned and with a save-interval option. - 11b . - 11c In this game a player has to try to build and defend an empire. - </PRE -> - </P -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="c19.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="c95190.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Introduction et premiers pas</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Makefile</TD -></TR -></TABLE -></DIV -></BODY -></HTML -> diff --git a/french/international/french/translations/debian_package_intro.html/c95190.html b/french/international/french/translations/debian_package_intro.html/c95190.html deleted file mode 100644 index d7ace71283f..00000000000 --- a/french/international/french/translations/debian_package_intro.html/c95190.html +++ /dev/null @@ -1,353 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE ->Makefile</TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="UP" -TITLE=" Création du paquet - " -HREF="c95.html"><LINK -REL="PREVIOUS" -TITLE=" Création du paquet - " -HREF="c95.html"><LINK -REL="NEXT" -TITLE="rules" -HREF="c95211.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="c95.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" ->Chapitre 2. Création du paquet</TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="c95211.html" ->Suivant</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN190" ->Makefile</A -></H1 -><P -> Quittons un instant le répertoire debian et remontons d'un - répertoire pour examiner le fichier Makefile de Empire. C'est - le fichier que <B -CLASS="COMMAND" ->make(1)</B -> utilisera pour - générer le programme automatiquement. - <PRE -CLASS="PROGRAMLISTING" -> 1 # %W% %G% %U% - (c) Copyright 1987, 1988 Chuck Simmons - 2 - 3 # - 4 # Copyright (C) 1987, 1988 Chuck Simmons - 5 # - 6 # See the file COPYING, distributed with empire, for restriction - 7 # and warranty information. - 8 - 9 # Change the line below for your system. If you are on a Sun or Vax, - 10 # you may want BSD. - 11 - 12 SYS = BSD - 13 #SYS = SYSV - 14 - 15 # Use -g to compile the program for debugging. - 16 - 17 DEBUG = -g -DDEBUG - 18 #DEBUG = -O - 19 - 20 # Use -p to profile the program. - 21 #PROFILE = -p -DPROFILE - 22 PROFILE = - 23 - 24 # Define all necessary libraries. 'curses' is necessary. 'termcap' - 25 # is needed on BSD systems. - 26 LIBS = -ldcurses - 27 #LIBS = -lcurses -ltermcap - 28 - 29 # You shouldn't have to modify anything below this line. - 30 - 31 CFLAGS = $(DEBUG) $(PROFILE) -D$(SYS) - 32 INS = /etc/install - 33 - 34 FILES = \ - 35 attack.c \ - 36 compmove.c \ - 37 data.c \ - 38 display.c \ - 39 edit.c \ - 40 empire.c \ - 41 game.c \ - 42 main.c \ - 43 map.c \ - 44 math.c \ - 45 object.c \ - 46 term.c \ - 47 usermove.c \ - 48 util.c - 49 - 50 HEADERS = empire.h extern.h - 51 - 52 OFILES = \ - 53 attack.o \ - 54 compmove.o \ - 55 data.o \ - 56 display.o \ - 57 edit.o \ - 58 empire.o \ - 59 game.o \ - 60 main.o \ - 61 map.o \ - 62 math.o \ - 63 object.o \ - 64 term.o \ - 65 usermove.o \ - 66 util.o - 67 - 68 all: empire - 69 - 70 empire: $(OFILES) - 71 $(CC) $(PROFILE) -o empire $(OFILES) $(LIBS) - 72 - 73 TAGS: $(HEADERS) $(FILES) - 74 etags $(HEADERS) $(FILES) - 75 - 76 lint: $(FILES) - 77 lint -u -D$(SYS) $(FILES) -lcurses - 78 - 79 clean: - 80 rm -f *.o TAGS - 81 - 82 clobber: clean - 83 rm -f empire empire.tar* - 84 - 85 install: empire - 86 $(INS) -o -f /usr/local/games empire - 87 - 88 installman: empire.6 - 89 $(INS) -f /usr/local/man/man6 empire.6 - 90 - 91 SOURCES = READ.ME empire.6 COPYING Makefile BUGS $(FILES) $(HEADERS) MANIFEST empire.lsm - 92 - 93 empire.tar: $(SOURCES) - 94 tar -cvf empire.tar $(SOURCES) - 95 empire.tar.gz: empire.tar - 96 gzip empire.tar - 97 - 98 empire.shar: $(SOURCES) - 99 shar $(SOURCES) >empire.shar - </PRE -> - </P -><P -> Avec de la chance, vous aurez dans votre paquet un joli - makefile bien créé, et vous n'aurez rien d'autre à faire. Mais - mon expérience est que vous avez toujours quelques - modifications à apporter pour qu'il fonctionne - correctement. Il n'y a pas la place nécessaire pour expliquer - les détails concernant la correction des makefiles, mais voici - quelques problèmes que vous pouvez rencontrer. - </P -><P -> Regardez les lignes 12 et 13. Il existe au moins deux - variantes principales de Unix, System V et BSD. Linux comporte - des éléments des deux, mais en général vous choisirez System - V. Aussi nous commentons la ligne 12 et remettons la ligne - 13. Nous ne voulons pas des options de débugages. - <PRE -CLASS="PROGRAMLISTING" -> 12 #SYS = BSD - 13 SYS = SYSV - </PRE -> - <PRE -CLASS="PROGRAMLISTING" -> 17 #DEBUG = -g -DDEBUG - 18 DEBUG = -O - </PRE -> - </P -><P -> Le plus important problème est d'oublier que les lignes dans les buts - telles que les lignes 35-48 doivent être indentées avec une - tabulation. Pas des espaces. Souvent, quand vous coupez-collez les - tabulations sont remplacées par des espaces, et vous aurez d'étranges - messages d'erreur. - </P -><P -> Les librairies sont souvent différentes d'une plateforme à l'autre. La - ligne 26 fait référence à dcurses, qui n'existe pas sous Debian. Nous - devons donc utiliser ncurses. - <PRE -CLASS="PROGRAMLISTING" -> 26 LIBS = -lncurses - 27 #LIBS = -lcurses -ltermcap - </PRE -> - </P -><P -> Un autre problème est la localisation des exécutables. Par - exemple, la ligne 32 place <B -CLASS="COMMAND" ->install(1)</B -> dans - /etc/. Sous Debian, ce programme est dans /usr/bin, aussi nous - devons éditer cette ligne. - <PRE -CLASS="PROGRAMLISTING" -> 32 INS = /usr/bin/install - </PRE -> - </P -><P -> Debian a des normes strictes quant à l'endroit où les - programmes doivent être installés. Ceci est spécifié dans - /usr/doc/debian-policy/fsstnd. Pour suivre ces normes, nous - devons installer l'exécutable dans /usr/games plutôt que dans - /usr/local/games, et la page de manuel dans /usr/man/man6 - plutôt que dans /usr/local/man/man6. Il va y avoir un autre - problème. Le programme install de Debian a d'autres options - que celui du système de l'auteur de Empire. En bref, -o - désigne le propriétaire, -g le groupe, et -m les permissions - pour chaque fichier. Le manuel des normes spécifie ce que - chacun devrait être. Sur les exécutables, nous utilisons -s - pour retirer les informations de débugage. Cela les rendra - plus petits de sorte qu'ils utiliseront moins de place disque - et moins de mémoire. Consultez la page de manuel d'install - pour plus de renseignements. - </P -><P -> Nous changeons les lignes 85-89 comme suit (les raisons pour - préfixer les chemins par debian/tmp seront décrites plus bas). - <PRE -CLASS="PROGRAMLISTING" -> 85 install: empire - 86 $(INS) -o root -g root -m 0755 -s empire debian/tmp/usr/games/empire - 87 - 88 installman: empire.6 - 89 $(INS) -o root -g root -m 0644 empire.6 debian/tmp/usr/man/man6/empire.6 - </PRE -> - </P -><P -> Beaucoup de makefiles auront une macro nommée DESTDIR qui - spécifie le répertoire d'installation. Si elle existe, vous - devriez la mettre à debian/tmp. - </P -><P -> Si vous être vraiment malchanceux, vous aurez à modifier le - source lui-même. Quand vous faites ce genre de modification, - faites-le de manière non-destructrice, de sorte que quelqu'un - ayant une autre plateforme n'ait pas à défaire vos - changements. Encadrez-les avec quelque chose du genre : - <PRE -CLASS="PROGRAMLISTING" -> #ifdef DEBIAN...#endif - </PRE -> - pour les isoler. Si vous faites des modifications, envoyez-les - à l'auteur original ou au responsable de sorte qu'elles soient - en standard dans la version suivante. - </P -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="c95.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="c95211.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Création du paquet</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="c95.html" ->Supérieur</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->rules</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/french/international/french/translations/debian_package_intro.html/c95211.html b/french/international/french/translations/debian_package_intro.html/c95211.html deleted file mode 100644 index 63d4a81eaa5..00000000000 --- a/french/international/french/translations/debian_package_intro.html/c95211.html +++ /dev/null @@ -1,259 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE ->rules</TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="UP" -TITLE=" Création du paquet - " -HREF="c95.html"><LINK -REL="PREVIOUS" -TITLE="Makefile" -HREF="c95190.html"><LINK -REL="NEXT" -TITLE=" dirs - " -HREF="c95223.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="c95190.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" ->Chapitre 2. Création du paquet</TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="c95223.html" ->Suivant</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN211" ->rules</A -></H1 -><P -> Maintenant, nous revenons dans le répertoire debian et jetons - un oeil aux règles que dpkg-dev utilise pour créer vraiment le - paquet. Voici ce que debmake nous donne comme fichier de - règles par défaut : - <PRE -CLASS="PROGRAMLISTING" -> 1 #!/usr/bin/make -f - 2 # Made with the aid of debmake, by Christoph Lameter, - 3 # based on the sample debian/rules file for GNU hello by Ian Jackson. - 4 - 5 package=empire - 6 - 7 build: - 8 $(checkdir) - 9 - 10 make CFLAGS="-O2 -g -Wall" - 11 - 12 touch build - 13 - 14 clean: - 15 $(checkdir) - 16 -rm -f build - 17 -make clean - 18 -rm -f `find . -name "*~"` - 19 -rm -rf debian/tmp debian/files* core debian/substvars - 20 - 21 binary-indep: checkroot build - 22 $(checkdir) - 23 # There are no architecture-independent files to be uploaded - 24 # generated by this package. If there were any they would be - 25 # made here. - 26 - 27 binary-arch: checkroot build - 28 $(checkdir) - 29 -rm -rf debian/tmp - 30 install -d debian/tmp - 31 cd debian/tmp && install -d `cat ../dirs` - 32 make install DESTDIR=`pwd`/debian/tmp - 33 # Must have debmake installed for this to work. Otherwise please copy - 34 # /usr/bin/debstd into the debian directory and change debstd to debian/debstd - 35 debstd BUGS - 36 dpkg-gencontrol - 37 chown -R root.root debian/tmp - 38 chmod -R go=rX debian/tmp - 39 dpkg --build debian/tmp .. - 40 - 41 define checkdir - 42 test -f debian/rules - 43 endef - 44 - 45 # Below here is fairly generic really - 46 - 47 binary: binary-indep binary-arch - 48 - 49 checkroot: - 50 $(checkdir) - 51 test root = "`whoami`" - 52 - 53 .PHONY: binary binary-arch binary-indep clean checkroot - </PRE -> - </P -><P -> Vous vous êtes probablement familiarisé avec des lignes comme - la ligne une, de part les scripts shell ou perl. Cela signifie - que le fichier sera exécuté par make. La ligne 10 déclenche le - fichier makefile de l'application. La partie CFLAGS de cette - ligne indique des options de compilation par défaut, au cas ou - le makefile de l'application n'en aurait pas. Nous n'avons pas - de soucis à nous faire pour cela (voir la ligne 31 du makefile - d'Empire), aussi nous pouvons l'effacer : - <PRE -CLASS="PROGRAMLISTING" -> 10 make - </PRE -> - </P -><P -> On y arrive rarement du premier coup, aussi les lignes 14-20 - nettoient les crasses inutiles laissées par les essais ratés. - </P -><P -> Les lignes 27-40 sont le coeur du fichier rules. Un répertoire - nommé tmp est créé dans le répertoire debian (si il existe - déjà, il sera effacé pour reprendre dans un état initial). Le - paquet sera assemblé ici. C'est pour cela que dans le makefile - d'Empire, nous avons spécifié debian/tmp comme répertoire - racine. Dans la ligne 31 sont créés les répertoires dans - lesquels nous allons effectuer l'installation. Ils sont pris - dans le fichier dirs dont nous parlerons plus bas. La ligne 32 - lance le but install du fichier makefile d'Empire. La ligne 35 - lance <B -CLASS="COMMAND" ->debstd(1)</B -> qui vient avec - debmake. debstd est une boîte noire qui va modifier votre - paquet pour qui soit conforme aux normes Debian. Si vous - voulez des détails, lisez la page de manuel, ou regardez les - sources (c'est juste un script shell), et je vous encourage - à le faire. Mais l'avantage de la boîte noire, c'est que vous - n'avez pas à savoir ce qu'elle fait, vous pouvez supposer - qu'elle le fait correctement. Quand les normes Debian - changeront, ce sera transparent pour vous. Installez juste une - version mise à jour de debmake qui supportent les nouvelles - normes, recompilez et vous serez conforme (pour la plupart des - normes. Toutes les modifications des normes ne peuvent pas - être aisément gérées automatiquement, aussi est-il payant de - comprendre le problème en profondeur avant de se fier à un - bout de code.) La ligne 36 lance dpkg-gencontrol qui va créer - le fichier de contrôle du paquet. Voyez - <B -CLASS="COMMAND" ->deb(5)</B -> pour des détails sur le format de - paquet Debian. Enfin, la ligne 39 crée le paquet proprement - dit. - </P -><P -> Les lignes 41 et suivantes sont juste des macros utilisées par - le fichier rules et vous n'avez pas à vous en soucier. - </P -><P -> Ce qu'il faut savoir du fichier rules créé par debmake est - qu'il est juste une suggestion. Il fonctionne pour des paquets - simples, mais pour des paquets plus compliqués, n'hésitez à y - faire des ajouts ou des retraits pour vos besoin. - </P -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="c95190.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="c95223.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Makefile</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="c95.html" ->Supérieur</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->dirs</TD -></TR -></TABLE -></DIV -></BODY -></HTML -> diff --git a/french/international/french/translations/debian_package_intro.html/c95223.html b/french/international/french/translations/debian_package_intro.html/c95223.html deleted file mode 100644 index 4a4a1150840..00000000000 --- a/french/international/french/translations/debian_package_intro.html/c95223.html +++ /dev/null @@ -1,156 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE -> dirs - </TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="UP" -TITLE=" Création du paquet - " -HREF="c95.html"><LINK -REL="PREVIOUS" -TITLE="rules" -HREF="c95211.html"><LINK -REL="NEXT" -TITLE=" copyright - " -HREF="c95230.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="c95211.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" ->Chapitre 2. Création du paquet</TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="c95230.html" ->Suivant</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN223" ->dirs</A -></H1 -><P -> Ce fichier indique les répertoires que votre paquet va - créer. Par défaut, il s'agit de - <PRE -CLASS="PROGRAMLISTING" -> 1 usr/bin - 2 usr/sbin - </PRE -> - </P -><P -> Remarquez que le slash de tête n'est pas inclus. Nous - changeons en - <PRE -CLASS="PROGRAMLISTING" -> 1 usr/games - 2 usr/man/man6 - </PRE -> - </P -><P -> Maintenant, il nous reste quelques fichiers de plus à créer, - et notre paquet sera complet. - </P -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="c95211.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="c95230.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->rules</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="c95.html" ->Supérieur</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->copyright</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/french/international/french/translations/debian_package_intro.html/c95230.html b/french/international/french/translations/debian_package_intro.html/c95230.html deleted file mode 100644 index 703b3d72945..00000000000 --- a/french/international/french/translations/debian_package_intro.html/c95230.html +++ /dev/null @@ -1,182 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE -> copyright - </TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="UP" -TITLE=" Création du paquet - " -HREF="c95.html"><LINK -REL="PREVIOUS" -TITLE=" dirs - " -HREF="c95223.html"><LINK -REL="NEXT" -TITLE=" README.debian - " -HREF="c95236.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="c95223.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" ->Chapitre 2. Création du paquet</TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="c95236.html" ->Suivant</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN230" ->copyright</A -></H1 -><P -> Ce fichier contient les informations concernant les droits de copie - du paquet. Voici ce que debmake crée par défaut : - <PRE -CLASS="PROGRAMLISTING" -> 1 This package was debianized by Jaldhar H. Vyas jaldhar@debian.org on - 2 Thu, 11 Sep 1997 22:49:54 -0400. - 3 - 4 It was downloaded from <fill in ftp site> - 5 - 6 Copyright: - 7 - 8 <Must follow here> - </PRE -> - </P -><P -> Les choses importantes à inclure dans ce fichier sont l'endroit où - vous avez trouvé ce paquet, et la licence de copie. Si la licence est - l'une des licences bien connue de logiciel libre, comme GNU, BSD ou - Artistic, vous n'avez pas à inclure le texte entier, vous pouvez juste - faire référence au fichier adéquat dans /usr/doc/copyright. Empire est - sous licence GPL, aussi nous changeons le fichier en : - <PRE -CLASS="PROGRAMLISTING" -> 1 This package was debianized by Jaldhar H. Vyas jaldhar@debian.org on - 2 Thu, 11 Sep 1997 22:49:54 -0400. - 3 - 4 It was downloaded from http://www.cdrom.com/pub/linux/sunsite/games/strategy - 5 - 6 Copyright: (c) 1987, 1988 Chuck Simmons - 7 - 8 This program is free software; you can redistribute it and/or modify - 8a it under the terms of the GNU General Public License as published by - 8b the Free Software Foundation; either version 2, or (at your option) - 8c any later version. - 8d - 8e This program is distributed in the hope that it will be useful, - 8f but WITHOUT ANY WARRANTY; without even the implied warranty of - 8g MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - 8h GNU General Public License for more details. - 8i - 8j You should have received a copy of the GNU General Public License - 8k along with Debian system; see the file /usr/doc/copyright/GPL. If not, - 8l write to the Free Software Foundation, Inc., 59 Temple Place - Suite - 8m 330, Boston, MA 02111-1307, USA. - </PRE -> - </P -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="c95223.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="c95236.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->dirs</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="c95.html" ->Supérieur</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->README.debian</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/french/international/french/translations/debian_package_intro.html/c95236.html b/french/international/french/translations/debian_package_intro.html/c95236.html deleted file mode 100644 index 249e1886e55..00000000000 --- a/french/international/french/translations/debian_package_intro.html/c95236.html +++ /dev/null @@ -1,153 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE -> README.debian - </TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="UP" -TITLE=" Création du paquet - " -HREF="c95.html"><LINK -REL="PREVIOUS" -TITLE=" copyright - " -HREF="c95230.html"><LINK -REL="NEXT" -TITLE=" changelog - " -HREF="c95241.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="c95230.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" ->Chapitre 2. Création du paquet</TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="c95241.html" ->Suivant</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN236" ->README.debian</A -></H1 -><P -> Tous les autres détails ou variations entre le paquet original - et votre version debianisée (NdT: un néologisme ?) doivent - être documentée ici. Voici à quoi la création par défaut de - debmake ressemble : - <PRE -CLASS="PROGRAMLISTING" -> empire for DEBIAN - ---------------------- - - Comments regarding the Package - - Jaldhar H. Vyas <jaldhar@debian.org>, Thu, 11 Sep 1997 22:49:54 -0400 - </PRE -> - </P -><P -> Nous n'avons rien de particulier à ajouter, aussi le - laissons-nous tel quel. - </P -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="c95230.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="c95241.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->copyright</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="c95.html" ->Supérieur</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->changelog</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/french/international/french/translations/debian_package_intro.html/c95241.html b/french/international/french/translations/debian_package_intro.html/c95241.html deleted file mode 100644 index 9901b345cdf..00000000000 --- a/french/international/french/translations/debian_package_intro.html/c95241.html +++ /dev/null @@ -1,276 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE -> changelog - </TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="UP" -TITLE=" Création du paquet - " -HREF="c95.html"><LINK -REL="PREVIOUS" -TITLE=" README.debian - " -HREF="c95236.html"><LINK -REL="NEXT" -TITLE=" conffiles - " -HREF="c95264.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="c95236.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" ->Chapitre 2. Création du paquet</TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="c95264.html" ->Suivant</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN241" ->changelog</A -></H1 -><P -> Au fur et à mesure que vous travaillerez, le comportement de - votre paquet va changer, de nouvelles capacités seront - ajoutées, et des erreurs seront corrigées. Les personnes qui - téléchargent votre paquet peuvent consulter ce fichier et voir - ce qui a changé. Voici ce à quoi ressemble le changelog par - défaut que crée debmake : - <PRE -CLASS="PROGRAMLISTING" -> 1 empire (1.1-1) unstable; urgency=low - 2 - 3 * Initial Release. - 4 - 5 -- Jaldhar H. Vyas <jaldhar@debian.org> Thu, 11 Sep 1997 22:49:54 -0400 - 6 - 7 Local variables: - 8 mode: debian-changelog - 9 add-log-mailing-address: "jaldhar@debian.org" - 10 End: - </PRE -> - </P -><P -> La ligne 1 est le nom du paquet, sa version, sa distribution - et son urgence. Le numéro de version ici est ce qui sera - utilisé comme numéro de version du paquet. Ne bidouillez pas - cette ligne. Les lignes de 3 à 5 sont une entrée - d'archive. Nous pouvons y ajouter des éléments avec le - programme <B -CLASS="COMMAND" ->dch(1)</B -> qui vient avec le paquet devscript - (c'est un alias pour debchange. Vous pouvez l'invoquez avec un - nom ou l'autre, cela ne fait aucune différence). Les lignes 7 - à 10 sont des informations de mode pour Emacs(?). Ajoutons une - ligne à changelog. Si le commentaire est court, vous pouvez - l'ajouter directement à la ligne de commande de dch : - <PRE -CLASS="SCREEN" -> <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->dch This is my first Debian package</B -></TT -> - </PRE -> - </P -><P -> Vous pouvez aussi lancer dch seul. Cela démarrera votre - éditeur par défaut, qui est, par ordre de préférence, le - programme défini par la variable d'environnement $VISUAL, le - programme défini par la variable d'environnement $EDITOR, - <B -CLASS="COMMAND" ->joe(1)</B -> ou <B -CLASS="COMMAND" ->ae(1)</B ->. Quand - l'éditeur a démarré, vous pouvez entrer votre - commentaire. Quelque soit la méthode employée, voici ce à quoi - vous devez arriver : - <PRE -CLASS="PROGRAMLISTING" -> 1 empire (1.1-1) unstable; urgency=low - 2 - 2a * This is my first debian package. - 3 * Initial Release. - 4 - 5 -- Jaldhar H. Vyas <jaldhar@debian.org> Thu, 11 Sep 1997 22:49:54 -0400 - 6 - 7 Local variables: - 8 mode: debian-changelog - 9 add-log-mailing-address: "jaldhar@debian.org" - 10 End: - </PRE -> - </P -><P -> Quand vous distribuez une nouvelle version, vous devez - incrémenter le numéro de version. Vous le faites avec la - commande : - <PRE -CLASS="SCREEN" -> <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->dch -n This is my first debian package.</B -></TT -> - </PRE -> - </P -><P -> Si, pour une raison quelconque, vous voulez incrémenter le - numéro de version par plus que 1, par 15 par exemple, vous - utilisez cette commande : - <PRE -CLASS="SCREEN" -> <TT -CLASS="PROMPT" ->$</TT -> <TT -CLASS="USERINPUT" -><B ->dch -v 15 This is my first debian package.</B -></TT -> - </PRE -> - </P -><P -> Nous supposerons que vous voulez juste incrémenter le numéro - de version par 1. Voici ce à quoi ressemble changelog - maintenant : - <PRE -CLASS="PROGRAMLISTING" -> 1 empire (1.1-2) unstable; urgency=low - 2 - 2a * This is my first debian package - 2b - 2c -- Jaldhar H. Vyas <jaldhar@debian.org> Sun, 14 Sep 1997 12:04:44 -0500 - 2d - 2e empire (1.1-1) unstable; urgency=low - 2f - 3 * Initial Release. - 4 - 5 -- Jaldhar H. Vyas <jaldhar@debian.org> Thu, 11 Sep 1997 22:49:54 -0400 - 6 - 7 Local variables: - 8 mode: debian-changelog - 9 add-log-mailing-address: "jaldhar@debian.org" - 10 End: - </PRE -> - </P -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="c95236.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="c95264.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->README.debian</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="c95.html" ->Supérieur</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->conffiles</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/french/international/french/translations/debian_package_intro.html/c95264.html b/french/international/french/translations/debian_package_intro.html/c95264.html deleted file mode 100644 index 80aea38ada4..00000000000 --- a/french/international/french/translations/debian_package_intro.html/c95264.html +++ /dev/null @@ -1,145 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE -> conffiles - </TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="UP" -TITLE=" Création du paquet - " -HREF="c95.html"><LINK -REL="PREVIOUS" -TITLE=" changelog - " -HREF="c95241.html"><LINK -REL="NEXT" -TITLE=" *.ex - " -HREF="c95267.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="c95241.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" ->Chapitre 2. Création du paquet</TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="c95267.html" ->Suivant</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN264" ->conffiles</A -></H1 -><P -> Une des choses les plus énervantes avec les logiciels est - quand vous avez passé un bon bout de temps à configurer un - programme pour qu'une mise à jour efface tous vos - changements. Debian résout ce problème en marquant les - fichiers de configurations, de sorte que quand vous mettez - à jour un programme, il vous sera demandé si vous voulez garder - votre ancienne configuration ou pas. Vous faites ceci en - entrant le chemin complet de chaque fichier de configuration - (ils sont en général dans /etc), un par ligne, dans un fichier - nommé conffiles. Empire n'a aucun fichier de configuration. - </P -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="c95241.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="c95267.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->changelog</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="c95.html" ->Supérieur</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->*.ex</TD -></TR -></TABLE -></DIV -></BODY -></HTML -> diff --git a/french/international/french/translations/debian_package_intro.html/c95267.html b/french/international/french/translations/debian_package_intro.html/c95267.html deleted file mode 100644 index 68f517fe292..00000000000 --- a/french/international/french/translations/debian_package_intro.html/c95267.html +++ /dev/null @@ -1,527 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE -> *.ex - </TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="UP" -TITLE=" Création du paquet - " -HREF="c95.html"><LINK -REL="PREVIOUS" -TITLE=" conffiles - " -HREF="c95264.html"><LINK -REL="NEXT" -TITLE="Construction" -HREF="c364.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="c95264.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" ->Chapitre 2. Création du paquet</TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="c364.html" ->Suivant</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN267" ->*.ex</A -></H1 -><P -> Certains paquets doivent faire plus que de simplement installer des - fichiers. Par exemple, un serveur peut avoir besoin d'insérer une - ligne dans /etc/inetd.conf. Les fichiers en suffixe .ex sont des - exemples de la manière d'ajouter ce genre de support à votre - paquet. Pour en utiliser un, éditez et retirez le suffixe .ex . Voici - une brève description de ce que fait chaque fichier. - </P -><P -></P -><DL -><DT ->crontab.ex</DT -><DD -><P -> Ceci ajoute une ligne au fichier /etc/crontab pour - exécuter un programme de manière régulière. Les normes - actuelles spécifient qu'un paquet ne devrait pas toucher - à /etc/crontab, aussi si vous pensez qu'il y a une bonne - raison de le faire, discutez-en d'abord sur les mailing - lists. Si vous renommez ce fichier en cron.daily, il - sera ajouté dans /etc/cron.daily/ et exécuté tous les - jours. Pareillement, si vous le renommez cron.weekly il - sera ajouté dans /etc/cron.weekly/, et pour cron.monthly - il sera ajouté dans /etc/cron.monthly/. Comme les noms - le suggèrent (pour peu qu'on parle un brin anglais, - NdT), ils sont exécutés respectivement toutes les - semaines et tous les mois. Lisez les pages de manuel de - <B -CLASS="COMMAND" ->crontab(1)</B -> et - <B -CLASS="COMMAND" ->crontab(5)</B -> pour plus de détails. Les - normes précisent que ces fichiers doivent être des - scripts, et qu'ils doivent être enregistrés comme - conffiles. Empire n'en a pas besoin, aussi nous - l'effacerons. - </P -></DD -><DT ->diversion.ex</DT -><DD -><P -> Quelque chose à voir avec un détournement, peut-être ? - Empire n'en a pas besoin, nous l'effaçons (NdT : il - s'agit du mécanisme utilisé sous Debian pour permettre - d'avoir plusieurs programmes aux capacités similaires - tout en enregistrant un programme par défaut.) - </P -></DD -><DT ->inetd.conf.ex</DT -><DD -><P -> Ceci ajoute une ligne dans /etc/inetd.conf pour exécuter - un démon. Lisez les pages de manuel pour - <B -CLASS="COMMAND" ->inetd.conf(1)</B -> pour des détails sur le - format. Empire n'en a pas besoin, aussi nous l'effaçons. - </P -></DD -><DT ->info.ex</DT -><DD -><P -> Éditez ce fichier pour fournir de la documentation au - format GNU info. Empire n'en a pas besoin, aussi nous - l'effaçons. - </P -></DD -><DT ->init.d.ex</DT -><DD -><P -> Ceci est un script par défaut pour /etc/init.d/. Si - votre programme doit être lancé au moment du démarrage - et stoppé à l'arrêt de l'ordinateur, ou lorsque le - niveau d'exécution (runlevel) change , éditez le script - pour faire les actions nécessaires. Empire n'en a pas - besoin, aussi nous l'effaçons. - </P -></DD -><DT ->manpage.1.ex</DT -><DD -><P -> Votre programme devrait avoir une page de manuel. S'il - n'en a pas, voici un patron que vous pouvez - remplir. Lisez les pages de manuel de <B -CLASS="COMMAND" ->man(7)</B -> pour - une description rapide de la façon de créer une page de - manuel. Soyez sûr de donner à ce fichier le nom du - programme avec l'extension correspondant à la section du - manuel dans laquelle il devrait aller. Voici une liste : - <DIV -CLASS="TABLE" -><P -><B ->Tableau 2-1. Section des pages de manuel</B -></P -><TABLE -BORDER="1" -CLASS="CALSTABLE" -><TR -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Section - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Description - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Notes - </TD -></TR -><TR -><TD -ALIGN="LEFT" -VALIGN="TOP" -> 1 - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Commandes utilisateur - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Commandes ou scripts exécutables - </TD -></TR -><TR -><TD -ALIGN="LEFT" -VALIGN="TOP" -> 2 - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Appels systèmes - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Fonctions fournies par le noyau - </TD -></TR -><TR -><TD -ALIGN="LEFT" -VALIGN="TOP" -> 3 - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Appels librairies - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Fonctions des librairies système - </TD -></TR -><TR -><TD -ALIGN="LEFT" -VALIGN="TOP" -> 4 - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Fichiers spéciaux - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> D'ordinaire trouvés dans /dev - </TD -></TR -><TR -><TD -ALIGN="LEFT" -VALIGN="TOP" -> 5 - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Formats de fichiers - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Par exemple, le format de /etc/passwd - </TD -></TR -><TR -><TD -ALIGN="LEFT" -VALIGN="TOP" -> 6 - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Jeux - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Ou tout autre programme frivole - </TD -></TR -><TR -><TD -ALIGN="LEFT" -VALIGN="TOP" -> 7 - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Paquets de macros - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Comme les macros de man - </TD -></TR -><TR -><TD -ALIGN="LEFT" -VALIGN="TOP" -> 8 - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Administration Système - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> D'ordinaire uniquement lancé par root - </TD -></TR -><TR -><TD -ALIGN="LEFT" -VALIGN="TOP" -> 9 - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Routine noyau - </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -> Appels non-standards et internes - </TD -></TR -></TABLE -></DIV -> - </P -><P -> La page de manuel de Empire devrait être nommée - empire.6. Comme il y a déjà une page de manuel empire.6, - nous pouvons effacer cet exemple. - </P -></DD -><DT ->menu.ex</DT -><DD -><P -> Les utilisateurs de X Windows ont un gestionnaire de - fenêtres avec des menus qui peuvent être configurés pour - lancer des programmes. S'ils ont installés le paquet - Debian menu, un ensemble de menus pour chaque programme - sur le système sera créé pour eux. Ce n'est pas requis - par les normes Debian, mais vos utilisateurs - apprécieront. Nous pouvons ajouter Empire aux menus en - éditant ce fichier. Voici ce que debmake crée par défaut - : - <PRE -CLASS="PROGRAMLISTING" -> text Apps/Misc empire none "empire Description" /usr/bin/empire - </PRE -> - </P -><P -> Le premier champ indique le type d'interface requise par - le programme (text ou X11). Le champ suivant est le nom - de menu et de sous-menu dans lequel l'entrée devrait - apparaître. La liste de sections actuelles est dans - /usr/doc/menu/README. Le troisième est le nom du - menu. Le quatrième est l'icône du programme, ou rien - s'il n'y en a pas. Le cinquième est le texte qui - apparaîtra au menu. Le sixième est la commande qui lance - le programme. - </P -><P -> Remplacez l'entrée du menu par : - <PRE -CLASS="PROGRAMLISTING" -> text Games/Strategy empire none "Build an empire" /usr/bin/empire - </PRE -> - </P -><TABLE -CLASS="SIDEBAR" -BORDER="1" -CELLPADDING="5" -><TR -><TD -><DIV -CLASS="SIDEBAR" -><P -></P -><P -> NdT : menu a changé de format, mais reste compatible - avec l'ancienne version. Aujourd'hui, on préférera - ceci : - <PRE -CLASS="PROGRAMLISTING" -> ?package(empire):needs="text" \ - section="Games/Strategy" \ - title="Build an empire" \ - icon="none" \ - command="/usr/bin/empire" - </PRE -> - </P -><P -></P -></DIV -></TD -></TR -></TABLE -></DD -><DT ->watch.ex</DT -><DD -><P -> Vous pouvez utiliser ce fichier en plus des programmes - <B -CLASS="COMMAND" ->uscan(1)</B -> et - <B -CLASS="COMMAND" ->uupdate(1)</B -> du paquet devscript pour - surveiller le site duquel vous avez eu les sources - originelles. Lisez les pages de manuel pour plus de - détail. Voici ce que debmake crée par défaut : - <PRE -CLASS="PROGRAMLISTING" -> 1 # Example watch control file for uscan - 2 # Rename this file to "watch" and then you can run the "uscan" command - 3 # to check for upstream updates and more. - 4 # Site Directory Pattern Version Script - 5 sunsite.unc.edu /pub/Linux/Incoming empire-*.tar.gz debian uupdate - </PRE -> - </P -><P -> Changez le en : - <PRE -CLASS="PROGRAMLISTING" -> 5 www.cdrom.com /pub/Linux/sunsite/games/strategy empire-*.tar.gz debian uupdate - </PRE -> - </P -></DD -></DL -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="c95264.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="c364.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->conffiles</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="c95.html" ->Supérieur</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Construction</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/french/international/french/translations/debian_package_intro.html/docbook.css b/french/international/french/translations/debian_package_intro.html/docbook.css deleted file mode 100644 index b42fb271830..00000000000 --- a/french/international/french/translations/debian_package_intro.html/docbook.css +++ /dev/null @@ -1,20 +0,0 @@ -.BOOK .TITLE { text-align: center } -.BOOK .SUBTITLE { text-align: center } -.BOOK .CORPAUTHOR { text-align: center } -.BOOK .AUTHOR { text-align: center } -.BOOK .AFFILIATION { text-align: center } -.BOOK .EDITEDBY { text-align: center } -.BOOK .EDITOR { text-align: center } -.BOOK .GRAPHIC { text-align: center } - -.ARTICLE .TITLE { text-align: center } -.ARTICLE .SUBTITLE { text-align: center } -.ARTICLE .CORPAUTHOR { text-align: center } -.ARTICLE .AUTHOR { text-align: center } -.ARTICLE .AFFILIATION { text-align: center } -.ARTICLE .EDITEDBY { text-align: center } -.ARTICLE .EDITOR { text-align: center } -.ARTICLE .GRAPHIC { text-align: center } -.ARTICLE .ABSTRACT { margin-left: 0.5in; - margin-right: 0.5in; - font-style: italic } diff --git a/french/international/french/translations/debian_package_intro.html/f13.html b/french/international/french/translations/debian_package_intro.html/f13.html deleted file mode 100644 index cd309b1011b..00000000000 --- a/french/international/french/translations/debian_package_intro.html/f13.html +++ /dev/null @@ -1,145 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML -><HEAD -><TITLE -> Note du traducteur - </TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet version 1.13"><LINK -REL="HOME" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="PREVIOUS" -TITLE=" Créer un paquet Debian - " -HREF="book1.html"><LINK -REL="NEXT" -TITLE=" Introduction et premiers pas - " -HREF="c19.html"></HEAD -><BODY -BGCOLOR="#FFFFFF" -TEXT="#000000" -><DIV -CLASS="NAVHEADER" -><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->Créer un paquet Debian</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="book1.html" ->Précédent</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="c19.html" ->Suivant</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><H1 -><A -NAME="AEN13" -> Note du traducteur - </A -></H1 -><P -> Ceci est la version française de "Making a Debian - Package". La version originale peut être trouvée à <A -HREF="http://www.braincells.com/debian/make_package/" -TARGET="_top" ->http://www.braincells.com/debian/make_package/</A ->. - L'auteur orginal, Jaldhar Vyas peut être joint à <A -HREF="mailto:jaldhar@debian.org" -TARGET="_top" ->jaldhar@debian.org</A -> - et le traducteur, Frédéric Dumont, à <A -HREF="mailto:frederic.dumont@gate71.be" -TARGET="_top" ->frederic.dumont@gate71.be</A -> - </P -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="book1.html" ->Précédent</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="book1.html" ->Sommaire</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="c19.html" ->Suivant</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Créer un paquet Debian</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Introduction et premiers pas</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/french/international/french/translations/debian_package_intro.sgml b/french/international/french/translations/debian_package_intro.sgml deleted file mode 100644 index ffc4c927712..00000000000 --- a/french/international/french/translations/debian_package_intro.sgml +++ /dev/null @@ -1,1738 +0,0 @@ -<!DOCTYPE book PUBLIC "-//Davenport//DTD DocBook V3.0//EN"> -<book lang="fr"> - <bookinfo> - <title> - Créer un paquet Debian - </title> - <authorgroup> - <author> - <firstname> - Jaldhar - </firstname> - <surname> - Vyas - </surname> - <contrib> - Auteur initial - </contrib> - </author> - <othercredit> - <firstname> - Frédéric - </firstname> - <surname> - Dumont - </surname> - <contrib> - Traducteur de la version française - </contrib> - </othercredit> - </authorgroup> - </bookinfo> - <preface> - <title> - Note du traducteur - </title> - <para> - Ceci est la version française de "Making a Debian - Package". La version originale peut être trouvée à <ulink url="http://www.braincells.com/debian/make_package/">http://www.braincells.com/debian/make_package/</ulink>. - L'auteur orginal, Jaldhar Vyas peut être joint à <ulink url="mailto:jaldhar@debian.org">jaldhar@debian.org</ulink> - et le traducteur, Frédéric Dumont, à <ulink url="mailto:frederic.dumont@gate71.be">frederic.dumont@gate71.be</ulink> - </para> - </preface> - <chapter> - <title> - Introduction et premiers pas - </title> - <para> - Ce qui fait de Debian une distribution de si haut niveau est, - entre autre, son système de paquet. Bien qu'il y aie une grande - quantité de logiciels disponibles au format Debian, il est - parfois nécessaire d'installer des logiciels qui ne le sont - pas. Vous vous êtes peut-être demandé comment faire vos propres - paquets, et vous pensez que c'est difficile. J'ai moi-même (NdT - : c'est l'auteur qui parle, pas moi) commencé à travailler avec - les paquets Debian, et j'ai été plaisamment surpris de la - facilité de la tâche. Vous devez avoir quelques connaissances - sur la programmation Unix, mais vous ne devez pas être un - gourou. - </para> - <para> - C'est la seconde version (NdT : et la première version - française) de cet article. Rien ne reste fixe très longtemps - dans le monde Debian, aussi ai-je fait certains changements - importants pour rester à jour. J'ai également inclus certains - conseils repris des mailing-lists des Utilisateurs et - Développeurs Debian, ou suggérés par les lecteurs. - </para> - <para> - Avant de commencer, vous aurez besoin d'installer et de - configurer les paquets suivants. Je suppose que vous utilisez - Hamm, la distribution "instable" de Debian. Dans ce contexte, - "instable" signifie "en cours de développement". Hamm deviendra - la prochaine version (2.0) de Debian. - </para> - <para> - Les paquets suivants sont disponibles dans la section devel de la - distribution. - </para> - <variablelist> - <varlistentry> - <term> - binutils - </term> - <listitem> - <para> - Les programmes de ce paquet sont utilisés pour assembler - et lier les fichiers objets -- les trucs dont sont faits - les programmes. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - gcc - </term> - <listitem> - <para> - C'est le compilateur C de GNU. La plupart des programmes - pour Linux sont écrits en C. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - libc6-dev - </term> - <listitem> - <para> - Ce sont les librairies C et les fichiers d'entête dont gcc - a besoin pour créer les fichiers objets. Au moment ou - j'écris, Debian est en transition entre libc5 et - libc6. Tous les nouveaux paquets devraient être créés en - utilisant libc6. Pour des instructions sur la façon de - passer à libc6, lisez le - <ulink url="http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html"> - mini-HOWTO - </ulink> - de Scott Ellis. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - libg++272 - </term> - <listitem> - <para> - Les librairies C++. fakeroot en a besoin. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - make - </term> - <listitem> - <para> - En général, la création d'un programme se fait en - plusieurs étapes. Plutôt que de taper encore et encore les - mêmes commandes, vous pouvez utiliser make pour - automatiser le processus. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - fakeroot - </term> - <listitem> - <para> - Comme le nom le suggère, ce programme simule le statut de - root nécessaire pour une partie de la création. Bien qu'en - cours de développement, fakeroot est - utilisable. Auparavant, il fallait un accès root ou un - programme comme sudo, mais ceci est plus facile et devrait - être plus sûr. - </para> - </listitem> - </varlistentry> - </variablelist> - <para> - Le paquet suivant est dans la section interpreters de la distribution - </para> - <variablelist> - <varlistentry> - <term> - cpp - </term> - <listitem> - <para> - Le pré-processeur C. - </para> - </listitem> - </varlistentry> - </variablelist> - <para> - Les paquets suivants sont dans la section utils de la distribution. - </para> - <variablelist> - <varlistentry> - <term> - cpio - </term> - <listitem> - <para> - C'est un archiveur comme tar ou zip. Requis par dpkg-dev. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - file - </term> - <listitem> - <para> - Ce programme bien utile détermine le type d'un - fichier. Requis par dpkg-dev. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - debmake - </term> - <listitem> - <para> - C'est un ensemble de plus haut niveau pour la création de - paquets Debian. Vous n'en avez pas vraiment besoin, mais - je le recommande. Il rend le processus nettement plus - simple, surtout pour les débutants. Nous utiliserons - debmake pour créer notre exemple de paquet. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - dpkg-dev - </term> - <listitem> - <para> - Ce paquet contient les outils nécessaire pour créer les - archives Debian. Il contient également les manuels du - Programmeur Debian et de Programmation de dpkg (NdT : - vérifier la traduction française du titre, en supposant - que cette traduction existe). - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - devscript - </term> - <listitem> - <para> - Ce paquet est un compagnon de debmake et contient des - scripts utiles pour la création et la maintenance des - paquets. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - patch - </term> - <listitem> - <para> - patch prend un fichier contenant la liste des différences - produites par le programme diff, et l'applique à un - original, produisant la version patchée. - </para> - </listitem> - </varlistentry> - </variablelist> - <para> - Les paquets suivants sont dans la section doc de la distribution. - </para> - <variablelist> - <varlistentry> - <term> - debian-policy - </term> - <listitem> - <para> - Il s'agit de la source d'information définitive concernant - la création de paquet Debian. Si vous constatez la moindre - différence entre le manuel des normes et cet article, le - manuel des normes est la référence. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - developers-reference - </term> - <listitem> - <para> - Des informations pour les personnes désirant devenir des - développeurs Debian officiels. - </para> - </listitem> - </varlistentry> - </variablelist> - <para> - Vous aurez aussi besoin du paquet de cryptage pgp, pour signer - votre paquet. Ceci est particulièrement important si vous - désirez distribuer votre paquet à d'autres personnes. Cependant, - à cause d'une loi américaine, vous ne pouvez pas le télécharger - depuis le miroir ftp Debian le plus proche. Par contre, le site - ftp contient à la racine un fichier nomme README.non-us qui vous - dira comment obtenir une copie de pgp. - </para> - <para> - Cette description que j'ai donnée ci-dessus ne sert que - d'introduction à ce que chaque paquet fait. Avant de continuer, - consultez attentivement la documentation de chaque - programme. Cela semble lourd a priori, mais plus tard vous serez - content de l'avoir fait. - </para> - </chapter> - <chapter> - <title> - Création du paquet - </title> - <para> - Maintenant que vous avez installé les bons paquets et lu la - documentation, vous êtes prêt à commencer. Comme exemple, nous - allons créer un paquet Debian pour empire. Il s'agit d'un jeu de - stratégie où vous créez un empire. - </para> - <para> - La première chose à faire est de télécharger le paquet - original. Sunsite est le plus grand miroir Linux que je - connaisse, aussi ai-je cherché dans mon miroir sunsite local et - l'ai trouvé - <ulink url="http://www.cdrom.com/pub/linux/sunsite/games/strategy/empire.tar.gz"> - ici - </ulink>. - </para> - <para> - Il y a deux types de paquets que vous pouvez faire, source et - binaire. Un paquet source contient le code que vous pouvez - compiler en un programme. Un paquet binaire contient juste le - programme fini. Si vous désirez contribuer un paquet à la - distribution Debian officielle, il doit venir avec des sources - librement utilisables. Consultez le - <ulink url="https://www.debian.org/social_contract.html#guidelines"> - Contrat social de Debian - </ulink> - (NdT : le lire pour trouver la - traduction exacte des Guidelines...) pour les détails - exacts. Empire est disponible en source donc on pourra faire des - paquets source et binaire. - </para> - <para> - debmake veut que les sources soient dans un répertoire nommé - <nom_paquet>-<numéro_version>, aussi créons un - répertoire empire-1.1 et décompressons le fichier .tgz dedans - (j'ai eu le numéro de version du fichier lsm qui vient avec - chaque programme chargé sur sunsite). - <screen> - <prompt>$</prompt> <userinput>mkdir empire-1.1</userinput> - <prompt>$</prompt> <userinput>mv empire.tar.gz empire-1.1</userinput> - <prompt>$</prompt> <userinput>cd empire-1.1</userinput> - <prompt>$</prompt> <userinput>tar -xvzf empire.tar.gz</userinput> - </screen> - et si tout va bien - <screen> - <prompt>$</prompt> <userinput>rm empire.tar.gz</userinput> - </screen> - </para> - <para> - Quand vous lancez deb-make, certaines informations sont - utilisées. L'une d'entre elles est votre adresse email qui sera - inclue dans le paquet de sorte que les gens peuvent vous - contacter si ils ont des problèmes. Si vous voulez utiliser une - autre adresse que l'adresse actuelle, mettez la dans la variable - d'environnement EMAIL avant de lancer deb-make, comme ceci : - <screen> - <prompt>$</prompt> <userinput>export EMAIL=jaldhar@debian.org</userinput> - </screen> - </para> - <para> - Il vous sera demandé le genre de paquet que vous voulez générer. - </para> - <variablelist> - <varlistentry> - <term> - single - </term> - <listitem> - <para> - Choisissez ceci pour créer un paquet unique. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - multiple - </term> - <listitem> - <para> - Choisissez ceci pour créer plusieurs .deb à partir d'un - seul ensemble de code source. L'un des intérêts est de - diviser un paquet très gros en plus petites pièces de - sorte que les utilisateurs peuvent choisir ce qu'ils - installent. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - library - </term> - <listitem> - <para> - Choisissez ceci pour créer au moins deux .deb, l'un avec - la librairie dans /usr/lib, - l'autre,<nom_lib>-dev_<version_lib>.deb, avec - la documentation et les fichiers entêtes. - </para> - </listitem> - </varlistentry> - </variablelist> - <para> - Maintenant, lançons deb-make et choisissons l'option single. - <screen> - <prompt>$</prompt> <userinput>deb-make</userinput> - </screen> - </para> - <para> - Quand deb-make a fini, si vous tapez cd .., vous constatez qu'un - nouveau répertoire a été créé, nommé empire-1.1.orig, qui - contient le code source original et qui ne sera par la suite - plus modifié. Le répertoire empire-1.1 existe toujours. C'est là - que seront fait les changements. Il y a un nouveau répertoire - nommé debian. Examinez-le. - <screen> - <prompt>$</prompt> <userinput>cd empire-1.1/debian</userinput> - </screen> - </para> - <para> - Il y a plusieurs fichiers dans ce répertoire. Nous allons les - éditer pour configurer le comportement du paquet. - </para> - <sect1> - <title>control</title> - <para> - Ce fichier contient les valeurs que dpkg et dselect utilisent - pour gérer le paquet. Voici ce que deb-make a créé pour nous : - <programlisting> - 1 Source: empire - 2 Section: unknown - 3 Priority: extra - 4 Maintainer: Jaldhar H. Vyas <jaldhar@debian.org> - 5 Standards-Version: 2.3.0.0 - 6 - 7 Package: empire - 8 Architecture: any - 9 Depends: ${shlibs:Depends} - 10 Description: Missing - 11 Missing - </programlisting> - (j'ai ajouté les numéros de lignes) - </para> - <para> - Les lignes 1-5 sont les informations de contrôle du paquet - source. La ligne 1 est le nom du paquet source. - </para> - <para> - La ligne 2 est la section du paquet. Changeons la en games. - </para> - <para> - La ligne 3 indique à quel point il est important que - l'utilisateur installe ce paquet. Comme, hélas, notre jeu - n'est vraiment pas important, nous pouvons le laisser en - extra. La section et la priorité sont en fait uniquement - utilisés par dselect quand il trie les paquets et sélectionne - par défaut. Lisez le manuel des normes pour des indications - sur les valeurs à mettre. - </para> - <para> - La ligne 4 est le nom et l'adresse email du responsable. - </para> - <para> - La ligne 5 est la version du standard des Normes Debian que ce - paquet suit. - </para> - <para> - Les lignes 7-11 concernent le paquet binaire. - </para> - <para> - La ligne 7 est le nom du paquet binaire. - </para> - <para> - La ligne 8 décrit l'architecture CPU pour laquelle ce paquet a - été compilé. Nous pouvons y laisser n'importe quoi car - <command>dpkg-gencontrol(1)</command> y mettra la valeur appropriée. - </para> - <para> - La ligne 9 montre un des grands points forts du système de paquet - Debian. Les paquets peuvent être liés aux autres d'une manière ou - d'une autre. Outre les Depends, les autres relations sont - Recommands, Suggests, Pre-depends, Conflicts, Provides et - Replaces. Voici ce qu'ils signifient : - <variablelist> - <varlistentry> - <term> - Depends - </term> - <listitem> - <para> - dpkg et dselect n'installeront votre paquet que si le - paquet duquel il dépend est installé. Utilisez cette - relation si votre programme ne tourne que si un autre - paquet est présent. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - Recommends - </term> - <listitem> - <para> - dselect n'installera votre paquet que si le paquet - recommandé est installé. dpkg vous laissera - l'installer sans restriction. Utilisez ceci pour les - paquets qui ne sont pas vraiment nécessaires, mais qui - sont souvent utilisés avec votre programme. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - Suggests - </term> - <listitem> - <para> - quand un utilisateur installe votre programme, dselect - lui demandera s'il doit installer les paquets - suggérés. dpkg ne s'en soucie pas. Utilisez ceci pour - les paquets qui fonctionnent bien avec votre - programme, mais qui ne sont pas nécessaires. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - Pre-depends - </term> - <listitem> - <para> - Cette relation est plus forte que Depends. dpkg et - dselect n'installeront votre programme que si les - paquets dont il pré-dépend sont installés et - correctement configurés. N'utilisez ceci que rarement, - et toujours après en avoir discuté sur la mailing-list - debian-devel. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - Conflicts - </term> - <listitem> - <para> - ni dpkg ni dselect n'installeront votre programme à - moins que chaque paquet avec lequel il est en conflit - n'ait été retiré. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - Provides - </term> - <listitem> - <para> - Pour certains types de paquets, lorsque de multiples - versions sont disponibles, des noms virtuels ont été - définis. La liste complète est dans - usr/doc/debian-policy/virtual-package-names-list.text.gz. - Utilisez ceci si votre programme fourni un paquet - virtuel. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - Replaces - </term> - <listitem> - <para> - Utilisez ceci quand votre programme remplace un autre - paquet. dpkg et dselect retirerons le paquet remplacé - avant d'installer le votre. - </para> - </listitem> - </varlistentry> - </variablelist> - </para> - <para> - Ces champs ont une même syntaxe. C'est une liste de noms de - paquets séparés par des virgules. Les noms de paquets peuvent - être aussi une liste de noms alternatifs de paquets, séparés - par une barre verticale |. Le champs peut être restreint à des - versions particulières pour chaque nom de paquet. On l'indique - entre parenthèses après chaque nom de paquet. Les parenthèses - contiennent l'une des relations suivantes, suivie par un - numéro de version : <<, <=, =, >=, >>. Les - relations signifient, dans l'ordre, strictement plus vieux, - plus vieux ou égal, égal, plus récent ou égal, strictement - plus récent. La dernière capacité que je veux vous montrer est - $(shlibs:Depends). Ce champs sera automatiquement rempli par - debmake avec les noms de toutes les librairies partagées - (DLLs) telles que libc6, utilisées par le programme, de sorte - que vous n'avez pas à les indiquer vous-même. Une fois ceci - dit, vous pouvez laisser la ligne 9 telle quelle, car Empire - ne dépend d'aucun autre paquet. - </para> - <para> - La ligne 10 est la description courte. La plupart des gens ont des - écrans texte de 80 caractères de long, aussi cela ne devrait pas - dépasser les 50 caractères. Changeons le en "an empire-building - strategy game". - </para> - <para> - La ligne 11 est la description longue. Ce devrait être un - paragraphe qui donne plus de détail sur le paquet. La première - colonne de chaque ligne doit être vide. Il ne doit pas y avoir - de ligne vide. Mettez un . dans la deuxième colonne pour - simuler une ligne vide. - </para> - <para> - Voici la nouvelle version du fichier de contrôle : - <programlisting> - 1 Source: empire - 2 Section: games - 3 Priority: extra - 4 Maintainer: Jaldhar H. Vyas <jaldhar@debian.org> - 5 Standards-Version: 2.3.0.0 - 6 - 7 Package: empire - 8 Architecture: any - 9 Depends: ${shlibs:Depends} - 10 Description: an empire-building strategy game - 11 A solitaire empire game (sometimes called 'VMS Empire'), colorized and - 11a speed tuned and with a save-interval option. - 11b . - 11c In this game a player has to try to build and defend an empire. - </programlisting> - </para> - </sect1> - <sect1> - <title>Makefile</title> - <para> - Quittons un instant le répertoire debian et remontons d'un - répertoire pour examiner le fichier Makefile de Empire. C'est - le fichier que <command>make(1)</command> utilisera pour - générer le programme automatiquement. - <programlisting> - 1 # %W% %G% %U% - (c) Copyright 1987, 1988 Chuck Simmons - 2 - 3 # - 4 # Copyright (C) 1987, 1988 Chuck Simmons - 5 # - 6 # See the file COPYING, distributed with empire, for restriction - 7 # and warranty information. - 8 - 9 # Change the line below for your system. If you are on a Sun or Vax, - 10 # you may want BSD. - 11 - 12 SYS = BSD - 13 #SYS = SYSV - 14 - 15 # Use -g to compile the program for debugging. - 16 - 17 DEBUG = -g -DDEBUG - 18 #DEBUG = -O - 19 - 20 # Use -p to profile the program. - 21 #PROFILE = -p -DPROFILE - 22 PROFILE = - 23 - 24 # Define all necessary libraries. 'curses' is necessary. 'termcap' - 25 # is needed on BSD systems. - 26 LIBS = -ldcurses - 27 #LIBS = -lcurses -ltermcap - 28 - 29 # You shouldn't have to modify anything below this line. - 30 - 31 CFLAGS = $(DEBUG) $(PROFILE) -D$(SYS) - 32 INS = /etc/install - 33 - 34 FILES = \ - 35 attack.c \ - 36 compmove.c \ - 37 data.c \ - 38 display.c \ - 39 edit.c \ - 40 empire.c \ - 41 game.c \ - 42 main.c \ - 43 map.c \ - 44 math.c \ - 45 object.c \ - 46 term.c \ - 47 usermove.c \ - 48 util.c - 49 - 50 HEADERS = empire.h extern.h - 51 - 52 OFILES = \ - 53 attack.o \ - 54 compmove.o \ - 55 data.o \ - 56 display.o \ - 57 edit.o \ - 58 empire.o \ - 59 game.o \ - 60 main.o \ - 61 map.o \ - 62 math.o \ - 63 object.o \ - 64 term.o \ - 65 usermove.o \ - 66 util.o - 67 - 68 all: empire - 69 - 70 empire: $(OFILES) - 71 $(CC) $(PROFILE) -o empire $(OFILES) $(LIBS) - 72 - 73 TAGS: $(HEADERS) $(FILES) - 74 etags $(HEADERS) $(FILES) - 75 - 76 lint: $(FILES) - 77 lint -u -D$(SYS) $(FILES) -lcurses - 78 - 79 clean: - 80 rm -f *.o TAGS - 81 - 82 clobber: clean - 83 rm -f empire empire.tar* - 84 - 85 install: empire - 86 $(INS) -o -f /usr/local/games empire - 87 - 88 installman: empire.6 - 89 $(INS) -f /usr/local/man/man6 empire.6 - 90 - 91 SOURCES = READ.ME empire.6 COPYING Makefile BUGS $(FILES) $(HEADERS) MANIFEST empire.lsm - 92 - 93 empire.tar: $(SOURCES) - 94 tar -cvf empire.tar $(SOURCES) - 95 empire.tar.gz: empire.tar - 96 gzip empire.tar - 97 - 98 empire.shar: $(SOURCES) - 99 shar $(SOURCES) >empire.shar - </programlisting> - </para> - <para> - Avec de la chance, vous aurez dans votre paquet un joli - makefile bien créé, et vous n'aurez rien d'autre à faire. Mais - mon expérience est que vous avez toujours quelques - modifications à apporter pour qu'il fonctionne - correctement. Il n'y a pas la place nécessaire pour expliquer - les détails concernant la correction des makefiles, mais voici - quelques problèmes que vous pouvez rencontrer. - </para> - <para> - Regardez les lignes 12 et 13. Il existe au moins deux - variantes principales de Unix, System V et BSD. Linux comporte - des éléments des deux, mais en général vous choisirez System - V. Aussi nous commentons la ligne 12 et remettons la ligne - 13. Nous ne voulons pas des options de débugages. - <programlisting> - 12 #SYS = BSD - 13 SYS = SYSV - </programlisting> - <programlisting> - 17 #DEBUG = -g -DDEBUG - 18 DEBUG = -O - </programlisting> - </para> - <para> - Le plus important problème est d'oublier que les lignes dans les buts - telles que les lignes 35-48 doivent être indentées avec une - tabulation. Pas des espaces. Souvent, quand vous coupez-collez les - tabulations sont remplacées par des espaces, et vous aurez d'étranges - messages d'erreur. - </para> - <para> - Les librairies sont souvent différentes d'une plateforme à l'autre. La - ligne 26 fait référence à dcurses, qui n'existe pas sous Debian. Nous - devons donc utiliser ncurses. - <programlisting> - 26 LIBS = -lncurses - 27 #LIBS = -lcurses -ltermcap - </programlisting> - </para> - <para> - Un autre problème est la localisation des exécutables. Par - exemple, la ligne 32 place <command>install(1)</command> dans - /etc/. Sous Debian, ce programme est dans /usr/bin, aussi nous - devons éditer cette ligne. - <programlisting> - 32 INS = /usr/bin/install - </programlisting> - </para> - <para> - Debian a des normes strictes quant à l'endroit où les - programmes doivent être installés. Ceci est spécifié dans - /usr/doc/debian-policy/fsstnd. Pour suivre ces normes, nous - devons installer l'exécutable dans /usr/games plutôt que dans - /usr/local/games, et la page de manuel dans /usr/man/man6 - plutôt que dans /usr/local/man/man6. Il va y avoir un autre - problème. Le programme install de Debian a d'autres options - que celui du système de l'auteur de Empire. En bref, -o - désigne le propriétaire, -g le groupe, et -m les permissions - pour chaque fichier. Le manuel des normes spécifie ce que - chacun devrait être. Sur les exécutables, nous utilisons -s - pour retirer les informations de débugage. Cela les rendra - plus petits de sorte qu'ils utiliseront moins de place disque - et moins de mémoire. Consultez la page de manuel d'install - pour plus de renseignements. - </para> - <para> - Nous changeons les lignes 85-89 comme suit (les raisons pour - préfixer les chemins par debian/tmp seront décrites plus bas). - <programlisting> - 85 install: empire - 86 $(INS) -o root -g root -m 0755 -s empire debian/tmp/usr/games/empire - 87 - 88 installman: empire.6 - 89 $(INS) -o root -g root -m 0644 empire.6 debian/tmp/usr/man/man6/empire.6 - </programlisting> - </para> - <para> - Beaucoup de makefiles auront une macro nommée DESTDIR qui - spécifie le répertoire d'installation. Si elle existe, vous - devriez la mettre à debian/tmp. - </para> - <para> - Si vous être vraiment malchanceux, vous aurez à modifier le - source lui-même. Quand vous faites ce genre de modification, - faites-le de manière non-destructrice, de sorte que quelqu'un - ayant une autre plateforme n'ait pas à défaire vos - changements. Encadrez-les avec quelque chose du genre : - <programlisting> - #ifdef DEBIAN...#endif - </programlisting> - pour les isoler. Si vous faites des modifications, envoyez-les - à l'auteur original ou au responsable de sorte qu'elles soient - en standard dans la version suivante. - </para> - </sect1> - <sect1> - <title>rules</title> - <para> - Maintenant, nous revenons dans le répertoire debian et jetons - un oeil aux règles que dpkg-dev utilise pour créer vraiment le - paquet. Voici ce que debmake nous donne comme fichier de - règles par défaut : - <programlisting> - 1 #!/usr/bin/make -f - 2 # Made with the aid of debmake, by Christoph Lameter, - 3 # based on the sample debian/rules file for GNU hello by Ian Jackson. - 4 - 5 package=empire - 6 - 7 build: - 8 $(checkdir) - 9 - 10 make CFLAGS="-O2 -g -Wall" - 11 - 12 touch build - 13 - 14 clean: - 15 $(checkdir) - 16 -rm -f build - 17 -make clean - 18 -rm -f `find . -name "*~"` - 19 -rm -rf debian/tmp debian/files* core debian/substvars - 20 - 21 binary-indep: checkroot build - 22 $(checkdir) - 23 # There are no architecture-independent files to be uploaded - 24 # generated by this package. If there were any they would be - 25 # made here. - 26 - 27 binary-arch: checkroot build - 28 $(checkdir) - 29 -rm -rf debian/tmp - 30 install -d debian/tmp - 31 cd debian/tmp && install -d `cat ../dirs` - 32 make install DESTDIR=`pwd`/debian/tmp - 33 # Must have debmake installed for this to work. Otherwise please copy - 34 # /usr/bin/debstd into the debian directory and change debstd to debian/debstd - 35 debstd BUGS - 36 dpkg-gencontrol - 37 chown -R root.root debian/tmp - 38 chmod -R go=rX debian/tmp - 39 dpkg --build debian/tmp .. - 40 - 41 define checkdir - 42 test -f debian/rules - 43 endef - 44 - 45 # Below here is fairly generic really - 46 - 47 binary: binary-indep binary-arch - 48 - 49 checkroot: - 50 $(checkdir) - 51 test root = "`whoami`" - 52 - 53 .PHONY: binary binary-arch binary-indep clean checkroot - </programlisting> - </para> - <para> - Vous vous êtes probablement familiarisé avec des lignes comme - la ligne une, de part les scripts shell ou perl. Cela signifie - que le fichier sera exécuté par make. La ligne 10 déclenche le - fichier makefile de l'application. La partie CFLAGS de cette - ligne indique des options de compilation par défaut, au cas ou - le makefile de l'application n'en aurait pas. Nous n'avons pas - de soucis à nous faire pour cela (voir la ligne 31 du makefile - d'Empire), aussi nous pouvons l'effacer : - <programlisting> - 10 make - </programlisting> - </para> - <para> - On y arrive rarement du premier coup, aussi les lignes 14-20 - nettoient les crasses inutiles laissées par les essais ratés. - </para> - <para> - Les lignes 27-40 sont le coeur du fichier rules. Un répertoire - nommé tmp est créé dans le répertoire debian (si il existe - déjà, il sera effacé pour reprendre dans un état initial). Le - paquet sera assemblé ici. C'est pour cela que dans le makefile - d'Empire, nous avons spécifié debian/tmp comme répertoire - racine. Dans la ligne 31 sont créés les répertoires dans - lesquels nous allons effectuer l'installation. Ils sont pris - dans le fichier dirs dont nous parlerons plus bas. La ligne 32 - lance le but install du fichier makefile d'Empire. La ligne 35 - lance <command>debstd(1)</command> qui vient avec - debmake. debstd est une boîte noire qui va modifier votre - paquet pour qui soit conforme aux normes Debian. Si vous - voulez des détails, lisez la page de manuel, ou regardez les - sources (c'est juste un script shell), et je vous encourage à - le faire. Mais l'avantage de la boîte noire, c'est que vous - n'avez pas à savoir ce qu'elle fait, vous pouvez supposer - qu'elle le fait correctement. Quand les normes Debian - changeront, ce sera transparent pour vous. Installez juste une - version mise à jour de debmake qui supportent les nouvelles - normes, recompilez et vous serez conforme (pour la plupart des - normes. Toutes les modifications des normes ne peuvent pas - être aisément gérées automatiquement, aussi est-il payant de - comprendre le problème en profondeur avant de se fier à un - bout de code.) La ligne 36 lance dpkg-gencontrol qui va créer - le fichier de contrôle du paquet. Voyez - <command>deb(5)</command> pour des détails sur le format de - paquet Debian. Enfin, la ligne 39 crée le paquet proprement - dit. - </para> - <para> - Les lignes 41 et suivantes sont juste des macros utilisées par - le fichier rules et vous n'avez pas à vous en soucier. - </para> - <para> - Ce qu'il faut savoir du fichier rules créé par debmake est - qu'il est juste une suggestion. Il fonctionne pour des paquets - simples, mais pour des paquets plus compliqués, n'hésitez à y - faire des ajouts ou des retraits pour vos besoin. - </para> - </sect1> - <sect1> - <title> - dirs - </title> - <para> - Ce fichier indique les répertoires que votre paquet va - créer. Par défaut, il s'agit de - <programlisting> - 1 usr/bin - 2 usr/sbin - </programlisting> - </para> - <para> - Remarquez que le slash de tête n'est pas inclus. Nous - changeons en - <programlisting> - 1 usr/games - 2 usr/man/man6 - </programlisting> - </para> - <para> - Maintenant, il nous reste quelques fichiers de plus à créer, - et notre paquet sera complet. - </para> - </sect1> - <sect1> - <title> - copyright - </title> - <para> - Ce fichier contient les informations concernant les droits de copie - du paquet. Voici ce que debmake crée par défaut : - <programlisting> - 1 This package was debianized by Jaldhar H. Vyas jaldhar@debian.org on - 2 Thu, 11 Sep 1997 22:49:54 -0400. - 3 - 4 It was downloaded from <fill in ftp site> - 5 - 6 Copyright: - 7 - 8 <Must follow here> - </programlisting> - </para> - <para> - Les choses importantes à inclure dans ce fichier sont l'endroit où - vous avez trouvé ce paquet, et la licence de copie. Si la licence est - l'une des licences bien connue de logiciel libre, comme GNU, BSD ou - Artistic, vous n'avez pas à inclure le texte entier, vous pouvez juste - faire référence au fichier adéquat dans /usr/doc/copyright. Empire est - sous licence GPL, aussi nous changeons le fichier en : - <programlisting> - 1 This package was debianized by Jaldhar H. Vyas jaldhar@debian.org on - 2 Thu, 11 Sep 1997 22:49:54 -0400. - 3 - 4 It was downloaded from http://www.cdrom.com/pub/linux/sunsite/games/strategy - 5 - 6 Copyright: (c) 1987, 1988 Chuck Simmons - 7 - 8 This program is free software; you can redistribute it and/or modify - 8a it under the terms of the GNU General Public License as published by - 8b the Free Software Foundation; either version 2, or (at your option) - 8c any later version. - 8d - 8e This program is distributed in the hope that it will be useful, - 8f but WITHOUT ANY WARRANTY; without even the implied warranty of - 8g MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - 8h GNU General Public License for more details. - 8i - 8j You should have received a copy of the GNU General Public License - 8k along with Debian system; see the file /usr/share/common-licenses/GPL. - 8l If not, write to the Free Software Foundation, Inc., 51 Franklin St, - 8m Fifth Floor, Boston, MA 02110-1301, USA. - </programlisting> - </para> - </sect1> - <sect1> - <title> - README.debian - </title> - <para> - Tous les autres détails ou variations entre le paquet original - et votre version debianisée (NdT: un néologisme ?) doivent - être documentée ici. Voici à quoi la création par défaut de - debmake ressemble : - <programlisting> - empire for DEBIAN - ---------------------- - - Comments regarding the Package - - Jaldhar H. Vyas <jaldhar@debian.org>, Thu, 11 Sep 1997 22:49:54 -0400 - </programlisting> - </para> - <para> - Nous n'avons rien de particulier à ajouter, aussi le - laissons-nous tel quel. - </para> - </sect1> - <sect1> - <title> - changelog - </title> - <para> - Au fur et à mesure que vous travaillerez, le comportement de - votre paquet va changer, de nouvelles capacités seront - ajoutées, et des erreurs seront corrigées. Les personnes qui - téléchargent votre paquet peuvent consulter ce fichier et voir - ce qui a changé. Voici ce à quoi ressemble le changelog par - défaut que crée debmake : - <programlisting> - 1 empire (1.1-1) unstable; urgency=low - 2 - 3 * Initial Release. - 4 - 5 -- Jaldhar H. Vyas <jaldhar@debian.org> Thu, 11 Sep 1997 22:49:54 -0400 - 6 - 7 Local variables: - 8 mode: debian-changelog - 9 add-log-mailing-address: "jaldhar@debian.org" - 10 End: - </programlisting> - </para> - <para> - La ligne 1 est le nom du paquet, sa version, sa distribution - et son urgence. Le numéro de version ici est ce qui sera - utilisé comme numéro de version du paquet. Ne bidouillez pas - cette ligne. Les lignes de 3 à 5 sont une entrée - d'archive. Nous pouvons y ajouter des éléments avec le - programme <command>dch(1)</command> qui vient avec le paquet devscript - (c'est un alias pour debchange. Vous pouvez l'invoquez avec un - nom ou l'autre, cela ne fait aucune différence). Les lignes 7 - à 10 sont des informations de mode pour Emacs(?). Ajoutons une - ligne à changelog. Si le commentaire est court, vous pouvez - l'ajouter directement à la ligne de commande de dch : - <screen> - <prompt>$</prompt> <userinput>dch This is my first Debian package</userinput> - </screen> - </para> - <para> - Vous pouvez aussi lancer dch seul. Cela démarrera votre - éditeur par défaut, qui est, par ordre de préférence, le - programme défini par la variable d'environnement $VISUAL, le - programme défini par la variable d'environnement $EDITOR, - <command>joe(1)</command> ou <command>ae(1)</command>. Quand - l'éditeur a démarré, vous pouvez entrer votre - commentaire. Quelque soit la méthode employée, voici ce à quoi - vous devez arriver : - <programlisting> - 1 empire (1.1-1) unstable; urgency=low - 2 - 2a * This is my first debian package. - 3 * Initial Release. - 4 - 5 -- Jaldhar H. Vyas <jaldhar@debian.org> Thu, 11 Sep 1997 22:49:54 -0400 - 6 - 7 Local variables: - 8 mode: debian-changelog - 9 add-log-mailing-address: "jaldhar@debian.org" - 10 End: - </programlisting> - </para> - <para> - Quand vous distribuez une nouvelle version, vous devez - incrémenter le numéro de version. Vous le faites avec la - commande : - <screen> - <prompt>$</prompt> <userinput>dch -n This is my first debian package.</userinput> - </screen> - </para> - <para> - Si, pour une raison quelconque, vous voulez incrémenter le - numéro de version par plus que 1, par 15 par exemple, vous - utilisez cette commande : - <screen> - <prompt>$</prompt> <userinput>dch -v 15 This is my first debian package.</userinput> - </screen> - </para> - <para> - Nous supposerons que vous voulez juste incrémenter le numéro - de version par 1. Voici ce à quoi ressemble changelog - maintenant : - <programlisting> - 1 empire (1.1-2) unstable; urgency=low - 2 - 2a * This is my first debian package - 2b - 2c -- Jaldhar H. Vyas <jaldhar@debian.org> Sun, 14 Sep 1997 12:04:44 -0500 - 2d - 2e empire (1.1-1) unstable; urgency=low - 2f - 3 * Initial Release. - 4 - 5 -- Jaldhar H. Vyas <jaldhar@debian.org> Thu, 11 Sep 1997 22:49:54 -0400 - 6 - 7 Local variables: - 8 mode: debian-changelog - 9 add-log-mailing-address: "jaldhar@debian.org" - 10 End: - </programlisting> - </para> - </sect1> - <sect1> - <title> - conffiles - </title> - <para> - Une des choses les plus énervantes avec les logiciels est - quand vous avez passé un bon bout de temps à configurer un - programme pour qu'une mise à jour efface tous vos - changements. Debian résout ce problème en marquant les - fichiers de configurations, de sorte que quand vous mettez à - jour un programme, il vous sera demandé si vous voulez garder - votre ancienne configuration ou pas. Vous faites ceci en - entrant le chemin complet de chaque fichier de configuration - (ils sont en général dans /etc), un par ligne, dans un fichier - nommé conffiles. Empire n'a aucun fichier de configuration. - </para> - </sect1> - <sect1> - <title> - *.ex - </title> - <para> - Certains paquets doivent faire plus que de simplement installer des - fichiers. Par exemple, un serveur peut avoir besoin d'insérer une - ligne dans /etc/inetd.conf. Les fichiers en suffixe .ex sont des - exemples de la manière d'ajouter ce genre de support à votre - paquet. Pour en utiliser un, éditez et retirez le suffixe .ex . Voici - une brève description de ce que fait chaque fichier. - </para> - <variablelist> - <varlistentry> - <term> - crontab.ex - </term> - <listitem> - <para> - Ceci ajoute une ligne au fichier /etc/crontab pour - exécuter un programme de manière régulière. Les normes - actuelles spécifient qu'un paquet ne devrait pas toucher - à /etc/crontab, aussi si vous pensez qu'il y a une bonne - raison de le faire, discutez-en d'abord sur les mailing - lists. Si vous renommez ce fichier en cron.daily, il - sera ajouté dans /etc/cron.daily/ et exécuté tous les - jours. Pareillement, si vous le renommez cron.weekly il - sera ajouté dans /etc/cron.weekly/, et pour cron.monthly - il sera ajouté dans /etc/cron.monthly/. Comme les noms - le suggèrent (pour peu qu'on parle un brin anglais, - NdT), ils sont exécutés respectivement toutes les - semaines et tous les mois. Lisez les pages de manuel de - <command>crontab(1)</command> et - <command>crontab(5)</command> pour plus de détails. Les - normes précisent que ces fichiers doivent être des - scripts, et qu'ils doivent être enregistrés comme - conffiles. Empire n'en a pas besoin, aussi nous - l'effacerons. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - diversion.ex - </term> - <listitem> - <para> - Quelque chose à voir avec un détournement, peut-être ? - Empire n'en a pas besoin, nous l'effaçons (NdT : il - s'agit du mécanisme utilisé sous Debian pour permettre - d'avoir plusieurs programmes aux capacités similaires - tout en enregistrant un programme par défaut.) - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - inetd.conf.ex - </term> - <listitem> - <para> - Ceci ajoute une ligne dans /etc/inetd.conf pour exécuter - un démon. Lisez les pages de manuel pour - <command>inetd.conf(1)</command> pour des détails sur le - format. Empire n'en a pas besoin, aussi nous l'effaçons. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - info.ex - </term> - <listitem> - <para> - Éditez ce fichier pour fournir de la documentation au - format GNU info. Empire n'en a pas besoin, aussi nous - l'effaçons. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - init.d.ex - </term> - <listitem> - <para> - Ceci est un script par défaut pour /etc/init.d/. Si - votre programme doit être lancé au moment du démarrage - et stoppé à l'arrêt de l'ordinateur, ou lorsque le - niveau d'exécution (runlevel) change , éditez le script - pour faire les actions nécessaires. Empire n'en a pas - besoin, aussi nous l'effaçons. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - manpage.1.ex - </term> - <listitem> - <para> - Votre programme devrait avoir une page de manuel. S'il - n'en a pas, voici un patron que vous pouvez - remplir. Lisez les pages de manuel de <command>man(7)</command> pour - une description rapide de la façon de créer une page de - manuel. Soyez sûr de donner à ce fichier le nom du - programme avec l'extension correspondant à la section du - manuel dans laquelle il devrait aller. Voici une liste : - <table> - <title>Section des pages de manuel</title> - <tgroup cols="3"> - <tbody> - <row> - <entry> - Section - </entry> - <entry> - Description - </entry> - <entry> - Notes - </entry> - </row> - <row> - <entry> - 1 - </entry> - <entry> - Commandes utilisateur - </entry> - <entry> - Commandes ou scripts exécutables - </entry> - </row> - <row> - <entry> - 2 - </entry> - <entry> - Appels systèmes - </entry> - <entry> - Fonctions fournies par le noyau - </entry> - </row> - <row> - <entry> - 3 - </entry> - <entry> - Appels librairies - </entry> - <entry> - Fonctions des librairies système - </entry> - </row> - <row> - <entry> - 4 - </entry> - <entry> - Fichiers spéciaux - </entry> - <entry> - D'ordinaire trouvés dans /dev - </entry> - </row> - <row> - <entry> - 5 - </entry> - <entry> - Formats de fichiers - </entry> - <entry> - Par exemple, le format de /etc/passwd - </entry> - </row> - <row> - <entry> - 6 - </entry> - <entry> - Jeux - </entry> - <entry> - Ou tout autre programme frivole - </entry> - </row> - <row> - <entry> - 7 - </entry> - <entry> - Paquets de macros - </entry> - <entry> - Comme les macros de man - </entry> - </row> - <row> - <entry> - 8 - </entry> - <entry> - Administration Système - </entry> - <entry> - D'ordinaire uniquement lancé par root - </entry> - </row> - <row> - <entry> - 9 - </entry> - <entry> - Routine noyau - </entry> - <entry> - Appels non-standards et internes - </entry> - </row> - </tbody> - </tgroup> - </table> - </para> - <para> - La page de manuel de Empire devrait être nommée - empire.6. Comme il y a déjà une page de manuel empire.6, - nous pouvons effacer cet exemple. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - menu.ex - </term> - <listitem> - <para> - Les utilisateurs de X Windows ont un gestionnaire de - fenêtres avec des menus qui peuvent être configurés pour - lancer des programmes. S'ils ont installés le paquet - Debian menu, un ensemble de menus pour chaque programme - sur le système sera créé pour eux. Ce n'est pas requis - par les normes Debian, mais vos utilisateurs - apprécieront. Nous pouvons ajouter Empire aux menus en - éditant ce fichier. Voici ce que debmake crée par défaut - : - <programlisting> - text Apps/Misc empire none "empire Description" /usr/bin/empire - </programlisting> - </para> - <para> - Le premier champ indique le type d'interface requise par - le programme (text ou X11). Le champ suivant est le nom - de menu et de sous-menu dans lequel l'entrée devrait - apparaître. La liste de sections actuelles est dans - /usr/doc/menu/README. Le troisième est le nom du - menu. Le quatrième est l'icône du programme, ou rien - s'il n'y en a pas. Le cinquième est le texte qui - apparaîtra au menu. Le sixième est la commande qui lance - le programme. - </para> - <para> - Remplacez l'entrée du menu par : - <programlisting> - text Games/Strategy empire none "Build an empire" /usr/bin/empire - </programlisting> - </para> - <sidebar> - <para> - NdT : menu a changé de format, mais reste compatible - avec l'ancienne version. Aujourd'hui, on préférera - ceci : - <programlisting> - ?package(empire):needs="text" \ - section="Games/Strategy" \ - title="Build an empire" \ - icon="none" \ - command="/usr/bin/empire" - </programlisting> - </para> - </sidebar> - </listitem> - </varlistentry> - <varlistentry> - <term> - watch.ex - </term> - <listitem> - <para> - Vous pouvez utiliser ce fichier en plus des programmes - <command>uscan(1)</command> et - <command>uupdate(1)</command> du paquet devscript pour - surveiller le site duquel vous avez eu les sources - originelles. Lisez les pages de manuel pour plus de - détail. Voici ce que debmake crée par défaut : - <programlisting> - 1 # Example watch control file for uscan - 2 # Rename this file to "watch" and then you can run the "uscan" command - 3 # to check for upstream updates and more. - 4 # Site Directory Pattern Version Script - 5 sunsite.unc.edu /pub/Linux/Incoming empire-*.tar.gz debian uupdate - </programlisting> - </para> - <para> - Changez le en : - <programlisting> - 5 www.cdrom.com /pub/Linux/sunsite/games/strategy empire-*.tar.gz debian uupdate - </programlisting> - </para> - </listitem> - </varlistentry> - </variablelist> - </sect1> - </chapter> - <chapter> - <title>Construction</title> - <para> - Nous sommes enfin prêt pour la création du paquet. - </para> - <para> - Allez dans le répertoire principale d'Empire et lancez build - <screen> - <prompt>$</prompt> <userinput>cd ..</userinput> - <prompt>$</prompt> <userinput>build</userinput> - </screen> - </para> - <para> - Si vous avez fait des erreurs et que build échoue, et que vous - essayez encore, vous pouvez rencontrer un petit problème. La - deuxième fois que vous lancez build, vous pouvez avoir un - message d'erreur comme ceci : - <programlisting> - dpkg-source: unrepresentable changes to source - </programlisting> - </para> - <para> - Cette erreur apparaît quand le paquet n'a pas été correctement - nettoyé. Soyez sûr que le but clean du makefile de l'application - retire tous les fichiers inutiles. Si nous relisons le makefile - d'Empire, nous voyons que clean n'efface pas l'exécutable - empire. clobber le fait à la place (lignes 79-84). Aussi nous - changeons la ligne 17 du fichier rules en : - <programlisting> - 17 -make clobber - </programlisting> - </para> - <para> - Quand build a fini avec succès, remontez d'un répertoire : - <screen> - <prompt>$</prompt> <userinput>cd ..</userinput> - </screen> - </para> - <para> - Vous verrez quatre nouveaux fichiers - <variablelist> - <varlistentry> - <term> - empire_1.1-2_i386.deb - </term> - <listitem> - <para> - est le paquet Debian complet. Vous pouvez utiliser dpkg - ou dselect pour l'installer ou le retirer comme - n'importe quel autre paquet. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - empire_1.1-2_i386.changes - </term> - <listitem> - <para> - Au fur et à mesure que vous travaillez sur un paquet, - son comportement va changer et de nouvelles capacités - seront ajoutées. Les personnes qui téléchargent votre - paquet peuvent regarder ce fichier et voir ce qui a - changé. Le fichier est généré à partir de - empire-1.1/debian/changelog. Il contient aussi la liste - des fichiers du paquet. Les longues chaînes de - caractères sont les sommes MD5 du fichier. Une personne - qui télécharge vos fichiers peut les tester avec le - programme md5sum (voir la page de manuel) et si les - numéros ne correspondent pas, elle saura que le fichier - est corrompu ou modifié. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - empire_1.1.orig.tar.gz - </term> - <listitem> - <para> - Ceci est le source original empaqueté de sorte que si - quelqu'un veut recréer votre paquet depuis le début, il - peut. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - empire_1.1-2.dsc - </term> - <listitem> - <para> - Ceci est un résumé du contenu du code source. Ce fichier - est généré à partir du fichier - empire-1.1/debian/control. - </para> - </listitem> - </varlistentry> - </variablelist> - </para> - <para> - Et voilà. Vous êtes maintenant l'heureux créateur d'une nouvelle - archive Debian. Il reste encore beaucoup de travail à faire - avant d'être totalement conforme aux normes Debian (voyez le - Manuel des Normes pour plus de détails). Avec un peu de chance, - cette introduction vous aura montré que le processus complet - n'est pas aussi dur que beaucoup le pensent. - </para> - </chapter> - <chapter> - <title>Pour plus d'informations</title> - <formalpara> - <title> - L'aide spécifique à Debian - </title> - <para> - <itemizedlist> - <listitem> - <para> - Lisez toute la documentation dans /usr/doc/dpkg, - /usr/doc/debian, /usr/doc/debmake (surtout - README.debian.gz) et les pages de manuel pour tous les - programmes mentionnés dans cet article. - </para> - </listitem> - <listitem> - <para> - En joignant la mailing list Debian Mentor - (debian-mentors@lists.debian.org), vous pourrez faire - équipe avec des développeurs Debian expérimentés qui - seront heureux de répondre à vos questions. Vous pouvez - vous inscrire - <ulink url="mailto:debian-mentors-requests@lists.debian.org"> - ici - </ulink>. - </para> - </listitem> - <listitem> - <para> - Si vous avez encore des questions, demandez sur la - mailing list Debian Developers - (debian-devel@lists.debian.org). Vous pouvez vous - inscrire - <ulink url="mailto:debian-devel-requests@lists.debian.org"> - ici - </ulink>. - </para> - </listitem> - </itemizedlist> - </para> - </formalpara> - <bibliography> - <title> - Quelques livres d'introduction sur la programmation sous - Linux/Unix - </title> - <biblioentry> - <title> - Beginning Linux Programming - </title> - <authorgroup> - <author> - <surname> - Matthew - </surname> - </author> - <author> - <surname> - Stones - </surname> - </author> - </authorgroup> - <pubdate> - 1996 - </pubdate> - <publisher> - <publishername> - Wrox Press - </publishername> - </publisher> - <isbn> - 1874416680 - </isbn> - </biblioentry> - <biblioentry> - <title> - Programming With GNU Software - </title> - <authorgroup> - <author> - <surname> - Loukides - </surname> - </author> - <author> - <surname> - Oram - </surname> - </author> - </authorgroup> - <publisher> - <publishername> - O'Reilly & Associates - </publishername> - </publisher> - <pubdate> - 1996 - </pubdate> - <isbn> - 1-56592-112-7 - </isbn> - </biblioentry> - <biblioentry> - <title> - The Unix Programming Environment - </title> - <authorgroup> - <author> - <surname> - Kernighan - </surname> - </author> - <author> - <surname> - Pike - </surname> - </author> - </authorgroup> - <publisher> - <publishername> - Prentice-Hall Inc. - </publishername> - </publisher> - <pubdate> - 1984 - </pubdate> - <isbn> - 0-13-937681-x - </isbn> - </biblioentry> - </bibliography> - </chapter> -</book> - diff --git a/french/international/french/translations/internals.sgml b/french/international/french/translations/internals.sgml deleted file mode 100644 index 39213952900..00000000000 --- a/french/international/french/translations/internals.sgml +++ /dev/null @@ -1,573 +0,0 @@ -<!doctype debiandoc system [ -<!-- entity % manuals-version-def system "manuals-version"--> -<!--%manuals-version-def;--> -]> -<debiandoc><book> - -<titlepag> -<title>Le manuel de l'intérieur de dpkg</title> -<author> - <name>Klee Dienes</name> - <email>klee@mit.edu</email> -</author> -<version>Version 1.5 --- janvier 2001</version> -<abstract> -Ce manuel décrit la structure interne de <prgn>dpkg</prgn>, le système de -gestion des paquets. -</abstract> - -<copyright> -<copyrightsummary> -Copyright ©1997 Klee Dienes <klee@mit.edu> -</copyrightsummary> -<p> -Ce manuel est du logiciel libre; vous pouvez le redistribuer -gratuitement et/ou le modifier sous les conditions de la « GNU General -Public License » telle que publiée par la Free Software Foundation ; -soit version 2, soit (à votre convenance) n'importe quelle version suivante. -<p> - Il est distribué dans l'espoir qu'il sera utile, mais <em>sans aucune -garantie</em>; sans même la garantie implicite d'une possible -commercialisation ou d'une adéquation avec la satisfaction d'un but précis. -Consultez la « ;GNU General Public License » pour plus de détails. - -<p> -Vous devriez avoir reçu une copie de la GNU General Public License avec -votre système Debian, dans <file>/usr/share/common-licenses/GPL</file>, -ou dans le fichier <file>COPYING</file> du paquet source de -<prgn>dpkg</prgn>. Sinon, écrivez à la -Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. -</copyright> -</titlepag> - -<toc detail="sect"> - -<chapt id=build> -<heading>Notes de Compilation</heading> - <sect id=automake> - <heading>Automake</heading> -<p> -Ce chapitre a été écrit par Tom Lees <email>tom@lpsg.demon.co.uk</email> le -mardi 4 Mars 1997 à 21:34:57 +0000, et comprend de conséquentes modifications -faites par Klee Dienes <email>klee@debian.org</email>. - -<p> -Ce chapitre contient quelques généralités à propos de la conversion -à <prgn>automake</prgn>. Si vous avez l'intention de faire quoi que ce -soit avec <prgn>dpkg</prgn>, vous devriez probablement lire d'abord ce -fichier en entier. Vous avez été prévenu. - -<p> -<prgn>automake</prgn> possède plusieurs avantages significatifs, parmi -lesquels : -<list> -<item>il accepte correctement emacs lisp ; -<item>il accepte correctement libtool ; -<item>il contient l'utilitaire <prgn>aclocal</prgn>. -</list> - -<p> -L'utilitaire <prgn>aclocal</prgn> est un programme très utile qui construit -automatiquement un fichier <file>aclocal.m4</file> à partir du fichier -<file>configure.in</file> de façon à inclure les macros appropriées. - -<p> -Ceci n'affecte rien d'autre que la recompilation des fichiers -<file>Makefile.in</file> à partir des sources. - -<p> -La principale différence notable est probablement le fait qu'au lieu -d'utiliser des noms de fichiers propriétaires, il accepte maintenant -<em>configure --sharedstatedir</em> et <em>configure --localstatedir</em>. -Pour faire de ces options des options par défaut pour Debian, vous -devriez utiliser <em>./configure --localstatedir=/etc --sharedstatedir=/var/lib</em>. - -<p> -J'ai aussi accommodé les macros canonisatrices que l'on trouve dans -<em>autoconf</em> pour inclure l'ancienne façon de trouver -l'« architecture » pour <prgn>dpkg</prgn>, i.e. pour qu'il soit un peu -plus intelligent. Je l'ai modifié pour qu'il utilise les types systèmes -« host », « build » et « target » au lieu de -déterminer seulement l'architecture. Le type de CPU cible est vérifié dans -« archtable » pour trouver l'architecture sur laquelle dpkg -va tourner. - -<p> -Il utilise <em>gcc --print-libgcc-file-name</em> pour trouver si -possible l'architecture de compilation (c'est utilisé ensuite pour -déterminer le format ELF ou <em>a.out</em>) ; il utilise si possible -aussi <em>dpkg --print-architecture</em> pour modifier le champ -<em>cpu</em> avant de passer l'alias de la cible à config.sub. Si vous -voulez spécifier l'architecture, vous devriez maintenant utiliser -<em>--target=</em>, plutôt que <em>--with-arch</em>, -qui n'était de toute façon qu'un « hack ». Le vieux <em/--with-arch/ -est toujours là, mais il est quelque peu moins fonctionnel. -J'ai aussi déplacé les macros <em/DPKG_CACHED_/ dans dpkg.m4 pour rendre -un peu plus lisible le fichier configure.in. - -<p> -J'ai aussi tout converti à libtool (qu'on peut maintenant trouver dans -la distribution Debian). Cela signifie essentiellement que tous les -outils dpkg peuvent être compilés avec une librairie partagée -<em>libdpkg</em> sans trop de difficultés (en fait, c'est l'option par -défaut). Vous n'avez pas besoin d'installer libtool pour utiliser cette -fonctionnalité (cela fonctionne comme autoconf), et d'une manière générale, -cela ne devrait pas être souvent nécessaire. - -<p> -Les nouvelles cibles <em>dist</em> construisent une distribution incluant -tous les fichiers construits avec <prgn>debiandoc2html</prgn>, -<prgn>debiandoc2ps</prgn>, etc., qui sont inclus dans la distribution de -façon à ce que les gens puissent construire <prgn>dpkg</prgn> -sans eux (particulièrement utile pour ceux qui font des portages). - -<p> -Une cible <em/make debian/ a été ajoutée, qui compile les fichiers -Debian à partir d'un répertoire courant (cela fait d'abord un -<em/make dist/). Maintenant tout ce dont nous avons besoin c'est d'un -dpkg-source modifié de façon à ce que le fichier -<file/dpkg-1.4.0.8.tar.gz/ de la distribution GNU puisse être utilisé -comme une partie de la distribution Debian. -Je travaille là dessus, mais cela ne marche pas très bien pour l'instant -(vous le trouverez dans les exemples). - -<p> -J'ai enlevé la cible <em/ make portable/ target - elle ne fait rien d'utile. - -<p> -J'ai ajouté les cibles <em/make uninstall/ pour aider les -utilisateurs non-Debian qui veulent simplement essayer certains paquets -Debian ; et les cibles « dist » sont aussi utiles pour construire une -« distribution » de l'outil dpkg. Notez que du fait que automake -inclut automatiquement les dépendances dans les Makefiles dans une -distribution, si vous voulez modifier les fichiers C , il est conseillé -de récupérer et d'installer automake, et ensuite de le relancer dans le -répertoire de base de la distribution de dpkg, de façon à ce que la -génération automatique des dépendances soit remise en marche, et de façon -à ce que toute dépendance qui change soit prise en compte. Les cibles -« make maintainer-clean » enlèveront tous les fichiers qui sont -créés par les utilitaires suivants : -<list> -<item>automake -<item>autoconf -<item>aclocal -<item>autoheader -<item>gettextize -<item>libtoolize -</list> - -<p> -Si vous voulez modifier quelque chose dans les sources, je vous recommande -de faire d'abord ce qui suit (après avoir installé les -utilitaires appropriés, bien sûr) : -<list> -<item> -make maintainer-clean -<item> -aclocal -<item> -autoheader -<item> -autoconf -<item> -gettextize -<item> -libtoolize (ne laissez pas automake le lancer, sinon les fichiers libtool -ne seront pas inclus dans les cibles dist) -<item> -for i in COPYING INSTALL; do ln -s /usr/share/automake/$i .; done -<item> -automake -</list> - -<p> -J'ai aussi incorporé les patches créés par Galen -Hazelwood qui internationalisent dpkg en utilisant GNU gettext - voyez -le fichier « NOTES.intl » pour plus d'information. - -<p> -Les autres modifications mineures sont : - -<list> -<item> -Le numéro de version est maintenant déterminé par debian/changelog, et non -à partir du nom du répertoire. -<item> -La création de version.h est maintenant gérée par le script configure, -et non par le Makefile. -<item> -include/dpkg.h est maintenant produit à partir de include/dpkg.h.in -par un script « sed » qui insére les définitions des répertoires -appropriées -- il accepte maintenant le changement des répertoires de dpkg -(on peut installer dans /usr/local). - -<item> -Les fichiers « COPYING » (1 petite modification mineure) et -« INSTALL » ont été mis à jour à partir de ceux distribués avec -<em>automake-1.1l</em>. -<item> -Du fait que la librairie partagée <em>libdpkg</em> est maintenant installée, -j'ai aussi fait installer par défaut dpkg.h et dpkg-db.h dans /usr/include par -include/Makefile. -</list> - -Questions: - -<list> -<item> -Dois je utiliser <em/localstatedir/ et <em/sharedstatedir/ au lieu de -<em/sysconfdir/ et <em/datadir/? -</list> - -</sect> - -<sect id=i18n> -<heading>Internationalisation</heading> - -<p> -Cette section a été écrite par Galen Hazelwood. - -<p> -Dpkg est, pour le moins, généreux dans ses rapports d'erreur. La grande -majorité des chaînes de caractères produites sont d'une manière ou d'une -autre des messages d'erreur. Et si vous pensez que vous vous êtes égarés -dans le Ministère des Ministères Redondants, -vous auriez absolument raison. Beaucoup des messages d'erreurs -dans dpkg.pot sont dupliqués et utilisés à différents endroits dans -le programme. - -<p> -Pour éviter de submerger complètement les traducteurs, j'ai pris des -décisions arbitraires sur les sortes de chaînes de caractères -à traduire. Toutes les chaînes envoyées à debug() sont laissées telles -quelles, sur la base du fait qu'elles sont destinées aux développeurs de -dpkg, et non à l'ensemble du public. La plupart des messages d'erreur -internes sont très cryptiques, et confondraient certainement les -traducteurs qui les verraient simplement posés là dans le fichier -dpkg.pot, et ils sont laissés tels quels. (J'en ai quand même -marqués quelques uns parmi les plus verbeux pour traduction.) - -<p> -Si d'autres ne sont pas d'accord avec moi sur la nécessité -de traduire ces chaînes, c'est suffisamment facile de simplement -poursuivre et de les marquer plus tard. - -<p> -J'ai ajouté le code de démarrage de gettext à la routine principale -de dselect, ce qui était nécessaire car beaucoup des chaînes -de lib sont traduites. Dselect est à part cela inchangé. - -<p> -Modifications : - -<list> -<item> -Les fichiers dans intl et po ont été pris de gettext 0.10.26, grâce au -programme gettextize. J'ai altéré les makefiles pour enlever le symbole -VERSION, qui est utilisé seulement dans les cibles que dpkg n'accepte pas. -<item> -aclocal.m4 a été récupéré dans le paquet textutils, configure.in a été -altéré pour utiliser ces nouveaux tests, les symboles ont été ajoutés -à acconfig.h, et deux nouveaux répertoires ont été ajoutés dans -Makefile.in. -<item> -Les Makefiles de dpkg, dpkg-deb, md5sum, split, et dselect cherchent -maintenant des fichiers d'en-tête (headers) dans ../intl, et essayent -de lier avec toute librairie d'internationalisation que <em>configure</em> -trouve. Ils définissent aussi maintenant LOCALEDIR dans CFLAGS. -<item> -include/dpkg.h possède tous les éléments NLS nécessaires, et le seul -fichier qui ne les inclut pas (md5sum/md5sum.c) les comprend directement. -<item> -La modification la plus profonde est due à un conflit entre xgettext -et le style de codage de dpkg. Bien que xgettext comprenne la -concaténation des chaînes constantes, il ne gère pas le cas où les -symboles préprocesseur sont utilisés en même temps. Le code de dpkg -utilise beaucoup cela, en particulier dans des cas comme celui-ci : -<example> -ohshite("error reading from " BACKEND " pipe"); -</example> -où BACKEND est défini comme « dpkg-deb ». xgettext n'acceptant pas cela, -j'ai modifié l'utilisation générale comme cela : -<example> -ohshite(_("error reading from dpkg-deb pipe"); -</example> -Ce n'est pas très sympa pour Ian, je sais. Mais que puis je faire ? -</list> - -</sect> - -</chapt> - -<chapt id=code> -<heading>L'intérieur du code</heading> - -<sect id=defs> -<heading>Définitions de structures</heading> - -<sect1 id=versionrevision> -<heading>versionrevision</heading> -<p> -<example> -struct versionrevision { - unsigned long epoch; - char *version; - char *revision; -}; -</example> - -<p> -La structure <tt/versionrevision/ est utilisée pour gérer une -spécification de version Debian. - -</sect1> - -</sect> - -<sect id=functions> -<heading>Les fonctions</heading> - -<sect1 id=parsing> -<heading>Les tables de traduction de l'analyse syntaxique</heading> -<p> -Chacune de ces tables est utilisée pour associer un ensemble de chaînes -de caractères avec un ensemble correspondant d'entiers. - -Les tables actuelles sont : - -<p> -<example> -const struct namevalue booleaninfos[]; -</example> - -<p> -Associe des chaînes booléennes (<em/"yes"/,<em/"no"/) à leur valeur -binaire. - - -<sect2> -<heading>priorityinfos[]</heading> - -<p> -<example> -const struct namevalue priorityinfos[]; -</example> - -<p> -Associe les chaînes de priorité à des valeurs de type -<em/enum pkgpriority/. -Les valeurs actuelles de priorité sont : -<list> -<item><em/required/ - required -<item><em/important/ - important -<item><em/standard/ - standard -<item><em/recommended/ - recommended -<item><em/optional/ - optional -<item><em/extra/ - extra -<item><em/contrib/ - contrib -<item><em/other/ - other -<item><em/unknown/ - unknown -<item><em/base/ - -Cette chaîne, bien que dépassée, est reconnue comme un alias. -</item> -</list> -</sect2> - -<sect2> -<heading>statusinfos[]</heading> - -<p> -<example> -const struct namevalue statusinfos[]; -</example> - -Associe une chaîne sur l'état des paquets à des valeurs de type <em/enum ???/. - -Les chaînes sur l'état des paquets sont : - -« not-installed », « unpacked », « half-configured », « installed », -« half-installed », « config-files », « postinst-failed » et -« removal-failed ». -</sect2> - -<sect2> -<heading>eflaginfos[]</heading> - -<p> -<example> -const struct namevalue eflaginfos[]; -</example> -</sect2> - -<sect2> -<heading>wantinfos[]</heading> - -<p> -<example> -const struct namevalue wantinfos[]; -</example> -</sect2> - -<sect2> -<heading>nicknames[]</heading> - -<p> -<example> -const struct nickname nicknames[]; -</example> - -Associe des champs de contrôle dépassés à leurs versions actuelles. - -</sect2> - -</sect1> - -<sect1 id=parsef> -<heading>Les fonctions d'analyse syntaxique</heading> - -<sect2> -<heading>parseerr()</heading> - -<p> -<example> -void parseerr -(FILE *file, const char *filename, int lno, - FILE *warnto, int *warncount, const struct pkginfo *pigp, - int warnonly, const char *fmt, ...); -</example> - -Renvoie une erreur lors de l'analyse syntaxique d'un flot de données -de contrôle. Cherche dans <em>file</em> un état d'erreur, affiche un -message d'erreur dans stderr et termine avec un code d'erreur si une -erreur est présente dans le flot. Formate les arguments variables -suivant la chaîne <em/printf/-style dans <var/fmt/, en faisant précéder -le résultat de <var/filename/, <var/lno/, and <var/pigp/ (si non NULL). -Si <var/warnonly/ est égal à 0, écrit le résultat dans stderr et termine -avec un code d'erreur. Autrement, incrémente <var/warncount/ et -termine normalement. -</sect2> - -<sect2> -<heading>illegal_packagename()</heading> - -<p> -<em> -const char *illegal_packagename -(const char *p, const char **ep) -</em> - -Vérifie le nom de paquet dans <var/p/ que la syntaxe est correcte. -Renvoie NULL en cas de succès, en faisant pointer <em>*ep</em> après le -dernier caractère du nom de paquet, incluant tout espace blanc éventuel -(tel que défini par isspace()). En cas d'erreur, renvoie le message -d'erreur comme un pointeur vers un buffer statique. -</sect2> - -<sect2> -<heading>informativeversion()</heading> - -<p> -<em> -int informativeversion(const struct versionrevision *version) -</em> - -<p> -Renvoie « true » si et seulement si <em/versionrevision/ n'est -pas vide ; autrement renvoie « false ». -</sect2> - -<sect2> -<heading>varbufversion()</heading> - -<p> -<example> -void varbufversion -(struct varbuf *vb, - const struct versionrevision *version, - enum versiondisplayepochwhen vdew); -</example> - -Rend lisible par un humain une version de <em>version</em> dans <em>vb</em>. -Les valeurs possibles de <em>vdew</em> sont : - -<list> -<item><tt/vdew_never/ - n'inclut jamais la chaîne « epoch » -<item><tt/vdew_nonambig/ - inclut la chaîne « epoch » si non nul -<item><tt/vdew_always/ - inclut toujours la chaîne « epoch » -</list> -</sect2> - -<sect2> -<heading>versiondescribe()</heading> - -<p> -<example> -const char *versiondescribe -(const struct versionrevision *version, - enum versiondisplayepochwhen vdew); -</example> - -<p> -Renvoie une version lisible par un humain de <em>version</em> comme un -pointeur vers un buffer statique. Si la structure de version est vide, -renvoie <em/"<none>"/. Les buffers statiques sont alloués à partir -d'un ensemble de 10 à la façon « round-robin » (ils seront -réutilisés après 10 appels successifs à <em/versiondescribe/). -</sect2> - -<sect2> -<heading>parseversion()</heading> - -<p> -<example> -const char *parseversion -(struct versionrevision *rversion, const char *string); -</example> - -<p> -Fait l'analyse syntaxique du contenu de <var/string/ dans -<var/rversion/. Si cela réussit, renvoie NULL, sinon renvoie un pointeur -vers une chaîne d'erreur statique. -</sect2> - -<sect2> -<heading>parsemustfield()</heading> - -<p> -<example> -void parsemustfield -(FILE *file, const char *filename, int lno, - FILE *warnto, int *warncount, - const struct pkginfo *pigp, int warnonly, - char **value, const char *what); -</example> -</sect2> - -<sect2> -<heading>skip_slash_dotslash()</heading> - -<p> -<example> -const char *skip_slash_dotslash (const char *p); -</example> -</sect2> - -<sect2> -<heading>convert_string()</heading> - -<p> -<example> -static int convert_string -(const char *filename, int lno, const char *what, int otherwise, - FILE *warnto, int *warncount, const struct pkginfo *pigp, - const char *startp, const struct namevalue *nvip, - const char **endpp) -</example> -</sect2> - -</sect1> - -</sect> -</chapt> -</book></debiandoc> diff --git a/french/international/french/translations/libc5-libc6-Mini-HOWTO.fr.html b/french/international/french/translations/libc5-libc6-Mini-HOWTO.fr.html deleted file mode 100644 index e42353f73fa..00000000000 --- a/french/international/french/translations/libc5-libc6-Mini-HOWTO.fr.html +++ /dev/null @@ -1,192 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> -<HTML> -<HEAD> -<TITLE>Mini-HOWTO Debian libc5 vers libc6</TITLE> - - -</HEAD> -<BODY> -<H1>Mini-HOWTO Debian libc5 vers libc6</H1> - -<H2>Scott K. Ellis, <CODE>storm@gate.net</CODE> -<H2>Traducteur: Philippe Caillaud -<EMAIL>pcaillaud@infini.fr</EMAIL> -</H2></H2> -<H2><A NAME="s1">1. Introduction</A></H2> - -<P>Le projet Debian est actuellement en train de mettre en place la prochaine version du -système Debian. Cette version utilisera la nouvelle libc6, une remplaçante pour -l'ancienne libc5, qui inclut de nombreuses améliorations et resynchronise la -bibliothèque C de Linux avec le projet GNU. Nous procédons de manière à vous -permettre de continuer à utiliser vos anciens logiciels en fournissant des -environnements de développement et d'exploitation pour les deux bibliothèques. -Cependant tous les paquets de la nouvelle version seront liés avec la nouvelle -bibliothèque C. Cela rend un peu plus difficile l'installation dans un -système en fonctionnement des paquets provenant de la branche "unstable" de l'arbre de -développement. Il y a une faible chance dans le processus de rendre votre -système incapable de démarrer; ce guide a pour but de vous aider à éviter de -tels problèmes. -<P> -<H2>1.1 Changements récents</H2> - -<P> -<P> -<UL> -<LI>Mise à jour des versions des logiciels mentionnés pour celles des archives.</LI> -<LI>Mise à jour de la note sur /etc/nsswitch.conf</LI> -<LI>Note sur le changement de vthunk avec glibc 2.0.5c.</LI> -<LI>Mise à jour de bash séparée des mises à jour requises.</LI> -<LI>Note sur la mise à jour via dpkg-ftp.</LI> -<LI>Notes sur les problèmes de NIS et libgdbm (perl).</LI> -<LI>Note sur le danger de e2fsck basé sur libc6 pour les grandes partitions.</LI> -</UL> -<P> -<H2>1.2 Trouver des mises à jour</H2> - -<P>La dernière version (source SGML) de ce Mini-HOWTO devrait être disponible aux adresses -suivantes: -<UL> -<LI> -<A HREF="http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.sgml">http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.sgml</A> -(original)</LI> -<LI> -<A HREF="http://www.infini.fr/~pcaillau/debian/libc5-libc6-Mini-HOWTO-FR.sgml">http://www.infini.fr/~pcaillau/debian/libc5-libc6-Mini-HOWTO-FR.sgml</A> (traduction)</LI> -</UL> -<P> -<H2>1.3 Copyright et avertissement</H2> - -<P>Ce Mini-HOWTO est couvert par le copyright des HOWTOs du LDP et peut être -redistribué sous les mêmes termes. -<P>Comme toujours, ce document est fourni SANS AUCUNE GARANTIE. Ces commentaires -sont basés sur mes expériences et expérimentations personnelles. Bien que cela -ait fonctionné pour moi à partir d'un système v1.3.1 fraîchement installé, -votre expérience peut différer. Envoyez SVP tout commentaire ou correction -à <CODE>storm@gate.net</CODE> (original), ou à -<EMAIL>pcaillaud@infini.fr (traduction).</EMAIL> -<P> -<H2><A NAME="s2">2. Pré-requis</A></H2> - -<H2>2.1 Pré-requis minimums</H2> - -<P>La liste minimale des paquets à installer pour pouvoir faire tourner des -paquets de la branche instable se trouve ci-dessous. Installez ces paquets un -par un exactement dans l'ordre indiqué. Quand des versions sont mentionnées, -il s'agit de versions minimales suggérées: toute version supérieure devrait aussi être -acceptable. -<P> -<P> -<UL> -<LI>ldso_1.9.6-2</LI> -<LI>libc6_2.0.5c-0.1</LI> -</UL> -<P> -<H2>2.2 Mettre à jour bash</H2> - -<P> -<P>Bien que vous puissiez installer de nombreux paquets libc6 avec seulement ldso -et libc6, vous voudrez probablement mettre à jour quelques autres paquets en -même temps. Puisque bash-2.01 règle des problèmes liés à Netscape et à des -applications FIXME "helper", c'est l'un des paquets nécessitant probablement -le plus une mise à jour. Cependant, c'est aussi l'un des rares paquets -à pouvoir rendre votre système inutilisable en étant mal mis à jour. Installez -les paquets ci-dessous un par un en suivant exactement l'ordre indiqué. -<P><EM>IMPORTANT: Si vous utilisez dselect pour faire la mise à jour initiale de -ces paquets, il y a une grande chance de perturber bash et de rendre votre -système hors d'usage.</EM> -<P> -<UL> -<LI>ncurses3.0_1.9.9e-2</LI> -<LI>ncurses3.4_1.9.9g-5</LI> -<LI>libreadline2_2.1-7</LI> -<LI>libreadlineg2_2.1-7</LI> -<LI>bash_2.01-5</LI> -</UL> -<P> -<H2>2.3 Autres paquets suggérés.Ces paquets ne sont pas absolument essentiels pour le fonctionnement despaquets de "unstable", mais ils sont néanmoins très utiles. Le nouveau dpkg-devpeut être nécessaire pour dépaquetter les archives sources de "unstable",et le nouveau dpkg-ftp est requis si vous souhaitez utiliser la méthode FTP dedselect pour mettre à jour votre système avec la distribution "unstable".</H2> - -<P> -<UL> -<LI>libg++272_2.7.2.8-0.1</LI> -<LI>dpkg_1.4.0.19</LI> -<LI>dpkg-dev_1.4.0.19</LI> -<LI>dpkg-ftp_1.4.9</LI> -</UL> -<P> -<H2>2.4 Autres conflits possibles</H2> - -<P>Comme Perl est utilisé dans de nombreux scripts d'installation de paquets, des -problèmes avec les mises à jour de bibliothèques rendant temporairement Perl -inutilisable peuvent perturber l'installation d'autres paquets. Par sécurité, -installez à la main la nouvelle libgdbm1 et ensuite les nouveaux paquets -libgdbmg1 avant de mettre à jour Perl. -<P> -<H2><A NAME="s3">3. Développement</A></H2> - -<P>Si vous souhaitez faire du développement avec la libc6, vous devriez d'abord -purger tous les paquets '-dev' de votre système; en effet, le nouveau système -va utiliser le suffixe '-dev' pour le développement avec la libc6 et '-altdev' -pour le développement avec la libc5. Vous devrez sans doute installer le -dernier paquet libc5 et altgcc si vous voulez continuer le développement libc5 -en même temps. Quelques bibliothèques n'ont pas été recompilées pour la -nouvelle libc6, aussi vérifiez que toutes vos bibliothèques vitales sont -disponibles avant de mettre à jour. Lier des bibliothèques basées sur la libc5 -avec des programmes basés sur la libc6 donnera des résultats imprévisibles. -<P> -<H2><A NAME="s4">4. Concernant...</A></H2> - -<H2>4.1 La mise à jour vers libc6_2.0.5c-0.1</H2> - -<P>A cause d'un changement dans le code de gestion vthunk dans libc6 et libg++, -vous devrez au moins mettre à jour vers libg++272_2.7.2.8-0.1 pendant la mise -à jour de libc6. -<P> -<H2>4.2 /sbin/e2fsck</H2> - -<P>Le programme e2fsck dans e2fsprogs_1.10-4 contient une bogue qui lui fait -détruire des données sur les partitions de taille supérieure à 2Go. La version -dans e2fsprogs_1.10-7 a corrigé cette bogue. <EM>IMPORTANT: Si vous lancez -l'ancien e2fsck (basé sur libc6) sur une partition de 2Go ou plus, VOUS PERDREZ -DES DONNEES.</EM> -<P> -<H2>4.3 /usr/bin/gencat</H2> - -<P>Notez aussi que les deux paquets man-db et libc6-dev incluent en ce moment -<CODE>/usr/bin/gencat</CODE>. On a rapporté que la version de gencat dans libc6-dev -causait des problèmes de "segfault" avec man-db, aussi vous devrez sans doute -réinstaller man-db après lib6-dev si vous observez ces problèmes. -<P> -<H2>4.4 /etc/nsswitch.conf (NIS/YP)</H2> - -<P>La gestion de NIS/YP a légèrement changé avec la libc6. Si vous utilisez NIS, vous -aurez probablement besoin de changer <CODE>/etc/nsswitch.conf</CODE>; l'option -<CODE>compat</CODE> préservera l'ancien (libc5) comportement. Vous devriez aussi -changer la ligne <CODE>networks</CODE> de <CODE>files dns</CODE> vers <CODE>files</CODE>. Cela -empêchera les programmes de configuration du réseau d'essayer de résoudre les -"hostnames". -<P> -<H2>4.5 Mise à jour vers "unstable" par FTP</H2> - -<P>La structure de répertoire du site FTP a été légèrement modifiée en plaçant les -sections "contrib" et "non-free" dans l'archive à côté de la section "main", -pour éviter que "contrib" et "non-free" soient désynchronisées par rapport aux -parties précédentes des archives. Vous devez avoir dpkg-ftp_1.4.9 ou supérieur -pour mettre à jour votre machine en utilisant dpkg-ftp. Si vous mettez à jour -votre machine par FTP, la bonne information à donner à dpkg-ftp est: -<P> -<UL> -<LI>Enter debian directory Entrez le répertoire Debian]: <CODE>/debian</CODE> -<LI>Enter space seperated list of distributions to get [Entrez la liste des distributions à aller chercher, séparée par des espaces]: -<CODE>dists/unstable/main dists/unstable/non-free dists/unstable/contrib</CODE></LI> -</LI> -</UL> -<P> -<H2>4.6 libc5_5.4.33-6</H2> - -<P>Debian 1.3.1r4 incluait une mise à jour de la libc5 qui créait un conflit avec -la libc6. Le conflit fut ajouté à cause de problèmes avec les "locales" et le -format des fichiers utmp/wtmp. Une version plus ancienne de la libc5 qui ne crée -pas de conflit, ainsi que les bibliothèques de développement, se trouve -à <A HREF="ftp://ftp.gate.net/pub/users/storm/">ftp://ftp.gate.net/pub/users/storm/</A>. -<P> -</BODY> -</HTML> diff --git a/french/international/french/translations/libc5-libc6-Mini-HOWTO.fr.sgml b/french/international/french/translations/libc5-libc6-Mini-HOWTO.fr.sgml deleted file mode 100644 index 8793e22800f..00000000000 --- a/french/international/french/translations/libc5-libc6-Mini-HOWTO.fr.sgml +++ /dev/null @@ -1,185 +0,0 @@ -<!doctype linuxdoc system> -<article> - -<title>Mini-HOWTO Debian libc5 vers libc6 -<author>Scott K. Ellis, <tt/storm@gate.net/ -<author>Traducteur: Philippe Caillaud <email>pcaillaud@infini.fr -<date> - -<sect>Introduction -<p> -Le projet Debian est actuellement en train de mettre en place la prochaine version du -système Debian. Cette version utilisera la nouvelle libc6, une remplaçante pour -l'ancienne libc5, qui inclut de nombreuses améliorations et resynchronise la -bibliothèque C de Linux avec le projet GNU. Nous procédons de manière à vous -permettre de continuer à utiliser vos anciens logiciels en fournissant des -environnements de développement et d'exploitation pour les deux bibliothèques. -Cependant tous les paquets de la nouvelle version seront liés avec la nouvelle -bibliothèque C. Cela rend un peu plus difficile l'installation dans un -système en fonctionnement des paquets provenant de la branche "unstable" de l'arbre de -développement. Il y a une faible chance dans le processus de rendre votre -système incapable de démarrer; ce guide a pour but de vous aider à éviter de -tels problèmes. - -<sect1>Changements récents -<p> - -<itemize> -<item>Mise à jour des versions des logiciels mentionnés pour celles des archives. -<item>Mise à jour de la note sur /etc/nsswitch.conf -<item>Note sur le changement de vthunk avec glibc 2.0.5c. -<item>Mise à jour de bash séparée des mises à jour requises. -<item>Note sur la mise à jour via dpkg-ftp. -<item>Notes sur les problèmes de NIS et libgdbm (perl). -<item>Note sur le danger de e2fsck basé sur libc6 pour les grandes partitions. -</itemize> - -<sect1>Trouver des mises à jour -<p> -La dernière version (source SGML) de ce Mini-HOWTO devrait être disponible aux adresses -suivantes: -<itemize> -<item><url url="http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.sgml"> -(original) -<item><url url="http://www.infini.fr/~pcaillau/debian/libc5-libc6-Mini-HOWTO-FR.sgml"> (traduction) -</itemize> - -<sect1>Copyright et avertissement -<p> -Ce Mini-HOWTO est couvert par le copyright des HOWTOs du LDP et peut être -redistribué sous les mêmes termes. - -Comme toujours, ce document est fourni SANS AUCUNE GARANTIE. Ces commentaires -sont basés sur mes expériences et expérimentations personnelles. Bien que cela -ait fonctionné pour moi à partir d'un système v1.3.1 fraîchement installé, -votre expérience peut différer. Envoyez SVP tout commentaire ou correction -à <tt/storm@gate.net/ (original), ou à <email>pcaillaud@infini.fr (traduction). - -<sect>Pré-requis -<sect1>Pré-requis minimums -<p> -La liste minimale des paquets à installer pour pouvoir faire tourner des -paquets de la branche instable se trouve ci-dessous. Installez ces paquets un -par un exactement dans l'ordre indiqué. Quand des versions sont mentionnées, -il s'agit de versions minimales suggérées: toute version supérieure devrait aussi être -acceptable. - - -<itemize> -<item>ldso_1.9.6-2 -<item>libc6_2.0.5c-0.1 -</itemize> - -<sect1>Mettre à jour bash -<p> - -Bien que vous puissiez installer de nombreux paquets libc6 avec seulement ldso -et libc6, vous voudrez probablement mettre à jour quelques autres paquets en -même temps. Puisque bash-2.01 règle des problèmes liés à Netscape et à des -applications FIXME "helper", c'est l'un des paquets nécessitant probablement -le plus une mise à jour. Cependant, c'est aussi l'un des rares paquets -à pouvoir rendre votre système inutilisable en étant mal mis à jour. Installez -les paquets ci-dessous un par un en suivant exactement l'ordre indiqué. - -<em/IMPORTANT: Si vous utilisez dselect pour faire la mise à jour initiale de -ces paquets, il y a une grande chance de perturber bash et de rendre votre -système hors d'usage./ - -<itemize> -<item>ncurses3.0_1.9.9e-2 -<item>ncurses3.4_1.9.9g-5 -<item>libreadline2_2.1-7 -<item>libreadlineg2_2.1-7 -<item>bash_2.01-5 -</itemize> - -<sect1>Autres paquets suggérés. - -Ces paquets ne sont pas absolument essentiels pour le fonctionnement des -paquets de "unstable", mais ils sont néanmoins très utiles. Le nouveau dpkg-dev -peut être nécessaire pour dépaquetter les archives sources de "unstable", -et le nouveau dpkg-ftp est requis si vous souhaitez utiliser la méthode FTP de -dselect pour mettre à jour votre système avec la distribution "unstable". - -<itemize> -<item>libg++272_2.7.2.8-0.1 -<item>dpkg_1.4.0.19 -<item>dpkg-dev_1.4.0.19 -<item>dpkg-ftp_1.4.9 -</itemize> - -<sect1>Autres conflits possibles -<p> -Comme Perl est utilisé dans de nombreux scripts d'installation de paquets, des -problèmes avec les mises à jour de bibliothèques rendant temporairement Perl -inutilisable peuvent perturber l'installation d'autres paquets. Par sécurité, -installez à la main la nouvelle libgdbm1 et ensuite les nouveaux paquets -libgdbmg1 avant de mettre à jour Perl. - -<sect>Développement -<p> -Si vous souhaitez faire du développement avec la libc6, vous devriez d'abord -purger tous les paquets '-dev' de votre système; en effet, le nouveau système -va utiliser le suffixe '-dev' pour le développement avec la libc6 et '-altdev' -pour le développement avec la libc5. Vous devrez sans doute installer le -dernier paquet libc5 et altgcc si vous voulez continuer le développement libc5 -en même temps. Quelques bibliothèques n'ont pas été recompilées pour la -nouvelle libc6, aussi vérifiez que toutes vos bibliothèques vitales sont -disponibles avant de mettre à jour. Lier des bibliothèques basées sur la libc5 -avec des programmes basés sur la libc6 donnera des résultats imprévisibles. - -<sect>Concernant... -<sect1>La mise à jour vers libc6_2.0.5c-0.1 -<p> -A cause d'un changement dans le code de gestion vthunk dans libc6 et libg++, -vous devrez au moins mettre à jour vers libg++272_2.7.2.8-0.1 pendant la mise -à jour de libc6. - -<sect1>/sbin/e2fsck -<p> -Le programme e2fsck dans e2fsprogs_1.10-4 contient une bogue qui lui fait -détruire des données sur les partitions de taille supérieure à 2Go. La version -dans e2fsprogs_1.10-7 a corrigé cette bogue. <em/IMPORTANT: Si vous lancez -l'ancien e2fsck (basé sur libc6) sur une partition de 2Go ou plus, VOUS PERDREZ -DES DONNEES./ - -<sect1>/usr/bin/gencat -<p> -Notez aussi que les deux paquets man-db et libc6-dev incluent en ce moment -<tt>/usr/bin/gencat</>. On a rapporté que la version de gencat dans libc6-dev -causait des problèmes de "segfault" avec man-db, aussi vous devrez sans doute -réinstaller man-db après lib6-dev si vous observez ces problèmes. - -<sect1>/etc/nsswitch.conf (NIS/YP) -<p> -La gestion de NIS/YP a légèrement changé avec la libc6. Si vous utilisez NIS, vous -aurez probablement besoin de changer <tt>/etc/nsswitch.conf</>; l'option -<tt/compat/ préservera l'ancien (libc5) comportement. Vous devriez aussi -changer la ligne <tt/networks/ de <tt/files dns/ vers <tt/files/. Cela -empêchera les programmes de configuration du réseau d'essayer de résoudre les -"hostnames". - -<sect1>Mise à jour vers "unstable" par FTP -<p> -La structure de répertoire du site FTP a été légèrement modifiée en plaçant les -sections "contrib" et "non-free" dans l'archive à côté de la section "main", -pour éviter que "contrib" et "non-free" soient désynchronisées par rapport aux -parties précédentes des archives. Vous devez avoir dpkg-ftp_1.4.9 ou supérieur -pour mettre à jour votre machine en utilisant dpkg-ftp. Si vous mettez à jour -votre machine par FTP, la bonne information à donner à dpkg-ftp est: - -<itemize> -<item>Enter debian directory [Entrez le répertoire Debian]: <tt>/debian</> -<item>Enter space seperated list of distributions to get [Entrez la liste des distributions à aller chercher, séparée par des espaces]: -<tt>dists/unstable/main dists/unstable/non-free dists/unstable/contrib</> -</itemize> - -<sect1>libc5_5.4.33-6 -<p> -Debian 1.3.1r4 incluait une mise à jour de la libc5 qui créait un conflit avec -la libc6. Le conflit fut ajouté à cause de problèmes avec les "locales" et le -format des fichiers utmp/wtmp. Une version plus ancienne de la libc5 qui ne crée -pas de conflit, ainsi que les bibliothèques de développement, se trouve -à <url url="ftp://ftp.gate.net/pub/users/storm/">. - -</article> diff --git a/french/international/french/translations/markup.fr.html/ch-chaptsectpar.html b/french/international/french/translations/markup.fr.html/ch-chaptsectpar.html deleted file mode 100644 index d0b62df242b..00000000000 --- a/french/international/french/translations/markup.fr.html/ch-chaptsectpar.html +++ /dev/null @@ -1,84 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> - -<html> - -<head> - -<title>Manuel de Debiandoc-SGML - Chapitres, sections et paragraphes</title> - -</head> - -<body> - -<hr> - -[<a href="ch-structure.html">précédent</a>] - [<a href="index.html#copyright">Copyright</a>] - [<a href="index.html#contents">Table des matières</a>] - [<a href="ch-inline.html">suivant</a>] - -<hr> - -<h1> -Manuel de Debiandoc-SGML - Chapitre 3<br> -Chapitres, sections et paragraphes -</h1> - -<hr> - -<p> -Chaque chapitre commence par une balise <samp><chapt></samp>, suivi -par le titre du chapitre. Le titre peut contenir du texte brut balisé, -mais pas de références croisées (voir <a href="ch-inline.html">Texte brut balisé et balisage du style de caractères, chapter 4</a>). -</p> - -<p> -Le corps du chapitre est constitué de zéro à plusieurs paragraphes, -le premier devant être indiqué par une balise <samp><p></samp> pour -le distinguer du titre, puis de zéro à plusieurs sections. -</p> - -<p> -Une section commence par <samp><sect></samp> et possède une structure équivalente: -titre, optionnellement des paragraphes et puis optionnellement des sous-sections. -</p> - -<p> -Les sous-sections sont <samp><sect1></samp>; il y a aussi des divisions -plus petites <samp><sect2></samp>, <samp><sect3></samp> and <samp><sect4></samp>. -</p> - -<p> -Les paragraphes sont introduits par <samp><p></samp>. Parfois la balise de -début de paragraphe peut être omise, mais elle est obligatoire -après <samp><chapt></samp>, <samp><sect></samp> et ainsi de suite. Il n'est -jamais nécessaire de marquer la fin d'un paragraphe avec <samp></p></samp>. -</p> - -<p> -Les paragraphes peuvent contenir du texte brut balisé -(voir <a href="ch-inline.html">Texte brut balisé et balisage du style de caractères, chapter 4</a>) ainsi que des listes et des exemples -(<a href="ch-listexamp.html">Listes et exemples, chapter 5</a>). -</p> - -<hr> - -[<a href="ch-structure.html">précédent</a>] - [<a href="index.html#copyright">Copyright</a>] - [<a href="index.html#contents">Table des matières</a>] - [<a href="ch-inline.html">suivant</a>] - -<hr> - -Manuel de Debiandoc-SGML<br> - -<address> -30 mars 1999<br> -Ian Jackson <a href="mailto:ijackson@gnu.ai.mit.edu">ijackson@gnu.ai.mit.edu</a><br> -Traduction de Christophe Le Bars <a href="mailto:clebars@debian.org">clebars@debian.org</a> -</address> - -</body> - -</html> - diff --git a/french/international/french/translations/markup.fr.html/ch-inline.html b/french/international/french/translations/markup.fr.html/ch-inline.html deleted file mode 100644 index 742e76534fc..00000000000 --- a/french/international/french/translations/markup.fr.html/ch-inline.html +++ /dev/null @@ -1,242 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> - -<html> - -<head> - -<title>Manuel de Debiandoc-SGML - Texte brut balisé et balisage du style de caractères</title> - -</head> - -<body> - -<hr> - -[<a href="ch-chaptsectpar.html">précédent</a>] - [<a href="index.html#copyright">Copyright</a>] - [<a href="index.html#contents">Table des matières</a>] - [<a href="ch-listexamp.html">suivant</a>] - -<hr> - -<h1> -Manuel de Debiandoc-SGML - Chapitre 4<br> -Texte brut balisé et balisage du style de caractères -</h1> - -<hr> - -<p> -Le texte ordinaire (appelé «texte brut» dans ce document) peut contenir -des éléments de formatage spécial et de référencement croisé. Le texte brut -apparaît dans les titres de chapitres et de sections, dans le -résumé du copyright, à l'intérieur des paragraphe et dans d'autres -endroits équivalents. -</p> - -<hr> - -<h2> -<a name="s4.1">4.1 Style de caractères</a> -</h2> - -<p> -Il y a un certain nombre d'éléments pour marquer la signification -particulière de certains morceaux de textes. Pour ceux-ci, la fin -du texte spécial doit être marqué explicitement, en utilisant -une balise de fin explicite <samp></<var>element</var>></samp>, la balise -de fin abrégée fermant l'élément le plus proche <samp></></samp> ou -la barre oblique <samp>/</samp> qui termine la forme la plus abrégée -des balises. (voir <a href="ch-markup.html">Balises SGML et caractères spéciaux, chapter 1</a>). - -<dl> -<p><dt><samp><em></samp> - emphase<dd>Indique que le texte contenu est plus important ou plus -significatif que celui environnant. - -Typiquement ceci sera représenté si possible par des italiques, ou -par un texte en gras ou souligné, ou bien dans les formats de texte -seulement, sans styles de caractère spéciaux, en encadrant le texte -avec des astérisques comme *ceci*. - -<p><dt><samp><var></samp> - méta-variable<dd>Indique que le texte contenu est une méta-variable. C'est-à-dire, -que c'est le nom d'un objet ou d'une pièce syntaxique qui -dans un usage normal serait remplacée par une valeur réelle. - -Typiquement ceci sera représenté par des italiques, ou les formats -de texte seulement en encadrant le texte avec des crochets angulaires -comme <ceci>. Si plusieurs méta-variables apparaissent -successivement, elles doivent chacune utiliser leur propre élément -<samp><var></samp>. - -<p><dt><samp><prgn></samp> - nom d'un programme ou d'un fichier bien connu<dd>Indique que le texte contenu est le nom d'un programme, d'un fichier -bien connu (habituellement sans chemin), d'une fonction ou d'un objet -équivalent ayant un nom pour l'ordinateur. - -Dans les formats de sortie où il existe des styles de caractères spéciaux -et des styles de polices variés, ceci est habituellement représenté en -utilisant une police non-proportionnelle. Dans les formats de sortie -texte seulement, ces noms ne sont pas spécialement marqués, -puisqu'ils surviennent fréquemment et qu'introduire un encadrement -perturberait le cours du texte. - -<p><dt><samp><tt></samp> - chemin, code ou fragment de sortie, chaîne de commande<dd>Indique que le texte contenu est une chaîne quelconque provenant -ou étant destiné à un ordinateur. Ceci doit être utilisé pour les -chemins complets, les fragments de code devant être visualisés -sous forme brute et sans justification (voir aussi <a href="ch-listexamp.html#s-examples">Exemples, section 5.2</a> -pour une autre solution) et ainsi de suite. Il est fréquemment nécessaire -d'introduire des méta-variables dans ces chaînes, qui dans ce cas -doivent faire partie de l'élément <samp><tt></samp> plutôt que des -éléments environnants. - -Ceci sera habituellement représenté en utilisant une police de largeur -fixe; dans les formats texte seulement un encadrement peut être -utiliser autour de l'élément. - -<p><dt><samp><qref id="<var>refid</var>"></samp> - référence conditionnelle<dd>Crée une «référence conditionnelle» vers la référence nommée id (voir -<a href="#s-xref">Références croisées, section 4.2</a>). Ceci doit être utilisé lorsque une référence croisée -est utile si elle ne perturbe pas le cours du texte, mais -que non-essentielle, elle peut être abandonnée si elle doit le perturber. - -Dans les formats permettant des références croisées non-perturbantes en -faisant d'une zone de texte un hyperlien sans introduire du nouveau -texte, cet élément fera du texte contenu un hyperlien vers -la cible de la référence croisée. Dans les autres formats cet élément -n'aura aucun effet. - -</dl> -</p> - -<hr> - -<h2> -<a name="s-xref">4.2 Références croisées</a> -</h2> - -<p> -Il y a plusieurs éléments permettant d'introduire des références croisées -soit vers les autres parties d'un même document soit vers d'autres -documents. -</p> - -<p> -Les références croisées internes au document sont basées sur un schéma -d'identifiants référentiels. Chaque chapitre, section, sous-section, etc. -peut avoir un attribut <samp>id</samp> lui donnant son identifiant référentiel -- par exemple <samp><chapt id="spong"></samp> spécifie que le chapitre -commençant possède l'identifiant référentiel <samp>spong</samp>. Cet identifiant -référentiel peut alors être pointé dans d'autres parties du document -en utilisant les éléments spéciaux des références croisées. -</p> - -<p> -L'identifiant référentiel sera aussi utilisé pour générer des noms -de fichiers et des objets référentiels pour les formats tel que HTML -qui produisent plusieurs fichiers de sortie; si aucun identifiant -référentiel n'est spécifié alors les numéros de chapitres et de sections -seront utilisés. C'est une bonne idée de donner au moins à tous vos -chapitres un identifiant référentiel pour que les noms de fichiers ne -changent pas si vous changez l'ordre des chapitres ou des sections -dans votre document. -</p> - -<p> -<dl> -<p><dt><samp><ref id="<var>idref</var>"></samp> - Référence interne au document<dd>Ceci génère une référence croisée à l'intérieur du même document vers -la section ou le chapitre correspondant à l'identifiant <var>idref</var>. - -L'élément <samp><ref></samp> n'a pas de contenu; le numéro de section ou de -chapitre, le titre et son numéro de page ou tout autre chose approprié -pour le format de sortie sera inséré dans le texte à l'endroit où la -balise apparaît. - -Syntaxiquement la référence croisée est une phrase sans verbe, -approprié dans des situations tel que -<samp>(voir <ref id="<var>...</var>">)</samp> ou -<samp>plus d'informations dans <ref id="<var>...</var>">.</samp>. - -<p><dt><samp><manref name="<var>nom</var>" section="<var>section</var>"></samp> - page de manuel (manpage)<dd>Génère une référence croisée vers la page de manuel <var>nom</var> de la -section <var>section</var>. Cette balise n'a pas de contenu; le texte -décrivant la page, typiquement <samp><var>nom</var>(<var>section</var>)</samp>, sera -inséré à l'endroit où <samp><manref></samp> apparaît. - -<p><dt><samp><email></samp> - adresse de courrier électronique (email)<dd>Indique que le texte contenu est une adresse de courrier électronique -(email). Le contenu de la balise doit uniquement être le texte de -l'adresse elle-même; les balises de style de caractères et les -références croisées sont interdites. Habituellement la balise de fin -<samp></email></samp> ne doit pas être omise, mais on peut l'oublier -lorsque l'adresse apparaît à la fin d'un élément <samp><author></samp>. -Le début de l'élément suivant impliquera la fin de l'adresse de courrier -électronique. - -Dans certains formats, ceci générera une véritable référence croisée -qui pourra (par exemple) être utiliser pour envoyer un courrier électronique -à l'adresse définie. Dans d'autres, cela marquera simplement le texte -de manière spéciale, habituellement en l'encadrant de crochets angulaires -<samp><</samp> <samp>></samp>. - -<p><dt><samp><ftpsite></samp> - nom de site FTP anonyme<p><dt><samp><ftppath></samp> - chemin dans le dernier site FTP cité<dd><samp><ftpsite></samp> indique que le contenu de l'élément est le nom DNS -d'un site FTP anonyme et <samp><ftppath></samp> un chemin dans ce site FTP. -Les deux éléments ne peuvent contenir aucune balise de style de -caractères ou de références croisées. - -Typiquement les deux éléments seront représentés par une police non-proportionnelle; -si possible, le chemin du site (<samp><ftppath></samp>) sera -transformé en un hyperlien fonctionnel vers le fichier ou le répertoire -du dernier site FTP (<samp><ftpsite></samp>) cité. - -<samp><ftppath></samp> doit toujours être précédé par -<samp><ftpsite></samp> dans le même chapitre, mais une fois qu'un -site FTP a été cité, plusieurs chemins peuvent apparaître. - -</dl> -</p> - -<hr> - -<h2> -<a name="s4.3">4.3 Notes de bas de page</a> -</h2> - -<p> -Les notes de bas de page peuvent apparaître dans la plupart des textes -bruts et sont indiquées par <samp><footnote><var>...</var></footnote></samp>. -Le texte de la note de bas de page sera retiré, placé ailleurs -(l'endroit dépendant du format) et remplacé par une référence ou un -hyperlien vers la note de bas de page. -</p> - -<p> -Le contenu de la note de bas de page doit être un ou plusieurs -paragraphes; le début du premier paragraphe doit être marqué -explicitement. Les balises de texte brut tel que les styles -de caractères n'ont pas d'effet sur le contenu de la note de bas de -page définit à l'intérieur d'eux - la note de bas de page fait table -rase. -</p> - -<p> -Les notes de bas de page peuvent être imbriquées, mais c'est -rarement une bonne idée. -</p> - -<hr> - -[<a href="ch-chaptsectpar.html">précédent</a>] - [<a href="index.html#copyright">Copyright</a>] - [<a href="index.html#contents">Table des matières</a>] - [<a href="ch-listexamp.html">suivant</a>] - -<hr> - -Manuel de Debiandoc-SGML<br> - -<address> -30 mars 1999<br> -Ian Jackson <a href="mailto:ijackson@gnu.ai.mit.edu">ijackson@gnu.ai.mit.edu</a><br> -Traduction de Christophe Le Bars <a href="mailto:clebars@debian.org">clebars@debian.org</a> -</address> - -</body> - -</html> - diff --git a/french/international/french/translations/markup.fr.html/ch-listexamp.html b/french/international/french/translations/markup.fr.html/ch-listexamp.html deleted file mode 100644 index 2911e45a7bc..00000000000 --- a/french/international/french/translations/markup.fr.html/ch-listexamp.html +++ /dev/null @@ -1,144 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> - -<html> - -<head> - -<title>Manuel de Debiandoc-SGML - Listes et exemples</title> - -</head> - -<body> - -<hr> - -[<a href="ch-inline.html">précédent</a>] - [<a href="index.html#copyright">Copyright</a>] - [<a href="index.html#contents">Table des matières</a>] - -<hr> - -<h1> -Manuel de Debiandoc-SGML - Chapitre 5<br> -Listes et exemples -</h1> - -<hr> - -<h2> -<a name="s5.1">5.1 Listes</a> -</h2> - -<p> -Il y a trois sortes de listes: -<ul compact> -<li><samp><list></samp> - liste ordinaire (avec puces); - -<li><samp><enumlist></samp> - liste numérotée; - -<li><samp><taglist></samp> - liste de définitions. - -</ul> -</p> - -<p> -Chaque entrée dans une liste ordinaire ou numérotée est introduite -par <samp><item></samp>. Chaque entrée dans une liste de -définitions est un ou plusieurs objets <samp><tag></samp>s suivis par -un objet <samp><item></samp>. -</p> - -<p> -Il n'est pas nécessaire de marquer la fin de <samp><tag></samp> ou de -<samp><item></samp>. -</p> - -<p> -Les trois types de listes viennent en deux variantes, ceci dépend -de la présence (par ex. <samp><taglist compact></samp>) ou non (par ex. -<samp><enumlist></samp>) de l'attribut <samp>compact</samp>. L'objet -<samp><tag></samp> peut seulement contenir du texte brut. -</p> - -<p> -Les versions compactes sont prévues pour être utilisées à l'intérieur -des paragraphes. Le formateur n'insèrera pas de blanc autour de la liste -ou entre les entrées.<a href="footnotes.html#1" name="fr1">[1]</a> Les entrées dans -une liste compacte doivent être un seul paragraphe (il n'est pas -nécessaire de marquer le début du paragraphe). Toutes les listes -à l'intérieur d'une liste compacte doivent être elles-mêmes -marquées compactes (même si les formateurs déduiront en faite par -eux-mêmes qu'elles doivent être compactes). -</p> - -<p> -Les versions non compactes sont prévues pour se comporter comme -des paragraphes. Chaque entrée dans une telle liste peut contenir -plus d'un paragraphe (encore une fois, le début du premier paragraphe -n'a pas besoin d'être marqué). La liste est séparée du texte environnant -et chaque entrée des autres, par des lignes blanches comme il est -d'usage pour les ruptures de paragraphe. -</p> - -<hr> - -<h2> -<a name="s-examples">5.2 Exemples</a> -</h2> - -<p> -Exemples - fragments de codes de plusieurs lignes, scripts et bouts -de textes d'ordinateur équivalents - sont introduits avec -<samp><example></samp> et finissent avec <samp></example></samp>. -</p> - -<p> -L'exemple sera formatté exactement comme il y a été saisi, en reproduisant -espaces et sauts de lignes. Il sera représenté dans une police -non-proportionnelle, habituellement celle utilisée pour le style -de caractère <samp><tt></samp>, même si le formateur utilise -normalement une police proportionnelle. Toute indentation -appropriée sera ajoutée par le formateur; l'exemple doit -être saisi en commençant dans la colonne la plus à gauche. -</p> - -<p> -Les exemples peuvent contenir du texte balisé mais ne -peuvent pas contenir des références croisées ou les éléments -de style de caractères <samp><tt></samp>, <samp><prgn></samp> et -<samp><em></samp>. Voir <a href="ch-inline.html">Texte brut balisé et balisage du style de caractères, chapter 4</a>. -</p> - -<p> -Un exemple ne produit pas de rupture de paragraphe; les exemples -sont considérés comme parties des paragraphes. Si un exemple doit -être un paragraphe par lui-même alors la balise de début de paragraphe -doit être insérée comme approprié. -</p> - -<p> -Tout caractère spécial SGML dans l'exemple doit être échappé -comme habituellement - voir <a href="ch-markup.html">Balises SGML et caractères spéciaux, chapter 1</a>. <samp><example></samp> -ne fonctionne pas comme l'environnement TeX <samp>verbatim</samp>. -</p> - -<hr> - -[<a href="ch-inline.html">précédent</a>] - [<a href="index.html#copyright">Copyright</a>] - [<a href="index.html#contents">Table des matières</a>] - -<hr> - -Manuel de Debiandoc-SGML<br> - -<address> -30 mars 1999<br> -Ian Jackson <a href="mailto:ijackson@gnu.ai.mit.edu">ijackson@gnu.ai.mit.edu</a><br> -Traduction de Christophe Le Bars <a href="mailto:clebars@debian.org">clebars@debian.org</a> -</address> - -</body> - -</html> - diff --git a/french/international/french/translations/markup.fr.html/ch-markup.html b/french/international/french/translations/markup.fr.html/ch-markup.html deleted file mode 100644 index 84ac4baef03..00000000000 --- a/french/international/french/translations/markup.fr.html/ch-markup.html +++ /dev/null @@ -1,103 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> - -<html> - -<head> - -<title>Manuel de Debiandoc-SGML - Balises SGML et caractères spéciaux</title> - -</head> - -<body> - -<hr> - - [<a href="index.html#copyright">Copyright</a>] - [<a href="index.html#contents">Table des matières</a>] - [<a href="ch-structure.html">suivant</a>] - -<hr> - -<h1> -Manuel de Debiandoc-SGML - Chapitre 1<br> -Balises SGML et caractères spéciaux -</h1> - -<hr> - -<p> -Puisqu'il est saisi avec un éditeur de texte, un document SGML -est constitué de texte entremêlé de balises marquant -le début et la fin d'éléments. -</p> - -<p> -Les balises sont de la forme <samp><<var>element</var>></samp> pour -commencer l'élément <var>element</var> et <samp></<var>element</var>></samp> -pour le finir. -</p> - -<p> -Il y a quelques raccourcis que vous pouvez utiliser: -<samp><<var>element</var>/<var>contenu</var>/</samp> spécifie un élément -<var>element</var> qui contient <var>contenu</var> - mais le <var>contenu</var> -ne peut pas contenir une barre oblique <samp>/</samp>. <samp></></samp> -ferme l'élément encore ouvert le plus proche. -</p> - -<p> -Certains types de balises de début d'élément peuvent avoir -des attributs; ceux-ci apparaissent à l'intérieur des crochets -angulaires et sont séparés du nom de l'élément par un espace. -Les attributs autorisés pour une balise de début d'élément -particulière sont décrits en même temps que cet élément. -</p> - -<p> -Si vous voulez inclure des caractères spéciaux SGML (crochets angulaires -<samp><</samp> <samp>></samp>, et commercial <samp>&</samp>) comme texte, vous -devez les désigner par leurs noms (ceci est appelé une référence -d'entité dans le jargon SGML). <samp>&<var>name</var>;</samp> produit -le caractère dont le nom est <var>name</var>. Quelques noms de caractère -utiles sont: -<dl compact> -<dt><samp>lt</samp><dd>le symbole inférieur (crochet angulaire gauche) <samp><</samp>; - -<dt><samp>gt</samp><dd>le symbole supérieur (crochet angulaire droit) <samp>></samp>; - -<dt><samp>amp</samp><dd>le et commercial <samp>&</samp>; - -<dt><samp>copy</samp><dd>le symbole copyright <samp>©</samp>; - -</dl> - -La liste complète des caractères est empruntée à <code>linuxdoc-sgml</code>, dans -le fichier <samp>rep/latin1/general</samp>. -</p> - -<p> -Vous pouvez aussi utiliser <samp>&#<var>number</var>;</samp> pour désigner le -caractère dont le numéro est <var>number</var> (en ISO-LATIN-1). <var>number</var> -doit être en décimal. -</p> - -<hr> - - [<a href="index.html#copyright">Copyright</a>] - [<a href="index.html#contents">Table des matières</a>] - [<a href="ch-structure.html">suivant</a>] - -<hr> - -Manuel de Debiandoc-SGML<br> - -<address> -30 mars 1999<br> -Ian Jackson <a href="mailto:ijackson@gnu.ai.mit.edu">ijackson@gnu.ai.mit.edu</a><br> -Traduction de Christophe Le Bars <a href="mailto:clebars@debian.org">clebars@debian.org</a> -</address> - -</body> - -</html> - diff --git a/french/international/french/translations/markup.fr.html/ch-structure.html b/french/international/french/translations/markup.fr.html/ch-structure.html deleted file mode 100644 index a681086bf76..00000000000 --- a/french/international/french/translations/markup.fr.html/ch-structure.html +++ /dev/null @@ -1,112 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> - -<html> - -<head> - -<title>Manuel de Debiandoc-SGML - Structure générale</title> - -</head> - -<body> - -<hr> - -[<a href="ch-markup.html">précédent</a>] - [<a href="index.html#copyright">Copyright</a>] - [<a href="index.html#contents">Table des matières</a>] - [<a href="ch-chaptsectpar.html">suivant</a>] - -<hr> - -<h1> -Manuel de Debiandoc-SGML - Chapitre 2<br> -Structure générale -</h1> - -<hr> - -<p> -La première ligne du document doit être -<pre> -<!doctype debiandoc system> -</pre> - -pour indiquer que le document est un fichier Debiandoc-SGML. -</p> - -<p> -Le document doit commencer par la balise <samp><book></samp> et se terminer par -<samp></book></samp>. -</p> - -<p> -Ceci doit être suivi par le titre, <samp><title></samp>, une ou plusieurs -paires <samp><author></samp>-<samp><email></samp> (auteur-adresse électronique), -et optionnellement une <samp><version></samp>. Chacune d'elles est une -partie du texte brut balisé - voir <a href="ch-inline.html">Texte brut balisé et balisage du style de caractères, chapter 4</a>. La <samp><version></samp> -peut aussi contenir <samp><date></samp> qui représente la date et -l'heure de formatage du document. -</p> - -<p> -Puis peut venir un résumé (<samp><abstract></samp>), une note de -<samp><copyright></samp> et une balise de table des matières -(<samp><toc></samp>). -</p> - -<p> -Le résumé (<samp><abstract></samp>) contient un seul paragraphe. -</p> - -<p> -Le <samp><copyright></samp> contient un résumé du copyright (ceci -est utilisé, par exemple, en bas de chaque page HTML) suivi -par un ou plusieurs paragraphes, le premier devant être signalé -par une balise <samp><p></samp> pour le distinguer du résumé. -</p> - -<p> -La balise <samp><toc></samp> spécifie qu'une table des matières doit -être produite. <samp><toc></samp> ne contient rien dans le -source SGML - son contenu est généré par le formatage. -<samp><toc></samp> peut avoir un attribut précisant son niveau de détail; -par exemple <samp><toc sect1></samp> précise que les sous-sections doivent -être incluses, tandis que <samp><toc chapt></samp> précise que seuls les -chapitres doivent être inclus. Les valeurs autorisées sont <samp>chapt</samp>, -<samp>sect</samp>, <samp>sect1</samp> et <samp>sect2</samp>. -</p> - -<p> -Après ces parties vient le corps du document - un ou plusieurs -chapitres <samp><chapt></samp>. -</p> - -<p> -Il n'est pas nécessaire de marquer la fin des éléments <samp><title></samp>, -<samp><author></samp>, <samp><version></samp>, <samp><abstract></samp> et -<samp><copyright></samp> - ils sont implicitement terminés par le -début de l'élément suivant. -</p> - -<hr> - -[<a href="ch-markup.html">précédent</a>] - [<a href="index.html#copyright">Copyright</a>] - [<a href="index.html#contents">Table des matières</a>] - [<a href="ch-chaptsectpar.html">suivant</a>] - -<hr> - -Manuel de Debiandoc-SGML<br> - -<address> -30 mars 1999<br> -Ian Jackson <a href="mailto:ijackson@gnu.ai.mit.edu">ijackson@gnu.ai.mit.edu</a><br> -Traduction de Christophe Le Bars <a href="mailto:clebars@debian.org">clebars@debian.org</a> -</address> - -</body> - -</html> - diff --git a/french/international/french/translations/markup.fr.html/footnotes.html b/french/international/french/translations/markup.fr.html/footnotes.html deleted file mode 100644 index 06022cfa20c..00000000000 --- a/french/international/french/translations/markup.fr.html/footnotes.html +++ /dev/null @@ -1,49 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> - -<html> - -<head> - -<title>Manuel de Debiandoc-SGML - Notes de bas de page</title> - -</head> - -<body> - -<hr> - - [<a href="index.html#copyright">Copyright</a>] - [<a href="index.html#contents">Table des matières</a>] - -<hr> - -<h1>Manuel de Debiandoc-SGML - Notes de bas de page</h1> - -<hr> - -<h2><a href="#fr1" name="1">1</a> -</h2> -<p> -Il y a un problème dans ce cas avec HTML. -Le formateur HTML ne le fait pas, en utilisant l'attribut <samp>compact</samp> -des listes HTML pour les listes qu'il génère, mais peu de -navigateurs interprète cela correctement. -</p><hr> - - [<a href="index.html#copyright">Copyright</a>] - [<a href="index.html#contents">Table des matières</a>] - -<hr> - -Manuel de Debiandoc-SGML<br> - -<address> -30 mars 1999<br> -Ian Jackson <a href="mailto:ijackson@gnu.ai.mit.edu">ijackson@gnu.ai.mit.edu</a><br> -Traduction de Christophe Le Bars <a href="mailto:clebars@debian.org">clebars@debian.org</a> -</address> - -</body> - -</html> - diff --git a/french/international/french/translations/markup.fr.html/index.html b/french/international/french/translations/markup.fr.html/index.html deleted file mode 100644 index 059b7124268..00000000000 --- a/french/international/french/translations/markup.fr.html/index.html +++ /dev/null @@ -1,93 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> - -<html> - -<head> - -<title>Manuel de Debiandoc-SGML</title> - -</head> - -<body> - -<hr> - - [<a href="#copyright">Copyright</a>] - [<a href="#contents">Table des matières</a>] - -<hr> - -<h1>Manuel de Debiandoc-SGML</h1> - -<hr> - -<h2><a name="copyright">Copyright</a></h2> - -<p> -Copyright ©1996 Ian Jackson. -</p> - -<p> -Debiandoc-SGML, dont fait partie ce manuel, est un logiciel libre; -vous pouvez le redistribuer et/ou le modifier selon les -termes de la Licence Publique Générale GNU publiée par la -Free Software Foundation, version 2 ou supérieure. -</p> - -<p> -Debiandoc-SGML est distribué car potentiellement utile, mais -<em>sans aucune garantie</em>; sans même la garantie implicite -de commercialisation ou adéquation à une tâche particulière. Consultez -la Licence Publique Générale GNU pour plus de détails. -</p> - -<p> -Vous devez avoir reçu une copie de la Licence Publique Générale GNU -avec votre système Debian GNU/Linux, dans <samp>/usr/doc/copyright/GPL</samp>, -ou avec le paquet source <code>debiandoc-sgml</code> dans le fichier -<samp>COPYING</samp>. Sinon, écrivez à la Free Software Foundation, -Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -</p> - - - -<hr> - -<h2><a name="contents">Table des matières</a></h2> - -<ul> -<li><a href="ch-markup.html">1 Balises SGML et caractères spéciaux</a> -<li><a href="ch-structure.html">2 Structure générale</a> -<li><a href="ch-chaptsectpar.html">3 Chapitres, sections et paragraphes</a> -<li><a href="ch-inline.html">4 Texte brut balisé et balisage du style de caractères</a> -<ul> -<li><a href="ch-inline.html#s4.1">4.1</a> Style de caractères -<li><a href="ch-inline.html#s-xref">4.2</a> Références croisées -<li><a href="ch-inline.html#s4.3">4.3</a> Notes de bas de page -</ul> -<li><a href="ch-listexamp.html">5 Listes et exemples</a> -<ul> -<li><a href="ch-listexamp.html#s5.1">5.1</a> Listes -<li><a href="ch-listexamp.html#s-examples">5.2</a> Exemples -</ul> -</ul> - -<hr> - - [<a href="#copyright">Copyright</a>] - [<a href="#contents">Table des matières</a>] - -<hr> - -Manuel de Debiandoc-SGML<br> - -<address> -30 mars 1999<br> -Ian Jackson <a href="mailto:ijackson@gnu.ai.mit.edu">ijackson@gnu.ai.mit.edu</a><br> -Traduction de Christophe Le Bars <a href="mailto:clebars@debian.org">clebars@debian.org</a> -</address> - -</body> - -</html> - diff --git a/french/international/french/translations/markup.fr.sgml b/french/international/french/translations/markup.fr.sgml deleted file mode 100644 index d76f81e0998..00000000000 --- a/french/international/french/translations/markup.fr.sgml +++ /dev/null @@ -1,451 +0,0 @@ -<!doctype debiandoc system> -<book> -<title>Manuel de Debiandoc-SGML -<author>Ian Jackson <email>ijackson@gnu.ai.mit.edu -<author>Traduction de Christophe Le Bars <email>clebars@debian.org -<version><date> -<copyright>Copyright ©1996 Ian Jackson. -<p> - -Debiandoc-SGML, dont fait partie ce manuel, est un logiciel libre; -vous pouvez le redistribuer et/ou le modifier selon les -termes de la Licence Publique Générale GNU publiée par la -Free Software Foundation, version 2 ou supérieure. -<p> - -Debiandoc-SGML est distribué car potentiellement utile, mais -<em>sans aucune garantie</em>; sans même la garantie implicite -de commercialisation ou adéquation à une tâche particulière. Consultez -la Licence Publique Générale GNU pour plus de détails. -<p> - -Vous devez avoir reçu une copie de la Licence Publique Générale GNU -avec votre système Debian GNU/Linux, dans <tt>/usr/doc/copyright/GPL</tt>, -ou avec le paquet source <prgn/debiandoc-sgml/ dans le fichier -<tt>COPYING</tt>. Sinon, écrivez à la Free Software Foundation, -Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -<toc sect> - -<chapt id="markup">Balises SGML et caractères spéciaux -<p> - -Puisqu'il est saisi avec un éditeur de texte, un document SGML -est constitué de texte entremêlé de balises marquant -le début et la fin d'éléments. -<p> - -Les balises sont de la forme <tt/<<var/element/>/ pour -commencer l'élément <var/element/ et <tt></<var/element/></> -pour le finir. -<p> - -Il y a quelques raccourcis que vous pouvez utiliser: -<tt><<var/element//<var/contenu//</> spécifie un élément -<var/element/ qui contient <var/contenu/ - mais le <var/contenu/ -ne peut pas contenir une barre oblique <tt>/</>. <tt></></> -ferme l'élément encore ouvert le plus proche. -<p> - -Certains types de balises de début d'élément peuvent avoir -des attributs; ceux-ci apparaissent à l'intérieur des crochets -angulaires et sont séparés du nom de l'élément par un espace. -Les attributs autorisés pour une balise de début d'élément -particulière sont décrits en même temps que cet élément. -<p> - -Si vous voulez inclure des caractères spéciaux SGML (crochets angulaires -<tt/</ <tt/>/, et commercial <tt/&/) comme texte, vous -devez les désigner par leurs noms (ceci est appelé une référence -d'entité dans le jargon SGML). <tt/&<var/name/;/ produit -le caractère dont le nom est <var/name/. Quelques noms de caractère -utiles sont: -<taglist compact> -<tag><tt/lt/ -<item>le symbole inférieur (crochet angulaire gauche) <tt><</>; -<tag><tt/gt/ -<item>le symbole supérieur (crochet angulaire droit) <tt>></>; -<tag><tt/amp/ -<item>le et commercial <tt>&</>; -<tag><tt/copy/ -<item>le symbole copyright <tt>©</>; -</taglist> -La liste complète des caractères est empruntée à <prgn/linuxdoc-sgml/, dans -le fichier <tt>rep/latin1/general</>. -<p> - -Vous pouvez aussi utiliser <tt/&#<var/number/;/ pour désigner le -caractère dont le numéro est <var/number/ (en ISO-LATIN-1). <var/number/ -doit être en décimal. - -<chapt id="structure">Structure générale -<p> - -La première ligne du document doit être -<example> -<!doctype debiandoc system> -</example> -pour indiquer que le document est un fichier Debiandoc-SGML. -<p> - -Le document doit commencer par la balise <tt/<book>/ et se terminer par -<tt></book></>. -<p> - -Ceci doit être suivi par le titre, <tt/<title>/, une ou plusieurs -paires <tt/<author>/-<tt/<email>/ (auteur-adresse électronique), -et optionnellement une <tt/<version>/. Chacune d'elles est une -partie du texte brut balisé - voir <ref id="inline">. La <tt/<version>/ -peut aussi contenir <tt/<date>/ qui représente la date et -l'heure de formatage du document. -<p> - -Puis peut venir un résumé (<tt/<abstract>/), une note de -<tt/<copyright>/ et une balise de table des matières -(<tt/<toc>/). -<p> - -Le résumé (<tt/<abstract>/) contient un seul paragraphe. -<p> - -Le <tt/<copyright>/ contient un résumé du copyright (ceci -est utilisé, par exemple, en bas de chaque page HTML) suivi -par un ou plusieurs paragraphes, le premier devant être signalé -par une balise <tt/<p>/ pour le distinguer du résumé. -<p> - -La balise <tt/<toc>/ spécifie qu'une table des matières doit -être produite. <tt/<toc>/ ne contient rien dans le -source SGML - son contenu est généré par le formatage. -<tt/<toc>/ peut avoir un attribut précisant son niveau de détail; -par exemple <tt/<toc sect1>/ précise que les sous-sections doivent -être incluses, tandis que <tt/<toc chapt>/ précise que seuls les -chapitres doivent être inclus. Les valeurs autorisées sont <tt/chapt/, -<tt/sect/, <tt/sect1/ et <tt/sect2/. -<p> - -Après ces parties vient le corps du document - un ou plusieurs -chapitres <tt/<chapt>/. -<p> - -Il n'est pas nécessaire de marquer la fin des éléments <tt/<title>/, -<tt/<author>/, <tt/<version>/, <tt/<abstract>/ et -<tt/<copyright>/ - ils sont implicitement terminés par le -début de l'élément suivant. - -<chapt id="chaptsectpar">Chapitres, sections et paragraphes -<p> - -Chaque chapitre commence par une balise <tt/<chapt>/, suivi -par le titre du chapitre. Le titre peut contenir du texte brut balisé, -mais pas de références croisées (voir <ref id="inline">). -<p> - -Le corps du chapitre est constitué de zéro à plusieurs paragraphes, -le premier devant être indiqué par une balise <tt/<p>/ pour -le distinguer du titre, puis de zéro à plusieurs sections. -<p> - -Une section commence par <tt/<sect>/ et possède une structure équivalente: -titre, optionnellement des paragraphes et puis optionnellement des sous-sections. -<p> - -Les sous-sections sont <tt/<sect1>/; il y a aussi des divisions -plus petites <tt/<sect2>/, <tt/<sect3>/ and <tt/<sect4>/. -<p> - -Les paragraphes sont introduits par <tt/<p>/. Parfois la balise de -début de paragraphe peut être omise, mais elle est obligatoire -après <tt/<chapt>/, <tt/<sect>/ et ainsi de suite. Il n'est -jamais nécessaire de marquer la fin d'un paragraphe avec <tt></p></>. -<p> - -Les paragraphes peuvent contenir du texte brut balisé -(voir <ref id="inline">) ainsi que des listes et des exemples -(<ref id="listexamp">). - -<chapt id="inline">Texte brut balisé et balisage du style de caractères -<p> - -Le texte ordinaire (appelé «texte brut» dans ce document) peut contenir -des éléments de formatage spécial et de référencement croisé. Le texte brut -apparaît dans les titres de chapitres et de sections, dans le -résumé du copyright, à l'intérieur des paragraphe et dans d'autres -endroits équivalents. - -<sect>Style de caractères -<p> - -Il y a un certain nombre d'éléments pour marquer la signification -particulière de certains morceaux de textes. Pour ceux-ci, la fin -du texte spécial doit être marqué explicitement, en utilisant -une balise de fin explicite <tt></<var/element/></>, la balise -de fin abrégée fermant l'élément le plus proche <tt></></> ou -la barre oblique <tt>/</> qui termine la forme la plus abrégée -des balises. (voir <ref id="markup">). - -<taglist> -<tag><tt/<em>/ - emphase -<item> -Indique que le texte contenu est plus important ou plus -significatif que celui environnant. -<p> - -Typiquement ceci sera représenté si possible par des italiques, ou -par un texte en gras ou souligné, ou bien dans les formats de texte -seulement, sans styles de caractère spéciaux, en encadrant le texte -avec des astérisques comme *ceci*. - -<tag><tt/<var>/ - méta-variable -<item> -Indique que le texte contenu est une méta-variable. C'est-à-dire, -que c'est le nom d'un objet ou d'une pièce syntaxique qui -dans un usage normal serait remplacée par une valeur réelle. -<p> - -Typiquement ceci sera représenté par des italiques, ou les formats -de texte seulement en encadrant le texte avec des crochets angulaires -comme <ceci>. Si plusieurs méta-variables apparaissent -successivement, elles doivent chacune utiliser leur propre élément -<tt/<var>/. - -<tag><tt/<prgn>/ - nom d'un programme ou d'un fichier bien connu -<item> -Indique que le texte contenu est le nom d'un programme, d'un fichier -bien connu (habituellement sans chemin), d'une fonction ou d'un objet -équivalent ayant un nom pour l'ordinateur. -<p> - -Dans les formats de sortie où il existe des styles de caractères spéciaux -et des styles de polices variés, ceci est habituellement représenté en -utilisant une police non-proportionnelle. Dans les formats de sortie -texte seulement, ces noms ne sont pas spécialement marqués, -puisqu'ils surviennent fréquemment et qu'introduire un encadrement -perturberait le cours du texte. - -<tag><tt/<tt>/ - chemin, code ou fragment de sortie, chaîne de commande -<item> -Indique que le texte contenu est une chaîne quelconque provenant -ou étant destiné à un ordinateur. Ceci doit être utilisé pour les -chemins complets, les fragments de code devant être visualisés -sous forme brute et sans justification (voir aussi <ref id="examples"> -pour une autre solution) et ainsi de suite. Il est fréquemment nécessaire -d'introduire des méta-variables dans ces chaînes, qui dans ce cas -doivent faire partie de l'élément <tt/<tt>/ plutôt que des -éléments environnants. -<p> - -Ceci sera habituellement représenté en utilisant une police de largeur -fixe; dans les formats texte seulement un encadrement peut être -utiliser autour de l'élément. - -<tag><tt/<qref id="<var/refid/">/ - référence conditionnelle -<item> -Crée une «référence conditionnelle» vers la référence nommée id (voir -<ref id="xref">). Ceci doit être utilisé lorsque une référence croisée -est utile si elle ne perturbe pas le cours du texte, mais -que non-essentielle, elle peut être abandonnée si elle doit le perturber. -<p> - -Dans les formats permettant des références croisées non-perturbantes en -faisant d'une zone de texte un hyperlien sans introduire du nouveau -texte, cet élément fera du texte contenu un hyperlien vers -la cible de la référence croisée. Dans les autres formats cet élément -n'aura aucun effet. -</taglist> - -<sect id="xref">Références croisées -<p> - -Il y a plusieurs éléments permettant d'introduire des références croisées -soit vers les autres parties d'un même document soit vers d'autres -documents. -<p> - -Les références croisées internes au document sont basées sur un schéma -d'identifiants référentiels. Chaque chapitre, section, sous-section, etc. -peut avoir un attribut <tt/id/ lui donnant son identifiant référentiel -- par exemple <tt/<chapt id="spong">/ spécifie que le chapitre -commençant possède l'identifiant référentiel <tt/spong/. Cet identifiant -référentiel peut alors être pointé dans d'autres parties du document -en utilisant les éléments spéciaux des références croisées. -<p> - -L'identifiant référentiel sera aussi utilisé pour générer des noms -de fichiers et des objets référentiels pour les formats tel que HTML -qui produisent plusieurs fichiers de sortie; si aucun identifiant -référentiel n'est spécifié alors les numéros de chapitres et de sections -seront utilisés. C'est une bonne idée de donner au moins à tous vos -chapitres un identifiant référentiel pour que les noms de fichiers ne -changent pas si vous changez l'ordre des chapitres ou des sections -dans votre document. -<p> - -<taglist> -<tag><tt/<ref id="<var/idref/">/ - Référence interne au document -<item> -Ceci génère une référence croisée à l'intérieur du même document vers -la section ou le chapitre correspondant à l'identifiant <var/idref/. -<p> - -L'élément <tt/<ref>/ n'a pas de contenu; le numéro de section ou de -chapitre, le titre et son numéro de page ou tout autre chose approprié -pour le format de sortie sera inséré dans le texte à l'endroit où la -balise apparaît. -<p> - -Syntaxiquement la référence croisée est une phrase sans verbe, -approprié dans des situations tel que -<tt>(voir <ref id="<var/.../">)</> ou -<tt>plus d'informations dans <ref id="<var/.../">.</>. - -<tag><tt/<manref name="<var/nom/" section="<var/section/">/ - -page de manuel (manpage) -<item> -Génère une référence croisée vers la page de manuel <var/nom/ de la -section <var/section/. Cette balise n'a pas de contenu; le texte -décrivant la page, typiquement <tt/<var/nom/(<var/section/)/, sera -inséré à l'endroit où <tt/<manref>/ apparaît. - -<tag><tt/<email>/ - adresse de courrier électronique (email) -<item> -Indique que le texte contenu est une adresse de courrier électronique -(email). Le contenu de la balise doit uniquement être le texte de -l'adresse elle-même; les balises de style de caractères et les -références croisées sont interdites. Habituellement la balise de fin -<tt></email></> ne doit pas être omise, mais on peut l'oublier -lorsque l'adresse apparaît à la fin d'un élément <tt/<author>/. -Le début de l'élément suivant impliquera la fin de l'adresse de courrier -électronique. -<p> - -Dans certains formats, ceci générera une véritable référence croisée -qui pourra (par exemple) être utiliser pour envoyer un courrier électronique -à l'adresse définie. Dans d'autres, cela marquera simplement le texte -de manière spéciale, habituellement en l'encadrant de crochets angulaires -<tt/</ <tt/>/. - -<tag><tt/<ftpsite>/ - nom de site FTP anonyme -<tag><tt/<ftppath>/ - chemin dans le dernier site FTP cité -<item> -<tt/<ftpsite>/ indique que le contenu de l'élément est le nom DNS -d'un site FTP anonyme et <tt/<ftppath>/ un chemin dans ce site FTP. -Les deux éléments ne peuvent contenir aucune balise de style de -caractères ou de références croisées. -<p> - -Typiquement les deux éléments seront représentés par une police non-proportionnelle; -si possible, le chemin du site (<tt/<ftppath>/) sera -transformé en un hyperlien fonctionnel vers le fichier ou le répertoire -du dernier site FTP (<tt/<ftpsite>/) cité. -<p> - -<tt/<ftppath>/ doit toujours être précédé par -<tt/<ftpsite>/ dans le même chapitre, mais une fois qu'un -site FTP a été cité, plusieurs chemins peuvent apparaître. -</taglist> - -<sect>Notes de bas de page -<p> - -Les notes de bas de page peuvent apparaître dans la plupart des textes -bruts et sont indiquées par <tt><footnote><var/.../</footnote></>. -Le texte de la note de bas de page sera retiré, placé ailleurs -(l'endroit dépendant du format) et remplacé par une référence ou un -hyperlien vers la note de bas de page. -<p> - -Le contenu de la note de bas de page doit être un ou plusieurs -paragraphes; le début du premier paragraphe doit être marqué -explicitement. Les balises de texte brut tel que les styles -de caractères n'ont pas d'effet sur le contenu de la note de bas de -page définit à l'intérieur d'eux - la note de bas de page fait table -rase. -<p> - -Les notes de bas de page peuvent être imbriquées, mais c'est -rarement une bonne idée. - -<chapt id="listexamp">Listes et exemples - -<sect>Listes -<p> - -Il y a trois sortes de listes: -<list compact> -<item><tt/<list>/ - liste ordinaire (avec puces); -<item><tt/<enumlist>/ - liste numérotée; -<item><tt/<taglist>/ - liste de définitions. -</list> -<p> - -Chaque entrée dans une liste ordinaire ou numérotée est introduite -par <tt/<item>/. Chaque entrée dans une liste de -définitions est un ou plusieurs objets <tt/<tag>/s suivis par -un objet <tt/<item>/. -<p> - -Il n'est pas nécessaire de marquer la fin de <tt/<tag>/ ou de -<tt/<item>/. -<p> - -Les trois types de listes viennent en deux variantes, ceci dépend -de la présence (par ex. <tt><taglist compact></>) ou non (par ex. -<tt/<enumlist>/) de l'attribut <tt/compact/. L'objet -<tt/<tag>/ peut seulement contenir du texte brut. -<p> - -Les versions compactes sont prévues pour être utilisées à l'intérieur -des paragraphes. Le formateur n'insèrera pas de blanc autour de la liste -ou entre les entrées.<footnote>Il y a un problème dans ce cas avec HTML. -Le formateur HTML ne le fait pas, en utilisant l'attribut <tt/compact/ -des listes HTML pour les listes qu'il génère, mais peu de -navigateurs interprète cela correctement.</footnote> Les entrées dans -une liste compacte doivent être un seul paragraphe (il n'est pas -nécessaire de marquer le début du paragraphe). Toutes les listes -à l'intérieur d'une liste compacte doivent être elles-mêmes -marquées compactes (même si les formateurs déduiront en faite par -eux-mêmes qu'elles doivent être compactes). -<p> - -Les versions non compactes sont prévues pour se comporter comme -des paragraphes. Chaque entrée dans une telle liste peut contenir -plus d'un paragraphe (encore une fois, le début du premier paragraphe -n'a pas besoin d'être marqué). La liste est séparée du texte environnant -et chaque entrée des autres, par des lignes blanches comme il est -d'usage pour les ruptures de paragraphe. - -<sect id="examples">Exemples -<p> - -Exemples - fragments de codes de plusieurs lignes, scripts et bouts -de textes d'ordinateur équivalents - sont introduits avec -<tt/<example>/ et finissent avec <tt></example></>. -<p> - -L'exemple sera formatté exactement comme il y a été saisi, en reproduisant -espaces et sauts de lignes. Il sera représenté dans une police -non-proportionnelle, habituellement celle utilisée pour le style -de caractère <tt/<tt>/, même si le formateur utilise -normalement une police proportionnelle. Toute indentation -appropriée sera ajoutée par le formateur; l'exemple doit -être saisi en commençant dans la colonne la plus à gauche. -<p> - -Les exemples peuvent contenir du texte balisé mais ne -peuvent pas contenir des références croisées ou les éléments -de style de caractères <tt/<tt>/, <tt/<prgn>/ et -<tt/<em>/. Voir <ref id="inline">. -<p> - -Un exemple ne produit pas de rupture de paragraphe; les exemples -sont considérés comme parties des paragraphes. Si un exemple doit -être un paragraphe par lui-même alors la balise de début de paragraphe -doit être insérée comme approprié. -<p> - -Tout caractère spécial SGML dans l'exemple doit être échappé -comme habituellement - voir <ref id="markup">. <tt/<example>/ -ne fonctionne pas comme l'environnement TeX <tt/verbatim/. - -</book> diff --git a/french/international/french/translations/policy.fr.sgml b/french/international/french/translations/policy.fr.sgml deleted file mode 100644 index ad8cd577a35..00000000000 --- a/french/international/french/translations/policy.fr.sgml +++ /dev/null @@ -1,9260 +0,0 @@ -<!DOCTYPE debiandoc SYSTEM [ -<!-- include version information so we don't have to hard code it - within the document --> -<!-- arch devel-3.7-patch-26 --> -<!--entity % versiondata SYSTEM "version.ent"> &versiondata; --> -]> - -<!-- IMPORTANT : AVANT DE COMMITER, SUPPRIMER LE DOUBLE "" LIGNE 5505 --> - -<debiandoc> - - <book> - <titlepag> - <title>La Charte Debian</title> - <author><qref id="authors">La liste de diffusion Debian-Policy</qref></author> - <version>version 3.7.2.2</version> - - <abstract> - Ce manuel est la charte de la distribution Debian -GNU/Linux. Sont abordés la structure et le contenu d'une archive Debian, -certaines questions sur la conception du système d'exploitation, -ainsi que les exigences techniques que chaque paquet doit satisfaire afin -d'être inclus dans la distribution. - </abstract> - - <copyright> - <copyrightsummary> - Copyright © 1996,1997,1998 Ian Jackson - et Christian Schwarz. - </copyrightsummary> - <p> - Ce manuel est un logiciel libre ; il peut être redistribué -et modifié selon les termes de la licence publique générale du projet GNU -(GNU GPL), telle que publiée par la « Free Software Foundation » -(version 2 ou toute version supérieure). - </p> - <p> - Il est distribué dans l'espoir qu'il sera utile, mais <em>sans aucune -garantie</em> ; sans même la garantie implicite d'une possible valeur -marchande ou d'une adéquation à un besoin particulier. -Consultez la licence publique générale du projet GNU pour plus de détails. - </p> - <p> -Une copie de la licence publique générale est disponible -à <tt>/usr/share/common-licenses/GPL</tt> dans la distribution Debian GNU/Linux -ou sur la « Toile » : -<url id="https://www.gnu.org/copyleft/gpl.html" name=" La licence publique générale du projet GNU">. -Vous pouvez également l'obtenir en écrivant à la -Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, -Boston, MA 02110-1301, USA. - </p> - </copyright> - </titlepag> - <toc detail="sect1"> -<chapt id="scope"> - <heading>À propos de ce manuel</heading> - <sect> - <heading>Les objectifs de ce manuel</heading> - <p> - Ce manuel est la charte de la distribution -Debian GNU/Linux. Sont abordés la structure et le contenu d'une archive -Debian, certaines questions sur la conception du système d'exploitation, -ainsi que les exigences techniques que chaque paquet doit satisfaire afin -d'être inclus dans la distribution. - </p> -<p> -Ce manuel décrit aussi la politique Debian en ce qui concerne la création -des paquets. Ce n'est pas un cours sur la construction des paquets et il ne -décrit pas complètement le comportement du système de gestion des paquets. -Il essaye plutôt de définir la seule interface que doivent maîtriser les -développeurs -<footnote><p> -D'une manière informelle, l'intégration de « matériel » se fait -selon les critères suivants : -<taglist compact="compact"> -<tag>Interfaces standards</tag> -<item> <p> -Le « matériel » présenté est une interface au système de gestion de -paquets dont l'utilisation est obligatoire ; un nombre significatif de paquets -l'utilise et elle ne sera pas modifiée sans une étude sérieuse. Les -responsables de paquet peuvent donc compter sur la stabilité de cette -interface et les auteurs du système de gestion des paquets doivent assurer -la compatibilité avec les définitions de ces interfaces. Le format des -fichiers « control » et « changelog » en est un exemple. -</p> - </item> - <tag>Convention choisie</tag> - <item> - <p> -Quand on a besoin, pour des raisons d'inter-opérabilité, de faire un choix -parmi un certain nombre de possibilités techniquement valides. Le numéro -de version est un exemple. -</p></item></taglist> -Veuillez noter que ces critères ne s'excluent pas mutuellement ; une -convention choisie devient souvent une interface standard. - </p> - </footnote>. - </p> -<p> -Les notes de ce manuel ne font pas partie de la Charte et sont purement -documentaires. -</p> -<p> -Les annexes de ce manuel ne sont pas non plus normatives. -Voyez <ref id="pkg-scope"> pour des informations supplémentaires. - </p> - -<p> -Dans la partie normative de ce manuel, les mots <em>must</em>, -<em>should</em>, <em>may</em> et les adjectifs -<em>required</em>, <em>recommended</em> et <em>optional</em> servent -à distinguer la signification des diverses directives contenues dans cette -charte. La distribution Debian ne considérera généralement pas comme -acceptables les paquets qui ne se conforment pas aux directives dénotées par -<em>must</em> (ou <em>required</em>)<footnote><p> -En français, nous employons le verbe « devoir » et ses déclinaisons. -</p></footnote>. Une non-conformité à une directive -dénotée par <em>should</em> (ou <em>recommended</em>) sera en général -considérée comme un bogue, mais cela n'empêchera pas nécessairement la -distribution du paquet.<footnote><p> -En français, nous employons le futur de l'indicatif et jamais le verbe -« devoir ».</p></footnote>. -Les directives dénotées par <em>may</em> (ou <em>optional</em>) sont -véritablement facultatives et sont laissées à l'appréciation du responsable -de paquet. -</p> -<p> -Ce classement est en gros équivalent à celui des bogues : <em>serious</em> -(pour les violations des directives <em>must</em> ou <em>required</em>), -<em>minor</em>, <em>normal</em> ou <em>important</em> (pour les violations -des directives <em>should</em> ou <em>recommended</em>) et <em>wishlist</em> -(pour les éléments <em>optional</em>) -<footnote>Comparez avec la RFC 2119. -Remarquez cependant que ces mots sont employés différemment dans ce -document.</footnote>. -</p> - <p> - La plupart des informations de ce manuel seront également utiles -pour la création de paquets que l'on doit distribuer d'une autre façon -ou qui sont destinés à un usage local. - </p> - </sect> - <sect> - -<heading>Nouvelles versions de ce document</heading> - - <p> -Ce document est distribué dans le paquet Debian -<package><url name="debian-policy" id="https://packages.debian.org/debian-policy"></package> - (<httpsite>packages.debian.org</httpsite> - <httppath>/debian-policy</httppath>). - </p> - - <p> -La dernière version de ce document est aussi disponible sur les miroirs web -de Debian, -<tt><url name="/doc/debian-policy/" - id="https://www.debian.org/doc/debian-policy/"></tt>. - (<httpsite>www.debian.org</httpsite> - <httppath>/doc/debian-policy/</httppath>) -Dans le même répertoire, d'autres formats existent : -<file>policy.html.tar.gz</file>, -(<httppath>/doc/debian-policy/policy.html.tar.gz</httppath>), - <file>policy.pdf.gz</file> -(<httppath>/doc/debian-policy/policy.pdf.gz</httppath>) -et -<file>policy.ps.gz</file> -(<httppath>/doc/debian-policy/policy.ps.gz</httppath>). - </p> - -<p> -Le paquet <package>debian-policy</package> contient aussi le fichier -<tt>upgrading-checklist.txt.gz</tt> qui liste les changements entre les versions -de ce document. -</p> - </sect> - - <sect id="authors"> - <heading>Auteurs et responsables</heading> - - <p> -Ce manuel, appelé « Debian GNU/Linux Policy Manual », a été -rédigé d'abord par Ian Jackson en 1996, puis révisé par David A. Morris le 27 -novembre 1996. Christian Schwarz ajouta de nouvelles sections le 15 mars -1997 et retravailla le texte entre les mois d'avril et de Juin 1997. -Christoph Lameter a apporté la contribution sur le « Web Standard ». -Et il a été grandement restructuré en 2001 par Julian Gilbey. - </p> -<p> -Depuis septembre 1998, la <url name="liste de discussion debian-policy" - id="mailto:debian-policy@lists.debian.org"> est responsable -du contenu de ce document. Les propositions y sont discutées, puis, quand -un consensus est dégagé, elles sont introduites dans le document. -<!-- insert shameless policy-process plug here eventually --> -L'édition est faite par un groupe de responsables sans pouvoir -rédactionnel, dont voici la liste actuelle : - <enumlist> - <item>Julian Gilbey</item> - <item>Branden Robinson</item> - <item>Josip Rodin</item> - <item>Manoj Srivastava</item> - </enumlist> - </p> - - <p> - Bien que les auteurs de ce document aient veillé à ne pas introduire -de coquilles ou d'autres erreurs, il en reste toujours. -Si vous découvrez des erreurs dans cette version du manuel ou si -vous voulez faire part de vos commentaires, suggestions ou -critiques, veuillez envoyer un courrier électronique sur la liste de diffusion -« Debian Policy », <email>debian-policy@lists.debian.org</email>, -ou un rapport de bogue concernant le paquet <tt>debian-policy</tt>. - </p> -<p> -N'essayez pas, s'il vous plaît, de contacter personnellement les auteurs et -les responsables de ce document dans le but de modifier la Charte Debian. - </p> -</sect> - <sect id="related"> - <heading>Documents associés</heading> - - <p> -Plusieurs autres documents sont nécessaires pour comprendre pleinement les -règles et les procédures Debian. - </p> - - <p> -Ces documents complémentaires sont référencés dans : - <list compact="compact"> - <item><ref id="fhs"></item> - <item><ref id="virtual_pkg"></item> - <item><ref id="menus"></item> - <item><ref id="mime"></item> - <item><ref id="perl"></item> - <item><ref id="maintscriptprompt"></item> - <item><ref id="emacs"></item> - </list> - </p> - - <p> -En dehors de ces documents normatifs, il y a aussi la référence du -développeur Debian. Ce document décrit les procédures et les ressources -disponibles aux développeurs Debian, mais il <em>n'est pas</em> normatif. -Il comprend des éléments qui n'ont pas valeur de règle mais qui sont -considérés comme des pratiques exemplaires pour les développeurs. - </p> - - <p> -La référence des développeurs Debian est disponible dans le paquet -<package>developers-reference</package>. On peut aussi le trouver sur les -miroirs web de Debian, <tt><url name="/doc/developers-reference/" - id="https://www.debian.org/doc/developers-reference/"></tt>. - </p> - </sect> - -<sect id="extra-trans-"> -<heading>À propos de la traduction</heading> -<p> -Depuis la version 3.5.0.0, la charte Debian regroupe le -<em>Debian Policy Manual</em> et des éléments tirés du -<em>Debian Packaging Manual</em>.</p> -<p> -Serge Stinckwich et David Rocher ont initié la traduction du -<em>Debian Policy Manual</em> et ils furent rejoints par Christophe Le Bars, -Benjamin Drieu, Laurent Pelecq, Christophe Mertz, Olivier Ripoll, -Georges Mariano, Hugues Marilleau, Michel Court et les relecteurs de la liste -de diffusion <em>debian-l10n-french</em>. Il a ensuite été repris -par Philippe Batailler. -</p> -<p> -David Curé et Christian Jacolot ont traduit les passages -du <em>Debian Packaging Manual</em> intégrés dans la charte. -</p> -<p> -Si vous voulez faire part de vos commentaires, suggestions ou critiques sur -cette traduction, vous pouvez envoyer un courriel à Frédéric Bothamy <email> -frederic.bothamy@free.fr</email>, ou à la liste <em>debian-l10n-french</em>, -<email>debian-l10n-french@lists.debian.org</email>. -</p> - </sect> - </chapt> - - <chapt id="archive"> - <heading>L'archive Debian</heading> - <p> - Le système Debian GNU/Linux est maintenu et distribué sous la forme -d'un ensemble de <em>paquets</em>. Très nombreux (plus de 15000), ces paquets -sont répartis en plusieurs <em>sections</em> et on leur donne des -<em>priorités</em> afin de simplifier leur traitement. - </p> - <p> - Le projet Debian s'efforce de construire un système -d'exploitation libre, mais tous les paquets que nous voulons rendre -accessibles ne sont pas <em>libres</em> selon notre définition -(voir plus loin les Directives Debian pour le logiciel libre) ou ne peuvent -pas être importés ou exportés sans restrictions. L'archive a donc été -divisée en zones de distributions ou catégories définies par les licences des -logiciels ou par certaines restrictions. - </p> - <p> -Nos buts sont les suivants : - <list compact="compact"> - <item>offrir le plus grand nombre possible de logiciels ;</item> - <item>encourager chacun à écrire des logiciels libres ;</item> - <item>et faciliter la production de cédéroms de notre système en -évitant que des licences, des restrictions d'importation ou d'exportation -ou des lois quelconques ne soient violées.</item> - </list> - </p> - -<p> - La catégorie <em>main</em> constitue la <em>distribution Debian - GNU/Linux</em>. -</p> - <p> - Les paquets des autres zones de distribution (<tt>contrib</tt>, -<tt>non-free</tt>) ne sont pas considérés comme faisant -partie de la distribution Debian, bien que nous soutenions leur utilisation -à travers notre infrastructure (comme notre système -de suivi des bogues et nos listes de diffusion). La <em>Charte Debian</em> -s'applique aussi à ces paquets. -</p> - - <sect id="dfsg"> - <heading>Les directives Debian pour le logiciel libre</heading> - <p> - Les directives Debian pour le logiciel libre (DFSG : -« Debian Free Software Guidelines ») suivantes constituent notre -définition du « logiciel libre ». - <taglist> - <tag>Redistribution autorisée - </tag> - <item> - <p> - La licence d'un composant Debian ne doit pas empêcher quiconque - de vendre ou de donner ce logiciel en tant qu'élément d'une distribution - logicielle qui regroupe des programmes de différentes sources. La licence - ne doit pas demander le paiement de droits ou de redevances - pour une telle vente. - </p> - </item> - <tag>Code source - </tag> - <item> - <p> - Le programme doit inclure son code source et doit permettre sa - distribution en tant que code source et sous forme compilée. - </p> - </item> - <tag>Travaux dérivés - </tag> - <item> - <p> - La licence doit autoriser les modifications et les travaux -dérivés. Elle doit autoriser leur distribution selon les termes mêmes de -la licence du logiciel original. - </p> - </item> - <tag>Intégrité du code source de l'auteur - </tag> - <item> - <p> - La distribution d'un code source modifié peut être limitée -par la licence <em>seulement</em> si des fichiers « patch », joints -avec le code source, permettent de modifier le programme au moment de sa -compilation. La licence doit explicitement permettre la redistribution de -logiciels construits à partir de code source modifié. La licence peut exiger -que les travaux dérivés portent un nom différent ou un numéro de version -différent du logiciel initial. (C'est un compromis. Le projet Debian -encourage tous les auteurs à ne pas limiter les modifications de fichier, -source ou binaire.) - </p> - </item> - <tag>Non-discrimination envers des personnes ou groupes -de personnes - </tag> - <item> - <p> - La licence ne doit faire aucune discrimination à l'encontre -d'une personne ou d'un groupe de personnes. - </p> - </item> - <tag>Non-discrimination envers des champs d'activités - </tag> - <item> - <p> - La licence ne doit pas empêcher l'usage du programme dans un - champ spécifique d'activité. Par exemple, elle ne doit pas empêcher - l'utilisation du programme dans le cadre d'une activité commerciale ou - pour faire de la recherche génétique. - </p> - </item> - <tag>Distribution de licence - </tag> - <item> - <p> - Les droits attachés au programme doivent s'appliquer à tous -ceux à qui le logiciel est redistribué sans que ceux-ci aient besoin -d'une licence supplémentaire. - </p> - </item> - <tag>La licence ne doit pas être spécifique à Debian - </tag> - <item> - <p> - Les droits attachés à un programme ne doivent pas être liés -à l'appartenance de ce programme à un système Debian. Si ce programme -est extrait de Debian et est utilisé ou distribué sans Debian mais -dans les termes de la licence du programme, toutes les parties -à qui ce programme a été redistribué doivent avoir les mêmes droits -que ceux qui sont accordés avec le système Debian. - </p> - </item> - <tag>La licence ne doit pas contaminer d'autres logiciels - </tag> - <item> - <p> - La licence ne doit pas apporter des restrictions à d'autres -logiciels distribués avec le logiciel en question. Par exemple, la licence ne -doit pas exiger que tous les autres programmes distribués sur le même -support soient des logiciels libres. - </p> - </item> - <tag>Exemples de licence - </tag> - <item> - <p> - Les licences « GPL », « BSD » et -« Artistic » sont des exemples de licence que nous considérons -comme <em>libres</em>. - </p> - </item> - </taglist> - </p> - </sect> - - <sect id="sections"> - <heading>Les catégories</heading> - - <sect1 id="main"> - <heading>La catégorie « main »</heading> - <p> - Tous les paquets dans <em>main</em> doivent se conformer aux <em>DFSG</em> -(« Debian Free Software Guidelines » — Les principes du logiciel -libre selon Debian). - </p> - - <p> - De plus, les paquets dans <em>main</em> - <list compact="compact"> - <item> - <p> -ne doivent pas demander un paquet extérieur à <em>main</em> pour leur -compilation ou leur exécution (ainsi les paquets ne doivent pas déclarer de -relation « Depends », « Recommends » ou -« Build-Depends » avec un paquet qui n'est pas contenu dans -<em>main</em>), - </p> - </item> - <item> - <p> - ne doivent pas être tellement bogués que nous refusions de les -soutenir, - </p> - </item> - <item> - <p> - et doivent se conformer à toutes les règles énoncées -dans ce manuel. - </p> - </item> - </list> - </p> - - </sect1> - - <sect1 id="contrib"> - <heading>La catégorie « contrib »</heading> - <p> - Tous les paquets dans <em>contrib</em> doivent se conformer aux - « DFSG ». - </p> - <p> -De plus, les paquets dans <em>contrib</em> - <list compact="compact"> - <item> - <p> -ne doivent pas être tellement bogués que nous refusions de les soutenir, - </p> - </item> -<item> -<p> -et doivent se conformer à toutes les règles énoncées dans ce manuel. - </p> - </item> - </list> -</p> -<p> -Voici des exemples de paquets que l'on peut mettre dans <em>contrib</em> : -<list compact="compact"> -<item><p> -des paquets libres qui demandent pour leur compilation ou -leur exécution des paquets appartenant aux sections <em>contrib</em>, -<em>non-free</em> ou des paquets qui ne sont pas contenus dans notre archive ; - </p> - </item> - <item> - <p> -des paquets « wrapper », et des accessoires libres pour des -programmes non libres. - </p> - </item> - </list> - </p> - </sect1> - <sect1 id="non-free"> - <heading>La catégorie « non-free »</heading> - <p> -On doit placer dans les sections <em>non-free</em> -les paquets qui ne se conforment pas aux « DFSG », ou bien les -paquets dont la distribution est rendue problématique par des brevets ou des -questions légales. - </p> -<p> -De plus les paquets dans <em>non-free</em> -<list compact="compact"> -<item> -<p> -ne doivent pas être tellement bogués que nous refusions de les soutenir, - </p> - </item> -<item> -<p> -et doivent se conformer, autant qu'il leur est possible, à toutes les règles -énoncées dans ce manuel<footnote><p> -Il se peut que certains paquets ne puissent pas respecter telle règle ; -p. ex. les sources ne sont pas disponibles. Ces situations seront examinées au -cas par cas. -</p> - </footnote>.</p> - </item> - </list> -</p> - </sect1> - - <sect id="pkgcopyright"> - <heading>Considérations sur le copyright</heading> - - <p> -Tous les paquets doivent être accompagnés d'une copie <em>verbatim</em> -de leur copyright et de leur licence dans le fichier - <file>/usr/share/doc/<var>paquet</var>/copyright</file> -(voir <ref id="copyrightfile"> pour des précisions). -</p> - <p> - Nous nous réservons le droit d'empêcher l'inclusion de fichiers -dans nos archives si - <list compact="compact"> - <item> - leur utilisation ou leur distribution violent une loi ; - </item> - <item> - leur utilisation ou leur distribution créent un conflit éthique ; - </item> - <item> - nous sommes obligés de signer une licence pour les utiliser ; - </item> - <item> - leur distribution entre en conflit avec des politiques -du projet Debian. - </item> - </list> - </p> - - <p> - Les programmes dont les auteurs encouragent l'utilisateur à faire des -dons conviennent très bien à la section <em>main</em>, sauf si les auteurs -affirment que ne pas faire de don est immoral, non éthique, illégal -ou quelque chose de similaire ; dans ce cas, ces programmes -doivent être placés dans la section <em>non-free</em>. -</p> - - <p> - Les paquets dont les notices de copyright (ou des problèmes de -brevet) ne permettent pas la redistribution, même sous forme binaire, -et pour lesquels aucune permission spéciale n'a été obtenue, ne doivent pas -être placés sur le site FTP de Debian et ses miroirs.</p> - - <p> -On notera que dans la loi internationale du copyright (ceci s'applique aussi -aux États-Unis), <em>aucune</em> distribution ou modification d'un travail -n'est autorisée sans une mention explicite. C'est pourquoi un programme sans -notice de copyright <em>est</em> protégé et vous ne pouvez rien en faire -sans risquer d'être poursuivi. De même, un programme, avec une notice -de copyright qui n'énoncerait pas explicitement ce qui est permis, -interdit tout. -</p> - - <p> -Beaucoup d'auteurs de logiciels prétendument libres ignorent les problèmes -posés aux utilisateurs par des copyrights restrictifs (ou l'absence -de notice de copyright). Il est souvent intéressant de contacter -diplomatiquement de tels auteurs pour leur demander de modifier les -termes de leur licence. Cependant cela peut être politiquement difficile -et vous devriez au préalable demander conseil sur la liste -de diffusion <tt>debian-legal</tt>, comme il est expliqué plus bas. -</p> - - <p> -En cas de doute à propos d'un copyright, envoyez un courrier électronique -à <email>debian-legal@lists.debian.org</email>. Soyez prêt à nous donner -le copyright complet. Les logiciels couverts par la « GPL », les -logiciels du domaine public et les copyrights de type « BSD » sont -sûrs ; méfiez-vous d'expressions comme « utilisation commerciale -interdite » et « distribution limitée ». -</p> - </sect> - - <sect id="subsections" > - <heading>Les sections</heading> - - <p> -Les paquets des catégories (<em>main</em>, <em>contrib</em> et <em>non-free</em> -sont regroupés en <em>sections</em> pour simplifier leur traitement. -</p> - - <p> - La catégorie et la section seront spécifiées dans le champ de -contrôle <tt>Section</tt> de chaque paquet. Toutefois, le responsable de -l'archive Debian peut modifier ce choix afin d'assurer la cohérence de la -distribution Debian. le champ <tt>Section</tt> sera de la forme : -<list compact="compact"> -<item> -<p> -<em>section</em> si le paquet appartient à la catégorie <em>main</em>, -</p> - </item> -<item> -<p> -<em>segment/section</em> si le paquet appartient aux zones de distribution -<em>contrib</em> ou <em>non-free</em>. - </p> - </item> - </list> - </p> - - <p> -Les responsables de l'archive Debian donnent la liste des sections -autorisées : - <em>admin</em>, <em>base</em>, <em>comm</em>, - <em>contrib</em>, <em>devel</em>, <em>doc</em>, - <em>editors</em>, <em>electronics</em>, <em>embedded</em>, - <em>games</em>, <em>gnome</em>, <em>graphics</em>, - <em>hamradio</em>, <em>interpreters</em>, <em>kde</em>, - <em>libs</em>, <em>libdevel</em>, <em>mail</em>, - <em>math</em>, <em>misc</em>, <em>net</em>, <em>news</em>, - <em>non-free</em>, <em>oldlibs</em>, - <em>otherosfs</em>, <em>perl</em>, <em>python</em>, - <em>science</em>, <em>shells</em>, - <em>sound</em>, <em>tex</em>, <em>text</em>, - <em>utils</em>, <em>web</em>, <em>x11</em>. - </p> - </sect> - -<sect id="priorities"> - <heading>Les priorités</heading> - - <p> - Chaque paquet aura une <em>priorité</em> spécifiée dans son -<em>fichier de contrôle</em> (voir <ref id="f-Priority">). Cette information, -utilisée par les outils de gestion des paquets Debian, permet de séparer les -paquets prioritaires de ceux qui le sont moins. -</p> - <p> - Les outils de gestion des paquets Debian reconnaissent -les <em>niveaux de priorité</em> suivants : - - <taglist> - <tag><tt>required</tt></tag> - <item> - <p> -Ce sont les paquets nécessaires au bon fonctionnement du système. -Cela signifie que les fonctionnalités de dpkg dépendent de ces paquets. -Vous ne devez pas les enlever sous peine de rendre votre système complètement -inutilisable ; vous ne pourrez probablement même plus utiliser -<prgn>dpkg</prgn> pour remettre les choses en place. Les systèmes composés -uniquement de paquets <tt>required</tt> sont probablement inutilisables, -mais ils disposent des fonctionnalités suffisantes pour permettre à -l'administrateur système d'amorcer le système et d'installer d'autres logiciels. - </p> - </item> - <tag><tt>important</tt></tag> - <item> - <p> -Ces paquets incluent ceux que l'on s'attend à trouver sur un système de type -Unix. Si l'on pense qu'un expert Unix, détectant l'absence d'un programme -s'exclamera : « Que se passe-t-il !? Où est le programme -<prgn>foo</prgn> ? », alors celui-ci doit être dans -<tt>important</tt> -<footnote> -<p> -C'est un critère fort, car nous cherchons à produire, entre autres choses, un -Unix libre.</p> </footnote>. Les autres paquets sans -lesquels le système ne fonctionne pas bien ou est inutilisable -doivent avoir cette priorité. Cela <em>n'inclut pas</em> -« Emacs », « X11 », « TeX » ou d'autres -grosses applications. Les paquets <tt>important</tt> constituent simplement un -ensemble minimal d'outils nécessaires et communément attendus. - </p> - </item> - <tag><tt>standard</tt></tag> - <item> - <p> -Ces paquets fournissent un système en mode caractère, relativement -petit mais pas trop limité. Ils seront installés par défaut si -l'utilisateur ne sélectionne rien d'autre. Ce niveau laisse de côté -beaucoup de grosses applications. -</p> - </item> - <tag><tt>optional</tt></tag> - <item> - <p> -En un sens, ce qui n'est pas obligatoire est facultatif, mais -ici « optional » ne doit pas être compris ainsi. Ce sont tous les -logiciels que l'on pourrait raisonnablement vouloir installer quand on ne les -connaît pas et que l'on a pas d'exigences particulières. Cela constitue un -système nettement plus gros et contient « X11 », la distribution -complète de « TeX » et de nombreuses applications. Notez qu'il ne -doit pas y avoir de conflit entre les paquets optionnels. -</p> - </item> - <tag><tt>extra</tt></tag> - <item> - <p> -Sont regroupés là les paquets qui sont en conflit avec d'autres -paquets dont les priorités sont « required », « important », « standard » -ou « optional », ou bien les paquets utiles uniquement -si vous savez déjà ce qu'ils font, ou bien les paquets qui ont des -exigences spécifiques. - </p> - </item> - </taglist> - </p> - - <p> - Les paquets ne doivent pas dépendre de paquets dont les priorités -sont de valeur inférieure (hors dépendances pour la construction). -Pour cela, on pourra ajuster les priorités d'un ou de plusieurs paquets. - </p> - </sect> - </chapt> - - <chapt id="binary"> - <heading>Les paquets binaires</heading> - - <p> -La distribution Debian GNU/Linux est fondée sur le système Debian de gestion de -paquets, appelé <prgn>dpkg</prgn>. Par conséquent, tous les -paquets de la distribution Debian doivent être fournis au format de -fichier <tt>.deb</tt>. -</p> - - <sect> - <heading>Le nom d'un paquet</heading> - - <p> -Chaque paquet doit avoir un nom unique dans l'archive Debian. -</p> - <p> -Le nom d'un paquet est inclus dans le champ de contrôle <tt>Package</tt> -dont le format est décrit dans <ref id="f-Package">. -Le nom d'un paquet fait aussi partie du nom du fichier <tt>.deb</tt>. - </p> - </sect> - - <sect id="versions"> - <heading>La version d'un paquet</heading> -<p> -Chaque paquet possède un numéro de version enregistré dans le champ -<tt>Version</tt> de son fichier de contrôle, voir <ref id="f-Version">. -</p> -<p> -Le système de gestion des paquets impose un ordre aux numéros de -version : il peut ainsi connaître quel type de mise à niveau est en -cours et les applications qui lui servent d'interface peuvent dire si un -paquet disponible est plus récent que celui installé sur le système. La -partie la plus significative (du moins en ce qui concerne la comparaison) du -format des numéros de version se trouve au début. - </p> - -<p> -Quand la numérotation d'un paquet pose problème, elle sera convertie en un -format utilisable dans le champ <tt>Version</tt>. - </p> - - <sect1> - <heading>La numérotation des versions fondée sur des dates</heading> - -<p> -En règle générale, les paquets Debian utiliseront les mêmes numéros de -version que les sources.</p> - -<p> -Cependant, la numérotation des sources est parfois fondée sur une date (par -exemple, un instantané d'une version de développement) ; le système de -gestion des paquets ne peut pas manipuler cette numérotation sans les -<em>epochs</em>. Et <prgn>dpkg</prgn> par exemple considère que -« 96May01 » est plus grand que « 96Dec24 ». -</p> - -<p> -Pour éviter l'utilisation d'<em>epochs</em> à chaque nouvelle version source, -on emploiera pour la partie date du numéro de version le format suivant : -« 19960501 », « 19961224 ». -Le responsable de paquet décidera d'embêter ou non le responsable des -sources avec une demande de modification de la numérotation de ses versions. - </p> - -<p> -Il faut noter que d'autres formats fondés sur les dates et qui sont -correctement analysés par le système de gestion des paquets <em>ne doivent -pas</em> être modifiés. - </p> - -<p> -Les paquets « Debian pure souche » (c.-à-d. écrits spécialement -pour Debian) -dont les numéros de version comprennent des dates utiliseront toujours le -format suivant : « AAAAMMJJ ». - </p> - </sect1> - </sect> - - <sect> - <heading>Le responsable d'un paquet</heading> - - <p> - Chaque paquet doit avoir un responsable Debian (quelqu'un ou -un groupe de personnes, qu'on peut joindre à une adresse électronique, telle -que, par exemple, une liste de diffusion). Le responsable assure que la -licence du logiciel du paquet suit les règles des distributions auxquelles -il appartient. -</p> - <p> -Le responsable doit être indiqué dans le champ <tt>Maintainer</tt> avec son -nom correct et une adresse électronique valable. Quand une personne s'occupe -de plusieurs paquets, elle essaiera d'éviter d'avoir différents noms ou -adresses dans les champs <tt>Maintainer</tt> des différents paquets. -</p> - <p> -Le format du champ <tt>Maintainer</tt> est décrit dans <ref id="f-Maintainer">. - </p> - - <p> -Quand la personne en charge d'un paquet quitte le projet Debian, -c'est le groupe Debian QA <email>packages@qa.debian.org</email> -qui reprend la maintenance du paquet jusqu'à ce qu'un volontaire -se propose pour cette tâche. -Ces paquets sont appelés <em>paquets orphelins</em> -<footnote> -La façon élégante de le faire peut être trouvée dans le -« Debian Developer's Reference », voyez <ref id="related">. - </footnote>. -</p> - </sect> - - <sect id="descriptions"> - <heading>La description d'un paquet</heading> - - <p> -Chaque paquet Debian doit avoir une description complète enregistrée -dans les champs <em>ad hoc</em> de son <em>fichier de contrôle</em>. -L'information technique sur le format du champ <tt>Description</tt> se trouve -dans <ref id="f-Description">. - </p> -<p> -La description donnera assez d'informations sur le paquet (le programme) pour -qu'un utilisateur (un administrateur système) n'ayant jamais rencontré ce -paquet puisse décider de l'installer. La description ne reprendra pas -simplement la documentation du programme. - </p> -<p> -Mettez les informations importantes d'abord, à la fois dans le résumé et -dans la description longue. Parfois, seule la première partie du résumé ou -de la description longue est affichée. On peut assumer malgré tout qu'il y a -une façon de voir toute la description longue. - </p> -<p> -La description donnera aussi des informations sur les dépendances et les -conflits significatifs entre ce paquet et les autres : l'utilisateur -saura ainsi pourquoi ces dépendances et ces conflits ont été déclarés. - </p> -<p> Les instructions de configuration ou d'utilisation du paquet ne doivent -pas en faire partie (c'est le rôle des scripts d'installation, des pages de -man, des fichiers infos, etc.), non plus que les notices de copyright et les -autres écrits administratifs (c'est le rôle des fichiers de copyright). -</p> - -<sect1 id="synopsis"><heading>Le résumé sur une seule ligne</heading> - -<p> -La ligne de résumé sera brève -- moins de 80 caractères. - </p> - -<p> -Ne mettez pas le nom du paquet dans la ligne de résumé. Le logiciel -sait déjà l'afficher, et ce n'est pas nécessaire de l'indiquer. N'oubliez pas -que dans beaucoup de cas, l'utilisateur ne peut lire que la ligne de -résumé : il faut donc la rendre aussi instructive que possible. - </p> - </sect1> - -<sect1 id="extendeddesc"><heading>La description étendue</heading> - -<p> -N'essayez pas de poursuivre la ligne du résumé dans la description étendue. -Cela ne fonctionnera pas correctement quand la description complète est -affichée et cela n'aura aucun sens quand seul le résumé est disponible. - </p> -<p> -La description étendue décrira ce que fait le paquet, et comment il -se relie au reste du système (en termes, par exemple, de sous-systèmes, -de partie de ...). - </p> -<p> -Le champ description doit être compréhensible par tout le monde, y compris -par ceux qui n'ont aucune idée de ce que fait le paquet <footnote> -<p> -Le commentaire, qui est fourni par un programme dans ses fichiers -d'annonces ou dans les fichiers <tt>README</tt>, est rarement approprié pour -une utilisation dans une description. Il est habituellement conçu pour les -gens qui connaissent déjà le paquet. - </p> - </footnote>. - </p> - - </sect1> - </sect> - - <sect> - <heading>Les dépendances</heading> - - <p> -Chaque paquet doit indiquer ses relations de dépendance avec les -paquets dont il a besoin pour fonctionner correctement. -</p> - <p> -Par exemple, une relation de dépendance doit être déclarée pour toute -bibliothèque partagée qui est demandée par un exécutable -dynamiquement lié d'un paquet. -</p> - - <p> -Il n'est pas nécessaire d'indiquer les dépendances d'un paquet envers -des paquets étiquetés <tt>Essential</tt> (voir ci-dessous), et on ne doit -pas le faire, à moins que ce ne soit une dépendance pour une version -précise de tel paquet.<footnote> - <p> -<tt>Essential</tt> est défini comme l'ensemble minimal de fonctionnalités qui -doivent être disponibles et utilisables sur le système même quand les paquets -sont dans un état non configuré (mais dépaqueté). Cela est nécessaire pour -éviter des boucles de dépendances non solutionnables lors des mises à jour. Si -des paquets ajoutent des dépendances inutiles sur des paquets de cet ensemble, -les possibilités qu'il y <strong>aura</strong> une boucle de dépendance non -solutionnable induite par le forçage de configuration de ces paquets essentiels -avant que cela ne soit nécessaire est fortement augmenté. Cela augmente -également les possibilités que des frontaux ne seront pas capable de -<strong>calculer</strong> un chemin de mise à jour, même si celui-ci existe. - </p> - <p> -De plus, il est peut probable qu'une fonctionnalité d'<tt>Essential</tt> soit -jamais supprimée (ce qui est une raison pour laquelle une attention particulière -doit être prise avant de faire un ajout à l'ensemble des paquets -d'<tt>Essential</tt>), mais des <em>paquets</em> ont été retirés de l'ensemble -<tt>Essential</tt> quand la fonctionnalité a été déplacée dans un paquet -différent. Donc, dépendre de ces paquets <em>au cas où</em> ils ne seraient plus -essentiels pose plus de problèmes que cela n'en résoud. - </p> - </footnote> -</p> - <p> -Dans certains cas, l'installation d'un paquet exige l'installation -<em>et</em> la configuration préalables d'un autre paquet. Il faut alors -déclarer une relation <tt>Pre-Depends</tt> pour ce paquet.</p> - - <p> -Vous ne déclarerez pas une relation <tt>Pre-Depends</tt> -pour un paquet avant qu'une discussion dans la liste de diffusion -<tt>debian-devel</tt> n'ait abouti à un consensus sur le sujet. -</p> - <p> -Le format des champs concernant les relations entre paquets est décrit dans -<ref id="relationships">. - </p> - </sect> - - <sect id="virtual_pkg"> - <heading>Les paquets virtuels</heading> - - <p> -Parfois il y a des paquets qui font plus ou moins la même chose. -Dans ce cas, il est utile de définir un <em>paquet virtuel</em> dont -le nom décrit la fonction de ces paquets. Les paquets virtuels existent -de manière logique et non physique ; c'est pour cela qu'ils sont appelés -<em>virtuels</em>. Les paquets assurant cette fonction viendront -<em>pourvoir</em> ce paquet virtuel. Ainsi, tout autre paquet qui a besoin -de cette fonction pourra simplement dépendre du paquet virtuel, sans -avoir à énumérer tous les paquets possibles. -</p> - - <p> -Tous les paquets utiliseront les noms de paquets virtuels -quand il conviendra de le faire ; ils s'arrangeront pour en créer de -nouveaux quand ce sera nécessaire. On n'utilisera que les paquets -virtuels qui ont été acceptés et qui apparaissent dans la liste des noms de -paquets virtuels -(sauf de manière privée, pour un ensemble local de paquets corrélés). -Voir aussi <ref id="virtual">. -</p> - - <p> -La version la plus récente de la liste officielle des paquets virtuels se -trouve dans le paquet <tt>debian-policy</tt>. Elle est aussi disponible sur -les miroirs web de Debian, -<tt><url name="/doc/packaging-manuals/virtual-package-names-list.txt" - id="https://www.debian.org/doc/packaging-manuals/virtual-package\-names-list.txt"></tt>. - </p> -<p> - La procédure de mise à jour de la liste est décrite au début de la liste. -</p> -</sect> - - <sect> - <heading>Le système de base</heading> - - <p> -Le système de base est le sous-ensemble minimal du système Debian -GNU/Linux qui est installé, avant tout autre chose, sur un nouveau système. -Ainsi, seulement un tout petit nombre de paquets peut aller dans -la section <tt>base</tt> afin de minimiser la quantité d'espace disque -nécessaire à une installation. -</p> - <p> -La plupart de ces paquets auront le niveau de priorité -<tt>required</tt> ou au moins <tt>important</tt> et beaucoup d'entre eux -seront étiquetés <tt>essential</tt> (voir ci-dessous). -</p> - - </sect> - - <sect> - <heading>Les paquets « essential »</heading> - - <p> -Certains paquets sont marqués <tt>essential</tt>, pour les systèmes qui -utilisent ce champ <tt>Essential</tt> dans le fichier de contrôle. -Le format de ce champ est décrit dans <ref id="f-Essential">. - </p> - <p> -Comme ces paquets ne peuvent pas être facilement supprimés -(il faut ajouter une option de <em>forçage</em> de <prgn>dpkg</prgn>), -l'indicateur <tt>essential</tt> ne doit être utilisé que si -c'est absolument nécessaire. -Un paquet comprenant une bibliothèque partagée ne doit pas être étiqueté -<em>essential</em> ; les dépendances empêchent sa suppression -prématurée, or il doit être possible de supprimer le paquet quand la -bibliothèque est périmée. -</p> -<p> -Comme <prgn>dpkg</prgn> n'empêche pas la mise à jour de paquets alors qu'un -paquet <em>essential</em> n'est pas configuré, tous les paquets -<em>essential</em> doivent fournir l'essentiel de leurs fonctions même s'ils -ne sont pas configurés. Quand un paquet ne peut pas satisfaire à cette -exigence, il ne doit pas être étiqueté <em>essential</em> ; et tous les -paquets qui en dépendent doivent, comme il est de règle, expliciter leurs -dépendances. -</p> - - <p> -Vous ne devez pas étiqueter un paquet comme <tt>essential</tt> avant qu'une -discussion dans la liste de diffusion <tt>debian-devel</tt> -n'ait abouti à un consensus sur le sujet. -</p> - </sect> - - <sect id="maintscripts"> - <heading>Les scripts du responsable de paquet</heading> - - <p> -Les scripts d'installation d'un paquet éviteront d'afficher des -messages que l'utilisateur n'a pas besoin de voir et s'appuieront -sur <prgn>dpkg</prgn> pour sauver de l'ennui un utilisateur qui -installe de nombreux paquets. Cela signifie entre autres choses qu'il faut -utiliser l'option <tt>--quiet</tt> de <prgn>install-info</prgn>. -</p> - - <p> -Les scripts d'installation doivent détecter toute erreur qui se produit et -doivent arrêter immédiatement l'installation en cours. -</p> - - <p> -On remarquera que la section <ref id="scripts">, s'applique généralement -aussi aux scripts des responsables de paquet. -</p> - -<p> -On n'utilisera pas <prgn>dpkg-divert</prgn> sur un fichier appartenant à -un autre paquet sans avoir consulté au préalable le responsable du paquet en -question. -</p> - -<p> -Tous les paquets qui donnent une valeur au nom « partagé » d'une -commande (en général, c'est un nom de fichier), utiliseront en général -<prgn>update-alternatives</prgn>, de manière à rendre possible leur -installation simultanée. Quand on n'emploie pas -<prgn>update-alternatives</prgn>, chaque paquet doit utiliser -<tt>Conflicts</tt> pour s'assurer que les autres paquets ne sont pas -installés. On peut spécifier dans ce cas un conflit avec quelques -versions antérieures d'un paquet qui n'utilisait pas -<prgn>update-alternatives</prgn> ; c'est une exception à la règle -habituelle qui demande d'éviter les conflits de version. -</p> - -<sect1 id="maintscriptprompt"> -<heading>Poser des questions via les scripts du responsable</heading> -<p> -Les scripts du responsable de paquet peuvent interroger l'utilisateur quand -c'est nécessaire. L'interrogation se fera par l'intermédiaire d'un programme, -tel que <prgn>debconf</prgn>, qui se conforme à la spécification Debian pour -les systèmes de configuration, version 2 ou supérieure. -On peut interroger par d'autres moyens, notamment -<em>à la main</em> <footnote> -Tiré du Jargon : <em>à la main</em> 2. Par extension, écrire du code pour -faire quelque chose explicitement ou à un bas niveau alors qu'une routine -de bibliothèque (<em>debconf, dans ce cas</em>) est déjà disponible. - </footnote> mais c'est déconseillé. -</p> - - <p> -La spécification Debian pour les systèmes de configuration se trouve dans le -fichier <file>debconf_specification</file> du paquet -<package>debian-policy</package>. Elle est aussi disponible sur les miroirs -web de Debian, - <tt><url name="/doc/packaging-manuals/debconf_specification.html" - id="https://www.debian.org/doc/packaging-manuals/debconf_specifi\cation.html"></tt>. - </p> -<p> -Les paquets qui utilisent les règles Debian de gestion de la configuration -peuvent contenir un script supplémentaire <prgn>config</prgn> et un fichier -<tt>templates</tt> dans leur archive de contrôle <footnote> -Le fichier control.tar.gz dans le .deb. -Voyez <manref name="deb" section="5">. - </footnote>. -Le script -<prgn>config</prgn> peut être lancé avant le script <prgn>preinst</prgn> et -avant que le paquet soit dépaqueté ou bien avant que ses dépendances et -pré-dépendances soient satisfaites : il doit donc fonctionner en utilisant -seulement les outils présents dans les paquets <em>Essential</em> <footnote> -<p> -<package>Debconf</package> ou tout autre outil qui met en ½uvre les règles -Debian de gestion de la configuration est aussi installé, et toutes les -dépendances concernant des versions sont satisfaites avant le commencement de -la configuration préalable. - </p> - </footnote>. - </p> - -<p> -Les paquets essaieront de minimiser le nombre de questions posées et -s'assureront que chaque question ne sera posée qu'une seule fois. Cela -signifie que les paquets doivent essayer d'utiliser les fichiers de -configuration partagés (comme <tt>/etc/papersize</tt> ou -<tt>/etc/news/server</tt>) et les variables partagées de -<package>debconf</package>, plutôt que de redemander, chacun, la même -information. -</p> - -<p> -Cela signifie aussi que, lors d'une mise à niveau, on ne doit pas poser -encore les mêmes questions, à moins que l'utilisateur n'ait utilisé -<tt>dpkg --purge</tt> pour supprimer les fichiers de configuration. Les -réponses aux questions de configuration seront sauvegardées à l'endroit -approprié dans <tt>/etc</tt>, et l'on documentera le processus ; ainsi -l'utilisateur pourra les modifier. - </p> - <p> -Quand un paquet doit donner une information importante à l'utilisateur -(comme : « n'exécutez pas directement ce programme, vous devez -d'abord -modifier les fichiers de configuration suivants sinon votre système -émettra des messages mal formatés »), il affichera ce message -dans le script <prgn>config</prgn> ou dans le script <prgn>postinst</prgn>). -Il demandera ensuite à l'utilisateur de taper sur la touche -« retour-chariot » quand il a pris connaissance du message. Les -messages de copyright et les instructions d'utilisation ne sont pas considérés -comme des messages vitaux. Ils doivent apparaître respectivement -dans <tt>/usr/share/doc/<var>paquet</var>/copyright</tt> et dans la -documentation en ligne, où tous les utilisateurs peuvent les consulter. -</p> - - <p> -Presque toujours, seuls les scripts <prgn>config</prgn> et -<prgn>postinst</prgn> poseront les questions nécessaires ; quand on utilise -le script <prgn>postinst</prgn>, il doit empêcher, par une condition -quelconque, qu'elles soient posées en cas d'échec de l'installation d'un -paquet ou s'il est appelé avec <tt>abort-upgrade</tt>, <tt>abort-remove</tt> ou -<tt>abort-deconfigure</tt>. -</p> - </sect1> - </sect> - </chapt> - -<chapt id="source"> - <heading>Les paquets sources</heading> - - <sect id="standardsversion"> - <heading>La conformité aux manuels Debian</heading> - - <p> -On indiquera la version la plus récente de la <em>Charte Debian</em> à -laquelle s'est conformé le paquet lors de sa mise à jour la plus récente. - </p> - <p> -On peut utiliser cette valeur pour remplir automatiquement des rapports de -bogue quand le paquet est vraiment trop vieux. -</p> -<p> -La version est indiquée dans le champ de contrôle <tt>Standards-Version</tt>. -Le format de ce champ est décrit dans <ref id="f-Standards-Version">. -</p> - <p> -Vous consulterez régulièrement, et notamment si votre paquet est obsolète, -la plus récente version de la <em>Charte Debian</em>, et vous mettrez à jour -votre paquet si nécessaire. -Lorsque le paquet est conforme à la nouvelle norme, -vous mettrez à jour le champ <tt>Standards-Version</tt> -du paquet source et vous le diffuserez -<footnote><p> -Consultez le fichier <tt>upgrading-checklist</tt> pour connaître les -changements entre différentes versions de ce document.</p> - </footnote>. -</p> - </sect> - - <sect id="pkg-relations"> - <heading>Les relations entre paquets</heading> - - <p> -Les paquets source préciseront les paquets binaires qui doivent être -installés et ceux qui ne doivent pas l'être, pour que leur construction -réussisse. -Si l'on doit, par exemple, compiler un paquet avec un compilateur particulier, -une dépendance de compilation sera déclarée envers ce paquet. - </p> - - <p> -Pour un très petit nombre de paquets, ceux dont on a toujours besoin pour -compiler, lier et insérer dans un paquet Debian un programme classique écrit -en C ou C++ comme « Hello world! », il n'est pas nécessaire de -déclarer explicitement des relations de dépendance. Ces paquets, sur lesquels -on peut trouver des renseignements dans la liste -<tt>/usr/share/doc/build-essential/list</tt> (contenue dans le -paquet <tt>build-essential</tt>), sont marqués <em>build-essential</em> -<footnote> -<p> -Le raisonnement : -<list compact="compact"> -<item> -<p> -on peut ainsi maintenir une liste distincte de la Charte (une liste nécessite -moins de contrôle que la Charte) ; - </p> - </item> -<item> -<p> -un paquet distinct permet l'installation des paquets -« build-essential » sur une machine, et permet aussi que d'autres -paquets tels que les tâches installent les paquets -« build-essential » à travers une relation de dépendance ; - </p> - </item> -<item> -<p> -un paquet distinct permet de séparer les rapports de bogues concernant la -liste du processus de gestion de la charte dans le « BTS » -(système de suivi des bogues). - </p> - </item> - </list></p> - </footnote>. -</p> - - <p> -La liste des dépendances de compilation ne contiendra que les paquets -explicitement nécessaires à la compilation. Les paquets simplement demandés -parce qu'un paquet de cette liste dépend d'eux ne doivent pas être déclarés -<footnote><p> -La raison en est que les relations de dépendance changent et vous ne -déclarerez que les paquets et <em>seulement ceux-là</em> dont <em>vous</em> -avez besoin. Ce dont les autres ont besoin est leur affaire. Si, par exemple, -vous utilisez la bibliothèque <tt>libimlib</tt>, vous aurez besoin d'une -dépendance de construction pour le paquet <package>libimlib2-dev</package> ; -mais vous n'avez pas besoin de dépendance pour les paquets <tt>libjpeg*</tt>, -même si <tt>libimlib2-dev</tt> dépend de ces paquets : l'installation de -<package>libimlib2-dev</package> s'assurera que toutes les dépendances -nécessaires à son exécution sont satisfaites.</p> - </footnote>. - </p> - - <p> -Quand les relations de dépendance de compilation sont indiquées, on doit -pouvoir compiler un paquet et produire un binaire opérationnel sur un -système où les paquets <tt>essential</tt> et <tt>build-essential</tt> sont -installés ainsi que ceux nécessaires pour que les relations de dépendance de -compilation soient satisfaites (y compris les implicites). Cela signifie en -particulier que, dans les relations de -dépendance de compilation, on doit traiter rigoureusement les questions de -version de manière à éviter les paquets mal ou stupidement configurés quand -les relations de dépendances sont correctement satisfaites. -</p> - <p> - Le chapitre <ref id="relationships"> explique les détails techniques. - </p> - </sect> - - <sect> - <heading>Les modifications dans les sources amont</heading> - - <p> -Si vous modifiez le code source d'une manière qui n'est pas liée au système -Debian, vous enverrez -ces changements aux auteurs, dans la forme qu'ils préféreront, de manière -à ce qu'ils puissent être intégrés dans la version originale. -</p> - - <p> -Si vous avez besoin de configurer le paquet de façon différente sous -Debian et sous Linux et si les sources originaux ne proposent pas de manière -de le faire, veuillez ajouter ces moyens de configuration. -C'est, par exemple, un nouveau test d'<prgn>autoconf</prgn> ou un -<tt>#define</tt>. Envoyez ensuite le correctif aux auteurs, -en choisissant comme valeur par défaut la configuration qu'ils -avaient choisie. Vous pouvez facilement remplacer la valeur par défaut -dans votre <tt>debian/rules</tt> ou dans tout autre endroit approprié. -</p> - <p> -Vous vérifierez que l'outil <prgn>configure</prgn> -détecte la bonne déclaration d'architecture (reportez-vous à la section -<ref id="arch-spec"> pour plus de précisions). -</p> - <p> -Si vous avez besoin de modifier un <prgn>Makefile</prgn> qui utilise -des scripts <prgn>configure</prgn> de style « GNU », vous modifierez -les fichiers <tt>.in</tt>, plutôt que directement le -<prgn>Makefile</prgn>. Cela permet à l'utilisateur de reconfigurer -le paquet si nécessaire. Vous <em>ne devez pas</em> -configurer le paquet et modifier le <prgn>Makefile</prgn> produit ! -Cela rend impossible la reconfiguration ultérieure du paquet par -un autre utilisateur sans perdre vos modififications. -</p> - </sect> - - <sect id="dpkgchangelog"> -<heading>Changelog Debian : <file>debian/changelog</file></heading> -<p> -Ce fichier, <file>debian/changelog</file>, enregistre les modifications -apportées à la version d'un paquet Debian. <footnote> -<p> -Plutôt que de <em>ré-écrire l'histoire</em> en rectifiant les anciennes -entrées, il vaut mieux en écrire de nouvelles pour corriger les -erreurs de ce fichier.</p></footnote> -Cela comprend les modifications -du paquet Debian par rapport au paquet source ainsi que les autres -changements et mises à jour concernant le paquet -<footnote><p> -Bien que rien n'empêche un auteur qui est aussi le -responsable Debian d'utiliser ce fichier pour tous les changements, il faudra -modifier son nom si les responsables Debian et les auteurs deviennent -différents. Mais dans ce cas, il vaudrait mieux considérer le paquet comme -n'étant pas un paquet Debian « pure souche ». - </p></footnote>. - </p> - -<p> -Son format spécial permet aux outils de construction de paquets -de découvrir quelle version du paquet est en train de se construire -et de trouver des informations spécifiques à cette version. - </p> - -<p> -Le format ressemble à une suite d'entrées : - -<example compact="compact"> -<var>paquet</var> (<var>version</var>) <var>distribution(s)</var>; -urgency=<var>urgency</var> -<comment> -<p>[ ligne(s) vide(s) facultative(s), enlevée(s)]</p> - </comment> - * <var>détails des modifications</var> - <var>plus de détails</var> -<comment> -<p>[ligne(s) vide(s), apparaissant dans la sortie de dpkg-parsechangelog]</p> - </comment> - * <var>encore plus de détails</var> -<comment> -<p>[ligne(s) vide(s) facultative(s), enlevée(s)]</p> - </comment> - -- <var>nom du responsable</var> <<var>adresse électronique</var>> -<var>[deux espaces]</var> <var>date</var> -</example> - </p> - -<p> -Les entrées <var>paquet</var> et <var>version</var> représentent le nom du -paquet source et le numéro de version. - </p> - -<p> -L'entrée <var>distribution(s)</var> liste les distributions dans lesquelles -cette version sera installée. Elle est copiée dans le champ -<tt>Distributions</tt> du fichier <tt>.changes</tt>. -Voyez <ref id="f-Distribution">. - </p> - -<p> -<var>urgency</var> est la valeur pour le champ <tt>Urgency</tt> -du fichier <tt>.changes</tt> pour l'envoi du paquet sur le serveur (voir -<ref id="f-Urgency">). -Une <var>urgency</var> ne peut pas contenir de virgules ; les virgules sont -utilisées pour séparer les couples -<tt><var>mot-clé</var>=<var>valeur</var></tt> dans le format du fichier -d'enregistrement de <tt>dpkg</tt> (bien qu'il n'y ait pour -l'instant qu'un seul <var>mot-clé</var> utile : <tt>urgency</tt>) -<footnote><p> -les valeurs habituelles pour <tt>urgency</tt> sont : <tt>low</tt>, -<tt>medium</tt>, <tt>high</tt> et <tt>emergency</tt>. Elles influent sur la -rapidité avec laquelle on envisagera l'installation du paquet dans la -distribution <tt>testing</tt> et elles donnent une indication de l'importance -des corrections contenues dans cette mise à jour.</p> - </footnote>. - </p> - -<p> -L'énoncé des modifications peut n'être qu'une suite de lignes -commençant par au moins deux espaces, mais par convention, on commence -une modification par une étoile « * » suivie d'une espace ; les -lignes de continuation sont décalées pour les amener en face du texte de la -ligne précédente. On peut séparer si l'on veut les groupes de modifications -par des lignes vides. - </p> - -<p> -Si par cette mise à jour sont corrigés des bogues enregistrés par le système -de suivi de bogues (BTS), ils seront automatiquement fermés par l'installation -de ce paquet dans l'archive Debian et une chaîne -<tt>closes: Bug#<var>nnnnn</var></tt> sera insérée dans les notes de -modifications<footnote> -<p> -Pour être précis, cette chaîne doit correspondre à l'expression rationnelle -Perl suivante : - <example> -/closes:\s*(?:bug)?\#?\s?\d+(?:,\s*(?:bug)?\#?\s?\d+)*/i - </example> - </p> -<p> -Alors tous les numéros de bogues listés seront fermés par le script de -maintenance de l'archive (<prgn>katie</prgn>), ou, dans le cas d'une mise -à jour par un suppléant du responsable (Non-maintainer-upload), seront -marqués comme corrigés.</p> - </footnote>. -Cette information est transmise par le champ <tt>Closes</tt> du fichier -<tt>.changes</tt> (voir <ref id="f-Closes">). - </p> -<p> -Le nom du responsable et son adresse électronique utilisés dans le -<em>changelog</em> seront ceux de la personne installant <em>cette</em> -version. Ils <em>ne sont pas</em> nécessairement ceux du responsable habituel -du paquet. Ces informations seront copiées dans le champ <tt>Changed-By</tt> -du fichier <tt>.changes</tt>, (voir <ref id="f-Changed-By">), et plus tard, -utilisées pour envoyer un -accusé de réception quand le chargement aura été installé. - </p> -<p> -La date doit être dans le format RFC 822 -<footnote><p>Elle est produite par le programme <prgn>822-date</prgn>. -</p></footnote> ; -elle doit inclure le nom du fuseau horaire spécifié -sous forme de chiffre, et en option le nom du fuseau ou son abréviation entre -parenthèses. - </p> -<p> -La première ligne de « titre » avec le nom du paquet commencera -sur la marge de gauche, la ligne de « fin » avec les renseignements -sur le responsable et la date, doit être précédée par exactement -une espace. Les éléments responsable et date doivent être -séparés exactement par deux espaces. - </p> - - <p> -Veuillez consulter <ref id="changelogs"> pour des informations -supplémentaires sur la manière de placer les fichiers changelog dans les -paquets binaires. - </p> - -<sect1> -<heading>Autres formats pour le fichier changelog</heading> -<p> -Pour les paquets non expérimentaux, le fichier <file>debian/changelog</file> -doit utiliser un format reconnu par la version la plus récente de -<prgn>dpkg</prgn>. - </p> -<p> -Si vous souhaitez utiliser un autre format, vous pouvez le faire tant que -vous fournissez un outil d'analyse (« parser ») pour ce format. Cet -outil doit avoir une API compatible avec celle attendue par -<prgn>dpkg-genchanges</prgn> et par <prgn>dpkg-gencontrol</prgn> <footnote> -Si ce nouveau format reçoit un assentiment partagé, vous contacterez le -responsable de <package>dpkg</package> afin qu'il ajoute le script analyseur -de votre format dans le paquet <prgn>dpkg</prgn>. Vous accepterez ainsi que -l'analyseur et sa page de manuel soient distribués sous la licence -« GNU GPL », comme l'est le reste du paquet <prgn>dpkg</prgn>. - </footnote> -et il ne doit pas interagir avec l'utilisateur. -</p> - </sect1> - </sect> - - <sect id="dpkgcopyright"> - <heading>Copyright : <file>debian/copyright</file></heading> - <p> - Tout paquet doit être accompagné par une copie verbatim de son - copyright et de sa licence de distribution dans le fichier - <file>/usr/share/doc/<var>paquet</var>/copyright</file> - (voir <ref id="copyrightfile"> pour plus de détails). Veuillez - également consulter <ref id="pkgcopyright"> pour d'autres - considérations reliées aux copyrights des paquets. - </p> - </sect> - - <sect> - <heading>La détection des erreurs dans les makefiles</heading> - - <p> -Quand <prgn>make</prgn> appelle une commande dans un makefile (incluant les -makefiles originaux de votre paquet et <tt>debian/rules</tt>), cela se fait par -<tt>sh</tt>. Or <tt>sh</tt> traite mal les erreurs : -si vous incluez un mini-script shell en tant que -commande dans votre makefile, vous constaterez que si -vous n'avez pas de mécanisme de détection d'erreur, <prgn>make</prgn> -continuera aveuglément malgré les problèmes rencontrés. -</p> - - <p> -Chaque fois que vous mettez plus d'une commande shell (cela -inclut l'utilisation d'une boucle) dans une commande -du makefile, vous devez vous assurer que les erreurs -sont détectées. Pour de simples commandes composées comme changer de -répertoire et exécuter un programme, -il est suffisant d'utiliser <tt>&&</tt> à la place -du point-virgule. -Pour des commandes plus complexes incluant la plupart des boucles et -des instructions conditionnelles, vous ajouterez la commande <tt>set -e</tt> -au début de chacun de ces mini-scripts shell que sont les commandes d'un -makefile. -</p> - </sect> - - -<sect id="timestamps"> -<heading>Cachets de date</heading> - -<p> -Les responsables de paquets préserveront, autant que possible, -les dates de modification des fichiers sources d'un paquet<footnote> -<p> -Le raisonnement est que la connaissance de l'âge d'un fichier apporte -certaines informations ; par exemple, on peut reconnaître l'ancienneté de telle -documentation en regardant la date de modification. Et donc il serait bon de -préserver les dates de modification des fichiers sources.</p> - </footnote>. -</p> - </sect> - -<sect id="restrictions"> -<heading>Restrictions sur les objets dans les paquets source</heading> - -<p> -Un paquet source ne peut pas contenir des liens « en dur » <footnote> -<p>On ne les détecte pas encore pendant la phase de construction du paquet -source, mais seulement pendant la phase d'extraction. -</p> -<p> -À l'avenir, les liens « en dur » pourraient être autorisés d'une -manière ou d'une autre, mais cela demandera beaucoup de travail. - </p> - </footnote>, -des fichiers spéciaux pour les périphériques, des <em>sockets</em> ou des -fichiers <em>setuid</em> ou <em>setgid</em><footnote> -<p> -Les répertoires <em>setgid</em> sont autorisés. - </p> - </footnote>. - </p> - </sect> - -<sect id="debianrules"> -<heading><file>debian/rules</file>, le principal script - de construction</heading> - -<p> -Ce fichier doit être un <em>makefile</em> exécutable et doit contenir des -règles permettant la compilation du paquet et la construction de paquet(s) -binaire(s) à partir des sources. - </p> - -<p> -Il doit commencer par la ligne <tt>#!/usr/bin/make -f</tt>, -afin de pouvoir être appelé directement sans passer par <prgn>make</prgn>. - </p> - -<p> -Puisqu'un script <tt>debian/rules</tt> interactif ne peut pas compiler un -paquet automatiquement et empêche une reproduction de ce paquet binaire par -d'autres personnes, toutes les <em>cibles exigées</em> DOIVENT ne pas être -interactives. Au minimum, les cibles exigées sont celles qu'appelle -<prgn>dpkg-buildpackage</prgn>, à savoir, <em>clean</em>, <em>binary</em>, -<em>binary-arch</em>, <em>binary-indep</em>, et <em>build</em>. Il s'ensuit -qu'une cible dont dépendent ces cibles, doit être aussi non interactive. - </p> -<p> -Les cibles (toutes nécessaires sauf celles marquées facultatives) sont : - -<taglist> -<tag><tt>build</tt></tag> -<item> -<p> -La cible <tt>build</tt> procédera à la configuration et à la compilation du -paquet. Quand un paquet -possède une routine interactive de configuration préalable à la construction, -soit le paquet source debianisé doit être construit après cette opération -(afin qu'il puisse être construit sans ré-exécuter cette configuration), soit -la routine de configuration doit devenir non interactive. Cette dernière façon -est préférable quand la routine détecte des caractéristiques propres -à l'architecture. - </p> - -<p> -Pour certains paquets, notamment ceux où la même arborescence source est -compilée différemment pour obtenir des paquets binaires différents, la cible -<tt>build</tt> n'a aucun sens. Pour ces paquets, il suffit de prévoir deux -cibles ou plus (<tt>build-a</tt>, <tt>build-b</tt>, ...) pour chaque manière -de construire le paquet et une cible <tt>build</tt> qui ne produit rien. La -cible <tt>binary</tt> s'occupera de construire le paquet pour chaque cas -possible et de créer le paquet binaire correspondant à chacun d'eux. - </p> - -<p> -La cible <tt>build</tt> ne doit pas effectuer d'actions qui exigent les -privilèges du super-utilisateur. - </p> - -<p> -La cible <tt>build</tt> peut avoir besoin d'exécuter d'abord la -cible <tt>clean</tt>. Voir ci-dessous. - </p> - -<p> -Quand un paquet possède une routine de configuration qui prend du temps, ou -quand le <em>makefile</em> est pauvrement conçu, ou quand <tt>build</tt> -a d'abord besoin d'exécuter <tt>clean</tt>, il est alors intéressant -d'exécuter <tt>touch build</tt> quand le processus de construction est -terminé. On s'assure ainsi que si <tt>debian/rules build</tt> est lancé -à nouveau, il ne reconstruira pas le programme complet -<footnote><p> -Une autre façon de faire est que <tt>build</tt> dépende de -<prgn>build-stamp</prgn> sans rien faire d'autre, et que -<prgn>build-stamp</prgn> fasse le travail et se termine par -<tt>touch build-stamp</tt>. C'est particulièrement utile si la routine -crée un fichier ou un répertoire appelé <tt>build</tt> ; <tt>build</tt> -doit alors être déclaré comme une cible <tt>.PHONY</tt>. Consultez la -documentation de <prgn>make</prgn> pour des renseignements sur les cibles -« phony »</p> - </footnote>. - </p> - </item> - <tag><tt>build-arch</tt> (facultative), - <tt>build-indep</tt> (facultative) - </tag> - <item> -<p> -Un paquet peut aussi proposer les deux cibles <tt>build-arch</tt> et -<tt>build-indep</tt>. Si la cible <tt>build-arch</tt> existe, elle fera -la configuration et la compilation nécessaires pour -créer les paquets binaires pour chaque architecture (ce sont les paquets -dont le champ <tt>Architecture</tt> dans le fichier <tt>debian/control</tt> -est différent de <tt>all</tt>). De même, si la cible <tt>build-indep</tt> -existe, elle fera la configuration et la compilation -nécessaires pour créer les paquets binaires indépendant d'une architecture (ce -sont les paquets dont le champ <tt>Architecture</tt> dans le fichier -<tt>debian/control</tt> vaut <tt>all</tt>). La cible <tt>build</tt> dépendra -des cibles <tt>build-arch</tt> et <tt>build-indep</tt> qui sont données par -le fichier <em>rules</em>. - </p> -<p> -Quand manque l'une des cibles <tt>build-arch</tt> et <tt>build-indep</tt> (ou -les deux), un appel à <tt>debian/rules</tt> avec l'une des cibles manquantes -provoquera un code d'erreur égal à 2. Quand une cible manque, <prgn>make</prgn> -produit automatiquement ce code. - </p> -<p> -Les cibles <tt>build-arch</tt> et <tt>build-indep</tt> ne -doivent pas effectuer d'actions qui exigent les privilèges de root. - </p> - </item> - -<tag><tt>binary</tt>, <tt>binary-arch</tt>, <tt>binary-indep</tt></tag> -<item> -<p> -La cible <tt>binary</tt> doit comprendre tout ce qui est nécessaire à -l'utilisateur pour construire le(s) paquet(s) binaire(s) à partir du paquet -source. Cette cible a deux parties : <prgn>binary-arch</prgn> construit les -paquets binaires qui sont spécifiques à une architecture particulière, et -<tt>binary-indep</tt> construit les paquets qui ne le sont pas. - </p> -<p> -<tt>binary</tt> peut être (et c'est communément le cas) une cible sans -commande, qui dépend simplement de <tt>binary-arch</tt> et de -<tt>binary-indep</tt>. - </p> -<p> -Les deux cibles <tt>binary-*</tt> dépendront soit de la cible -<tt>build</tt>, soit de l'une des cibles <tt>build-arch</tt> ou -<tt>build-indep</tt> si elles sont proposées, afin que le paquet soit -construit s'il ne l'a pas déjà été. Les paquets binaires pertinents seront -ensuite créés en utilisant <prgn>dpkg-gencontrol</prgn> pour créer leurs -fichiers de contrôle et <prgn>dpkg-deb</prgn> pour construire les binaires et -les placer dans le répertoire parent du répertoire le plus élevé. - </p> - -<p> -Les cibles <tt>binary-arch</tt> et <tt>binary-indep</tt> -<em>doivent</em> exister. -Si l'une des deux cibles <tt>binary-*</tt> n'a rien à faire (ce sera -toujours le cas si le source crée un seul paquet binaire, qu'il soit -dépendant de l'architecture ou pas), elle doit tout de même exister, -et doit toujours se dérouler correctement. - </p> - -<p> -Les cibles <tt>binary</tt> doivent être invoquées avec les privilèges de root -<footnote><p> -Le paquet <prgn>fakeroot</prgn> permet souvent de construire correctement -un paquet tout en n'étant pas root.</p> - </footnote>. - </p> - </item> -<tag><tt>clean</tt></tag> - <item> - -<p> -Cette cible doit nettoyer les effets obtenus par les cibles -<tt>build</tt> et <tt>binary</tt>, mais elle doit laisser les -fichiers de sortie créés par la cible <tt>binary</tt> dans le répertoire -parent. - </p> - -<p> -Si un fichier <tt>build</tt> est créé par <prgn>touch</prgn> à la fin -de la cible <tt>build</tt>, comme suggéré ci-dessus, c'est la première -chose qui sera effacée par la cible <tt>clean</tt> ; ainsi -<tt>build</tt>, exécuté de nouveau après un nettoyage (<tt>clean</tt>) -interrompu, ne pensera pas que tout est déjà fait. - </p> - -<p> -La cible <tt>clean</tt> peut être invoquée par root, si -<tt>binary</tt> a été invoqué depuis le dernier <tt>clean</tt>, ou -si <tt>build</tt> a été invoqué par root (étant donné que -<tt>build</tt> peut créer des répertoires par exemple). - </p> - </item> -<tag><tt>get-orig-source</tt> (facultative)</tag> -<item> -<p> -Cette cible va chercher la plus récente version du paquet original dans un -site d'archive autorisé (par FTP ou WWW, par exemple), s'occupe des -arrangements nécessaires pour le mettre sous la forme d'un fichier tar (une -archive source) décrite ci-dessus, et le laisse dans le répertoire en cours. - </p> -<p> -Cette cible peut être invoquée dans n'importe quel répertoire et s'occupera -de supprimer tous ses fichiers temporaires. - </p> -<p> -Elle est facultative mais la proposer, quand c'est possible, est une bonne -idée. - </p> - </item> - </taglist> - </p> -<p> -Les cibles <tt>build</tt>, <tt>binary</tt> et <tt>clean</tt> -doivent être invoquées avec comme répertoire courant, le répertoire de plus -haut niveau du paquet. - </p> -<p> -Des cibles supplémentaires peuvent exister dans <file>debian/rules</file>, soit -comme des interfaces publiées ou non documentées soit pour l'utilisation -interne du paquet. - </p> -<p> -Ce sont les variables de <prgn>make</prgn> à travers -<qref id="pkg-dpkg-architecture"> <prgn>dpkg-architecture</prgn></qref> -qui déterminent l'architecture <em>sur</em> -laquelle et <em>pour</em> laquelle on construit. On peut obtenir, aussi bien -pour la machine sur laquelle on construit que pour la machine pour laquelle -on construit, la chaîne indiquant l'architecture Debian et la chaîne -indiquant l'architecture à la façon <em>GNU</em>. Voici une liste de -variables acceptées par <prgn>make</prgn> : -<list compact="compact"> - <item> - <p><tt>DEB_*_ARCH</tt> (l'architecture Debian)</p> -</item> - <item> - <p><tt>DEB_*_GNU_TYPE</tt> (l'architecture indiquée à la - façon <em>GNU</em>)</p> - </item> - <item> - <p><tt>DEB_*_GNU_CPU</tt> (la partie CPU de -<tt>DEB_*_GNU_TYPE)</tt></p> - </item> - <item> -<p><tt>DEB_*_GNU_SYSTEM</tt> (la partie système de <tt>DEB_*_GNU_TYPE)</tt></p> - </item> -</list> - -où « * » représente <tt>BUILD</tt> pour une indication de la -machine <em>sur</em> -laquelle on construit, ou bien <tt>HOST</tt> pour une indication de la machine -<em>pour</em> laquelle on construit. - </p> -<p> -On peut assurer une compatibilité ascendante dans le fichier <em>rules</em> -en fixant par défaut les bonnes variables à des valeurs adéquates ; -veuillez consulter la documentation de <prgn>dpkg-architecture</prgn> -pour des précisions. - </p> -<p> -Il est important de comprendre que la chaîne <tt>DEB_*_ARCH</tt> détermine -seulement l'architecture Debian sur ou pour laquelle on construit. On -ne l'utilisera pas pour avoir des renseignements sur le CPU ou le -système ; les variables GNU sont là pour ça. - </p> - </sect> - -<!-- FIXME: section pkg-srcsubstvars is the same as srcsubstvars --> - -<sect id="substvars"> -<heading><file>debian/substvars</file> - et le remplacement de variables</heading> - -<p> -Quand <prgn>dpkg-gencontrol</prgn>, <prgn>dpkg-genchanges</prgn> et -<prgn>dpkg-source</prgn> créent des fichiers de contrôle, ils procèdent au -remplacement des variables qu'ils doivent écrire dans ces fichiers. Les -substitutions de variable sont de la forme -<tt>${<var>variable-nom</var>}</tt>. -Le fichier facultatif <file>debian/substvars</file> contient les -remplacements de variable à utiliser. On peut aussi fixer directement les -variables dans le fichier <file>debian/rules</file> en utilisant l'option -<tt>-V</tt> des commandes d'empaquetage des sources ; certaines -variables pré-définies sont disponibles. - </p> -<p> -Le fichier <file>debian/substvars</file> est habituellement créé et modifié -dynamiquement par les cibles de <file>debian/rules</file>, et dans ce cas, il -doit être supprimé par la cible <tt>clean</tt>. - </p> - -<p> -Voyez <manref name="dpkg-source" section="1"> pour plus de détails sur les -remplacements de variables source, et sur le format de -<file>debian/substvars</file>. - </p> - </sect> - - <sect id="debianwatch"> - <heading>Adresse optionnelle du code source amont : - <file>debian/watch</file></heading> - - <p> -Il s'agit d'un fichier de contrôle optionnel, mais recommandé pour l'utilitaire -<tt>uscan</tt> qui définit comment scanner automatiquement les sites FTP et HTTP -pour des mises à jour nouvellement disponibles du paquet. C'est utilisé par <url -id="https://dehs.alioth.debian.org/"> et d'autres outils d'Assurance Qualité de -Debian pour aider au contrôle de qualité et à la maintenance de la distribution -dans son ensemble. - </p> - - </sect> - -<sect id="debianfiles"> -<heading>Liste des fichiers créés : <file>debian/files</file></heading> - -<p> -Ce fichier n'est pas un fichier permanent de l'arborescence source ; il est -utilisé pendant la construction des paquets pour enregistrer quels -fichiers sont créés. <prgn>dpkg-genchanges</prgn> -l'utilise quand il crée un fichier <tt>.changes</tt>. - </p> -<p> -Ce fichier ne doit pas exister dans le paquet source qu'on propose, et il -doit être supprimé par la règle <tt>clean</tt> (ainsi que n'importe quel -fichier temporaire ou de sauvegarde tel que <tt>files.new</tt> -<footnote><p><tt>files.new</tt> est utilisé -temporairement par <prgn>dpkg-gencontrol</prgn> et -<prgn>dpkg-distaddfile</prgn> ; ils écrivent une nouvelle version -de <file>files</file> avant de le renommer, pour éviter de laisser -une copie corrompue, si une erreur se produit.</p></footnote>). -Il peut aussi être sage, pour garantir un nouveau départ, de l'enlever ou -de le vider au début de la cible <tt>binary</tt>. - </p> - -<p> -Quand <prgn>dpkg-gencontrol</prgn> est exécuté pour un paquet binaire, il -ajoute une entrée dans le fichier <file>debian/files</file> pour le fichier -<tt>.deb</tt> qui sera créé quand <tt>dpkg-deb --build</tt> sera -exécuté pour ce paquet binaire. Ainsi pour la plupart des paquets, il n'y a -rien d'autre à faire que de supprimer ce fichier dans la cible -<tt>clean</tt>. - </p> - -<p> -Quand une installation de paquet inclut des fichiers autres que ceux du paquet -source ou des paquets binaires dont les fichiers de contrôle ont été créés par -<prgn>dpkg-gencontrol</prgn>, ces fichiers seront placés dans le -répertoire parent du répertoire racine du paquet et -<prgn>dpkg-distaddfile</prgn> sera appelé pour ajouter ces fichiers à la liste -<file>debian/files</file>. - </p> - </sect> - </chapt> - - -<chapt id="controlfields"> -<heading>Les fichiers de contrôle et leurs champs</heading> - -<p> -Le système de gestion des paquets manipule les données de -la même façon : des <em>données de contrôle</em> sont stockées dans des -<em>fichiers de contrôle</em>. -Les paquets source et binaire possèdent des fichiers de contrôle ; et -les fichiers <tt>.changes</tt> qui contrôlent l'installation des -fichiers sur le serveur (upload) sont aussi des fichiers de contrôle -<footnote>Les bases de données internes à -<tt>dpkg</tt> sont aussi des fichiers de contrôle. - </footnote>. - </p> - -<sect id="controlsyntax"> -<heading>La syntaxe des fichiers de contrôle</heading> -<p> -Un fichier consiste en un ou plusieurs paragraphes comportant des champs -<footnote> Ces paragraphes sont aussi appelés des strophes. - </footnote>. -Ces paragraphes sont séparés par des lignes blanches. Certains fichiers de -contrôle n'autorisent qu'un seul paragraphe ; d'autres en autorisent -plusieurs, et dans ce cas, chaque paragraphe fait souvent référence à un -paquet différent. Dans les paquets sources, par exemple, le premier -paragraphe se réfère au paquet source et les paragraphes suivants aux paquets -binaires créés à partir de ce source.</p> -<p> -Chaque paragraphe est une série de champs contenant des données ; chaque champ -est constitué d'un nom, suivi par deux-points et la valeur associée. Il se -termine à la fin de la ligne (logique). Les espaces horizontaux (espaces et -tabulations) peuvent apparaître immédiatement avant la valeur et après, mais -là, ils sont ignorés ; par convention, il y a une espace après les deux-points. -Voici un exemple de champ : -<example compact="compact"> -Package: libc6 - </example> -Le nom du champ est <tt>Package</tt> et la valeur est <tt>libc6</tt>. -</p> -<p> -Un grand nombre de valeurs de champ peuvent déborder sur plusieurs lignes ; dans ce cas -chaque nouvelle ligne doit commencer par une espace ou une tabulation. -Toutes les espaces ou tabulations restantes en fin de ligne sont ignorées. - </p> -<p> -Dans les champs où il est spécifié que les lignes ne peuvent pas déborder, -une seule ligne de données est -autorisée et les espaces ne sont pas significatives dans le corps du -champ. Les espaces ne doivent jamais apparaître dans les noms (de -paquets, d'architectures, de fichiers, etc), dans les numéros de version -ou entre les éléments de relations de version à plusieurs caractères. - </p> -<p> -Les noms de champs sont indépendants de la casse ; en général, ceux-ci -sont écrits en commençant par une majuscule puis en mélangeant majuscules et -minuscules comme dans les exemples plus bas. -</p> -<p> -Les lignes vides ou les lignes contenant seulement des espaces ou des -tabulations ne sont pas autorisées à l'intérieur des valeurs de champ ou -entre les champs - ce qui signifierait un nouveau paragraphe. - </p> - </sect> - - <sect id="sourcecontrolfiles"> -<heading>Le fichier de contrôle d'un paquet source : <file>debian/control</file></heading> - -<p> -Le fichier <file>debian/control</file> contient les informations les plus -importantes sur le paquet source et sur les paquets binaires qui sont créés. -Elles sont indépendantes des versions. - </p> -<p> -Le premier paragraphe contient en général les informations sur le paquet -source ; chaque ensemble suivant décrit -un paquet binaire que l'arbre source construit. - </p> -<p> -Les champs du paragraphe général (le premier, concernant le paquet source) -sont : - <list compact="compact"> - <item><qref id="f-Source"><tt>Source</tt></qref> (obligatoire)</item> - <item><qref id="f-Maintainer"><tt>Maintainer</tt></qref> (obligatoire)</item> - <item><qref id="f-Uploaders"><tt>Uploaders</tt></qref></item> - - <item><qref id="f-Section"><tt>Section</tt></qref> (recommandé)</item> - <item><qref id="f-Priority"><tt>Priority</tt></qref> (recommandé)</item> - <item><qref id="sourcebinarydeps"><tt>Build-Depends</tt> et autres</qref></item> - <item><qref id="f-Standards-Version"><tt>Standards-Version</tt></qref> (recommandé)</item> - </list> - - </p> -<p> -Les champs des paragraphes pour les paquets binaires sont : - <list compact="compact"> - <item><qref id="f-Package"><tt>Package</tt></qref> (obligatoire)</item> - <item><qref id="f-Architecture"><tt>Architecture</tt></qref> (obligatoire)</item> - <item><qref id="f-Section"><tt>Section</tt></qref> (recommandé)</item> - <item><qref id="f-Priority"><tt>Priority</tt></qref> (recommandé)</item> - <item><qref id="f-Essential"><tt>Essential</tt></qref></item> - <item><qref id="binarydeps"><tt>Depends</tt> et autres</qref></item> - <item><qref id="f-Description"><tt>Description</tt></qref> (obligatoire)</item> - </list> - </p> -<p> -La syntaxe et la sémantique des champs sont décrites ci-dessous. - </p> -<!-- stuff --> -<p> -Ces champs sont utilisés par <prgn>dpkg-gencontrol</prgn> pour créer -les fichiers de contrôle pour les paquets binaires (voir ci-dessus), -par <prgn>dpkg-genchanges</prgn> pour créer le fichier <tt>.changes</tt> -qui accompagne l'installation sur le serveur et par <prgn>dpkg-source</prgn> -quand il crée le fichier de contrôle source <tt>.dsc</tt> comme une partie -de l'archive source. Il est permis pour un grand nombre de champs de s'étendre -sur plusieurs lignes dans <file>debian/control</file>, mais pas dans tout autre -fichier de contrôle. Ces outils sont responsables pour supprimer les sauts de -ligne de tels champs quand des champs de <file>debian/control</file> sont -utilisés pour générer d'autres fichiers de contrôle. - </p> -<p> -Les champs peuvent contenir des références à des variables, leurs valeurs -seront substituées par <prgn>dpkg-gencontrol</prgn>, -<prgn>dpkg-genchanges</prgn> ou <prgn>dpkg-source</prgn> quand ils créeront -les fichiers de sortie. Voir <ref id="substvars"> pour des précisions. - </p> - </sect> - - <sect id="binarycontrolfiles"> -<heading>Les fichiers de contrôles des paquets binaires : <file>DEBIAN/control</file></heading> - -<p> -Le fichier <file>DEBIAN/control</file> contient les informations les plus -importantes sur le paquet binaire. -Elles sont indépendantes des versions. - </p> - <p> - Les champs de ce fichier sont : - - <list compact="compact"> - <item><qref id="f-Package"><tt>Package</tt></qref> (obligatoire)</item> - <item><qref id="f-Source"><tt>Source</tt></qref></item> - <item><qref id="f-Version"><tt>Version</tt></qref> (obligatoire)</item> - <item><qref id="f-Section"><tt>Section</tt></qref> (recommandé)</item> - <item><qref id="f-Priority"><tt>Priority</tt></qref> (recommandé)</item> - <item><qref id="f-Architecture"><tt>Architecture</tt></qref> (obligatoire)</item> - <item><qref id="f-Essential"><tt>Essential</tt></qref></item> - <item><qref id="binarydeps"><tt>Depends</tt> et autres</qref></item> - <item><qref id="f-Installed-Size"><tt>Installed-Size</tt></qref></item> - <item><qref id="f-Maintainer"><tt>Maintainer</tt></qref> (obligatoire)</item> - <item><qref id="f-Description"><tt>Description</tt></qref> (obligatoire)</item> - </list> - </p> - </sect> - - <sect id="debiansourcecontrolfiles"> - <heading>Les fichiers de contrôle des sources Debian -- <tt>.dsc</tt></heading> -<p> -Ce fichier contient une série de champs, identifiés et séparés comme les -champs dans le fichier de contrôle d'un paquet binaire. Les champs sont -listés ci-dessous ; leur syntaxe est décrite ci-dessus dans -<ref id="pkg-controlfields">. - - <list compact="compact"> - <item><qref id="f-Format"><tt>Format</tt></qref> (obligatoire)</item> - <item><qref id="f-Source"><tt>Source</tt></qref> (obligatoire)</item> - <item><qref id="f-Version"><tt>Version</tt></qref> (obligatoire)</item> - <item><qref id="f-Maintainer"><tt>Maintainer</tt></qref> (obligatoire)</item> - <item><qref id="f-Uploaders"><tt>Uploaders</tt></qref></item> - <item><qref id="f-Binary"><tt>Binary</tt></qref></item> - <item><qref id="f-Architecture"><tt>Architecture</tt></qref></item> - <item><qref id="sourcebinarydeps"><tt>Build-Depends</tt> et autres</qref></item> - <item><qref id="f-Standards-Version"><tt>Standards-Version</tt></qref> (recommandé)</item> - <item><qref id="f-Files"><tt>Files</tt></qref> (obligatoire)</item> - </list> - -</p> -<p> -Le fichier de contrôle du paquet source est créé par <prgn>dpkg-source</prgn> -quand il crée l'archive source, à partir des autres fichiers -dans le paquet source, décrit ci-dessus. Quand on le déballe, il est -vérifié par rapport aux autres fichiers et répertoires dans les autres -parties du paquet source, comme décrit ci-dessous. - </p> - </sect> - - <sect id="debianchangesfiles"> - <heading>Les fichiers Debian changes : <file>.changes</file></heading> - <p> -Les fichiers <file>.changes</file> sont utilisés par les logiciels de gestion de l'archive -Debian pour gérer les mises à jour des paquets. -Ils contiennent un paragraphe d'informations provenant du fichier -<file>debian/control</file> ainsi que d'autres données concernant le paquet -source provenant des fichiers -<file>debian/changelog</file> et <file>debian/rules</file>. - </p> - - <p> - Les champs de ce fichier sont les suivants : - - <list compact="compact"> - <item><qref id="f-Format"><tt>Format</tt></qref> (obligatoire)</item> - <item><qref id="f-Date"><tt>Date</tt></qref> (obligatoire)</item> - <item><qref id="f-Source"><tt>Source</tt></qref> (obligatoire)</item> - <item><qref id="f-Binary"><tt>Binary</tt></qref> (obligatoire)</item> - <item><qref id="f-Architecture"><tt>Architecture</tt></qref> (obligatoire)</item> - <item><qref id="f-Version"><tt>Version</tt></qref> (obligatoire)</item> - <item><qref id="f-Distribution"><tt>Distribution</tt></qref> (obligatoire)</item> - <item><qref id="f-Urgency"><tt>Urgency</tt></qref> (recommandé)</item> - <item><qref id="f-Maintainer"><tt>Maintainer</tt></qref> (obligatoire)</item> - <item><qref id="f-Changed-By"><tt>Changed-By</tt></qref></item> - <item><qref id="f-Description"><tt>Description</tt></qref> (obligatoire)</item> - <item><qref id="f-Closes"><tt>Closes</tt></qref></item> - <item><qref id="f-Changes"><tt>Changes</tt></qref> (obligatoire)</item> - <item><qref id="f-Files"><tt>Files</tt></qref> (obligatoire)</item> - </list> - </p> - </sect> - -<sect id="controlfieldslist"> -<heading>La liste des champs</heading> - - <sect1 id="f-Source"> - <heading><tt>Source</tt></heading> -<p> -Ce champ identifie le nom du paquet source. - </p> -<p> -Dans un fichier principal de contrôle de source ou dans un -fichier <file>.changes</file> ou dans un fichier <file>.dsc</file>, ce champ -peut ne contenir que le nom du paquet source. -</p> -<p> -Dans un fichier de contrôle d'un paquet binaire (ou dans un fichier -<tt>Packages</tt>), il peut être suivi par un numéro de version entre -parenthèses<footnote><p>En général, on laisse une espace après le nom du -paquet si un numéro de version est spécifié.</p></footnote>. -Ce numéro de version peut être omis (et il l'est par <tt>dpkg-gencontrol</tt>) s'il a la même valeur que le champ <tt>Version</tt> du -paquet binaire en question. Le champ lui-même peut être omis d'un -fichier de contrôle d'un paquet binaire quand le paquet source possède -le même nom et la même version que le paquet binaire. - </p> - </sect1> - <sect1 id="f-Maintainer"> - <heading><tt>Maintainer</tt></heading> -<p> -Ce champ contient le nom du responsable et son adresse électronique. -Le nom vient d'abord, suivi par l'adresse électronique entre -les signes inférieur et supérieur <tt><></tt> (au format RFC 822). - </p> -<p> -Si le nom du responsable contient un point alors le champ entier ne -fonctionnera pas directement comme une adresse électronique à cause -d'un problème dans la syntaxe spécifiée dans la RFC 822 ; un programme -utilisant ce champ comme une adresse doit vérifier cela et corriger le -problème si nécessaire (par exemple en mettant entre parenthèses le nom -et en le déplaçant à la fin, et en amenant l'adresse électronique -devant). - </p> - </sect1> - <sect1 id="f-Uploaders"> - <heading><tt>Uploaders</tt></heading> - - <p> -Liste les noms et les adresses des co-responsables d'un paquet, s'il y en a. -Quand un paquet possède d'autres responsables que celui nommé dans -le <qref id="f-Maintainer">champ « Maintainer »</qref>, leurs noms et adresses -seront indiqués dans ce champ. Le format est le même que celui du champ -« Maintainer », plusieurs entrées seront séparées par des -virgules. Actuellement, ce champ est limité à une seule ligne de données. C'est -un champ facultatif. - </p> - <p> -Tout analyseur interprétant le champ Uploaders dans <file>debian/control</file> -devrait l'autoriser à s'étendre sur plusieurs lignes<footnote> -Dans le futur, il sera permis que le champ Uploaders de -<file>debian/control</file> (mais pas dans d'autres fichiers de contrôle) -s'étende sur plusieurs lignes et l'interprétation d'un champ Uploaders de -plusieurs lignes devrait être obligatoire.</footnote>. Les sauts de ligne dans -un champ Uploaders qui s'étendent sur plusieurs lignes ne sont pas significatifs -et les sémantiques du champ sont les mêmes que si les sauts de ligne étaient -absents. - </p> - </sect1> - - <sect1 id="f-Changed-By"> - <heading><tt>Changed-By</tt></heading> - <p> -Le nom et l'adresse électronique de celui qui a modifié ce paquet. -C'est habituellement le nom du responsable du paquet. Toutes les règles qui -s'appliquent au champ Maintainer s'appliquent aussi. - </p> - </sect1> - - <sect1 id="f-Section"> - <heading><tt>Section</tt></heading> - -<p> -Le champ <tt>Section</tt> représente un secteur d'applications dans laquelle -le paquet a été classé (voir <ref id="subsections">). - </p> -<p> -Quand ce champ apparaît dans le fichier <file>debian/control</file>, il -donne la valeur du sous-champ <tt>Section</tt> du champ <tt>Files</tt> -du fichier <file>.changes</file>, et il donne la valeur par -défaut de la section pour les paquets binaires. - </p> - </sect1> - - <sect1 id="f-Priority"> - <heading><tt>Priority</tt></heading> -<p> -Le champ <tt>Priority</tt> représente l'importance accordée à un paquet. -Voyez <ref id="priorities">. - </p> - -<p> -Quand ce champ apparaît dans le fichier <file>debian/control</file>, il -donne la valeur du sous-champ <tt>Priority</tt> du champ <tt>Files</tt> -du fichier <file>.changes</file>, et il donne la valeur par -défaut de la priorité pour les paquets binaires. - </p> - </sect1> - -<sect1 id="f-Package"> -<heading><tt>Package</tt></heading> - -<p> -Le nom du paquet binaire. Les noms de paquet sont constitués de -lettres minuscules (<tt>a-z</tt>), de chiffres (<tt>0-9</tt>), et des -caractères plus (<tt>+</tt>), moins (<tt>-</tt>), ainsi que du point -(<tt>.</tt>). Il doit contenir au moins deux caractères et doit commencer -par un caractère alphanumérique. - </p> - </sect1> - - <sect1 id="f-Architecture"> - <heading><tt>Architecture</tt></heading> -<p> -Selon le contexte et le fichier de contrôle utilisé, le champ -<tt>Architecture</tt> peut comporter les valeurs suivantes : - <list> - <item>Un mot unique identifiant l'architecture d'une machine - Debian, voyez <ref id="arch-spec">. - <item><tt>all</tt>, qui indique un paquet indépendant d'une - architecture. - <item><tt>any</tt>, qui indique un paquet qui peut être - construit pour toutes les architectures. - <item><tt>source</tt>, qui indique un paquet source. - </list> - - </p> - -<p> -Dans le fichier principal <file>debian/control</file> du paquet source, ou dans -le fichier de contrôle des paquets sources <tt>.dsc</tt>, on peut indiquer -une liste des architectures (séparées par des espaces) ou bien les valeurs -spéciales, <tt>any</tt> et <tt>all</tt>. - </p> - <p> -Utiliser la valeur<tt>any</tt> indique que le paquet source ne dépend pas -d'une architecture particulière et qu'il se compile bien sur toute -architecture. Le paquet binaire résultant sera spécifique à -l'architecture qui a cours <footnote> - C'est la valeur la plus utilisée et celle qui est conseillée -pour les nouveaux paquets qui ne ne sont pas <tt>Architecture: all</tt>. - </footnote>. - </p> -<p> -Utiliser une liste d'architectures indique que le paquet source produira -un paquet dépendant de l'architecture et fonctionnera correctement sur toutes -les architectures listées <footnote> -C'est une valeur utilisée dans une minorité de cas, quand le programme n'est -pas portable. Et elle ne devrait pas être utilisée pour les nouveaux -paquets. </footnote>. - </p> - -<p> -Dans un fichier <file>.changes</file>, le champ <tt>Architecture</tt> liste la -ou les architectures des paquets qui sont installés sur le serveur. Ce sera -une liste ; si le source du paquet est aussi installé, l'entrée spéciale -<tt>source</tt> est aussi présente. - </p> -<p> -Voir <ref id="debianrules"> pour des informations sur la manière -d'obtenir l'architecture pour le processus de construction. - </p> - </sect1> - - <sect1 id="f-Essential"> - <heading><tt>Essential</tt></heading> -<p> -C'est un champ booléen qui ne peut apparaître que dans un fichier de -contrôle d'un paquet binaire ou dans un paragraphe concernant un -paquet dans un fichier principal de contrôle de source. - </p> -<p> -S'il est positionné à <tt>yes</tt>, le système de gestion des paquets -refusera d'enlever ce paquet (bien qu'il puisse être mis à niveau -ou remplacé). L'autre valeur possible est <tt>no</tt>, ce qui est la -même chose que de ne pas avoir de champ du tout. - </p> - </sect1> - - <sect1> - <heading>Les champs concernant la relation entre les paquets : - <tt>Depends</tt>, <tt>Pre-Depends</tt>, - <tt>Recommends</tt>, <tt>Suggests</tt>, <tt>Conflicts</tt>, - <tt>Provides</tt>, <tt>Replaces</tt>, <tt>Enhances</tt> - </heading> -<p> -Ces champs décrivent les relations du paquet avec les autres paquets. -Leurs syntaxe et sémantique sont décrites dans <ref id="relationships">. - </p> - </sect1> - - <sect1 id="f-Standards-Version"> - <heading><tt>Standards-Version</tt></heading> - - <p> -Ce champ donne la plus récente version des normes (la charte Debian et les -textes associés) à laquelle se conforme le paquet. -</p> -<p> -Le numéro de version est composé de quatre parties : un numéro de version -majeur et un mineur, un niveau de patch majeur et un mineur. Quand les normes -changent, exigeant des modifications dans tous les paquets, le numéro -majeur est changé. Les changements significatifs, exigeant des évolutions -dans de nombreux paquets, sont signalés par un changement du numéro mineur. -Le niveau majeur de patch sera modifié pour tout changement -limité de la signification des standards. Le niveau de -patch mineur sera changé pour toute amélioration légère (typographique, ou -autres...) qui ne modifie pas le sens de ce document, ou pour des changements -qui n'affectent pas le contenu des paquets. -</p> - <p> -Seuls les trois premiers chiffres de la version sont significatifs pour le -champ <em>Standards-Version</em>, et on peut choisir -de donner soit les trois chiffres, soit la formule complète - <footnote> - <p> -Par le passé, on devait donner la formule complète à quatre chiffres, -par exemple : « 2.3.0.0 ». Mais comme un changement de niveau de -patch n'introduit pas une nouvelle norme, on a trouvé préférable d'assouplir -la règle et de ne demander qu'une formule à trois chiffres, dans ce cas : -« 2.3.0 ». (On peut toujours utiliser la formule complète si l'on -veut.) - </p> - </footnote>. - </p> - - <sect1 id="f-Version"> -<heading><tt>Version</tt></heading> - - <p> -Ce champ donne le numéro de version d'un paquet. Son format est le -suivant : [<var>epoch</var><tt>:</tt>]<var>version_amont</var>[<tt>-</tt><var>révision_debian</var>] - </p> - <p> - Les trois composantes sont : -<taglist> - -<tag><var>epoch</var></tag> -<item> -<p> -C'est simplement un entier non signé (souvent petit). Il peut être -omis et dans ce cas il est égal à 0. S'il est omis, le champ -<var>version_originelle</var> ne peut pas contenir un « : ». -</p> -<p> -Il sert à permettre les erreurs dans les numéros des vieilles -versions d'un paquet, et aussi à abandonner les précédentes structures de -numérotation concernant les versions d'un paquet. -</p> - </item> - -<tag><var>version_amont</var></tag> -<item> -<p> -C'est la partie principale du champ. En général, on utilise le numéro de la -version amont (« upstream ») du paquet à partir duquel le -fichier <file>.deb</file> a été créé (s'il est utilisable). Le plus souvent, -ce champ est dans le même format que celui spécifié par le ou les auteurs -amont ; cependant, il peut devoir être reformaté pour s'adapter au format -et aux méthodes de comparaison du système de gestion des paquets. - </p> -<p> -Les méthodes de comparaison du système de gestion des paquets en ce qui -concerne la partie <var>version_amont</var> sont décrites ci-dessous. -Cette partie est obligatoire. - </p> -<p> -La partie <var>version_amont</var> ne peut contenir que des -caractères alphanumériques <footnote><p>Les caractères alphanumériques sont : -<tt>A-Za-z0-9</tt></p> - </footnote>et les caractères <tt>.</tt>, <tt>+</tt>, -<tt>-</tt> et <tt>:</tt> (point, plus, trait d'union et deux-points) ; elle -commencera par un chiffre. S'il n'y a pas de partie <var>révision_debian</var> -alors le trait d'union « - » n'est pas autorisé. S'il n'y a pas de -partie <var>epoch</var> alors les « : » ne sont pas autorisés. - </p> - </item> - -<tag> <var>révision_debian</var></tag> -<item> -<p> -Cette partie du champ indique le numéro de version du paquet Debian basé sur -la version originelle. Il ne peut contenir que des caractères alphanumériques -et les caractères <tt>+</tt> et <tt>.</tt> (plus et point) ; les -méthodes de comparaison sont les mêmes que pour la partie -<var>version_amont</var>. - </p> -<p> -Cette partie est facultative. Si elle manque, la partie -<var>version_amont</var> ne peut contenir de trait d'union. -On utilise cette partie quand un morceau de code a été écrit spécialement pour -obtenir un paquet Debian. Il n'y a qu'une seule <em>debianisation</em> de -ce paquet et aucune indication de révision n'est nécessaire. -</p> - -<p> -Par convention, la partie <var>révision_debian</var> est remis à 1 à chaque -fois que la partie <var>version_amont</var> est incrémentée. -</p> - -<p> -Le système de gestion des paquets sépare les parties -<var>version_amont</var> et <var>révision_debian</var> au dernier trait -d'union de la chaîne. Dans une comparaison, l'absence de la partie -<em>révision_debian</em> est détectée plus tôt que sa présence (néanmoins -la partie <var>révision_debian</var> est la partie la -moins significative du numéro de version). -</p> - </item> -</taglist> - </p> -<p> -Le système de gestion des paquets compare les parties -<var>version_amont</var> et <var>révision_debian</var> en utilisant le -même algorithme. - </p> - -<p> -Les chaînes sont comparées de gauche à droite. - </p> - -<p> -Pour chaque chaîne, une partie initiale composée uniquement de -lettres est déterminée. Ces deux parties (l'une peut être vide) sont comparées -lexicalement. Si une différence est trouvée, elle est retournée. La -comparaison lexicale est une comparaison qui utilise des valeurs ASCII -modifiées de manière à ce que toutes les lettres soient classées avant les -chiffres et les caractères de ponctuation. - </p> - -<p> -Ensuite, pour ce qui reste de cette chaîne, une partie initiale composée -uniquement de chiffres est déterminée. Les valeurs numériques de ces deux -parties sont comparées, la différence est retournée comme résultat de la -comparaison. Dans ce but, une chaîne vide (qui peut seulement -apparaître à la fin de l'une ou des deux chaînes que l'on compare) -compte pour zéro. - </p> - -<p> -Ces deux phases sont répétées (comparaison et suppression des caractères et -des chiffres se trouvant au début des chaînes) jusqu'à ce qu'une différence -soit trouvée ou que les deux chaînes soient terminées. - </p> - -<p> -Le but de la partie <var>epoch</var> est de permettre des erreurs dans la -numérotation de version et de s'arranger avec les situations où la -numérotation de version change. Il <em>ne sert pas</em> à corriger les -numéros de version contenant des chaînes de caractères que le système de -gestion des paquets ne peut pas interpréter (tel que <tt>ALPHA</tt> ou -<tt>pre-</tt>) ou une numérotation bâtarde (l'auteur de ce manuel a -entendu parler d'un paquet dont les versions allaient ainsi : -<tt>1.1.1.2</tt>, <tt>1.3</tt>, <tt>1</tt>, <tt>2.1</tt>, <tt>2.2</tt>, -<tt>2</tt> et ainsi de suite). - </p> - </sect1> - - <sect1 id="f-Description"> - <heading><tt>Description</tt></heading> -<p> -Le champ <tt>Description</tt> dans le fichier de contrôle d'un paquet -source ou binaire comprend deux -parties, le résumé ou courte description et la description étendue. Le -format de ce champ est le suivant : - </p> - <p><example> - Description: <résumé sur une seule ligne> - <description étendue sur plusieurs lignes> -</example> -</p> - -<p> -Les lignes de la description étendue peuvent suivre ces formats : - </p> - -<p> -<list> -<item> -Les lignes commençant par une espace font partie d'un paragraphe. Les lignes -successives seront mis en forme pour être affichées et l'espace sera supprimée. - </item> -<item> -Les lignes commençant par deux espaces ou plus seront affichées -<em>verbatim</em>. Si elles ne rentrent pas horizontalement, le programme -d'affichage les coupera sans faire attention aux mots coupés. S'il le peut, -le programme terminera les lignes sur la droite. Zéro, une ou deux espaces -peuvent être supprimées mais ce nombre sera le même pour toutes les lignes -(ainsi l'indentation sera correcte). - </item> -<item> -les lignes contenant un seul espace suivi par un seul point seront affichées -comme des lignes blanches. C'est le seul moyen d'obtenir une ligne blanche -<footnote> -Les lignes complètement vides ne seront pas affichées comme des lignes -blanches. Elles induisent plutôt que vous commencez un nouvel enregistrement -dans le fichier <em>control</em> et l'analyseur s'arrêtera en constatant une -erreur.</footnote>. - </item> -<item> -Les lignes contenant une espace, un point et d'autres caractères serviront -à de prochains développements. Ne les utilisez pas. - </item> - </list> - </p> - -<p> -N'utilisez pas le caractère de tabulation, son effet est imprévisible. - </p> - - <p> -Voyez <ref id="descriptions"> pour des informations supplémentaires. - </p> - - <p> -Dans un fichier <file>.changes</file>, le champ <tt>Description</tt> -contient les résumés des descriptions des paquets déposés sur le serveur. - </p> - - <p> -La partie du champ située avant le premier retour à la ligne est vide ; -chaque ligne comprend donc le nom du paquet binaire et sa ligne de -résumé. Chaque ligne commence par une espace. - </p> - - </sect1> - - <sect1 id="f-Distribution"> -<heading><tt>Distribution</tt></heading> - - <p> -Dans un fichier <file>.changes</file> ou affiché par l'analyse d'un changelog, -ce champ contient les noms (séparés par des espaces) des distributions dans -lesquelles cette version du paquet sera installée. Les noms de -distribution sont déterminés par les responsables de l'archive - <footnote><p> -Actuellement, les noms des distributions sont les suivants : - <taglist compact="compact"> - <tag><em>stable</em></tag> - <item> - <p> -C'est l'édition d'une version à jour de Debian GNU/Linux. -Une fois que la distribution est <em>stable</em>, seule la -correction d'erreurs majeures ou d'erreurs concernant la sécurité est -autorisée. Quand cette distribution est modifiée, son numéro d'édition est -incrémenté (par exemple : 1.2r1 devient 1.2r2 puis 1.2r3 etc.). - </p> - </item> -<tag><em>unstable</em></tag> - <item> - <p> -Cette valeur de distribution fait référence au côté -<em>développement</em> de l'arbre Debian des distributions. Les nouveaux -paquets, de nouvelles sources pour les paquets et la correction d'erreur -vont dans le répertoire <em>unstable</em>. C'est prendre des risques que -d'utiliser cette distribution. - </p> - </item> - - <tag><em>testing</em></tag> -<item> -<p> -Cette valeur de distribution fait référence au côté <em>test</em> de l'arbre -Debian des distributions. Les paquets qui la composent proviennent de la -distribution <em>unstable</em> où ils sont restés un court moment de manière -à s'assurer qu'ils n'ont pas de défauts graves. Les paquets de cette -distribution sont moins défectueux que ceux de la distribution -<em>unstable</em> mais comportent des risques. On ne peut pas installer des -paquets dans <em>testing</em>.</p> - </item> - - <tag><em>frozen</em></tag> - <item> - <p> -De temps en temps, la distribution <em>testing</em> entre dans un état -dit de « gel du code » qui anticipe la version <em>stable</em>. -Pendant cette période de test, seules les corrections d'erreurs existantes ou -nouvellement découvertes sont autorisées. Le détail précis de cette étape est -déterminé par le responsable de l'édition (« Release Manager »). - </p> - </item> - - <tag><em>experimental</em></tag> - <item> - <p> -Les paquets qui possèdent cette valeur de distribution sont considérés par -leur responsable comme représentant un grand risque. Souvent, ce sont des -paquets en phase bêta ou en cours de développement, provenant de sources -variées que les responsables veulent faire tester, mais ce ne sont pas des -paquets qui peuvent être inclus dans d'autres répertoires de l'arbre Debian -des distributions. À utiliser à ses risques et périls. - </p> - </item> - </taglist> - - </p> -<p> -On listera <em>toutes</em> les distributions dans lesquelles le paquet sera -installé. - </p> - </footnote>. - </p> - </sect1> - - <sect1 id="f-Date"> - <heading><tt>Date</tt></heading> -<p> -Ce champ donne la date de la construction de paquet ou de la dernière édition. - </p> - <p> -Sa valeur est tirée du fichier <file>debian/changelog</file> - voyez - <ref id="dpkgchangelog">. - </p> - </sect1> - - <sect1 id="f-Format"> - <heading><tt>Format</tt></heading> -<p> -Ce champ indique une révision de format pour le fichier. Le format décrit ici -est la version <strong>1.5</strong>. La syntaxe de la valeur du format est la -même que la numérotation de la version des paquets, sauf que epoch et la -révision Debian ne sont pas autorisés - voir <ref id="versions">. - </p> - </sect1> - - <sect1 id="f-Urgency"> - <heading><tt>Urgency</tt></heading> -<p> -Ce champ décrit l'importance de la mise à jour de cette version par rapport -aux autres versions. Il contient un simple mot-clé qui prend -habituellement une de ces valeurs <tt>low</tt>, <tt>medium</tt> ou -<tt>high</tt> (peu importe la casse) suivie par un commentaire optionnel -(séparé par une espace) qui est généralement entre parenthèses. -Par exemple : -<example> -Urgency: low (HIGH pour les utilisateurs de diversions) -</example> - </p> - - <p> -La valeur de ce champ est habituellement tirée du fichier -<file>debian/changelog</file> - voyez <ref id="dpkgchangelog">. - </p> - </sect1> - - - <sect1 id="f-Changes"> - <heading><tt>Changes</tt></heading> -<p> -Ce champ contient les données lisibles des changements, décrivant les -différences entre la dernière version et celle courante. - </p> -<p> -Il ne doit rien y avoir dans ce champ avant le première nouvelle ligne ; -toutes les lignes suivantes doivent être indentées d'au moins une -espace ; les lignes vides doivent être représentées par une ligne -contenant seulement une espace et un point. - </p> - <p> -La valeur de ce champ est habituellement tirée du fichier -<file>debian/changelog</file> – voyez <ref id="dpkgchangelog">. - </p> - -<p> -Chaque information de changement de version doit être précédée par une -ligne de titre donnant au moins la version, la ou les distributions -et l'urgence, d'une façon lisible. - </p> -<p> -Si les données de plusieurs versions sont retournées, l'entrée de la -plus récente version doit être retournée d'abord, et les entrées -doivent être séparées par une ligne vide (la ligne de titre peut aussi -être suivie par une ligne vide). - </p> - </sect1> - - <sect1 id="f-Binary"> - <heading><tt>Binary</tt></heading> -<p> -Ce champ est une liste de paquets binaires. - </p> -<p> -Quand il apparaît dans un fichier <tt>.dsc</tt>, il représente la liste -des paquets binaires qu'un paquet source peut produire. -Il ne produit pas nécessairement tous ces paquets binaires pour chaque -architecture. Le fichier de contrôle source ne contient pas les détails -sur les architectures qui sont les plus appropriées pour les paquets -binaires.</p> -<p> - -Quand il apparaît dans un fichier <tt>.changes</tt>, il liste les noms des -paquets binaires actuellement installés sur le serveur.</p> -<p> - -La syntaxe est une liste de paquets binaires séparée par des -virgules<footnote><p>Par convention, il y a une espace après chaque -virgule.</p></footnote>. -Actuellement, les paquets doivent être séparés en utilisant seulement -des espaces dans le fichier <tt>.changes</tt>. - </p> - </sect1> - - <sect1 id="f-Installed-Size"> - <heading><tt>Installed-Size</tt></heading> -<p> -Ce champ apparaît dans les fichiers de contrôle des paquets binaires, et -dans les fichiers <tt>Packages</tt>. Il donne la capacité totale du disque -nécessaire pour installer le paquet.</p> -<p> - -L'espace disque est représenté en Kilo-octets comme un nombre décimal -simple.</p> - </sect1> - - <sect1 id="f-Files"> - <heading><tt>Files</tt></heading> -<p> -Ce champ contient la liste des fichiers avec des informations sur chacun -d'eux. L'information exacte et la syntaxe exacte varient avec le -contexte. Dans tous les cas, la partie du contenu du champ sur la même -ligne que le nom du champ est vide. Le reste du champ est une ligne par -fichier, chaque ligne est indentée par une espace et contient un nombre -de sous-champs séparés par des espaces.</p> -<p> - -Dans le fichier <tt>.dsc</tt> (contrôle des sources Debian), chaque ligne -contient la somme de contrôle MD5, la taille et le nom du fichier tar et -(éventuellement) le fichier diff qui représente le reste du paquet -source<footnote><p>C'est la partie qui n'est pas <tt>.dsc</tt>.</p></footnote>. -Les formes exactes des noms de fichier sont décrites dans -<ref id="pkg-sourcearchives">. -</p> -<p> -Dans le fichier <tt>.changes</tt>, il contient une ligne par fichier -chargé. Chaque ligne contient la somme de contrôle, la taille, la -section et la priorité et le nom du fichier. La -<qref id="f-Section">section</qref> et la -<qref id="f-Priority">priorité</qref> sont les valeurs des champs -correspondants dans le fichier principal de contrôle des sources. Si aucune -section ou -priorité n'est spécifiée alors <tt>-</tt> doit être utilisé, bien que les -valeurs de section et de priorité doivent être spécifiées pour installer -correctement les nouveaux paquets. -</p> - <p> -La valeur spéciale <tt>byhand</tt> pour la section dans un fichier -<tt>.changes</tt> indique que le fichier en question n'est pas un fichier -ordinaire de paquet et doit être installé à la main par les responsables -de la distribution. Si la valeur de la section est <tt>byhand</tt> alors -la valeur de la priorité devrait être <tt>-</tt>. - </p> -<p> -Si une nouvelle révision Debian d'un paquet est chargée et qu'aucune -archive originale source n'est distribuée, le fichier <tt>.dsc</tt> doit -toujours contenir l'entrée du champ <tt>Fields</tt> pour l'archive -originale source <em>package-upstream-version</em><tt>.orig.tar.gz</tt> mais -le fichier <tt>.changes</tt> devrait l'omettre. Dans ce cas, l'archive -originale source sur le site de distribution doit être exactement, octet -par octet, l'archive originale source qui a été utilisée pour créer le -fichier <tt>.dsc</tt> et le fichier diff qui a été installé sur le serveur. - </p> - </sect1> - - <sect1 id="f-Closes"> - <heading><tt>Closes</tt></heading> - - <p> -Une liste de numéros de rapport de bogues séparés par des espaces qui sont -fermés par le téléchargement défini par le fichier <file>.changes </file>. - </p> - </sect1> - </sect> - - <sect> - <heading>Champs définis par l'utilisateur</heading> -<p> -Des champs utilisateurs supplémentaires peuvent être ajoutés au fichier -de contrôle du paquet source. Ces champs seront ignorés, ne seront pas -copiés dans les fichiers de contrôle des paquets sources ou binaires -(par exemple) ou dans les fichiers de contrôle de l'installation sur le -serveur. - </p> -<p> -Quand on souhaite ajouter des champs supplémentaires non reconnus par -ces fichiers de sortie, on utilisera le mécanisme décrit ci-dessous. - </p> -<p> -Les champs du fichier principal de contrôle de source -avec des noms commençant par X, suivis par une ou plusieurs lettres -<tt>BCS</tt> et un trait d'union -, seront copiés vers les fichiers de sortie. -Seule la partie du nom du champ qui se trouve après le trait d'union sera -utilisée dans le fichier de sortie. -Si la lettre <tt>B</tt> est utilisée, le champ apparaîtra dans les fichiers -de contrôle des paquets binaires, si c'est la lettre <tt>S</tt>, dans les -fichiers de contrôle de paquet source, et si c'est la lettre <tt>C</tt>, dans -les fichiers de contrôle de l'installation sur le serveur (<tt>.changes</tt>). - </p> -<p> -Par exemple, le fichier principal de contrôle de source -contient le champ suivant : - -<example> - XBS-Comment: I stand between the candle and the star. -</example> - -alors les fichiers de contrôle des paquets sources et binaires contiendront -le champ : -<example> -Comment: I stand between the candle and the star. - </example> - </p> - </sect> - </chapt> - -<chapt id="maintainerscripts"> -<heading>Les scripts du responsable de paquet - et la procédure d'installation</heading> - -<sect> -<heading>Introduction aux scripts du responsable de paquet</heading> - -<p> -Il est possible de fournir des scripts qui seront exécutés -par le système de gestion des paquets lors d'une installation, d'une mise à -jour ou d'une suppression du paquet. - </p> - -<p> -Ces scripts sont les fichiers <prgn>preinst</prgn>, <prgn>postinst</prgn>, -<prgn>prerm</prgn> et <prgn>postrm</prgn> contenus dans le répertoire de -contrôle du paquet. Ils doivent être des fichiers exécutables corrects ; -quand ce sont des scripts (ce qui est recommandé), ils doivent commencer par -la convention habituelle : <tt>#!</tt>. Ils seront lisibles et exécutables -par tout le monde mais ils ne doivent pas être modifiables par tout le monde. - </p> - -<p> -Le système de gestion de paquets teste le code de sortie de ces scripts. Il -est important que ce code soit différent de zéro quand il y a une erreur ; -le système de gestion de paquets peut alors s'interrompre. Pour les -scripts shell, cela signifie que l'on doit <em>presque toujours</em> -utiliser <tt>set -e</tt> (et c'est généralement vrai pour tout script shell). -Bien sûr, il est aussi important que ce code ne soit pas différent de zéro -quand tout s'est bien passé. - </p> - -<p> -De plus, les paquets interagissant avec les utilisateurs utilisant -<tt>debconf</tt> dans le script <prgn>postinst</prgn> doivent installer un -script <prgn>config</prgn> dans la zone de contrôle, voir <ref -id="maintscriptprompt"> pour plus de détails. - </p> - -<p> -Quand un paquet est mis à jour, une combinaison des scripts de l'ancien et -du nouveau paquet est appelée durant la procédure de mise à jour. Il faut -faire attention quand les scripts se compliquent et il faut vérifier leurs -arguments. - </p> - -<p> -D'une manière générale, le script <prgn>preinst</prgn> est appelé avant -d'installer (une version particulière d') un paquet, et le script -<prgn>postinst</prgn> après ; le script <prgn>prerm</prgn> avant -d'effacer (une version d') un paquet et <prgn>postrm</prgn> après. - </p> - -<p> -Normalement on ne doit pas préfixer le chemin des programmes appelés par les -scripts. Avant le début de l'installation, le système de -gestion de paquet vérifie que les programmes <prgn>ldconfig</prgn>, -<prgn>start-stop-daemon</prgn>, <prgn>install-info</prgn> et -<prgn>update-rc.d</prgn> peuvent être trouvés via la -variable d'environnement <tt>PATH</tt>. Ces programmes, et n'importe quel -autre programme qu'on s'attend à trouver dans le <tt>PATH</tt>, seront -donc appelés sans nom de chemin absolu. -Les scripts du responsable ne doivent pas non plus réinitialiser la variable -<tt>PATH</tt>, bien qu'ils puissent choisir de la modifier en ajoutant -au début ou à la fin un répertoire spécifique à un paquet. -Ces considérations s'appliquent vraiment à tous les scripts shell. - </p> - </sect> - -<sect id="idempotency"> - <heading>L'idempotence des scripts du responsable</heading> -<p> -Il est nécessaire pour les procédures de gestion des erreurs que les -scripts soient idempotents. Cela signifie qu'un script, appelé à nouveau -après une exécution réussie, n'explose pas et ne fait pas de dégâts ; il -s'assure simplement que chaque chose est à sa place. Si le premier appel -échoue, ou s'arrête au milieu du chemin pour une raison ou une autre, le -second appel fera, s'il y en a, les choses qui n'ont pas été faites la -première fois et se terminera normalement si tout est correct <footnote><p> -Qu'une erreur arrive -- l'utilisateur interrompt <prgn>dpkg</prgn> ou bien -quelque chose d'imprévu se passe -- il ne faut pas laisser un paquet -défectueux à l'utilisateur quand <prgn>dpkg</prgn> essaye de refaire l'action. - </p> - </footnote>. - </p> - </sect> -<sect id="controllingterminal"> - <heading>Les terminaux de contrôle et les scripts du responsable</heading> - -<p> -Les scripts du responsable sont assurés de s'exécuter avec un terminal de -contrôle et de pouvoir interagir avec l'utilisateur. Comme -ces scripts peuvent rediriger leur sortie standard dans un tube à des fins -d'enregistrement, les scripts Perl utiliseront un mode de sortie sans tampon -mémoire en déclarant <tt>$|=1</tt> de manière à ce que la sortie soit affichée -immédiatement plutôt que d'être mise dans un tampon mémoire. - </p> - </sect> - <sect id="exitstatus"> - <heading>Code de sortie</heading> -<p> -Chaque script retournera un code de sortie égal à zéro en cas de succès et -un code différent de zéro en cas d'échec. - -Chaque script doit retourner un code de sortie égal à zéro en cas de succès et -un code différent de zéro en cas d'échec car le système de gestion des paquets -récupère le code de sortie de ces scripts et détermine l'action suivante en -fonction de cette valeur. - </p> - </sect> - -<sect id="mscriptsinstact"> -<heading>Résumé des façons d'appeler les scripts du -responsable</heading> -<p> - -<list compact="compact"> -<item> -<p><var>preinst-du-nouveau-paquet</var> <tt>install</tt></p> - </item> -<item> -<p><var>preinst-du-nouveau-paquet</var> <tt>install</tt> <var>vieille-version</var> - </p> - </item> -<item> -<p><var>preinst-du-nouveau-paquet</var> <tt>upgrade</tt> <var>vieille-version</var></p> - </item> -<item><p><var>preinst-de-l'ancien-paquet</var> <tt>abort-upgrade</tt> -<var>nouvelle-version</var></p> - </item> -</list> - </p> -<p> -<list compact="compact"> -<item> -<p><var>postinst</var> <tt>configure</tt> <var>version-la-plus-récemment-configurée</var></p> - </item> -<item><p><var>postinst-de-l'ancien-paquet</var> <tt>abort-upgrade</tt> -<var>nouvelle-version</var></p> - </item> -<item><p> <var>postinst-du-paquet-conflictuel</var> <tt>abort-remove</tt> <tt>in-favour</tt> -<var>paquet</var> <var>nouvelle-version</var></p> - </item> - <item> -<p><var>postinst</var> <tt>abort-remove</tt></p> - </item> -<item><p> <var>postinst-du-paquet-déconfiguré</var> <tt>abort-deconfigure</tt> <tt>in-favour</tt> -<var>paquet-dont-installation-a-échoué</var> <var>version</var> <tt>removing</tt> -<var>paquet-conflictuel</var> <var>version</var></p> - </item> - </list> - </p> -<p> -<list compact="compact"> -<item> -<p><var>prerm</var> <tt>remove</tt></p> - </item> -<item> -<p> <var>prerm-de-l'ancien-paquet</var> <tt>upgrade</tt> <var>nouvelle-version</var></p> - </item> -<item> -<p><var>prerm-du-nouveau-paquet</var> <tt>failed-upgrade</tt> <var>vieille-version</var> -</p> - </item> -<item> -<p><var>prerm-du-paquet-conflictuel</var> <tt>remove</tt> <tt>in-favour</tt> -<var>paquet</var> <var>nouvelle-version</var></p> - </item> -<item> -<p><var>prerm-du-paquet-déconfiguré</var> <tt>deconfigure</tt> <tt>in-favour</tt> -<var>paquet-installé</var> <var>version</var> <tt>removing</tt> -<var>paquet-conflictuel</var> <var>version</var></p> - </item> -</list> - </p> -<p> -<list compact="compact"> -<item> -<p><var>postrm</var> <tt>remove</tt></p> - </item> -<item> -<p><var>postrm</var> <tt>purge</tt></p> - </item> - -<item> -<p><var>postrm-de-l'ancien-paquet</var> <tt>upgrade</tt> <var>nouvelle-version</var></p> - </item> -<item> -<p><var>postrm-du-nouveau-paquet</var> <tt>failed-upgrade</tt> <var>vieille-version</var> - </p> - </item> -<item> -<p> <var>postrm-du-nouveau-paquet</var> <tt>abort-install</tt></p> - </item> -<item> -<p><var>postrm-du-nouveau-paquet</var> <tt>abort-install</tt> <var>vieille-version</var> - </p> - </item> -<item> -<p><var>postrm-du-nouveau-paquet</var> <tt>abort-upgrade</tt> <var>vieille-version</var> - </p> - </item> -<item> -<p><var>postrm-du-paquet-disparu</var> <tt>disappear</tt> <var>remplaçant</var> -<var>version-du-remplaçant</var></p> - </item> -</list> - </p> - </sect> - -<sect id="unpackphase"> -<heading>Précisions sur la phase de dépaquetage lors -d'une installation ou d'une mise à jour</heading> - -<p> -La procédure lors d'une installation, d'une mise à jour, d'un remplacement ou -d'une disparition (c'est-à-dire quand on exécute <tt>dpkg --unpack</tt>, -ou bien l'étape <em>unpack</em> de <tt>dpkg --install</tt>) est la suivante. -Dans chaque cas, si une erreur majeure se produit (à moins d'être listée -ci-dessous), les actions sont généralement « rembobinées » -- ce -qui signifie que les scripts du responsable sont -exécutés dans l'ordre inverse avec des arguments différents. Ce sont les -appels « correction d'erreur » listés ci-dessous. - -<enumlist> -<item> -<p> - <enumlist> - <item> -<p> -Si une version du paquet est déjà installée, appel de - <example compact="compact"> -<var>prerm-de-l'ancien-paquet</var> upgrade <var>nouvelle-version</var> - </example> - </p> - </item> - <item><p>Quand le script se termine avec un code de sortie -différent de zéro, <prgn>dpkg</prgn> essaye : - <example compact="compact"> -<var>prerm-du-nouveau-paquet</var> failed-upgrade <var>vieille-version</var> - </example> - Si cela réussit, la mise à jour continue. Sinon, correction - d'erreur : - <example compact="compact"> -<var>postinst-de l'ancien-paquet</var> abort-upgrade <var>nouvelle-version</var> - </example> - Si cela réussit, alors l'ancienne version est dans l'état - « Installed ». Sinon, l'ancienne version est dans l'état - « Failed-Config ». -</p> - </item> - </enumlist> -</p> - </item> - -<item> -<p> -Si un paquet conflictuel est enlevé en même temps : - <enumlist> - - <item> -<p> -Quand un paquet dépend de ce paquet conflictuel et si l'option - <tt>--auto-deconfigure</tt> est spécifiée, appel pour chaque paquet : - <example compact="compact"> -<var>prerm-du-paquet-déconfiguré</var> deconfigure in-favour -<var>paquet-à-installer</var> <var>version</var> -removing <var>paquet-conflictuel</var> <var>version</var> - </example> - - Correction d'erreurs : - <example compact="compact"> -<var>postinst-du-paquet-déconfiguré</var> abort-deconfigure in-favour -<var>paquet-dont-l'installation-a-échoué</var> <var>version</var> -removing <var>paquet-conflictuel</var> <var>version</var> - </example> - Les paquets déconfigurés sont indiqués comme nécessitant une -configuration, afin que, si l'option <tt>--install</tt> est utilisée, ils -soient, si possible, de nouveau configurés. - </p> - - </item> -<item> -<p> -Pour préparer l'effacement du paquet conflictuel, appel de : - <example compact="compact"> -<var>prerm-du-paquet-conflictuel</var> remove in-favour - <var>paquet</var> <var>nouvelle-version</var> - </example> - Correction d'erreurs : - <example compact="compact"> -<var>postinst-du-paquet-conflictuel</var> abort-remove in-favour - <var>paquet</var> <var>nouvelle-version</var> - </example> - </p> - </item> - </enumlist> - </p> - </item> - -<item> - <p> -<enumlist> - <item> -<p> -Si le paquet est mis à jour, appel de : - <example compact="compact"> -<var>preinst-du-nouveau-paquet</var> upgrade <var>vieille-version</var> - </example> - Si cela échoue, on appelle : - <example> -<var>postrm-du-nouveau-paquet</var> abort-upgrade <var>vieille-version</var> - </example> - <enumlist> - <item> - <p> - Si cela fonctionne, alors - <example> -<var>postinst-de-l'ancien-paquet</var> abort-upgrade <var>nouvelle-version</var> - </example> - est appelé. Si cela fonctionne, alors l'ancienne - version est dans un état « Installed », - sinon elle est laissée dans un état - « Unpacked ». - </p> - </item> - <item> - <p> - Si cela échoue, alors l'ancienne version est laissée - dans un état « Half-Installed ». - </p> - </item> - </enumlist> - - </item> -<item><p> -Autrement, si le paquet a des fichiers de configuration d'une - version précédemment installée (c'est-à-dire, s'il ne reste - plus du paquet que les fichiers de configuration) : - <example compact="compact"> -<var>preinst-du-nouveau-paquet</var> install <var>vieille-version</var> - </example> - Correction d'erreur : - <example> -<var>postrm-du-nouveau-paquet</var> abort-install <var>vieille-version</var> - </example> - Si cela échoue, le paquet est laissé dans un état - « Half-Installed » qui impose une - réinstallation. Si cela réussit, le paquet est laissé dans - un état « Config Files ». - </p> - </item> -<item> -<p> -Autrement (c'est-à-dire, le paquet a été complètement -effacé) : - <example compact="compact"> -<var>preinst-du-nouveau-paquet</var> install - </example> - - Correction d'erreurs - <example compact="compact"> -<var>postrm-du-nouveau-paquet</var> abort-install - </example> - Si la correction d'erreur échoue, le paquet est dans un - état « Half Installed » et nécessite une - réinstallation. Si elle réussit, le paquet n'est plus installé. - </p> - </item> - </enumlist> - </p> - </item> -<item><p> -Les fichiers du nouveau paquet sont dépaquetés, remplaçant ceux qui -peuvent déjà être sur le système, par exemple, les fichiers appartenant à la -vieille version du même paquet ou ceux d'un autre paquet. Les sauvegardes des -vieux fichiers sont laissées, et si quelque chose se passe mal, le système de -gestion des paquets, dans sa partie « correction d'erreurs » -essayera de les remettre en place. - </p> -<p> -C'est une erreur pour un paquet de contenir des fichiers qui sont sur le -système dans un autre paquet, à moins que <tt>Replaces</tt> ne soit utilisé -(voir <ref id="replaces">). </p> -<!-- The following paragraph is not currently the case: -Pour l'instant l'option <tt>force-overwrite</tt> --> -<!--est disponible, la dégradant en un avertissement, mais cela ne sera -peut-être pas toujours le cas.--> -<p> -C'est une erreur plus grave pour un paquet de contenir un simple -fichier ou autre chose qu'un répertoire quand un autre paquet veut un -répertoire (à moins que <tt>Replaces</tt> ne soit utilisé). -Cette erreur peut être évitée si c'est l'effet recherché, en utilisant -<tt>--force-overwrite-dir</tt>, mais ce n'est pas à conseiller. - </p> -<p> -Les paquets qui remplacent mutuellement leurs fichiers ont une démarche qui, -bien que déterministe, est difficile à comprendre pour -un administrateur système. Cela peut aisément conduire à des programmes -annoncés comme « absent » quand, par exemple, un paquet remplaçant -tel fichier d'un autre paquet est installé puis effacé <footnote><p>Une -partie du problème vient certainement d'une erreur de <prgn>dpkg</prgn>. -</p></footnote>. - </p> -<p> -Un répertoire ne sera jamais remplacé par un lien symbolique vers un -répertoire et vice versa ; à la place, l'état existant (lien symbolique -ou non) est conservé et <prgn>dpkg</prgn> suivra les liens s'il y en a. - </p> - </item> - -<item> -<p> <enumlist> - <item><p> -Si le paquet est mis à jour, appel de : - <example compact="compact"> -<var>postrm-de l'ancien-paquet</var> upgrade <var>nouvelle-version</var> - </example></p> - </item> - - <item> -<p>Si cela échoue, <prgn>dpkg</prgn> essaye : - <example compact="compact"> -<var>postrm-du-nouveau-paquet</var> failed-upgrade <var>vieille-version</var> - </example> - Si cela réussit, l'installation continue. Sinon, correction - d'erreur : - <example compact="compact"> -<var>preinst-de-l'ancien-paquet</var> abort-upgrade <var>nouvelle-version</var> - </example> - Si cela échoue, l'ancienne version est laissée dans un état « Half - Installed ». Si cela réussit, dpkg appelle maintenant : - <example compact="compact"> -<var>postrm-du-nouveau-paquet</var> abort-upgrade <var>vieille-version</var> - </example> - Si cela échoue, l'ancienne version est laissée dans un état « Half - Installed ». Si cela échoue, dpkg appelle maintenant : - <example compact="compact"> -<var>postinst-de-l'ancien-paquet</var> abort-upgrade <var>nouvelle-version</var> - </example> - Si cela échoue, l'ancienne version est dans un état - « Unpacked ». - </p> - </item> - </enumlist> - </p> - </item> -<item><p> - C'est le point de non-retour. Quand <prgn>dpkg</prgn> atteint ce -point, il ne revient pas en arrière si une erreur se produit. Le paquet -reste dans un très mauvais état et demande une réinstallation réussie -pour remettre tout en place ; cela arrive quand <prgn>dpkg</prgn> -commence à faire des choses irréversibles. - </p> - </item> - -<item><p> -Tous les fichiers de la version précédente du paquet qui ne sont pas dans la -nouvelle sont effacés. - </p> - </item> -<item><p> -La nouvelle liste de fichiers remplace la précédente. - </p> - </item> - -<item><p> -Les nouveaux scripts du responsable remplacent les anciens. - </p> - </item> - -<item><p> -Les paquets dont tous les fichiers ont été remplacés pendant -l'installation, et qui ne sont pas nécessaires pour les dépendances, -sont considérés comme effacés. Pour ces paquets : - <enumlist> - <item> -<p> -<prgn>dpkg</prgn> appelle : - <example compact="compact"> -<var>postrm-du-paquet-effacé</var> disappear -<var>remplaçant</var> <var>version-du-remplaçant</var> - </example> - </p> - </item> - - <item> -<p>Les scripts du responsable de paquet sont effacés. - </p> - </item> - - <item><p> -Le paquet est inscrit dans la base de données « status » -comme étant dans un état correct, à savoir non installé (ses -<em>conffiles</em> sont ignorés et non pas supprimés par <prgn>dpkg</prgn>). -Il faut remarquer que <prgn>dpkg</prgn> n'appelle pas le script prerm du paquet -effacé, car il ne sait pas à l'avance que le paquet va disparaître. - </p> - </item> - </enumlist> - </p> - </item> -<item> -<p> -Les fichiers du paquet à installer qui sont aussi répertoriés par d'autres -paquets sont enlevés des listes de ces paquets, ce qui -lobotomisera la liste de fichiers du paquet « conflictuel », s'il y -en a un. - </p> - </item> - -<item> -<p> -Les fichiers de sauvegarde faits pendant la phase précédente d'installation -sont effacés. - </p> - </item> - -<item><p> -Le statut du nouveau paquet est correct et enregistré comme -« dépaqueté ».</p> -<p> -C'est un autre point de non-retour - si l'effacement d'un -paquet conflictuel échoue, on ne « rembobine » pas le reste de -l'installation ; le paquet conflictuel est laissé dans un état -« enlevé à moitié ». - </p> - </item> - -<item><p> -Au cas où existe un paquet conflictuel, on procède aux actions -d'effacement (décrites ci-dessus), en commençant par l'effacement des -fichiers du paquet conflictuel (les fichiers qui sont aussi dans le -paquet installé ont déjà été effacés de la liste des fichiers du paquet -conflictuel et ne sont pas enlevés maintenant). - </p> - </item> - </enumlist> - </p> - </sect> - -<sect id="configdetails"> -<heading>Précisions sur la configuration</heading> - -<p> -Quand on configure un paquet (avec <tt>dpkg --install</tt>, ou avec -<tt>--configure</tt>), on met à jour d'abord les <tt>conffiles</tt> et -ensuite on appelle : -<example compact="compact"> -<var>postinst</var> configure <var>version-la-plus-récemment-configurée</var> -</example> - </p> -<p> -On n'essaye pas de « rembobiner » après une erreur pendant la -configuration. Si la configuration échoue, le paquet est dans un état -« Failed Config » et un message d'erreur est généré. - </p> -<p> -S'il n'existe pas de « version-la-plus-récemment-configurée », -<prgn>dpkg</prgn> passe un argument nul <footnote> - <p> -Note historique : les versions vraiment anciennes (pre-1997) de -<prgn>dpkg</prgn> passaient dans ce cas <tt><unknown></tt> (avec les -signes supérieur et inférieur). Et les plus vieilles versions ne passaient -pas de second argument du tout, quelles que soient les circonstances. -Notez qu'une mise à jour utilisant de telles versions de dpkg ne fonctionnera -vraisemblablement pas, pour d'autres raisons, et même si votre script -postinst gère ce cas. - </p> - </footnote>. - </p> - </sect> - -<sect id="removedetails"> -<heading>Précisions sur la phase de suppression sans -ou avec suppression des fichiers de configuration</heading> - -<p> -<enumlist> - -<item> -<p> -<example compact="compact"> -<var>prerm</var> remove - </example> - </p> - <p> - Si le script prerm échoue pendant le remplacement à cause d'un conflit - <example> -<var>postinst-du-paquet-en-conflit</var> abort-remove \ - in-favour <var>paquet</var> <var>nouvelle-version</var> - </example> - Ou sinon on appelle : - <example> -<var>postinst</var> abort-remove - </example> - </p> - <p> - Si cela échoue, le paquet est dans un état « Failed-Config » - ou sinon il reste « Installed ». - </p> - </item> -<item><p> -Les fichiers du paquet sont effacés (sauf les <tt>conffiles</tt>). - </p> - </item> - -<item> -<p> -<example compact="compact"> -<var>postrm</var> remove - </example> - <p> - Si cela échoue, il n'y a pas de correction d'erreur et le paquet - est dans un état « Half-Installed ». - </p> - </item> - -<item> -<p>Tous les scripts du responsable sont effacés sauf <prgn>postrm</prgn>. - </p> -<p> -Si on n'efface pas le paquet, la procédure s'arrête là. Il faut remarquer que -les paquets qui n'ont pas de <prgn>postrm</prgn> ni de <tt>conffiles</tt> sont -automatiquement purgés pendant l'effacement, puisqu'il n'y pas de différence, -sauf pour le fichier status de <prgn>dpkg</prgn>. - </p> - </item> - - -<item><p> -Les <tt>conffiles</tt> et les fichiers de sauvegarde (fichiers <tt>~</tt>, -fichiers <tt>#*#</tt>, fichiers <tt>%</tt>, <tt>.dpkg-{old, new, tmp}</tt>, -etc.) sont effacés. - </p> - </item> - -<item><p> -<example compact="compact"> -<var>postrm</var> purge - </example> - </p> - <p> - Si cela échoue, le paquet reste dans un état - « Config-Files ». - </p> - </item> - -<item> -<p>La liste des fichiers du paquet est effacée. - </p> - </item> -</enumlist> -</p> - </sect> - </chapt> - -<chapt id="relationships"> -<heading>Comment déclarer des relations entre les paquets ?</heading> - -<sect id="depsyntax"> -<heading>La syntaxe des champs de relation</heading> - -<p> -Ces champs ont tous la même syntaxe. Ce sont des listes de -noms de paquets séparés par des virgules. - </p> - -<p> -Dans les champs <tt>Depends</tt>, <tt>Recommends</tt>, <tt>Suggests</tt>, -<tt>Pre-Depends</tt>, <tt>Build-Depends</tt> et <tt>Build-Depends-Indep</tt> -(les champs qui déclarent les dépendances d'un paquet envers d'autres -paquets), ces noms peuvent aussi être des listes de noms de paquets -alternatifs, séparés par des symboles barre verticale « | » -(symbole du tube de communication). Si c'est le cas, quand l'un des paquets -alternatifs est installé, on considère que cette partie de la dépendance -est satisfaite. - </p> - -<p> -Tous les champs sauf le champ <tt>Provides</tt> peuvent restreindre leur -application à des versions particulières de chaque paquet nommé. Ces versions -sont indiquées entre parenthèses après chaque nom de paquet ; les -parenthèses contiendront une des relations de la liste ci-dessous, -suivie par un numéro de version, dans le format décrit dans -<ref id="f-Version">. - </p> - -<p> -Les relations autorisées sont : <tt><<</tt>, <tt><=</tt>, -<tt>=</tt>, <tt>>=</tt> et <tt>>></tt> pour -strictement avant, avant ou égal, égal, après ou égal, strictement -après, respectivement. Les formes déconseillées <tt><</tt> et -<tt>></tt> ont été utilisées pour signifier avant/après ou égal, plutôt -que strictement avant/après, ainsi elles ne doivent pas apparaître dans les -nouveaux paquets (bien que <prgn>dpkg</prgn> les accepte encore). - </p> - -<p> -Les espaces peuvent apparaître n'importe où dans la spécification de -version sujette aux règles énoncées dans <ref id="controlsyntax">, et doivent -apparaître là où c'est nécessaire pour supprimer toute ambiguïté ; autrement -elles ne sont pas significatives. Pour la cohérence et dans le cas de futures -modifications de <prgn>dpkg</prgn>, il est recommandé de mettre une seule -espace après une relation de version et avant un numéro de version ; il est -aussi convenu de mettre une espace après chaque virgule, de chaque côté d'une -barre verticale, et avant chaque parenthèse ouvrante. - </p> - -<p> -Par exemple, une liste de dépendances peut apparaître ainsi : -<example compact="compact"> -Package: mutt -Version: 1.3.17-1 -Depends: libc6 (>= 2.2.1), exim | mail-transport-agent -</example> - </p> - -<p> -On peut limiter à un ensemble d'architectures tous les champs qui précisent -des relations pour la compilation -(<tt>Build-Depends</tt>, <tt>Build-Depends-Indep</tt>, <tt>Build-Conflicts</tt> -et <tt>Build-Conflicts-Indep</tt>). On se sert de crochets après chaque nom -de paquet et l'indication facultative de la version. Les crochets enferment -une liste d'architectures acceptées par Debian, séparées par une espace. Un -point d'exclamation peut être ajouté à chaque nom. On ne peut pas ajouter un -point d'exclamation à certains noms et pas à d'autres. Quand l'architecture de -la machine hôte n'est pas présente dans la liste et qu'il n'y a pas de -point d'exclamation, ou bien quand elle est dans la liste et qu'elle est -préfixée par un point d'exclamation, le paquet et l'indication de la version -associée sont complètement ignorés pour ce qui concerne la définition du -système de relation. - </p> -<p> -Par exemple : -<example compact="compact"> -Source: glibc -Build-Depends-Indep: texinfo -Build-Depends: kernel-headers-2.2.10 [!hurd-i386], - hurd-dev [hurd-i386], gnumach-dev [hurd-i386] - </example> - </p> -<p> -Il faut remarquer que les champs concernant les relations entre paquets -binaires tel que <tt>Depends</tt> apparaissent dans l'une des sections du -fichier de contrôle du paquet binaire, alors que les champs concernant -les relations pour la construction tel que <tt>Build-Depends</tt> apparaissent -dans la première section du fichier de contrôle du paquet source. - </p> - </sect> - -<sect id="binarydeps"> - <heading>Les dépendances pour les paquets binaires - <tt>Depends</tt>, - <tt>Recommends</tt>, <tt>Suggests</tt>, <tt>Enhances</tt>, - <tt>Pre-Depends</tt> - </heading> -<p> -Les paquets peuvent déclarer dans leur fichier de contrôle qu'ils ont -certaines relations avec d'autres paquets - par exemple, qu'ils ne -peuvent pas être installés en même temps que tel paquet, ou qu'ils dépendent -de la présence de tel autre. - </p> -<p> -On se sert pour cela des champs du fichier <em>control</em> suivants : -<tt>Depends</tt>, <tt>Pre-Depends</tt>, <tt>Recommends</tt>, -<tt>Suggests</tt>, <tt>Enhances</tt> et <tt>Conflicts</tt>. - </p> - -<p> -Ces six champs sont utilisés pour déclarer une relation de dépendance d'un -paquet envers un autre paquet. Ils apparaissent dans le fichier -<em>control</em> du paquet dépendant (binaire), sauf le champ -<tt>Enhances</tt> qui apparaît dans le fichier de contrôle du paquet -recommandé. - </p> - -<p> -Un champ <tt>Depends</tt> prend effet <em>seulement</em> lors de la -configuration du paquet. Il n'empêche pas qu'un paquet soit sur le système -dans un état « non configuré » et ses dépendances non -satisfaites ; -il est aussi possible de remplacer un paquet correctement installé et dont -les dépendances sont satisfaites par une version différente dont les -dépendances ne sont pas et ne peuvent pas être satisfaites ; quand c'est -le cas, le paquet dépendant est laissé « non configuré » (étant -donné -que les tentatives pour le configurer donnent des erreurs) et il ne -fonctionne pas correctement. On peut utiliser si nécessaire un champ -<tt>Pre-Depends</tt> qui a un effet limité même si le paquet est dans la -phase de dépaquetage, comme c'est expliqué plus bas. (Les trois autres -champs, <tt>Recommends</tt>, <tt>Suggests</tt> et <tt>Enhances</tt>, ne -sont utilisés que par les différentes interfaces de <prgn>dpkg</prgn>, -telle que <prgn>dselect</prgn>.) - </p> - -<p> -Pour cette raison, lors d'une installation, les paquets sont généralement -tous installés d'abord et tous configurés ensuite ; cela permet que les -dernières versions des paquets ayant des dépendances sur les dernières -versions d'autres paquets voient leurs dépendances satisfaites. - </p> - -<p> -Dans le cas de dépendances circulaires, comme l'ordre d'installation ou de -suppression pour honorer l'ordre des dépendances ne peut être établi, les -boucles de dépendances sont cassées à un certain point (basé sur les règles -ci-dessous) et certains paquets peuvent ne pas pouvoir être certain que leurs -dépendances soient présentes lors de l'installation ou de la suppression selon -de quel côté de la cassure de la boucle de dépendance circulaire ils sont -placés. Si l'un des paquets dans la boucle n'a pas de script postinst, alors le -cycle peut être cassé sur ce paquet pour garantir que tous les scripts postinst -sont exécutés avec leurs dépendances correctement configurés si cela est -possible. Sinon, le point de cassure est arbitraire. - </p> - - -<p> -Ainsi le champ <tt>Depends</tt> autorise les responsables de paquet à imposer -un ordre sur la manière de configurer les paquets. - </p> - - -<p> -Voici la signification des cinq champs de dépendance : -<taglist> -<tag><tt>Depends</tt></tag> -<item> -<p> -Ce champ déclare une dépendance absolue. Il n'est pas possible de configurer -un paquet tant que tous les paquets listés dans ce champ n'ont pas été -correctement configurés. - </p> -<p> -Le champ <tt>Depends</tt> sera utilisé quand le paquet dépendant a besoin, -pour fonctionner d'une manière intéressante, de tel paquet. - </p> -<p> -Le champ <tt>Depends</tt> sera aussi utilisé quand les scripts -<prgn>postinst</prgn>, <prgn>prerm</prgn> ou <prgn>postrm</prgn> demandent -que tel paquet soit présent pour qu'ils puissent fonctionner. Cependant, -il faut noter que le script <prgn>postrm</prgn> ne peut pas compter sur -la présence de paquets « non-essential » pendant la phase de <tt>purge</tt>. - </p> -</item> -<tag><tt>Recommends</tt></tag> -<item><p> -Ce champ déclare une dépendance forte, mais pas absolue. -Le champ <tt>Recommends</tt> listera les paquets qu'on trouve habituellement -avec ce paquet dans toute installation standard. - </p> - </item> - -<tag><tt>Suggests</tt></tag> -<item> -<p> -On se sert de ce champ pour déclarer qu'un paquet serait plus utile avec -un ou plusieurs autres paquets. On indique au système de gestion de -paquet et à l'utilisateur que les paquets listés sont liés au paquet et -qu'ils peuvent peut-être augmenter son utilité, mais qu'une installation -sans ces paquets est parfaitement concevable. - </p> - </item> - -<tag><tt>Enhances</tt></tag> -<item> -<p> -Ce champ ressemble au champ <tt>Suggests</tt> mais il marche en sens inverse. -On s'en sert pour déclarer qu'un paquet améliore l'efficacité de tel -autre paquet. - </p> - </item> -<tag><tt>Pre-Depends</tt></tag> -<item><p> -Ce champ ressemble au champ <tt>Depends</tt>, sauf qu'il force aussi -<prgn>dpkg</prgn> à terminer l'installation des paquets qu'il liste avant -même de démarrer l'installation du paquet qui déclare ces pré-dépendances. - </p> - -<p> -Quand un paquet déclarant une relation de pré-dépendance est sur le point -d'être <em>dépaqueté</em>, cette relation peut être satisfaite si le paquet -exigé par la pré-dépendance est, soit pleinement configuré, <em>soit même</em> -s'il est seulement dépaqueté ou « à demi configuré », pourvu qu'il ait été -déjà correctement configuré au moins une fois (et pas effacé ou partiellement -effacé depuis). Dans ce cas, les deux versions, -celle précédemment configurée et celle actuellement dépaquetée ou dans un état -« à moitié configuré », doivent satisfaire à toute clause de version -contenue dans le champ <tt>Pre-Depends</tt>. -</p> - -<p> -Quand le paquet déclarant une relation de <tt>Pre-Dépendance</tt> est -configuré, cette relation sera considérée comme une relation <tt>Depends</tt> -normale ; c'est-à-dire, elle sera considérée comme satisfaite seulement -si le paquet dépendant a bien été configuré. - </p> - -<p> -Le champ <tt>Pre-Depends</tt> sera utilisé parcimonieusement et de préférence -seulement pour les paquets dont une mise à jour ou une installation -prématurée entraverait la capacité du système à continuer les mises à jour -en cours. - </p> -<p> -Des relations <tt>Pre-Depends</tt> sont aussi exigées quand un script -<prgn>preinst</prgn> dépend d'un paquet cité. Il vaut mieux -éviter cette situation. - </p> -</item> - </taglist> - </p> - -<p> -Pour choisir un niveau de dépendance, on mesurera l'importance du paquet -demandé pour les fonctionnalités du paquet qui déclare la dépendance. Certains -paquets sont composés d'éléments plus ou moins importants. Un tel paquet -listera dans le champ <tt>Depends</tt> le ou les paquets qui sont nécessaires -aux éléments les plus importants. Les autres éléments peuvent -être mentionnés comme des Suggestions ou des Recommandations, selon -l'importance relative de ces éléments. - </p> - </sect> - -<sect id="conflicts"> -<heading>Mettre en conflit des paquets binaires -- - le champ <tt>Conflicts</tt> - </heading> -<p> -Quand un paquet déclare un conflit avec un autre, en utilisant le champ -<tt>Conflicts</tt>, <prgn>dpkg</prgn> refuse -de les installer en même temps sur le système. - </p> -<p> -Si l'on veut installer l'un de ces paquets, l'autre doit d'abord être supprimé -— si le paquet en cours d'installation est marqué comme remplaçant -(voir <ref id="replaces">) le paquet sur le système, ou si celui-ci est -marqué comme « désélectionné », ou bien si les deux paquets sont -marqués <tt>Essential</tt>, alors <prgn>dpkg</prgn> enlève automatiquement le -paquet qui crée le conflit, ou bien arrête l'installation du nouveau paquet -par une erreur. Ce mécanisme est spécifiquement conçu pour provoquer une -erreur quand le paquet installé est marqué <tt>Essential</tt> et que le -nouveau paquet ne l'est pas. - </p> - -<p> -Un paquet ne provoque pas de conflit simplement parce que ses fichiers de -configuration sont toujours installés ; il doit être au moins dans l'état -« à moitié installé ». - </p> - -<p> -Une exception spéciale est faite pour les paquets qui déclarent un conflit -avec leur propre nom de paquet, ou avec le paquet virtuel qu'ils -fournissent (voir ci-dessous) : cela n'empêche pas leur installation, -et cela autorise un paquet à déclarer un conflit avec les paquets qui -peuvent le remplacer. On utilise ce dispositif quand on veut -que le paquet en question soit le seul paquet à fournir une fonctionnalité -particulière. - </p> - -<p> -Une entrée <tt>Conflicts</tt> ne devrait presque jamais avoir une clause de -version indiquant une relation « avant ». Cela empêcherait <prgn>dpkg</prgn> -de mettre à jour ou d'installer le paquet qui déclare un tel conflit jusqu'à -ce que la mise à jour ou l'effacement du paquet en conflit ait été terminé. - </p> - </sect> - -<sect id="virtual"> -<heading>Les paquets virtuels -- le champ <tt>Provides</tt></heading> - -<p> -Aussi bien que des noms de paquets réels (concrets), les champs de -relation <tt>Depends</tt>, <tt>Recommends</tt>, <tt>Suggests</tt>, -<tt>Enhances</tt>, <tt>Pre-Depends</tt>, <tt>Conflicts</tt>, -<tt>Build-Depends</tt>, <tt>Build-Depends-Indep</tt>, <tt>Build-Conflicts</tt> -et <tt>Build-Conflicts-Indep</tt> -peuvent mentionner des noms de « paquets virtuels ». - </p> - -<p> -Un paquet « virtuel » est un paquet qui apparaît dans le champ -<tt>Provides</tt> du fichier « control » d'un autre paquet. L'effet -est le même que si le ou les paquets qui fournissent un paquet virtuel -particulier avaient été listés par leur nom partout où le nom du paquet virtuel -apparaît. Voir aussi <ref id="virtual_pkg">. - </p> - -<p> -Quand un paquet concret et un paquet virtuel ont le même nom, la dépendance -peut être satisfaite (ou le conflit provoqué) soit par le paquet concret du -même nom soit par tout autre paquet concret fournissant le paquet virtuel du -même nom. -Par exemple, en supposant que nous ayons : -<example compact="compact"> -Package: foo -Depends: bar -</example> -et que quelqu'un d'autre sorte un paquet <tt>bar</tt> amélioré, il peut -dire : -<example compact="compact"> -Package: bar-plus -Provides: bar -</example> - -et le paquet <tt>bar-plus</tt> satisfera aussi la dépendance pour le -paquet <tt>foo</tt>. - </p> - -<p> -Quand un numéro de version est attaché à une dépendance ou à un conflit, -seuls les paquets réels seront examinés pour savoir si la relation est -satisfaite (ou, pour un conflit, l'interdiction violée) - on supposera -qu'un paquet réel qui fournit un paquet virtuel n'a pas la « bonne » -version. Ainsi, un champ <tt>Provides</tt> ne peut pas contenir de numéros -de version, et le numéro de version du paquet concret qui fournit un -paquet virtuel particulier n'est pas examiné quand on considère une -dépendance envers ou un conflit avec le nom du paquet virtuel. - </p> - -<p> -Il est probable que la possibilité d'indiquer un numéro de version pour -chaque paquet virtuel sera ajoutée dans une version prochaine de -<prgn>dpkg</prgn>. Cette caractéristique n'est pas encore présente et -il est probable qu'elle sera très peu utilisée. - </p> - -<p> -Quand on veut spécifier quel paquet d'un ensemble de paquets réels -sera celui qui satisfait par défaut une dépendance particulière envers -un paquet virtuel, on listera le paquet réel alternatif -avant le paquet virtuel. - </p> - - </sect> - -<sect id="replaces"> -<heading>le champ <tt>Replaces</tt> -- regénérer les fichiers et remplacer les paquets</heading> - -<p> -Un paquet peut déclarer dans son fichier <em>control</em> qu'il modifiera -des fichiers appartenant à un autre paquet ou qu'il remplacera complètement -un autre paquet. Le champ <tt>Replaces</tt> du fichier <em>control</em> -remplit ces deux fonctions. - </p> - -<sect1><heading>Regénérer les fichiers appartenant à d'autres paquets</heading> - -<p> -Tout d'abord, comme mentionné auparavant, qu'un paquet possède des fichiers -qui sont sur le système mais dans un autre paquet est généralement une erreur. - </p> - -<p> -Cependant, si le paquet, qui veut faire un remplacement, déclare, dans le champ -<tt>Replaces</tt>, qu'il remplace le paquet -qui contient le fichier à remplacer, <prgn>dpkg</prgn> procède au -remplacement du fichier de l'ancien paquet par le nouveau. Ce fichier ne -sera plus listé comme faisant partie de l'ancien paquet. - </p> - -<p> -Quand un paquet est ainsi complètement remplacé, de sorte que -<prgn>dpkg</prgn> ne sait pas quels fichiers il contient encore, on -considère qu'il a « disparu ». Sur le système, il est marqué comme -« non sélectionné » (sélectionné pour l'effacement) et « non installé ». -Tous les renseignements contenus dans les <tt>conffiles</tt> sont ignorés, vu -que le paquet remplaçant les aura repris. Le script <prgn>postrm</prgn> du -paquet est exécuté avec un argument particulier pour permettre au paquet de -faire le nettoyage final nécessaire. -Voir <ref id="mscriptsinstact"> <footnote> - <p> -Replaces est une relation à sens unique -- vous devez installer le paquet -remplaçant après le paquet remplacé. - </p> - </footnote>. - </p> - -<p> -Avec cette utilisation du champ <tt>Replaces</tt>, et quand on l'examine, -on ne prend pas en compte les paquets virtuels (voyez <ref id="virtual">) --- les paquets déclarant qu'ils sont remplacés doivent être mentionnés par -leurs noms réels. -</p> - -<p> -De plus, cet usage de <tt>Replaces</tt> prend seulement effet quand deux -paquets sont -- au moins partiellement -- en même temps sur le système, et -cela peut seulement se produire s'ils ne sont pas en conflit, ou si le -conflit a été annulé. - </p> - </sect1> - -<sect1> -<heading>Le remplacement total d'un paquet ; forcer sa suppression</heading> - -<p> -Et deuxièmement, le champ <tt>Replaces</tt> permet au système de gestion des -paquets de savoir quel paquet enlever quand il y a un conflit - voir -<ref id="conflicts">. Cet usage prend seulement effet quand deux paquets sont -réellement en conflit, afin que les deux usages de ce champ n'interfèrent pas -l'un avec l'autre. - </p> -<p> -Dans ce cas, le paquet déclaré comme étant remplacé peut être un paquet -virtuel ; c'est ainsi que les agents de transport du courrier (MTA) pourront -avoir les champs suivants dans leur fichier de contrôle : - <example compact="compact"> -Provides: mail-transport-agent -Conflicts: mail-transport-agent -Replaces: mail-transport-agent - </example> -On s'assure ainsi qu'un seul MTA peut être installé à la fois. - </p> - </sect1> - </sect> - -<sect id="sourcebinarydeps"> -<heading>Les relations entre les paquets binaires et les paquets sources --- les champs <tt>Build-Depends</tt>, <tt>Build-Depends-Indep</tt>, - <tt>Build-Conflicts</tt>, <tt>Build-Conflicts-Indep</tt> - </heading> -<p> -Les paquets sources peuvent déclarer des relations avec des paquets -binaires si, par exemple, ils ont besoin que tel paquet binaire soit présent -ou absent au moment de leur construction. - </p> - -<p> -On se sert des champs <tt>Build-Depends</tt>, <tt>Build-Depends-Indep</tt>, -<tt>Build-Conflicts</tt> et <tt>Build-Conflicts-Indep</tt> du fichier -<em>control</em>. - </p> - <p> -Les dépendances de construction sur les paquets binaires appartenant -à « build-essential » peuvent être omises. Voyez -<ref id="pkg-relations"> pour davantage d'informations. - </p> - - <p> -Les dépendances ou les conflits qu'ils définissent doivent être résolus -(comme cela a été défini plus haut pour les paquets binaires) pour pouvoir -appeler les cibles de <tt>debian/rules</tt><footnote> -<p> -Si vous construisez « build-arch » ou « binary-arch », -vous avez besoin de Build-Depends. Si vous construisez -« build-indep » ou « binary-indep », vous avez besoin de -Build-Depends et de Build-Depends-Indep. Si vous construisez -« build » ou « binary », vous avez besoin des deux. - </p> -<p> - « Build-Depends-Arch » n'existe pas ; ce rôle est -essentiellement rempli par les Build-Depends. Il est supposé que celui qui veut -construire les cibles <tt>build-indep</tt> et <tt>binary-indep</tt> veut -de toute façon construire le paquet dans son entier et qu'il installe donc -toutes les dépendances de construction. Les constructeurs automatiques -(« autobuilders ») utilisent <tt>dpkg-buildpackage -B</tt> qui appelle -<tt>build</tt> (pas <tt>build-arch</tt> car il ne sait pas encore vérifier son -existence) et <tt>binary-arch</tt>. -</p> -<p> -Le but de cette séparation, je m'en rappelle, était que les constructeurs -automatiques n'aient pas besoin d'installer les paquets supplémentaires -requis par les cibles binary-indep. Mais, sans la séparation -build-arch/build-indep, cela ne marchait pas, car le plus gros du travail -était fait par la cible build et non pas par la cible binary. - </p> - </footnote> -comme suit : - -<taglist> - <tag><tt>Build-Depends</tt>, <tt>Build-Conflicts</tt></tag> - <item> - <p> -Les champs <tt>Build-Depends</tt> et <tt>Build-Conflicts</tt> doivent être -satisfaits quand l'une des cibles suivantes est appelée : -<tt>build</tt>, <tt>clean</tt>, <tt>binary</tt>, <tt>binary-arch</tt>, -<tt>build-arch</tt>, <tt>build-indep</tt> et <tt>binary-indep</tt>. - </p> - </item> - <tag><tt>Build-Depends-Indep</tt>, -<tt>Build-Conflicts-Indep</tt></tag> - <item> - <p> -Les champs <tt>Build-Depends-Indep</tt> et <tt>Build-Conflicts-Indep</tt> -doivent être satisfaits quand l'une des cibles suivantes est appelée : -<tt>build</tt>, <tt>build-indep</tt>, <tt>binary</tt> et <tt>binary-indep</tt>. - </p> - </item> - </taglist> - </p> - </sect> - </chapt> - - -<chapt id="sharedlibs"> -<heading>Les bibliothèques partagées</heading> - -<p> -On doit construire avec soin les paquets qui contiennent des bibliothèques -partagées afin de s'assurer que ces bibliothèques seront -toujours disponibles. Et particulièrement, les paquets qui demandent des -bibliothèques vitales, telle que la bibliothèque C, (actuellement : -<em>libc6</em>). - </p> - -<p> -Un paquet qui contient des bibliothèques partagées sera séparé -en plusieurs paquets binaires. Cette section est consacrée à la façon de -faire cette séparation ; les règles pour les fichiers à l'intérieur -des paquets de bibliothèques partagées sont traitées dans -<ref id="libraries">. - </p> - - <sect id="sharedlibs-runtime"> - <heading>Les bibliothèques reliables dynamiquement</heading> - - <p> -La bibliothèque partagée doit être placée dans un paquet -dont le nom change chaque fois que la version objet partagée change. -<footnote> -<p> -Puisqu'il est courant d'installer plusieurs versions d'un paquet qui fournit -des bibliothèques partagées, c'est une bonne idée que la bibliothèque ne contienne -pas des fichiers supplémentaires sans version, à moins qu'ils soient placés dans -des répertoires qui ont une version. -</p></footnote> -Le mécanisme le plus courant est de mettre la bibliothèque dans un paquet -appelé <package><var>nom-de-bibliothèque</var><var>version-so</var></package>, -où <file><var>version-so</var></file> est le numéro de version du nom-so de la -bibliothèque partagée <footnote> -<p> -Le nom-so est le nom du fichier objet partagé : c'est ce qui, entre le moment -de la construction de l'exécutable et celui de son fonctionnement, doit être -exactement le même pour que l'éditeur des liens dynamiques soit capable de -faire marcher le programme. Par exemple, si le nom-so de la bibliothèque est -<tt>libfoo.so.6</tt>, le paquet de la bibliothèque sera appelé -<tt>libfoo6</tt>.</p> - </footnote> -Quand cela amène de la confusion d'ajouter directement <var>version-so</var> -à <var>nom-de-bibliothèque</var> (par exemple, quand -<var>nom-de-bibliothèque</var> se termine lui-même par un numéro), on peut -aussi utiliser à la place -<package><var>nom-de-bibliothèque</var>-<var>version-so</var></package> et -<package><var>nom-de-bibliothèque</var>-<var>version-so</var>-dev</package>. -</p> - - <p> -Si votre paquet comprend des programmes d'aide exécutables que les utilisateurs -n'ont pas besoin d'appeler eux-mêmes, mais qui sont néammoins nécessaires au -fonctionnement du paquet, il est recommandé de placer ces programmes -(si ce sont des binaires) dans un répertoire de <file>/usr/lib</file>, -de préférence sous <file>/usr/lib/</file><var>nom-de-paquet</var>. -Si les programmes ne dépendent pas de l'architecture, il est recommandé de les placer -dans un répertoire de <file>/usr/share</file>, de préférence sous - <file>/usr/share/</file><var>nom-de-paquet</var>. - </p> - - - <p> -Si vous construisez plusieurs bibliothèques partagées à partir d'un même -arbre de sources, vous pouvez les regrouper dans le même paquet de -bibliothèques, sachant que vous devrez changer tous leurs nom-so -simultanément (pour éviter des conflits de noms de fichiers lors de -l'installation de différentes versions de ce paquet). -</p> -<p> -Une paquet installera les bibliothèques partagées sous -leurs vrais noms. Par exemple, le paquet <package>libgdbm3</package> -installera <file>libgdbm.so.3.0.0</file> en tant que -<file>/usr/lib/libgdbm.so.3.0.0</file>. -Aucun script <prgn>prerm</prgn> ou <prgn>postrm</prgn> ne changera le nom de -ces fichiers ni ne créera de lien pour ces fichiers ; -<prgn>dpkg</prgn> s'occupe des changements de nom et cela, sans troubler les -programmes en fonctionnement. -Essayer d'interférer avec ce système crée des problèmes. - </p> - -<p> -Les bibliothèques partagées ne doivent pas être installées comme exécutables, -puisque l'éditeur de liens dynamiques ne le demande pas et que tenter -d'exécuter une bibliothèque partagée se traduit par un <em>core dump</em>. -</p> - -<p> -Le paquet de la bibliothèque partagée comportera le lien symbolique que -<prgn>ldconfig</prgn> voudra créer pour les bibliothèques partagées. Par -exemple, le paquet <package>libgdbm3</package> inclura un lien symbolique de -<file>/usr/lib/libgdbm.so.3</file> vers <file>libgdbm.so.3.0.0</file>. C'est -nécessaire pour que l'éditeur des liens dynamiques (<prgn>ld.so</prgn> ou -<prgn>ld-linux.so.*</prgn>) puisse trouver la bibliothèque entre le -moment où <prgn>dpkg</prgn> l'installe et celui où <prgn>ldconfig</prgn> est -exécuté par le script <prgn>postinst</prgn> <footnote> -<p> -Le système de gestion des paquets demande que la bibliothèque soit placée avant -le lien symbolique qui pointe vers elle dans le fichier <tt>.deb</tt>. Ainsi, -avant que <prgn>dpkg</prgn> n'installe le lien symbolique (en remplaçant le -lien précédent qui pointe sur une version plus ancienne de la bibliothèque), -la nouvelle bibliothèque est déjà en place. Par le passé, on créait la -bibliothèque dans le répertoire temporaire où l'on faisait le paquet avant de -créer le lien symbolique. Malheureusement, cela ne marchait pas toujours car -la construction du fichier <em>tar</em> pour le fichier <tt>.deb</tt> -dépendait du système de fichier sous-jacent. Des systèmes de fichiers (comme -reiserfs) réordonne les fichiers de sorte que l'ordre dans lequel on les crée -est oublié. Avec sa version 1.7.0, <prgn>dpkg</prgn> réordonne, -si nécessaire, les fichiers lors de la construction d'un paquet. Et il n'est -plus nécessaire de se préoccuper de l'ordre de création des fichiers. -</p> -</footnote>. - </p> - - <sect1 id="ldconfig"> - <heading><tt>ldconfig</tt></heading> - -<p> -Tout paquet qui installe des bibliothèques partagées dans l'un des -répertoires par défaut de l'éditeur de liens dynamiques, (actuellement, -<tt>/usr/lib</tt> et <tt>/lib</tt>) ou dans un répertoire listé par -<tt>/etc/ld.so.conf</tt> -<footnote> -<p> -Les voici : - <list compact="compact"> - <item><p>/usr/local/lib</p></item> - <item><p>/usr/lib/libc5-compat</p></item> - <item><p>/lib/libc5-compat</p></item> - </list> - </p> - </footnote> -doit utiliser <prgn>ldconfig</prgn> pour mettre à jour le système des -bibliothèques partagées. - </p> -<p> -Les scripts de responsable de paquet ne doivent appeler <prgn>ldconfig</prgn> -que dans ces circonstances : - <list compact="compact"> - <item>quand le script <prgn>postinst</prgn> est exécuté avec comme - premier paramètre <tt>configure</tt>, le script doit appeler - <prgn>ldconfig</prgn> et peut facultativement appeler - <prgn>ldconfig</prgn> à d'autres moments. - </item> - <item>quand le script <prgn>postrm</prgn> est exécuté avec comme - premier paramètre <tt>remove</tt>, le script devrait appeler - <prgn>ldconfig</prgn>. - </item> - </list> - <footnote> -<p> -Pendant une installation ou une mise à jour, le script preinst est appelé -avant que de nouveaux fichiers ne soient installés : appeler -« ldconfig » est inutile. Le script preinst d'un paquet existant -peut aussi être appelé en cas d'échec de la mise à jour. Cela arrive cependant -au moment critique où une bibliothèque partagée existe sur le disque sous un -nom temporaire. Ainsi, il est dangereux, et c'est interdit par la Charte, -d'appeler « ldconfig » à ce moment. -</p> -<p> -Lors de l'installation ou la mise à jour d'un paquet, le script -« postinst configure » s'exécute après que -les nouveaux fichiers ont été installés de façon certaine sur le disque. -Puisqu'on peut parfaitement appeler sans condition ldconfig dans un postinst, -un paquet peut mettre ldconfig dans son postinst sans vérifier les arguments. -Le script postinst peut aussi être appelé lors d'un essai de récupération après -l'échec d'une mise à jour. Cela arrive avant que les nouveaux fichiers ne -soient dépaquetés : il n'y a donc pas besoin d'appeler -« ldconfig » à ce moment. - </p> -<p> -Lors de la suppression d'un paquet, le script prerm est appelé alors que tous -les fichiers sont intacts : appeler « ldconfig » est inutile. -Les autres appels de « prerm » se passent lors d'une mise à jour, -quand tous les fichiers de l'ancien paquet sont sur le disque, et, encore une -fois, appeler « ldconfig » est inutile. - </p> -<p> -D'un autre côté, le script postrm est appelé avec l'argument <em>remove</em> -juste après que les fichiers ont été supprimés : c'est le moment idéal -pour appeler « ldconfig » et notifier ainsi au système la -suppression des bibliothèques partagées appartenant au paquet. Le -script postrm peut être appelé à plusieurs moments. Lors de -« postrm purge », de « postrm abort-install » ou de -« postrm abort-upgrade », appeler « ldconfig » est -inutile parce que les fichiers de la bibliothèque partagée ne sont pas sur -le disque. Cependant, lorsque le script postrm est appelé avec les arguments -« upgrade », « failed-upgrade » ou « disappear », -la bibliothèque partagée peut exister sur le disque sous un nom temporaire. - </p> - </footnote>. - </p> - </sect1> - - </sect> - -<sect id="sharedlibs-runtime-progs"> - <heading>Les programmes d'aide au fonctionnement</heading> - - <p> -Si votre paquet contient des programmes d'aide au fonctionnement -qui utilisent la bibliothèque partagée, vous ne devez pas les mettre dans le -paquet de la bibliothèque partagée. Si vous le faites, vous ne pourrez pas -installer plusieurs versions de la bibliothèque sans créer des conflits -de noms de fichiers. - </p> -<p> -À la place, vous pouvez soit créer un autre paquet pour ces binaires -fonctionnels (le paquet peut s'appeler -<package><var>nom-de-bibliothèque</var>-runtime</package> -- notez l'absence -de <var>version-so</var> dans le nom du paquet), soit -inclure ces binaires dans le paquet de développement si celui-ci est petit. -</p> - </sect> - - <sect id="sharedlibs-static"> - <heading>Les bibliothèques statiques</heading> - - <p> -Une bibliothèque statique (<file><var>nom-de-bibliothèque.a</var></file>) -accompagne généralement la version partagée ; elle est placée dans le -paquet de développement. Voyez plus bas. - </p> - <p> -Dans les cas suivants, il est acceptable qu'une bibliothèque ne soit -disponible que sous sa forme statique : - <list> - <item> -<p> - -bibliothèque pour langage dont la version partagée est immature ou -instable ;</p> - </item> - <item> - <p> -bibliothèque dont l'interface change constamment ou est en développement -(c'est le cas pour une bibliothèque dont le numéro majeur de version est zéro, -ou dont la compatibilité binaire (<em>ABI</em>) n'est pas assurée pour des -niveaux de patch différents) ; - </p> - </item> - <item> - <p> -bibliothèque explicitement prévue pour n'être disponible que sous une forme -statique par ses auteurs. - </p> - </item> - </list> - - <sect id="sharedlibs-dev"> - <heading>Les fichiers de développement</heading> - - <p> -Les fichiers de développement associés à une bibliothèque partagée seront -placés dans un paquet appelé -<package><var>nom-de-bibliothèque</var><var>version-so</var>-dev</package>, -ou, si vous préférez ne gérer qu'une version de développement à la fois, -<package><var>nom-de-bibliothèque</var>-dev</package>. - </p> -<p> -Quand plusieurs versions de développement existent, vous pouvez utiliser le -mécanisme de gestion des conflits de <prgn>dpkg</prgn> (voir -<ref id="conflicts">) pour vous assurer que l'utilisateur ne peut installer -qu'une seule version de développement à la fois. Plusieurs versions de -développement auront sans doute les mêmes fichiers d'en-tête, ce qui créera -un conflit de nom en cas d'installation multiple. - </p> - -<p> -Le paquet de développement contiendra un lien symbolique vers la -bibliothèque partagé qui lui est associée sans le numéro de version. -Par exemple, le paquet <package>libgdbm-dev</package> fera un lien de -<file>/usr/lib/libgdbm.so</file> vers <file>libgdbm.so.3.0.0</file>. -L'éditeur de liens (<prgn>ld</prgn>) a besoin de ce lien pour la compilation -des programmes car il ne recherche que <file>libgdbm.so</file> lors -d'une compilation dynamique. - </p> - </sect> - - <sect id="sharedlibs-intradeps"> - <heading>Les dépendances entre les paquets d'une même bibliothèque</heading> - - <p> -La version de développement aura une dépendance sur une version précise -de la bibliothèque partagée afin que la compilation et l'édition de liens -s'effectuent correctement. La variable de substitution -<tt>${Source-Version}</tt> peut être utile dans ce cas. -</p> - - </sect> - - <sect id="sharedlibs-shlibdeps"> - <heading>Les dépendances entre une bibliothèque et les paquets - - le système <tt>shlibs</tt></heading> - -<p> -Quand un paquet contient un binaire ou une bibliothèque liés à une -bibliothèque partagée, on doit s'assurer que, lors de l'installation de ce -paquet sur le système, toutes les bibliothèques nécessaires sont aussi -installées. Cela a conduit à la création du système <tt>shlibs</tt> ; de -conception très simple, ce système demande que tout paquet qui fournit -(champ <em>provides</em>) une bibliothèque partagée donne aussi les -informations de dépendance nécessaires à la présence de cette -bibliothèque ; -ainsi tout paquet qui <em>utilise</em> une bibliothèque partagée, utilise -ces informations pour connaître les dépendances requises. Les fichiers qui -contiennent les relations entre les bibliothèques partagées et les -informations sur les dépendances nécessaires sont les fichiers <tt>shlibs</tt>. - </p> -<p> -Ainsi, quand on construit un paquet contenant une bibliothèque partagée, -on doit fournir un fichier <tt>shlibs</tt> utilisable par d'autres -paquets ; -et quand on construit un paquet contenant une bibliothèque partagée ou un -binaire compilé, ce paquet doit exécuter -<qref id="pkg-dpkg-shlibdeps"><prgn>dpkg-shlibdeps</prgn></qref> pour -ces programmes de manière à connaître les bibliothèques utilisées et donc -les dépendances nécessaires à ce paquet <footnote> -<p> -Par le passé, on appelait <prgn>ldd</prgn> pour connaître les bibliothèques -partagées requises ; maintenant on appelle <prgn>objdump</prgn>. Le seul -changement dans la manière de construire un paquet est que l'on doit aussi -exécuter <prgn>dpkg-shlibdeps</prgn> sur les bibliothèques partagées, alors -qu'avant ce n'était pas nécessaire. La suite de cette note explique les -avantages de cette méthode. -</p> -<p> -Un binaire <tt>foo</tt> utilise <em>directement</em> la bibliothèque -<tt>libbar</tt> quand il est lié explicitement à cette bibliothèque (c'est à -dire qu'il utilise le drapeau <tt>-lbar</tt> pendant la phase de liaison). Les -autres bibliothèques dont <tt>libbar</tt> a besoin sont liées -<em>indirectement</em> à <tt>foo</tt>, et l'éditeur de liens dynamiques les -charge automatiquement quand il charge <tt>libbar</tt>. Un paquet dépendra -des bibliothèques qu'il utilise directement, et les dépendances -de ces bibliothèques amèneront automatiquement les autres bibliothèques. -</p> -<p> -Malheureusement, le programme <prgn>ldd</prgn> indique toutes les -bibliothèques, celles directement utilisées et celles indirectement utilisées ; -ce qui signifie que les dépendances comportent des dépendances directes et -indirectes. Avec <prgn>objdump</prgn>, on évite ce problème en -indiquant seulement les bibliothèques directement utilisées. -</p> -<p> -Voici un exemple qui montre l'intérêt de ce système : on pourrait mettre à -jour <tt>libimlib</tt> avec une version qui accepte le nouveau format -graphique <em>dgf</em> (tout en gardant le même numéro majeur de version). En -utilisant l'ancienne méthode <prgn>ldd</prgn>, chaque paquet qui se sert de -<tt>libimlib</tt> devrait être recompilé pour qu'il dépende aussi de -<tt>libdgf</tt>, sinon il ne marcherait pas à cause de symboles manquants. -Mais, avec le nouveau système, les paquets qui se servent de -<tt>libimlib</tt> peuvent dépendre simplement de <tt>libimlib</tt> qui -possède elle-même la dépendance envers <tt>libdgf</tt> et ils n'auront pas -besoin d'être mis à jour. - </p> -</footnote>. - </p> -<p> -Les sections suivantes décrivent l'emplacement des différents fichiers -<tt>shlibs</tt>, la façon d'utiliser le programme <prgn>dpkg-shlibdeps</prgn>, -et le format du fichier <tt>shlibs</tt> ainsi que la façon de créer ces -fichiers quand un paquet contient une bibliothèque partagée. -</p> - -<sect1><heading>Les fichiers <tt>shlibs</tt> sur le système</heading> -<p> -On peut trouver des fichiers <tt>shlibs</tt> à plusieurs endroits. La liste -suivante les donne dans l'ordre selon lequel -<qref id="pkg-dpkg-shlibdeps"><prgn>dpkg-shlibdeps</prgn></qref> les -a lus. Le premier qui donne l'information demandée est utilisé. -</p> -<p> - <list> - <item> - <p><file>debian/shlibs.local</file></p> - <p> -Cela donne les remplacements à faire pour ce paquet. Son usage est décrit -plus bas (<ref id="shlibslocal">). - </p> - </item> - <item> - <p><file>/etc/dpkg/shlibs.override</file></p> - <p> -Cela donne les remplacements à faire pour tout le système. Cette liste, -maintenue par l'administrateur local, est normalement vide. - </p> - </item> - <item> - <p>Les fichiers <file>DEBIAN/shlibs</file> dans le « répertoire -de construction »</p> - <p> -Quand on construit un paquet, tous les fichiers <file>debian/shlibs</file> sont -copiés dans le répertoire temporaire de construction avec comme nom -<file>shlibs</file>. Ces fichiers donnent des renseignements sur toutes les -bibliothèques partagées contenues dans le paquet <footnote> -<p> -Un exemple nous aidera : supposons que le paquet source <tt>foo</tt> produit -deux paquets binaires, <tt>libfoo2</tt> et <tt>foo-runtime</tt>. Pour la -construction de ces paquets, on utilise les répertoires <tt>debian/libfoo2</tt> -et <tt>debian/foo-runtime</tt> respectivement (on pourrait utiliser -<tt>debian/tmp</tt> à la place de l'un des deux). Puisque <tt>libfoo2</tt> -fournit la bibliothèque partagée <tt>libfoo</tt>, il demandera un fichier -<tt>shlibs</tt> qui sera installé dans <tt>debian/libfoo2/DEBIAN/shlibs</tt>, -et deviendra finalement <tt>/var/lib/dpkg/info/libfoo2.shlibs</tt>. Maintenant, -quand on exécute <prgn>dpkg-shlibdeps</prgn> pour l'exécutable -<tt>debian/foo-runtime/usr/bin/foo-prog</tt>, <prgn>dpkg-shlibdeps</prgn> -examine le fichier <tt>debian/libfoo2/DEBIAN/shlibs</tt> pour savoir si les -dépendances de <tt>foo-prog</tt> en ce qui concerne les bibliothèques -sont satisfaites par les bibliothèques fournies par <tt>libfoo2</tt>. Pour -cette raison, on ne doit exécuter <prgn>dpkg-shlibdeps</prgn> qu'après que -tous les fichiers <tt>shlibs</tt> de chaque paquet binaire ont été installés -dans le répertoire de construction. - </p> -</footnote>. - </p> - </item> - <item> - <p><file>/var/lib/dpkg/info/*.shlibs</file></p> - <p> -Ce sont tous les fichiers <file>shlibs</file> de tous les paquets installés -sur le système ; ils sont maintenus par les responsables des paquets concernés. - </p> - </item> - <item> - <p><file>/etc/dpkg/shlibs.default</file></p> - <p> -Ce fichier liste toutes les bibliothèques partagées dont les paquets n'ont -pas pu fournir de fichiers <tt>shlibs</tt> corrects. Il était utilisé quand -on a introduit le système <tt>shlibs</tt> pour la première fois ; il est -maintenant normalement vide. Il est maintenu par le responsable de -<tt>dpkg</tt>. - </p> - </item> - </list> - </p> - </sect1> - -<sect1> -<heading>Comment utiliser <prgn>dpkg-shlibdeps</prgn> et les fichiers <file>shlibs</file> ? </heading> - -<p> -Placez un appel au programme -<qref id="pkg-dpkg-shlibdeps"><prgn>dpkg-shlibdeps</prgn></qref> dans le -fichier <tt>debian/rules</tt>. Si le paquet contient seulement des binaires -compilés et des bibliothèques (mais pas de scripts), on peut utiliser la -commande : - <example compact="compact"> -dpkg-shlibdeps debian/tmp/usr/bin/* debian/tmp/usr/sbin/* \ - debian/tmp/usr/lib/* - </example> -Sinon, on devra explicitement lister les binaires compilés et les bibliothèques -<footnote> -<p> -Quand on utilise <tt>debhelper</tt>, le programme <prgn>dh_shlibdeps</prgn> -fera le nécessaire pour vous. Il gérera convenablement les paquets avec -plusieurs binaires.</p> -</footnote>. -</p> -<p> -Cette commande place les informations sur les dépendances dans le fichier -<file>debian/substvars</file>, qui est ensuite utilisé par -<prgn>dpkg-gencontrol</prgn>. Vous devrez placer une variable -<tt>${shlibs:Depends}</tt> dans le champ <tt>Depends</tt> du fichier de -contrôle pour que cela marche. -</p> -<p> -Si <prgn>dpkg-shlibdeps</prgn> ne se plaint pas, c'est bon. Sinon, vous -pourriez avoir besoin de créer un fichier <file>debian/shlibs.local</file>, -comme expliqué plus bas (<ref id="shlibslocal">). -</p> -<p> -Si vous avez des paquets contenant plusieurs binaires, vous devrez appeler -<prgn>dpkg-shlibdeps</prgn> sur tous ceux qui ont des binaires compilés et des -bibliothèques. Dans ce cas, vous aurez besoin de l'option <tt>-T</tt> des -outils <tt>dpkg</tt> pour spécifier un fichier <tt>substvars</tt> différent. -</p> - <p> -Veuillez consulter <ref id="pkg-dpkg-shlibdeps"> et - <manref name="dpkg-shlibdeps" section="1"> pour des précisions -sur le programme dpkg-shlibdeps. - </p> - - </sect1> - -<sect1 id="shlibs"><heading>Le format du fichier <file>shlibs</file></heading> - -<p> -Chaque fichier <file>shlibs</file> possède le même format. Les lignes -commençant par <tt>#</tt> sont des commentaires et sont ignorées. Chaque -ligne est de la forme : - <example compact="compact"> -<var>nom-de-bibliothèque</var> <var>nomso-version-numéro</var> <var>dépendances ...\</var> - </example> - </p> -<p> -Nous allons expliquer cette ligne en prenant comme exemple le paquet -<tt>zlib1g</tt>, qui, au moment où est écrit ce texte, installe la -bibliothèque partagée <tt>/usr/lib/libz.so.1.1.3</tt>. - </p> -<p> -<var>nom-de-bibliothèque</var> est le nom de la bibliothèque partagée, dans -ce cas : <tt>libz</tt>. Cela doit correspondre à la partie « nom » du -<em>nomso</em>, voyez plus bas. - </p> -<p> -<var>nomso-version-numéro</var> est la partie version du <em>nomso</em> de la -bibliothèque. Le <em>nomso</em> est ce qui doit coller exactement pour que la -bibliothèque soit reconnue par l'éditeur des liens dynamiques, et il est habituellement -de la forme : <tt><var>nom</var>.so.<var>version-numéromajeur</var></tt>, -et dans ce cas <tt>libz.so.1</tt><footnote> -<p> -La commande suivante peut le déterminer : - <example compact="compact"> -objdump -p /usr/lib/libz.so.1.1.3 | grep SONAME - </example> -</p> -</footnote>. -La partie version est la partie qui suit <tt>.so.</tt>, et donc ici : -<tt>1</tt>. - </p> -<p> -<var>dépendances</var> possède le même format qu'un champ de dépendances dans -le fichier de contrôle d'un paquet binaire. Cette partie donnera des -renseignements sur les paquets qui sont demandés pour compiler un binaire -avec la version de la bibliothèque contenue dans le paquet. Voir -<ref id="depsyntax"> pour des précisions. - </p> -<p> -Dans notre exemple, si la première version du paquet <tt>zlib1g</tt>, contenant -un numéro mineur égal à au moins <tt>1.3</tt>, était de <var>1:1.1.3-1</var>, -alors l'entrée <tt>shlibs</tt> pour cette bibliothèque pourra énoncer : - <example compact="compact"> -libz 1 zlib1g (>= 1:1.1.3) - </example> -La dépendance pour une version particulière sert à éviter les avertissements -de l'éditeur de liens dynamiques au sujet de l'utilisation d'anciennes -bibliothèques avec des binaires plus récents. -</p> - </sect1> - -<sect1><heading>Comment créer un fichier <file>shlibs</file> ?</heading> -<p> -Si le paquet fournit une bibliothèque partagée, vous devez créer un fichier -<file>shlibs</file> en suivant le format décrit plus haut. Habituellement, -on le nomme <file>debian/shlibs</file> (mais si le paquet contient plusieurs -binaires, on pourra l'appeler <tt>debian/shlibs.<var>package</var></tt>). -Puis on laissera <file>debian/rules</file> l'installer dans la zone de -contrôle : - <example compact="compact"> -install -m644 debian/shlibs debian/tmp/DEBIAN - </example> -ou, en cas de paquet avec de multiples binaires : - <example compact="compact"> -install -m644 debian/shlibs.<var>package</var> debian/<var>package</var>/DEBIAN/shlibs - </example> -Une autre façon de faire est de créer directement le fichier <tt>shlibs</tt> -dans la zone de contrôle à partir du fichier <tt>debian/rules</tt> sans -utiliser un fichier <tt>debian/shlibs</tt><footnote> -<p> -C'est ce que fait <prgn>dh_makeshlibs</prgn> de la suite <tt>debhelper</tt>. -</p> -</footnote>, -puisque le fichier <tt>debian/shlibs</tt> lui-même est ignoré par le -programme <prgn>dpkg-shlibdeps</prgn>. -</p> -<p> -Comme <prgn>dpkg-shlibdeps</prgn> lit tous les fichiers <tt>DEBIAN/shlibs</tt> -de tous les paquets binaires construits à partir du paquet source, tous les -fichiers <tt>DEBIAN/shlibs</tt> seront installés avant d'appeler -<prgn>dpkg-shlibdeps</prgn> pour chaque paquet binaire. - </p> - </sect1> - -<sect1 id="shlibslocal"> -<heading>Comment écrire le fichier <file>debian/shlibs.local</file> ?</heading> - -<p> -Ce fichier est prévu seulement pour une correction temporaire quand les -binaires ou les bibliothèques dépendent d'une bibliothèque pour laquelle -aucun fichier <tt>shlibs</tt> correct n'est produit par le paquet. - </p> -<p> -Nous supposons que vous essayez de créer un paquet binaire <tt>foo</tt>. Quand -vous essayez d'exécuter <prgn>dpkg-shlibdeps</prgn>, vous obtenez le message -d'erreur suivant (l'option <tt>-O</tt> affiche les informations de -dépendance sur <tt>stdout</tt> au lieu de les écrire dans le fichier -<tt>debian/substvars</tt>, et les lignes ont été enveloppées pour faciliter -la lecture) : - <example compact="compact"> -$ dpkg-shlibdeps -O debian/tmp/usr/bin/foo -dpkg-shlibdeps: warning: unable to find dependency - information for shared library libbar (soname 1, - path /usr/lib/libbar.so.1, dependency field Depends) -shlibs:Depends=libc6 (>= 2.2.2-2) - </example> -Vous pouvez alors exécuter <prgn>ldd</prgn> sur le binaire pour trouver -l'emplacement exact de la bibliothèque en question : - <example compact="compact"> -$ ldd foo -libbar.so.1 => /usr/lib/libbar.so.1 (0x4001e000) -libc.so.6 => /lib/libc.so.6 (0x40032000) -/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) - </example> -Ainsi le binaire <prgn>foo</prgn> dépend de la bibliothèque partagée -<prgn>libbar</prgn>, mais aucun paquet ne donne un fichier <tt>*.shlibs</tt> -qui gère <tt>libbar.so.1</tt> dans <tt>/var/lib/dpkg/info/</tt>. Déterminons -le paquet responsable : - <example compact="compact"> -$ dpkg -S /usr/lib/libbar.so.1 -bar1: /usr/lib/libbar.so.1 -$ dpkg -s bar1 | grep Version -Version: 1.0-1 - </example> -Ce qui nous indique que le paquet <tt>bar1</tt>, version <tt>1.0-1</tt>, est -celui qu'on utilise. Maintenant nous pouvons envoyer un rapport de bogue -contre le paquet <tt>bar1</tt> et créer notre propre fichier -<tt>debian/shlibs.local</tt> pour corriger localement le problème évoqué. -Insérer la ligne suivante dans le fichier <tt>debian/shlibs.local</tt> : - <example compact="compact"> -libbar 1 bar1 (>= 1.0-1) - </example> -permettra la construction du paquet. -</p> -<p> -Dès que le responsable de <tt>bar1</tt> fournit un fichier <tt>shlibs</tt> -correct, vous supprimerez cette ligne dans le fichier -<tt>debian/shlibs.local</tt>. Vous aurez sans doute aussi un champ -<tt>Build-Depends</tt> concernant les versions pour <tt>bar1</tt> de -manière à s'assurer que d'autres n'aient pas le même problème pour -construire votre paquet. - </p> - </sect1> - </sect> - </chapt> - -<chapt id="opersys"> -<heading>Le système d'exploitation</heading> - - - <sect> - <heading>La hiérarchie du système de fichiers</heading> - - - <sect1 id="fhs"> - <heading>La structure du système de fichiers</heading> - - <p> -L'emplacement de tous les répertoires et fichiers installés -doit être conforme au standard sur la hiérarchie du système de fichiers -(FHS, version 2.3), avec les exceptions notées ci-dessous et sauf si cela -va à l'encontre d'un principe de la charte Debian. -Les exceptions suivantes au FSH s'appliquent : - <enumlist> - <item> - <p> - Les serveurs XFree86 historiques sont autorisés à conserver - l'emplacement du fichier de configuration - <file>/etc/X11/XF86Config-4</file>. - </p> - </item> - <item> - <p> - Les règles optionnelles relatives aux fichiers de - configuration spécifiques à l'utilisateurs pour les - applications sont stockées dans le répertoire personnel de - l'utilisateur sont réduites. Il est recommandé que de tels - fichiers commencent par un point (« fichier caché ») - et si une application a besoin de créer plus d'un fichier - caché, alors l'emplacement préféré est dans un sous-répertoire - dont le nom commence par un point (« répertoire - caché »). Dans ce cas, il est recommandé que les fichiers - de configuration ne commencent pas par un point. - </p> - </item> - <item> - <p> - L'obligation pour amd64 d'utiliser <file>/lib64</file> pour - les binaires 64 bit est supprimée. - </p> - </item> - <item> - <p> - L'obligation que <file>/usr/local/share/man</file> soit - « synonyme » de <file>/usr/local/man</file> est - réduite à une recommendation.</p> - </item> - <item> - <p> - L'obligation que les gestionnaires de fenêtres avec un seul - fichier de configuration l'appelle <file>system.*wmrc</file> - est supprimée, tout comme la restriction que le - sous-répertoire du gestionnaire de fenêtres soit nommée de - façon identique au nom du gestionnaire de fenêtres lui-même. - </p> - </item> - <item> - <p> - L'obligation que les fichiers de configuration des - gestionnaires d'amorçage soient placés sous <file>/etc</file> - ou au moins aient un lien symbolique à cet endroit, est - réduite à une recommendation. - </p> - </item> - </enumlist> - - </p> - <p> -On peut trouver cette version du document dans le paquet -<tt>debian-policy</tt> ou, avec ce manuel, sur -<url id="https://www.debian.org/doc/packaging-manuals/fhs/" name="FHS (copie Debian)"> (ou, si le paquet <package>debian-policy</package> est installé, sur -<url id="file:///usr/share/doc/debian-policy/fhs/" name="FHS (copie locale)">). -La version la plus récente (ou simplement une plus récente) se trouve -sur <url id="http://www.pathname.com/fhs/" name="FHS (amont)">. -Toute question relative à la manière de suivre ce standard -peut être posée dans la liste de diffusion -<tt>debian-devel</tt> ou dans la liste consacrée au FHS (voyez, pour des -renseignements supplémentaires, -<url id="http://www.pathname.com/fhs/" name="le site web du FHS">). -</p> -</sect1> - - <sect1> - <heading>Les programmes spécifiques à un site</heading> - - <p> -Conformément au « FHS », aucun paquet ne doit placer de fichiers -dans<tt>/usr/local</tt>, que ce soit en les mettant dans l'archive -qui doit être dépaquetée par <prgn>dpkg</prgn> ou -en les manipulant dans les scripts d'installation. -</p> - <p> -Cependant, un paquet peut créer des répertoires vides sous <tt>/usr/local</tt> -de manière que l'administrateur système ait un endroit où placer -des fichiers locaux. Ce ne sont pas des répertoires directement <em>dans</em> -<file>/usr/local</file>, mais des sous-répertoires de répertoires dans -<file>/usr/local</file>. Si ces répertoires (<file>/usr/local/*/dir/</file>) -sont vides, ils seront supprimés quand on supprime le paquet. -</p> - - <p> -On notera que cela ne s'applique qu'aux répertoires <em>sous</em> -<tt>/usr/local</tt> et non pas <em>dans</em> <tt>/usr/local</tt>. -Le répertoire <tt>/usr/local</tt> ne doit -contenir lui-même que les répertoires listés dans le FHS, -section 4.5. Cependant vous pouvez créer autant de répertoires que vous voulez -sous ces répertoires. Vous ne devez pas supprimer -les répertoires listés à la section 4.5, même si vous les avez créés. -</p> - <p> -Comme <tt>/usr/local</tt> peut être monté depuis un serveur distant et -n'autoriser que la lecture, on doit créer ces répertoires avec -les scripts de post-installation, <prgn>postinst</prgn> et on doit les -supprimer avec les scripts de pré-désinstallation, <prgn>prerm</prgn> ; -ils ne doivent pas être dans l'archive <tt>.deb</tt>. -Ces scripts ne doivent pas échouer si l'une de ces opérations échoue. -</p> - - <p> -Par exemple, le paquet <tt>emacsen-common</tt> pourrait contenir - <example compact="compact"> -if [ ! -e /usr/local/share/emacs ] -then - if mkdir /usr/local/share/emacs 2>/dev/null - then - chown root:staff /usr/local/share/emacs - chmod 2775 /usr/local/share/emacs - fi -fi - </example> -dans le script <prgn>postinst</prgn>, et - <example compact="compact"> -rmdir /usr/local/share/emacs/site-lisp 2>/dev/null || true -rmdir /usr/local/share/emacs 2>/dev/null || true - </example> -dans le script <prgn>prerm</prgn>. Il faut remarquer qu'on utilise cette forme -pour s'assurer que le répertoire <tt>/usr/local/share/emacs</tt> sera encore -supprimé si le script est interrompu. -</p> - - <p> -Si vous créez un répertoire dans <tt>/usr/local</tt> pour -ajouter des éléments à un paquet, vous vous assurerez que le paramétrage -dans <tt>/usr/local</tt> sera prioritaire par rapport à celui dans -<tt>/usr</tt>. -</p> - - <p> -Cependant, puisque <tt>/usr/local</tt> et son contenu sont réservés à -l'administrateur local, un paquet ne doit pas compter sur la présence ou -l'absence de fichiers ou répertoires dans <tt>/usr/local</tt> -pour toute opération normale. -</p> -<p>Le répertoire <tt>/usr/local</tt> lui-même et tous les sous-répertoires -créés par un paquet, auront (par défaut) les droits 2775 (modifiables et -exécutables par le groupe (bit « set-group-id » positionné)). Ils -doivent appartenir à <tt>root.staff</tt>. -</p> -</sect1> -<sect1> -<heading>Le répertoire commun pour le courrier</heading> -<p> -Le répertoire commun pour le courrier est <tt>/var/mail</tt>. Ce répertoire -fait partie du système de base et il n'appartiendra à aucun opérateur de -courrier particulier. L'utilisation de l'ancien répertoire -<tt>/var/spool/mail</tt> est déconseillée, même si le courrier se trouve -toujours physiquement là. Pour garder, lors d'une mise à jour, une -compatibilité avec les systèmes qui utilisent <tt>/var/spool/mail</tt> comme -répertoire de courrier, les paquets qui se servent de <tt>/var/mail</tt> -doivent dépendre de <package>libc6</package> (>= 2.1.3-13), ou bien de -<package>base-files</package> (>= 2.2.0), et des versions plus récentes -de ces paquets.</p> - </sect1> -</sect> - - <sect> - <heading>Les utilisateurs et les groupes</heading> - -<sect1> -<heading>Introduction</heading> - <p> -Le système Debian est configuré pour utiliser soit les mots de passe -ordinaires soit les mots de passe masqués (« shadow password »). -</p> - - <p> -L'utilisation de quelques identifiants d'utilisateur (UID) et de groupe -(GID) est réservée à certains paquets. Ces paquets ont besoin -d'inclure des fichiers appartenant à ces utilisateurs ou à ces groupes, -ou bien ont besoin de compiler des binaires avec ces identifiants ; c'est -pourquoi, sur tout système Debian, ces identifiants ne pourront être utilisés -que dans un cadre prédéfini. -C'est une restriction importante, et on évitera d'interférer avec des -politiques particulières d'administration système. De nombreux sites -notamment attribuent des utilisateurs ou des groupes systèmes spécifiques -à partir de 100. -</p> - - <p> -En dehors de cet aspect, les identifiants seront attribués dynamiquement et -seront rangés selon un ordre raisonnable mais qui peut être redéfini. -</p> - <p> -Seul le paquet <tt>base-passwd</tt> a le droit de modifier -<tt>/etc/passwd</tt>, <tt>/etc/shadow</tt>, <tt>/etc/group</tt> -ou <tt>/etc/gshadow</tt>. -</p> - </sect1> -<sect1><heading>Les classes d'« UID » et de « GID »</heading> - <p> -Les numéros des « UID » et des « GID » sont rangés en -classes : - <taglist> - <tag>0-99 :</tag> - <item> - <p> -Attribués en bloc par le projet Debian, ils doivent être identiques sur tout -système Debian. Ces identifiants apparaîtront dans les fichiers -<tt>passwd</tt> et <tt>group</tt> de tout système Debian, tout nouvel -identifiant dans cet intervalle étant automatiquement ajouté quand le paquet -<tt>base-passwd</tt> est mis à jour. - </p> - - <p> -Un paquet qui a besoin d'un identifiant UID ou GID unique et attribué de -manière fixe utilisera cet intervalle ; le responsable demandera -son obtention au responsable de <tt>base-passwd</tt>. - </p> - </item> - - <tag>100-999 :</tag> - <item> - <p> -Utilisateurs et groupes système attribués dynamiquement. Les paquets qui -ont besoin d'un utilisateur ou d'un groupe et qui -tolèrent que cet identifiant soit attribué dynamiquement et différemment -sur chaque système, utiliseront <tt>adduser --system</tt> -pour la création d'un tel groupe ou utilisateur. -Le programme <prgn>adduser</prgn> vérifie qu'un tel groupe ou utilisateur -n'existe pas déjà et utilise si nécessaire un autre identifiant dans -l'intervalle spécifié par <tt>adduser.conf</tt>. - </p> -</item> - - <tag>1000-29999 :</tag> - <item> - <p> -Comptes utilisateur attribués dynamiquement. Par défaut, <prgn>adduser</prgn> -choisit les « UID » et les « GID » pour les comptes -utilisateur dans cet intervalle, bien que <tt>adduser.conf</tt> puisse -modifier ce comportement. - </p> -</item> - - <tag>30000-59999 :</tag> - <item> - <p>Usage réservé.</p></item> - - - <tag>60000-64999 :</tag> - <item> - <p> -Attribués en bloc par le projet Debian, mais ils ne sont créés -qu'à la demande. Les identifiants sont attribués de manière fixe et centralisée -mais les comptes ne sont effectivement créés sur le système qu'à la demande. - </p> - - <p> -Ces identifiants sont réservés à des paquets obscurs ou à des paquets qui -demandent de nombreux identifiants attribués de manière fixe. Ces paquets -doivent s'assurer de l'inexistence de ces comptes dans <tt>/etc/passwd</tt> -ou dans <tt>/etc/group</tt> et les créer eux-mêmes si nécessaire (en utilisant -si possible <prgn>adduser</prgn>). -Les paquets qui risquent d'avoir besoin de davantage d'identifiants, -se réserveront un intervalle d'attribution plus large que de besoin, laissant -ainsi des possibilités de développement. -</p> -</item> - - - <tag>65000-65533 :</tag> - <item> - <p>Usage réservé.</p></item> - - - <tag>65534 :</tag> - <item> -<p> -Utilisateur <tt>nobody</tt>. Le « gid » correspondant renvoie au -groupe <tt>nogroup</tt>. -</p> -</item> - - - <tag>65535 :</tag> - <item> - <p> - <tt>(uid_t)(-1) == (gid_t)(-1)</tt>. <em>Ne doit pas</em> être -utilisé car il s'agit de la valeur sentinelle pour retourner une erreur. - </p> - </item> - </taglist> - </p> - </sect1> -</sect> - - <sect id="sysvinit"> - <heading>Les niveaux de fonctionnement du système et les scripts dans <file>init.d</file></heading> - - - <sect1 id="/etc/init.d"> - <heading>Introduction</heading> - - <p> -Le répertoire <file>/etc/init.d</file> contient les scripts exécutés -par <prgn>init</prgn> quand le système démarre et quand l'état -de <prgn>init</prgn> (son « niveau de fonctionnement ») est modifié -(voir <manref name="init" section="8">). -</p> - - <p> -Il y a au moins deux façons, différentes mais fonctionnellement équivalentes, -de se servir de ces scripts. Pour rester simple, on décrit ici la méthode des -liens symboliques. Les scripts du responsable ne doivent cependant pas -présumer que cette méthode est utilisée, et toute manipulation automatisée -du comportement des différents niveaux de fonctionnement doit être faite -avec le programme <prgn>update-rc.d</prgn> comme décrit plus bas, et non pas -en créant ou en supprimant eux-même les liens symboliques. -Voyez la documentation du paquet <tt>file-rc</tt> pour des renseignements sur -la mise en ½uvre de l'autre méthode. -</p> - - <p> -Ces scripts sont référencés par des liens symboliques dans les -répertoires <file>/etc/rc<var>n</var>.d</file>. Lorsque le niveau -de fonctionnement change, <prgn>init</prgn> recherche les scripts qu'il doit -exécuter dans le répertoire <file>/etc/rc<var>n</var>.d</file>, où -<tt><var>n</var></tt> est soit le niveau de fonctionnement demandé, soit -<tt>S</tt> pour le démarrage. -</p> - <p> -Les noms de ces liens sont tous de la forme -<file>S<var>mm</var><var>script</var></file> ou de la forme -<file>K<var>mm</var><var>script</var></file> ; -<var>mm</var> est un nombre à deux chiffres et <var>script</var> -est le nom du script (qui sera le même que le -véritable script dans <tt>/etc/init.d</tt>). -</p> - - <p> -Lorsque <prgn>init</prgn> change de niveau de fonctionnement, il exécute -d'abord les scripts référencés par les liens dont le nom commence -par <tt>K</tt>, chacun avec un seul argument : <tt>stop</tt>. Puis -<prgn>init</prgn> exécute les scripts préfixés par <tt>S</tt>, avec pour -chacun un seul argument : <tt>start</tt>. (Les liens appartiennent au -répertoire de <tt>/etc/rc<var>n</var>.d</tt> qui correspond au nouveau -niveau de fonctionnement.) Les liens <tt>K</tt> sont chargés d'arrêter les -services et les liens <tt>S</tt> de démarrer les services au démarrage du -niveau de fonctionnement. -</p> - <p> -Par exemple, pour passer du niveau 2 au niveau 3, <prgn>init</prgn> -exécutera d'abord tous les scripts préfixés par <tt>K</tt> qu'il trouve dans -<tt>/etc/rc3.d</tt>, puis tous les scripts de ce répertoire préfixés par -<tt>S</tt>. -Les liens qui commencent par <tt>K</tt> entraîneront l'exécution -des scripts qu'ils référencent avec l'argument <tt>stop</tt> alors que les -liens <tt>S</tt> entraîneront l'exécution des scripts avec -l'argument <tt>start</tt>. -</p> - - <p> -Le nombre à deux chiffres <var>mm</var> est utilisé pour -décider de l'ordre d'exécution des scripts : les scripts de numéros les -plus faibles sont exécutés en priorité. Par exemple les scripts <tt>K20</tt> -seront exécutés avant les scripts <tt>K30</tt>. Cela sert quand un service -doit être démarré avant un autre. Par exemple, il peut être nécessaire de -démarrer le serveur de noms <prgn>bind</prgn> avant le serveur de nouvelles -<prgn>inn</prgn> afin que <prgn>inn</prgn> puisse -positionner ses listes d'accès. -Dans ce cas, le script de démarrage de <prgn>bind</prgn> doit -avoir un numéro plus faible que le script qui démarre <prgn>inn</prgn> : - <example compact="compact"> -/etc/rc2.d/S17bind -/etc/rc2.d/S70inn - </example> -</p> - -<p> -Les deux niveaux 0 (halt) et 6 (reboot) sont légèrement différents. Dans ces -niveaux, les liens préfixés par <tt>S</tt> sont toujours appelés après les -liens préfixés par <tt>K</tt>, mais ils sont aussi appelés avec l'unique -argument <tt>stop</tt>. - </p> -<p> -De plus, quand le nom du script se termine par <tt>.sh</tt>, le script sera -créé dans le niveau <tt>S</tt> plutôt que d'être exécuté dans un sous-processus -« forké », et dans tous les autres niveaux il sera exécuté par le -programme <prgn>sh</prgn>. - </p> - - </sect1> - - <sect1> - <heading>L'écriture des scripts</heading> - - <p> -Les paquets qui mettent en service des « démons » mettront des -scripts dans <tt>/etc/init.d</tt> pour démarrer ou arrêter des services au -moment de l'amorçage ou pour un changement du niveau de fonctionnement. -Ces scripts seront nommés <tt>/etc/init.d/<var>paquet</var></tt> et ne -doivent prendre qu'un seul argument, lequel indique ce qu'il faut faire : - - <taglist> - <tag><tt>start</tt></tag> - <item><p>démarrer le service,</p></item> - - <tag><tt>stop</tt></tag> - <item><p>arrêter le service,</p></item> - - <tag><tt>restart</tt></tag> - <item><p>arrêter et redémarrer le service s'il fonctionne déjà, -sinon lancer le service</p></item> - - <tag><tt>reload</tt></tag> - <item><p>chargement d'une nouvelle configuration -du service sans réellement arrêter et redémarrer le service, - </p> -</item> - - <tag><tt>force-reload</tt></tag> <item><p> -chargement d'une nouvelle configuration si le service le permet, -sinon redémarrer le service. - </p> -</item> - </taglist> - - Les options <tt>start</tt>, <tt>stop</tt>, <tt>restart</tt> et -<tt>force-reload</tt> seront acceptées par tous les scripts -de <tt>/etc/init.d</tt> ; l'option <tt>reload</tt> est facultative. -</p> - - <p> -Les scripts de <tt>/etc/init.d</tt> doivent avoir un comportement raisonnable quand -ils sont appelés avec l'option <tt>start</tt> alors que le service tourne -déjà. Il en est de même pour l'option <tt>stop</tt> quand le service -ne tourne pas. Ils ne doivent pas tuer des processus utilisateur -appelés par mégarde. -Le meilleur moyen est généralement d'utiliser <prgn>start-stop-daemon</prgn>. -</p> -<p> -Quand un service recharge automatiquement sa configuration (comme -c'est le cas de <prgn>cron</prgn> par exemple), -l'option <tt>reload</tt> du script dans <tt>/etc/init.d</tt> -se comportera comme si la configuration avait été rechargée avec succès. -</p> - -<p> -Les scripts dans <tt>/etc/init.d</tt> seront considérés comme des fichiers de -configuration, soit en les marquant comme des <tt>conffile</tt>s (s'ils se -trouvent dans le paquet, c'est-à-dire dans le fichier .deb), soit en les -gérant correctement dans les scripts du responsable de paquet (s'ils ne sont -pas présents dans le fichier .deb) : voyez <ref id="config-files">. -C'est important car nous voulons laisser à -l'administrateur système la possibilité d'adapter ces scripts à son système -local — par exemple, désactiver un service sans désinstaller le paquet, -ou bien spécifier des options particulières sur la ligne de commande au -démarrage d'un service — tout en assurant que ses modifications ne seront -pas perdues lors de la prochaine mise à jour du paquet. -</p> - - <p> -Ces scripts ne doivent pas échouer de façon obscure quand ils trouvent dans -le système les fichiers de configuration d'un paquet supprimé ; en effet par -défaut, <prgn>dpkg</prgn> conserve ces fichiers de configuration et ne les -supprime qu'avec l'option <tt>--purge</tt>. En particulier, comme le script -<tt>init</tt> lui-même est un fichier de configuration (voir -<ref id="/etc/init.d">), il reste sur le système quand le paquet est supprimé -avec l'option <tt>remove</tt> et non pas avec l'option <tt>purge</tt>. C'est -pourquoi vous inclurez une instruction de <tt>test</tt> au début du script, -comme par exemple : - <example compact="compact"> -test -f <var>programme-exécuté-plus-tard-dans-le-script</var> || exit 0 - </example> -</p> -<p> - Dans les scripts <tt>init.d</tt>, il y a souvent des valeurs -que l'administrateur voudra changer fréquemment. Modifier ces scripts qui -sont souvent des <em>conffiles</em> demande que l'administrateur rajoute -ses modifications à chaque mise à jour du paquet et à chaque modification -des <em>conffiles</em>. Pour rendre la vie des administrateurs système moins -dure, on ne placera pas de telles valeurs configurables directement dans le -script mais plutôt dans un fichier <tt>/etc/default</tt> qui aura, de façon -classique, le même nom que le script d'<tt>init.d</tt>. Ce -fichier supplémentaire sera lu quand le script démarrera. Il doit seulement -contenir les définitions des variables et des commentaires dans le format -POSIX <prgn>sh</prgn>. Ce peut être aussi bien un <tt>conffile</tt> qu'un -fichier de configuration maintenu avec les scripts du responsable de paquet. -Voir <ref id="config-files"> pour des précisions. -</p> - -<p> -Pour s'assurer que des valeurs vitales sont toujours définies et disponibles, -le script <file>init.d</file>, affectera, avant de lire le fichier -<file>/etc/default/</file>, une valeur par défaut pour chaque variable du -shell dont il se sert ; soit avant de lire le fichier -<file>/etc/default/</file>, soit après avoir utilisé une syntaxe -de ce genre : <tt>${VAR:=default}</tt>. Et le script <file>init.d</file> -doit se comporter raisonnablement et sans échec -quand le fichier <file>/etc/default</file> est supprimé. - </p> - </sect1> - - - <sect1> - <heading>L'interfaçage avec le système d'initialisation par script</heading> - <p> -Les responsables de paquet utiliseront le modèle abstrait donné par les -programmes <prgn>update-rc.d</prgn> et <prgn>invoke-rc.d</prgn> pour gérer -la façon dont leurs scripts <prgn>postinst</prgn>, <prgn>prerm</prgn> ou -<prgn>postrm</prgn> gèrent les scripts d'initialisation. - </p> -<p> -La gestion directe des liens dans « /etc/rc?.d » et l'appel des -scripts dans <file>/etc/init.d/</file> seront faits seulement par les paquets -qui fournissent le sous-système d'initialisation (<prgn>sysv-rc</prgn> et -<prgn>file-rc</prgn>). - </p> - <sect2> - <heading>La gestion des liens</heading> -<p> -Avec le programme <prgn>update-rc.d</prgn>, les responsables de paquet peuvent -gérer la création et la suppression des liens symboliques dans -<tt>/etc/rc<var>n</var>.d</tt>, ou de leurs équivalents fonctionnels quand une -autre méthode est employée. -Les responsables de paquet peuvent s'en servir dans leurs scripts -<prgn>postinst</prgn> et <prgn>postrm</prgn>. -</p> - <p> -On ne doit pas inclure des liens symboliques dans le -<tt>/etc/rc<var>n</var>.d</tt> du système réel, ni en créer ou en supprimer -directement dans les scripts du responsable de paquet (cela échouera si le -système d'information sur les niveaux de fonctionnement utilise une autre -méthode) : on doit utiliser le programme <prgn>update-rc.d</prgn>. On ne -doit pas non plus inclure les répertoires <tt>/etc/rc<var>n</var>.d</tt> dans -l'archive. (Seul le paquet <tt>sysvinit</tt> peut le faire.) -</p> -<p> -Par défaut, <prgn>update-rc.d</prgn> démarrera les serveurs -dans chacun des niveaux de fonctionnement du système (2, 3, 4 et 5) pour le -mode multi-utilisateurs et les arrêtera dans le niveau (0) mode arrêt, -le niveau (1) mode mono-utilisateur et le niveau (6) mode redémarrage. -L'administrateur système pourra paramétrer les -niveaux de fonctionnement soit en ajoutant, supprimant ou déplaçant -les liens symboliques contenus dans <tt>/etc/rc<var>n</var>.d</tt> si la -méthode des liens symboliques est utilisée, soit en modifiant -<tt>/etc/runlevel.conf</tt> quand on utilise la méthode <tt>file-rc</tt>. -</p> - <p> -Pour obtenir le comportement par défaut pour votre paquet, -mettez dans le script <prgn>postinst</prgn> : - - <example compact="compact"> -update-rc.d <var>paquet</var> defaults - </example> - et dans votre <prgn>postrm</prgn> - <example compact="compact"> -if [ "$1" = purge ]; then -update-rc.d <var>paquet</var> remove -fi - </example> -Remarquez que si votre paquet change les niveaux de fonctionnement ou les -priorités, il vous faudra supprimer les liens puis les recréer ; sinon -les liens précédents persisteraient. Référez-vous à la documentation de -<prgn>update-rc.d</prgn>. -</p> - <p> -Le numéro d'ordre d'exécution par défaut sera égal à 20. Si l'ordre ou -le moment d'exécution du script <tt>init.d</tt> sont indifférents, utilisez -cette valeur par défaut. S'ils sont importants, vous devez en discuter avec le -responsable du paquet <prgn>sysvinit</prgn> ou envoyer -un message à <tt>debian-devel</tt>. Ceci devrait vous -aider à déterminer le numéro d'ordre d'exécution. -</p> - <p> -Pour plus d'informations sur l'utilisation d'<tt>update-rc.d</tt>, -veuillez consulter sa page de manuel -<manref name="update-rc.d" section="8">. -</p> - </sect2> - <sect2> - <heading>Comment utiliser les scripts d'initialisation</heading> - <p> -Le programme <prgn>invoke-rc.d</prgn> facilite l'appel correct d'un script -d'initialisation par les responsables de paquet ; cela comprend le -respect du niveau de fonctionnement et des contraintes définies localement -qui pourraient limiter le droit au démarrage d'un paquet, ainsi que la gestion -d'autres services. Les responsables de paquets peuvent utiliser ce programme -dans leurs scripts. - </p> -<p> -Les scripts du responsable de paquet doivent utiliser <prgn>invoke-rc.d</prgn> -pour l'appel des scripts dans <file>/etc/init.d/*</file> au lieu de les appeler -directement. - </p> - <p> -Par défaut, <prgn>invoke-rc.d</prgn> passera toute demande d'action (start, -stop, reload, restart...) au script <file>/etc/init.d</file> et filtrera les -demandes de démarrage ou de redémarrage d'un service selon ses niveaux de -fonctionnement prévus. - </p> - <p> -La plupart des paquets auront simplement à changer -<example compact="compact">/etc/init.d/<package> - <action></example> -dans leurs scripts <prgn>postinst</prgn> et <prgn>prerm</prgn> pour : -<example compact="compact"> - if which invoke-rc.d >/dev/null 2>&1; then - invoke-rc.d <var>package</var> <action> - else - /etc/init.d/<var>package</var> <action> - fi - </example> -</p> - <p> -Davantage d'informations sur l'utilisation de <prgn>invoke-rc.d</prgn> se -trouvent dans sa page de manuel <manref name="invoke-rc.d" section="8">. - </p> - </sect2> -</sect1> - - - <sect1> - <heading>L'initialisation au moment de l'amorçage</heading> - - <p> -Classiquement, un autre répertoire, <file>/etc/rc.boot</file>, contenait les -scripts exécutés seulement au démarrage. Mais on préfère maintenant -se servir de liens de <file>/etc/rcS.d</file> vers les fichiers dans -<file>/etc/init.d</file>, comme décrit dans <ref id="/etc/init.d">. -Aucun paquet ne doit placer de fichier dans <file>/etc/rc.boot</file>. -</p> -</sect1> - - - <sect1> - <heading>Exemple</heading> - - <p> -Un exemple sur lequel baser -les scripts de <file>/etc/init.d</file> se trouve dans -<file>/etc/init.d/skeleton</file>. -</p> - - </sect1> -</sect> - - - <sect> -<heading>Les messages de la console provenant des scripts <file>init.d</file></heading> - - <p> -Cette section décrit les formats des messages que les scripts du -répertoire <file>/etc/init.d</file> écrivent sur la sortie standard. -L'objectif est d'améliorer la cohérence du style Debian -en matière de séquences de démarrage et d'arrêt d'un système. Pour cette -raison, veuillez faire très attention aux détails. Nous voulons que les -messages standardisés fassent une utilisation identique des espaces, de la -ponctuation et de la casse des lettres. -</p> - <p> -Voici une liste des règles générales à respecter pour la création -de messages provenant des scripts de <file>/etc/init.d</file>. -</p> - <p> - <list> - <item> - <p> - Tous les messages tiendront sur une ligne (inférieure à 80 caractères). Ils -commenceront par une capitale et se termineront par un point « . » -et un saut de ligne (<tt>"\n"</tt>). - </p> -</item> - - -<item> - <p> -Quand vous voulez signaler que l'ordinateur est occupé (exécution d'une -tâche particulière et non pas le démarrage ou l'arrêt d'un programme), -utilisez une « ellipse », à savoir trois points <tt>...</tt>, -sans espace avant ou après les points ni de retour à la ligne. - </p> -</item> - - <item> - <p> -Concevez vos messages comme si l'ordinateur vous disait ce qu'il fait -(rendez-le poli :-), mais n'en faites pas un personnage. -Par exemple, si vous voulez dire : - <example compact="compact"> -I'm starting network daemons: nfsd mountd. - </example> - dites simplement : - <example compact="compact"> -Starting network daemons: nfsd mountd. - </example> -</p> -</item> - </list> -</p> - - <p> -Il y a des messages standard pour les situations suivantes. Ils seront -utilisés par les scripts d'<tt>init.d</tt>. -</p> - - <p> - <list> - <item> - <p>au lancement d'un démon.</p> - - <p> -Utilisez ce format si votre script démarre un ou plusieurs démons. -Le message en sortie (une seule ligne, sans espace au début) -doit ressembler à ceci : - <example compact="compact"> -Starting <var>description</var>: <var>daemon-1</var> ... <var>daemon-n</var>. - </example> - L'élément <var>description</var> décrira le sous-système dont fait -partie le ou les démons alors que les éléments de <var>daemon-1</var> jusqu'à -<var>daemon-n</var> indiqueront chacun le nom du démon (habituellement le nom -du fichier programme). -</p> - <p> -Par exemple, la sortie de <tt>/etc/init.d/lpd</tt> ressemble à : - <example compact="compact"> -Starting printer spooler: lpd. - </example> -</p> - - <p> -ce qui peut être obtenu en écrivant dans le script : - <example compact="compact"> -echo -n "Starting printer spooler: lpd" -start-stop-daemon --start --quiet --exec /usr/sbin/lpd -echo "." - </example> -Si vous devez démarrer plusieurs démons, vous pouvez écrire le code -suivant : - <example compact="compact"> -echo -n "Starting remote file system services:" -echo -n " nfsd"; start-stop-daemon --start --quiet nfsd -echo -n " mountd"; start-stop-daemon --start --quiet mountd -echo -n " ugidd"; start-stop-daemon --start --quiet ugidd -echo "." - </example> -L'utilisateur peut savoir ainsi ce qui prend tant de temps et quand -le dernier démon a été démarré. Vous serez précis avec les espaces : dans -l'exemple précédent un administrateur système -peut facilement commenter une ligne s'il ne veut pas lancer un démon -particulier ; le message affiché reste correct. - </p> -</item> - - <item> - <p>quand un paramètre système est positionné.</p> - - <p> -Si vous devez positionner différents paramètres au démarrage du système, -vous utiliserez ce format : - <example compact="compact"> -Setting <var>parameter</var> to "<var>value</var>". - </example></p> - - <p> -vous pouvez utiliser le message suivant qui place correctement les -guillemets : - <example compact="compact"> -echo "Setting DNS domainname to \"$domainname\"." - </example></p> - - <p> - -<!-- IMPORTANT : il n'y a qu'un caractère " dans la ligne ci-dessous, --> -<!-- mais un 2e a été ajouté temporairement pour la coloration syntaxique --> -Il faut noter que le même caractère (<tt>"</tt>) est utilisé pour les -guillemets à gauche et à droite. Un accent grave (<tt>`</tt>) n'est pas -un guillemet gauche ; de même, une apostrophe (<tt>'</tt>) n'est pas un -guillemet droit. - </p></item> - - <item> - <p>quand on arrête ou relance un démon.</p> - - <p> -Quand vous arrêtez ou relancez un démon, vous devez afficher un message -similaire à celui du démarrage en remplaçant <tt>Starting</tt> par -<tt>Stopping</tt> ou <tt> Restarting</tt>. - </p> - - <p> -Le message à l'arrêt du démon d'impression sera : - <example compact="compact"> -Stopping printer spooler: lpd. - </example></p></item> - - <item> - <p>quand on exécute un programme.</p> - - <p> -Il y a plusieurs cas où vous devez lancer un programme soit au démarrage -soit à l'arrêt du système pour exécuter des tâches spécifiques. Par -exemple, initialiser l'heure système à l'aide de <prgn>netdate</prgn> ou -bien tuer tous les processus à l'arrêt du système. Vos messages suivront -cet exemple : - <example compact="compact"> -Doing something very useful...done. - </example> -Vous afficherez le <tt>done.</tt> immédiatement après la fin de la tâche -de manière que l'utilisateur soit renseigné sur le pourquoi de son attente. -Pour cela, mettez dans votre script : - <example compact="compact"> -echo -n "Doing something very useful..." -do_something -echo "done." - </example> -</p></item> - - <item> - <p>quand la configuration est rechargée.</p> - - <p> -Quand un démon est forcé de recharger ses fichiers de configuration, -vous utiliserez des messages qui suivent le format suivant : - <example compact="compact"> -Reloading <var>description</var> configuration...done. - </example> -où <var>description</var> est identique au message de démarrage du démon. -</p> -</item> - </list></p> - </sect> - <sect> - <heading>Les travaux de « Cron »</heading> - - <p> -Les paquets ne doivent pas modifier le fichier de configuration -<file>/etc/crontab</file>, ni les fichiers contenus dans -<file>/var/spool/cron/crontabs</file>. -</p> - - <p> -Quand un paquet veut confier une tâche au programme <prgn>cron</prgn>, -il placera un fichier de même nom que lui dans l'un des répertoires -suivants : - <example compact="compact"> -/etc/cron.daily -/etc/cron.weekly -/etc/cron.monthly - </example> -Comme l'indique le nom de ces répertoires, les fichiers sont exécutés une -fois par jour, une fois par semaine ou une fois par mois. -Le rythme exact est contenu dans <file>/etc/crontab</file>. - </p> - <p> -Tous les fichiers installés dans l'un de ces répertoires -doivent être des scripts (scripts shell, Perl, etc.) -pour que l'administrateur du système local puisse facilement les modifier. -De plus ils seront traités comme des fichiers de configuration. -</p> -<p> -Quand une tâche doit s'exécuter plus souvent -que quotidiennement, le paquet installera un fichier -<tt>/etc/cron.d/<var>paquet</var></tt>. Ce fichier a la même -syntaxe que le fichier <tt>/etc/crontab</tt> et est traité automatiquement -par <prgn>cron</prgn>. Il doit aussi être considéré comme un fichier de -configuration. (On remarquera que le programme <prgn>anacron</prgn> ne se sert -pas des scripts dans le répertoire <tt>/etc/cron.d</tt>. Vous ne -l'utiliserez donc que pour des tâches qui peuvent être omises si le système -ne tourne pas.) -</p> - <p> - -Les scripts ou les entrées de la « crontab » dans ces répertoires -doivent vérifier d'abord la présence de tous les fichiers nécessaires -à leur exécution. Sinon, il y aura des problèmes avec les paquets -qui ont été supprimés sans l'option « purge », -car, dans ce cas, les fichiers de configuration sont conservés. -</p> -</sect> - - - <sect id="menus"> - <heading>Les menus</heading> - - <p> -Le paquet Debian <tt>menu</tt> propose une interface standard entre les -paquets qui fournissent des applications et -<em>les programmes offrant des menus</em> (aussi bien des gestionnaires de -fenêtres sous X que des programmes qui fournissent des menus en mode -texte, comme par exemple <prgn>pdmenu</prgn>). -</p> - - <p> -Les paquets renseigneront une rubrique de menu pour toutes les -applications qui, pour leur usage normal, n'ont pas besoin -de recevoir d'argument particulier depuis la ligne de commande. -Ainsi les utilisateurs du paquet <em>menu</em> auront automatiquement des -rubriques de menu pour ces applications dans leurs -gestionnaires de fenêtres et dans des shells comme <tt>pdmenu</tt>. -</p> -<p> -Les entrées de menu suivront les règles contenues dans le texte -<tt>menu-policy</tt>. - </p> -<p> -On peut trouver ces règles dans les fichiers <tt>menu-policy</tt> du paquet -<tt>debian-policy</tt>. Elles sont aussi disponibles sur les miroirs web de -Debian, -<tt><url name="/doc/packaging-manuals/menu-policy/" - id="https://www.debian.org/doc/packaging-manuals/menu-policy/"></tt>. - </p> - - <p> -Veuillez-vous référer au document <em>Debian Menu System</em> -livré avec le paquet <package>menu</package> pour plus d'informations -sur la manière de déclarer vos applications et vos documents web. -</p> -</sect> - - <sect id="mime"> - <heading>Outils pour le multimédia</heading> - - <p> - MIME (Multipurpose Internet Mail Extensions, RFC 2045-2049) est une -manière de coder les fichiers et les flux de données et de donner des -informations supplémentaires, telles que, par exemple, leur type (par exemple, -audio ou vidéo) et leur format (par exemple, PNG, HTML, MP3). - </p> - - <p> -La déclaration de la capacité à traiter les types « MIME » -permet à des programmes comme les logiciels de courriers (MUA) ou les butineurs -web de faire appel à ces outils pour lire, éditer ou afficher les types -« MIME » qu'ils ne reconnaissent pas directement. - </p> - <p> -Les paquets qui proposent des solutions pour lire, afficher, jouer, composer, -modifier ou imprimer les types « MIME » déclareront cette -capacité, et se conformeront ainsi à l'actuelle directive concernant -« MIME ». - </p> - <p> -On peut trouver les règles concernant MIME dans le fichier -<tt>mime-policy</tt> du paquet <tt>debian-policy</tt>. Elles sont aussi -disponibles sur les miroirs web de Debian, - <tt><url name="/doc/packaging-manuals/mime-policy/" - id="https://www.debian.org/doc/packaging-manuals/mime-policy/"></tt>. - </p> - - </sect> - - <sect> - <heading>La configuration du clavier</heading> - - <p> -Pour obtenir une configuration cohérente du clavier de façon que tous -les programmes interprètent les événements clavier de la même manière, -tous les programmes de la distribution Debian doivent suivre les directives -suivantes : -</p> - - <p> -Les touches suivantes doivent être interprétées ainsi : - - <taglist> - <tag><tt><--</tt></tag> - <item><p>supprime le caractère à gauche du curseur</p></item> - - <tag><tt>Delete</tt></tag> - <item><p>supprime le caractère à droite du curseur</p></item> - - <tag><tt>Control+H</tt></tag> - <item><p>emacs : le préfixe d'aide</p></item> - </taglist> - -L'interprétation des événements clavier sera indépendante du terminal utilisé -(la console, X Window, une session rlogin ou telnet, etc.). -</p> - - <p> -La liste suivante explique comment les différents programmes -seront configurés pour y arriver : -</p> - - <p> - <list> - <item><p><tt><--</tt> génère KB_BackSpace sous X.</p></item> - - <item><p><tt>Delete</tt> génère KB_Delete sous X.</p></item> - - <item> - <p> -Le mécanisme « X translations » est configuré pour que -<tt>KB_Backspace</tt> déclenche ASCII DEL et que <tt>KB_Delete</tt> déclenche -<tt>ESC [ 3 ~</tt> (c'est la séquence d'échappement du vt220 pour la touche -« delete character »). Il faut charger les ressources sur tous les -serveurs locaux « X » à l'aide de <prgn>xrdb</prgn> et ne pas -utiliser les valeurs par défaut des applications pour que les ressources de -translation correspondent aux choix de <prgn>xmodmap</prgn>. -</p> -</item> - - <item> - <p> - La console Linux est configurée pour que la touche <tt><--</tt> -déclenche DEL et <tt>Delete</tt> déclenche <tt>ESC [ 3 ~</tt>. -</p></item> - <item><p> -Les applications X sont configurées pour que <tt><--</tt> efface -à gauche et <tt>Delete</tt> efface à droite. Les applications Motif -fonctionnent déjà de cette manière. - </p> -</item> - - <item><p>Les terminaux auront <tt>stty erase ^?</tt> .</p></item> - - <item><p> -L'entrée <tt>xterm</tt> dans terminfo aura <tt>ESC [ 3~</tt> -pour <tt>kdch1</tt>, tout comme <tt>TERM=linux</tt> et <tt>TERM=vt220</tt>. - </p> -</item> - - <item><p> -Emacs est programmé pour associer <tt>KB_Backspace</tt> ou le caractère -<tt>stty erase</tt> à <tt>delete-backward-char</tt>. Il associe -<tt>KB_Delete</tt> ou <tt>kdch1</tt> à <tt>delete-forward-char</tt> et -associe <tt>^H</tt> à <tt>help</tt> comme toujours. - </p> -</item> - - <item><p> -D'autres applications utilisent le caractère <tt>stty erase</tt> et -<tt>kdch1</tt> comme deux touches d'effacement. ASCII DEL est la -« suppression du caractère précédent ». <tt>kdch1</tt> est la -« suppression du caractère sous le curseur ». - </p> -</item> - </list> -</p> - - <p> -Tout cela résout le problème sauf dans les cas suivants : - </p> - - <p> - <list> - <item><p> -Certains terminaux ont une touche <tt><--</tt> qui ne peut pas -produire autre chose que <tt>^H</tt>. Sur ces terminaux l'aide -d'Emacs ne sera pas accessible à partir de <tt>^H</tt> (en supposant -que le caractère « stty erase » est prioritaire dans Emacs et qu'il -ait été bien configuré). Les touches <tt>M-x help</tt> ou <tt>F1</tt> (si -elles sont disponibles) peuvent être utilisées en remplacement. - </p> -</item> - - <item><p> -Certains systèmes utilisent <tt>^H</tt> pour <tt>stty erase</tt>. -Cependant les versions modernes de <prgn>telnet</prgn> et toutes les versions -de <prgn>rlogin</prgn> diffusent les configurations <tt>stty</tt>. Presque -toutes les versions d'UNIX acceptent <tt>stty erase</tt>. Quand la -configuration <tt>stty</tt> n'est pas reproduite correctement, on peut -résoudre le problème en utilisant <tt>stty</tt> manuellement. -</p></item> - - <item><p> -Certains systèmes (notamment des versions antérieures de Debian) utilisent -<prgn>xmodmap</prgn> pour que <tt><--</tt> et <tt>Delete</tt> -déclenchent <tt>KB_Delete</tt>. Nous pouvons changer le comportement de -leurs clients X à -l'aide des mêmes ressources que nous avons utilisées ou bien -configurer nos propres clients avec les ressources de ces systèmes dans le cas -inverse. Sur des serveurs configurés de cette manière, <tt><--</tt> -fonctionnera mais pas <tt>Delete</tt>. - </p> -</item> - - <item><p> -Certains systèmes d'exploitation ont d'autres configurations pour -<tt>kdch1</tt> dans leur base de données <tt>terminfo</tt> pour <tt>xterm</tt> -et consort. Sur ces systèmes, la touche <tt>Delete</tt> ne fonctionnera pas -quand vous vous connecterez depuis un système qui suit notre politique. Mais -<tt><--</tt> fonctionnera. - </p> -</item> -</list> -</p> -</sect> - - <sect> - <heading>Les variables d'environnement</heading> - - <p> -Un programme ne doit pas dépendre des variables d'environnement -pour déterminer des valeurs par défaut ; -cela impliquerait de définir ces variables globalement au niveau -du système par exemple dans <file>/etc/profile</file>, ce que tous les shells -ne permettent pas. -</p> - <p> -Quand un programme dépend de variables d'environnement -pour sa configuration, il doit prévoir, en leur absence, une configuration -raisonnable par défaut. -Si c'est difficile à faire (p. ex. quand le code source d'un programme non -libre n'est pas disponible), le programme doit être remplacé par un petit -script shell enveloppant (« wrapper ») qui positionne les variables -d'environnement et appelle le programme initial. -</p> - <p> -Voici un exemple de script enveloppant écrit dans ce but : - - <example compact="compact"> -#!/bin/sh -BAR=${BAR:-/var/lib/fubar} -export BAR -exec /usr/lib/foo/foo "$@" - </example></p> - - <p> -De plus, comme <file>/etc/profile</file> est un fichier de configuration -du paquet <prgn>bash</prgn>, aucun autre paquet ne peut y ajouter -des variables d'environnement ou des commandes. -</p> -</sect> - - <sect id="doc-base"> - <heading>Enregistrer des documents avec doc-base</heading> - - <p> - Le paquet <package>doc-base</package> implémente un mécanisme souple -pour la gestion et la présentation de la documentation. Il est recommandé -que chaque paquet Debian enregistre les documents qu'il fournit (autres que -les pages du manuel) avec <package>doc-base</package>, en installant un -fichier de contrôle <package>doc-base</package> grâce aux scripts -<prgn>install-docs</prgn>. Cela se fait au moment de l'installation et lors -de la suppression du paquet, l'enregistrement des documents est supprimé. - </p> - <p> -Veuillez vous reporter à la documentation du paquet -<package>doc-base</package> pour des précisions. - </p> - </sect> - - -</chapt> - - <chapt id="files"> - <heading>Les fichiers</heading> - - - <sect> - <heading>Les fichiers binaires</heading> - - <p> -Deux paquets ne doivent pas installer des programmes qui ont des -fonctions différentes tout en ayant le même nom. -Le cas de deux programmes avec les mêmes fonctionnalités -mais des implémentations différentes est traité <em>via</em> -« alternatives » ou par le mécanisme « Conflicts ». Voir -<ref id="maintscripts"> et <ref id="conflicts">. -Si ce cas se produit, un des deux programmes doit changer de nom. -Les responsables rapporteront ce problème sur la liste de distribution -<tt>debian-devel</tt> pour essayer de trouver un consensus. Si aucun -consensus n'est trouvé, le nom des <em>deux</em> programmes doit être -changé. -</p> - - <p> -Par défaut, lors de la construction d'un paquet, tous les binaires créés -incluront des informations pour le débogage et seront compilés avec -optimisation. Vous mettrez aussi tous les avertissements de compilation -qui vous semblent raisonnables : cela facilite la vie des responsables -de portage qui peuvent consulter les journaux de construction en cas de -problèmes. Pour le cas de la programmation en C, -on utilisera les paramètres de compilation suivants : - <example compact="compact"> -CC = gcc -CFLAGS = -O2 -g -Wall # les bonnes options peuvent différer selon les programmes -LDFLAGS = # aucun -INSTALL = install -s # (ou bien utiliser strip sur les fichiers dans debian/tmp) - </example> -</p> - <p> -On remarquera que tous les binaires installés sont épurés de tout -symbole, soit en utilisant l'option <tt>-s</tt> de <prgn>install</prgn>, -soit en appliquant le programme <prgn>strip</prgn> sur les binaires -après qu'ils ont été copiés dans <tt>debian/tmp</tt> mais avant -qu'une arborescence ne soit faite pour le paquet. -</p> -<p> -Bien que les binaires dans l'arbre de construction soient compilés par -défaut avec des informations pour le débogage, il est souvent difficile de -déboguer les programmes qui sont soumis à des optimisations pour compilateur. -Pour cette raison, il est conseillé de reconnaître la variable d'environnement -standard <tt>DEB_BUILD_OPTIONS</tt>. Cette variable peut contenir plusieurs -drapeaux de manière à pouvoir modifier la construction et la compilation -d'un paquet. - </p> - <p> - <taglist> - <tag>noopt</tag> - <item> - <p> -La présence de cette chaîne signifie que le paquet ne sera soumis qu'à un -minimum d'optimisation. Pour les programmes en C, il vaut mieux ajouter -<tt>-O0</tt> à <tt>CFLAGS</tt> (bien que ce soit la valeur par défaut). Il peut -arriver que quelques programmes ne se construisent pas ou ne fonctionnent pas -à ce niveau d'optimisation : il peut être nécessaire, par exemple, -d'utiliser <tt>-O1</tt>. - </p> - </item> - <tag>nostrip</tag> - <item> - <p> -Cette chaîne signifie que les symboles de débogage ne seront pas enlevés -du binaire pendant l'installation de manière à ce que les informations -pour le débogage puissent être incluses dans le paquet. - </p> - </item> - </taglist> - </p> -<p> -Le petit makefile suivant explique comment implémenter les options de -construction ; vous aurez sans doute à l'adapter aux conditions de votre -paquet. - <example compact="compact"> -CFLAGS = -Wall -g -INSTALL = install -INSTALL_FILE = $(INSTALL) -p -o root -g root -m 644 -INSTALL_PROGRAM = $(INSTALL) -p -o root -g root -m 755 -INSTALL_SCRIPT = $(INSTALL) -p -o root -g root -m 755 -INSTALL_DIR = $(INSTALL) -p -d -o root -g root -m 755 - -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) -CFLAGS += -O0 -else -CFLAGS += -O2 -endif -ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) -INSTALL_PROGRAM += -s -endif - </example> - </p> -<p> -C'est au responsable du paquet de décider des meilleures options -de compilation. Certains binaires (comme ceux qui font des -calculs intensifs) fonctionnent mieux avec certaines options -(p. ex. <tt>-O3</tt>) ; faites comme vous voulez. Utilisez ces options avec -discernement : pour de bonnes raisons, pas seulement pour elles-mêmes. -Ne craignez pas de remplacer les options qu'avait choisies l'auteur du -programme original : elles sont souvent inappropriées dans votre environnement. -</p> -</sect> - - <sect id="libraries"> - <heading>Les bibliothèques</heading> - - <p> -Si le paquet est <strong>architecture: any</strong>, alors les options de -compilation et de liaison de la bibliothèque partagée doivent inclure -<tt>-fPIC</tt>, sinon le paquet ne se construira pas sur certaines des -architectures prises en charge<footnote> - <p> - Si vous utilisez GCC, <tt>-fPIC</tt> produira du code avec du code - indépendant de la position relogeable, ce qui est nécessaire pour - la plupart des architectures pour créer une bibliothèque partagée, - avec i386 et peut-être quelques autres où le code non indépendant - de la position est permis dans une bibliothèque partagée.. - </p> - <p> - Le code indépendant de la position peut avoir un impact négatif - sur les performance, en particulier sur <tt>i386</tt>. Cependant, - dans la plupart des cas, la perte de performance doit être mesurée - par rapport à la mémoire gaspillée sur les quelques architectures - où du code non indépendant de la position est même possible. - </p> -</footnote>. Toute exception à cette règle doit être discutée sur la liste de -diffusion <em>debian-devel@lists.debian.org</em> et un consensus général -obtenu. Les raisons pour ne pas compiler avec l'option <tt>-fPIC</tt> doivent -être notifiées dans un fichier <tt>README.Debian</tt> et une attention -particulière doit être prise pour restreindre l'architecture ou pour s'arranger -pour que <tt>-fPIC</tt> soit utilisé sur les architectures où cela est -nécessaire.<footnote> - <p> - Parmi les raisons pour lesquelles ceci peut être nécessaire, la - bibliothèque peut contenir du code assembleur écrit manuellement - qui n'est pas relogeable, l'impact de performance peut être - excessif pour des bibltiohèques de calcul intensif et des raisons - similaires. - </p> - </footnote> - </p> - <p> -Pour les bibliothèques statiques, le cas général est de ne pas avoir de code -relogeable car il n'y a pas de bénéfice sauf dans des cas spécifiques ; -c'est pourquoi la version statique ne doit pas être compilée avec l'option -<tt>-fPIC</tt>. Toute exception à cette règle doit être discutée sur la liste de -diffusion <em>debian-devel@lists.debian.org</em> et les raisons pour compiler -avec l'option <tt>-fPIC</tt> doivent être notifiées dans le fichier -<tt>README.Debian</tt>. <footnote> - <p> -Parmi les raisons pour lier des bibliothèques statiques avec l'option -<tt>-fPIC</tt>, par exemple, on peut avoir besoin d'une API Perl pour une -bibliothèque en développement rapide et qui a une API instable, des -bibliothèques partagées sont alors sans intérêt à ce moment du développement de -la bibliothèque. Dans ce cas, comme perl a besoin d'une bibliothèque avec du -code relogeable, il peut y avoir un intérêt de créer une bibliothèque statique -avec du code relogeable. Une autre raison citée est si vous distillez plusieurs -bibliothèques dans une bibliothèque partagée commune comme le fait -<tt>mklibs</tt> dans le projet de l'installateur Debian. - </p> - </footnote> - </p> - <p> -En d'autres mots, si à la fois une bibliothèque partagée et une bibliothèque -statique sont à construire, chaque source (fichiers <tt>*.c</tt> pour -les sources C, par exemple) devra être compilé deux fois dans le cas normal. - </p> - - <p> -Vous devez indiquer l'option <tt>-D_REENTRANT</tt> de <prgn>gcc</prgn> -quand vous compilez une bibliothèque (statique ou dynamique) pour qu'elle -soit compatible avec les <em>threads</em> Linux. -</p> - <p> -Bien que les outils de construction ne respectent pas cette règle, les -bibliothèques partagées, tout comme les binaires, doivent être liées à toute -bibliothèque dont elles utilisent les symboles. Cela permet le bon -fonctionnement du système <qref id="sharedlibs-shlibdeps">shlibs</qref> et -cela garantit que toutes les bibliothèques peuvent être ouvertes avec -<tt>dlopen()</tt>. Les responsables de paquet peuvent utiliser gcc avec -l'option <tt>-Wl,-z,defs</tt> lors de la construction d'une bibliothèque -partagée. Cette option effectuant la résolution des symboles au moment de -la construction, une référence à une bibliothèque manquante sera rapidement -transformée en erreur fatale. - </p> - - <p> -Toutes les bibliothèques partagées qu'on installe seront épurées de tout -symbole par : - <example compact="compact"> -strip --strip-unneeded <var>votre-bibliothèque</var> - </example> -L'option <tt>--strip-unneeded</tt> fait que <prgn>strip</prgn> enlève -uniquement les symboles qui ne sont pas utiles au mécanisme de réallocation. -Les bibliothèques partagées fonctionnent parfaitement bien quand elles -sont épurées, car les symboles de liens dynamiques -sont dans une autre partie du fichier objet « ELF » <footnote> <p> -Vous pourriez aussi utiliser les options <tt>--remove-section=.comment</tt> et -<tt>--remove-section=.note</tt> sur les bibliothèques partagées et sur les -exécutables, et l'option <tt>--strip-debug</tt> sur les bibliothèques -statiques. - </p> -</footnote>. -</p> - - <p> -Il faut noter que dans certaines circonstances, il peut être utile d'installer -une bibliothèque non épurée, p. ex. pour la construction d'un paquet d'aide au -débogage. -</p> -<p> -Les fichiers objet partagés (comme les fichiers <file>.so</file>) qui ne sont -pas des bibliothèques publiques, c'est-à-dire que des exécutables tiers (les -binaires d'autres paquets) ne peuvent s'y lier, seront installés dans des -sous-répertoires de <tt>/usr/lib</tt>. De tels fichiers n'ont pas à se plier -aux règles qui gouvernent les bibliothèques partagées ordinaires ; mais -ils ne doivent pas être exécutables et seront épurés <footnote> -<p> -Les « plug-ins », ces objets internes partagés, chargés -dynamiquement par des programmes en utilisant -<manref name="dlopen" section="3">, en sont un exemple. - </p> - </footnote>. -</p> -<p> -Les paquets contenant des bibliothèques partagées qui peuvent être liées -à d'autres binaires mais qui, pour quelque raison <em>contraignante</em>, ne -peuvent être installées dans le répertoire <tt>/usr/lib</tt>, peuvent -installer les bibliothèques partagées dans des sous-répertoires de -<tt>/usr/lib</tt> ; dans ce cas, ils ajouteront ce répertoire dans -<tt>/etc/ld.so.conf</tt> avec le script de <em>post-installation</em> du -paquet et le supprimeront avec le script de <em>post-removal</em>. - </p> - - <p> -Un nombre toujours croissant de paquets utilisent <prgn>libtool</prgn> pour -l'édition de liens. La plus récente version de « GNU libtools -(>= 1.3a) » peut se servir avantageusement des meta-données contenues -dans les fichiers (<tt>*.la</tt>) de <prgn>libtool</prgn>. Le principal -avantage de ces fichiers est que <prgn>libtool</prgn> peut conserver ces -meta-données et donc y accéder en fonction des bibliothèques qu'il construit. -<prgn>Libtool</prgn> cherche ces fichiers et les renseignements -utiles qu'ils contiennent à propos des bibliothèques (p. ex. les bibliothèques -nécessaires pour une édition de liens statiques). Ils sont aussi -<em>indispensables</em> aux programmes utilisant <tt>libltdl</tt> <footnote> -<p> -Sans doute, <prgn>libtool</prgn> peut faire de l'édition de liens avec des -bibliothèques qui n'ont pas de fichier <tt>.la</tt> ; mais, n'étant qu'un -simple script shell, il peut augmenter considérablement le temps de -compilation d'un paquet s'il doit, pour chaque bibliothèque et chaque -fois qu'elle est liée, déduire tous ces renseignements des premiers principes. -Avec l'apparition de «<prgn>libtool-1.4</prgn> (et dans une moindre mesure de -<prgn>libtool-1.3</prgn>), les fichiers <tt>.la</tt> gardent des -renseignements sur les dépendances entre bibliothèques qui ne peuvent pas -être nécessairement déduits une fois détruit le fichier <tt>.la</tt>. - </p> - </footnote>. - </p> - <p> -Les paquets qui se servent de <prgn>libtool</prgn> pour créer des -bibliothèques partagées mettront les fichiers <tt>.la</tt> dans les -paquets <tt>-dev</tt> ; dans le cas où un paquet compte sur la bibliothèque -<tt>libltdl</tt> de <prgn>libtool</prgn>, les fichiers <tt>.la</tt> iront dans -le paquet de la bibliothèque. - </p> - - <p> -Vous devez vous assurer que vous n'utilisez que les versions diffusées des -bibliothèques partagées pour construire vos paquets ; dans le cas -contraire, les autres utilisateurs ne pourront pas exécuter vos binaires -correctement. Produire des paquets sources qui dépendent de compilateurs -non diffusés est habituellement une mauvaise idée. -</p> -</sect> - <sect> - <heading>Les bibliothèques partagées</heading> - -<p> -Cette section a été déplacée dans <ref id="sharedlibs">. - </p> -</sect> - - <sect id="scripts"> - <heading>Les scripts</heading> - - <p> -Tous les scripts de commandes, y compris les scripts inclus dans un paquet -par le responsable et utilisés par <prgn>dpkg</prgn>, commenceront -par <tt>#!</tt> et le nom du shell interpréteur. -</p> - - <p> -Pour les scripts Perl, c'est <tt>#!/usr/bin/perl</tt>.</p> - - <p> -Quand des scripts sont installés dans un répertoire du PATH système, le nom du -script ne devrait pas inclure d'extension comme <tt>.sh</tt> ou <tt>.pl</tt> -indiquant le langage de programmation actuellement utilisé pour l'implémenter. - </p> - - <p> -Les scripts shell (<prgn>sh</prgn> et <prgn>bash</prgn>) commenceront presque -systématiquement par <tt>set -e</tt> pour que les erreurs soient -détectées. Tous les scripts utiliseront <tt>set -e</tt> ou -vérifieront l'état de sortie de <em>toutes</em> les commandes. -</p> - - <p> -L'interpréteur shell de base <tt>/bin/sh</tt> peut être -un lien symbolique vers n'importe quel shell compatible POSIX, si -<tt>echo -n</tt> ne produit pas une nouvelle ligne <footnote><p> -La charte Debian indique que <tt>/bin/sh</tt> suit la norme POSIX, mais -<tt>echo -n</tt> est largement utilisé dans la communauté Linux (dans cette -charte, dans les sources du noyau Linux, dans beaucoup de scripts Debian, -etc.). Ce mécanisme est valable mais n'est pas demandé par POSIX, -d'où cet ajout explicite. D'autre part, la rumeur dit que ce mécanisme -doit devenir de toute façon obligatoire dans la LSB.</p></footnote>. -Les scripts shell indiquant <tt>/bin/sh</tt> comme interpréteur ne doivent donc -utiliser que des caractéristiques POSIX. Si un script a besoin des -caractéristiques non-POSIX d'un interpréteur, celui-ci doit être spécifié -dans la première ligne du script (par exemple <tt>#!/bin/bash</tt>). Son paquet -doit dépendre du paquet qui fournit le shell (à moins que le -paquet ne soit marqué « Essential », comme par exemple pour -<prgn>bash</prgn>). -</p> - <p> -Quand c'est possible, on peut vouloir limiter les scripts aux -caractéristiques POSIX de manière à utiliser l'interpréteur -<file>/bin/sh</file>. Si votre script fonctionne avec <prgn>dash</prgn> -(anciennement <prgn>ash</prgn>), il est probablement -conforme à POSIX, mais en cas de doute, utilisez <tt>/bin/bash</tt>. -</p> - <p> -Les scripts Perl détecteront les erreurs survenant lors de tous les -appels système, comme <tt>open</tt>, <tt>print</tt>, <tt>close</tt>, -<tt>rename</tt> et <tt>system</tt>. -</p> -<p> -Les shells <prgn>csh</prgn> et <prgn>tcsh</prgn> seront évités comme langage -de script. Référez-vous au -document <em>Csh Programming Considered Harmful</em> (Pourquoi -programmer en Csh est risqué), l'une des FAQ du groupe -usenet <tt>comp.unix.*</tt>. Il peut être trouvé sur -<url id="http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/">. -Si un paquet original utilise des scripts <prgn>csh</prgn> -vous devez vous assurer qu'ils commencent par -<tt>#!/bin/csh</tt> et vous devez rendre votre paquet -dépendant du paquet virtuel <prgn>c-shell</prgn>. -</p> - <p> -Tout script qui crée des fichiers dans des répertoires où tout le monde peut -écrire, (p. ex. dans <tt>/tmp</tt>) doit utiliser un mécanisme qui -provoquera une erreur de façon atomique si un fichier de même nom existe déjà. -</p> - - <p> -À cet usage, le système Debian de base fournit -les utilitaires <prgn>tempfile</prgn> et <prgn>mktemp</prgn>. -</p></sect> - - <sect> - <heading>Les liens symboliques</heading> - - <p> -En général, les liens symboliques à l'intérieur d'un répertoire de premier -niveau seront relatifs alors que les liens symboliques qui pointent -d'un répertoire de premier niveau vers un autre répertoire de premier niveau -seront absolus. Un répertoire de premier niveau est un sous-répertoire -du répertoire racine <tt>/</tt>. -</p> - - <p> -De plus, les liens symboliques doivent utiliser un nom de chemin le plus -court possible ; on évitera par exemple le chemin <tt>foo/../bar</tt>. -</p> - <p> -On remarquera que pour créer un lien relatif avec <prgn>ln</prgn>, -il n'est pas nécessaire que le fichier cible soit relatif au répertoire où est -exécuté <prgn>ln</prgn> ; de même il n'est pas nécessaire de se déplacer dans -le répertoire où vous désirez créer le lien. -Donnez simplement à <prgn>ln</prgn> comme premier argument -la chaîne de caractères qui représentera la cible du lien (cette -chaîne doit être un chemin relatif au répertoire contenant le lien). -</p> - <p> -Par exemple, dans votre <prgn>Makefile</prgn> ou -dans <tt>debian/rules</tt>, vous pouvez écrire : - <example compact="compact"> -ln -fs gcc $(prefix)/bin/cc -ln -fs gcc debian/tmp/usr/bin/cc -ln -fs ../sbin/sendmail $(prefix)/bin/runq -ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq - </example></p> - - <p> -Un lien symbolique vers un fichier comprimé aura toujours -le même suffixe que le fichier référencé. -(Par exemple, si le fichier <tt>foo.gz</tt> est -référencé par un lien symbolique, le nom du lien doit -aussi se terminer par « <tt>.gz</tt> », comme par exemple -<tt>bar.gz</tt>.) -</p> -</sect> - - <sect> - <heading>Les fichiers de périphérique</heading> - - <p> -Un paquet ne doit pas contenir de fichiers de périphérique -dans son arborescence. -</p> - <p> -Si un paquet a besoin d'un fichier de périphérique particulier -qui n'est pas inclus dans le système de base, il doit -appeler <prgn>MAKEDEV</prgn> dans le script <prgn>postinst</prgn>, -après avoir prévenu l'utilisateur <footnote> - <p> -On peut prévenir l'utilisateur par un message de debconf dont la -priorité sera basse, ou bien par un <em>echo</em> (printf). - </p> - </footnote>. -</p> - <p> -Un paquet ne doit pas supprimer de fichier de périphérique -dans le script <prgn>postrm</prgn> ou dans un autre script. -Ceci doit être laissé à l'initiative de l'administrateur système. -</p> - <p> -Debian utilise les périphériques série <tt>/dev/ttyS*</tt>. Les programmes qui -utilisent les anciens périphériques <tt>/dev/cu*</tt> seront -modifiés pour utiliser <tt>/dev/ttyS*</tt>. -</p> - </sect> - - <sect id="config-files"> - <heading>Les fichiers de configuration</heading> - <sect1> - <heading>Définitions</heading> - <p> - <taglist> - <tag>fichier de configuration</tag> - <item><p> -C'est un fichier qui influe sur le fonctionnement d'un programme, -ou bien qui donne des renseignements particuliers à un site ou à un -hôte, autrement dit un fichier qui singularise le comportement d'un programme. -Classiquement, les fichiers de configuration sont faits pour être modifiés -par l'administrateur système (s'il en a besoin ou s'il le souhaite) de -manière à se conformer aux règles locales ou bien à obtenir un -fonctionnement plus utile au site. -</p> - </item> - - - <tag><tt>conffile</tt></tag> - <item><p> -C'est un fichier répertorié dans le fichier <tt>conffiles</tt> -d'un paquet ; <prgn>dpkg</prgn> en fait un usage particulier -(voir <ref id="configdetails">). -</p> - </item> - </taglist> - </p> - - <p> -Cette distinction est importante : ce ne sont pas des concepts -interchangeables. Presque tous les <tt>conffile</tt>s sont des fichiers de -configuration, mais beaucoup de fichiers de configuration ne sont pas des -<tt>conffiles</tt>. - - </p> - <p> -Il faut noter que les scripts qui renferment des informations de configuration -(ainsi la plupart des fichiers de <tt>/etc/default</tt> et de -<tt>/etc/cron.{daily,weekly,monthly}</tt>) sont <em>de facto</em> des -fichiers de configuration et seront traités comme tels. -</p> - </sect1> -<sect1> -<heading>Emplacement</heading> - -<p> -Tout fichier de configuration créé ou utilisé par un paquet doit se trouver -dans le répertoire <file>/etc</file>. S'ils sont nombreux, on envisagera la -création d'un sous-répertoire de <file>/etc</file> qu'on nommera d'après le -le nom du paquet. -</p> -<p> -Quand un paquet crée ou utilise des fichiers de configuration qui ne sont -pas dans <file>/etc</file> et qu'il n'est pas facile de modifier ce programme -pour qu'il utilise <file>/etc</file>, on mettra quand même les fichiers dans -<file>/etc</file> et on créera des liens symboliques vers ces fichiers depuis -les emplacements voulus par le paquet. - </p> - </sect1> -<sect1> -<heading>Comportement</heading> -<p> -La gestion des fichiers de configuration doit se conformer aux principes -suivants : -<list compact="compact"> - <item> - <p> -les changements locaux doivent être préservés pendant -la mise à jour d'un paquet ; -</p> - </item> - <item> - <p> -les fichiers de configuration doivent être préservés quand le paquet est -supprimé ; ils ne sont détruits que si le paquet est -supprimé avec « purge ». -</p> - </item> - </list> -</p> -<p> -La façon simple d'obtenir cela, c'est que le fichier de configuration soit -un <tt>conffile</tt>. C'est parfait quand on peut distribuer une version par -défaut qui marche pour la plupart des installations, bien que quelques -administrateurs puissent vouloir la modifier. Cela suppose que la version par -défaut fasse partie du paquet et que les scripts du responsable du paquet -ne la modifient pas pendant l'installation (ou à quelque autre moment). -</p> -<p> -Pour faire que les changements locaux soient préservés correctement, nul -paquet ne peut contenir des liens « en dur », ou en créer, vers des -« conffiles »<footnote><p> -Argument : Il y a deux problèmes avec les liens « en dur ». Le -premier, c'est que certains « éditeurs » cassent le lien quand ils -modifient l'un des fichiers, -et les deux fichiers peuvent devenir involontairement différents. Le second, -c'est qu'il arrive que <prgn>dpkg</prgn> casse le lien pendant une mise -à jour de <tt>conffile</tt>s.</p> - </footnote>. - </p> -<p> -L'autre façon, c'est d'utiliser les scripts du responsable de paquet. -Dans ce cas, le fichier de configuration ne doit pas être un <tt>conffile</tt> -et ne doit pas faire partie du paquet. Si la configuration correcte d'un paquet -demande un fichier, c'est au responsable du paquet, -<em>via</em> ses scripts, de créer, mettre à jour, maintenir et supprimer un -tel fichier. Voir <ref id="maintainerscripts"> pour des précisions. Ces -scripts doivent être idempotents (c.-à-d. qu'ils doivent fonctionner -correctement si <prgn>dpkg</prgn> a besoin de les relancer à cause d'erreurs -survenues pendant l'installation ou la suppression) ; ils doivent -comprendre toutes les manières de <prgn>dpkg</prgn> en ce qui -concerne l'appel des scripts ; ils ne doivent pas remplacer ou même -déformer la configuration de l'utilisateur sans lui demander ; ils ne -doivent pas poser des questions sans intérêt (surtout pendant les mises -à jour) ; bref, ils doivent être de bons citoyens. -</p> -<p> -Ces scripts n'ont pas à configurer toutes les options possibles d'un paquet, -mais seulement celles qui sont nécessaires à son bon fonctionnement sur un -système donné. Idéalement, un sysadmin ne devrait faire aucune autre -configuration que celle faite presque automatiquement par le script -<tt>postinst</tt>. -</p> -<p> -Une manière commune de faire est de créer un script -<file><var>paquet</var>-configure</file> qu'appellera le script -<prgn>postinst</prgn> du paquet si et seulement si le fichier de -configuration n'existe pas déjà. -Parfois, il est bon d'avoir un fichier d'exemple ou un fichier modèle -utilisable par les scripts du responsable. On mettra ces fichiers -dans <file>/usr/share/<var>paquet</var></file> ou dans -<file>/usr/lib/<var>paquet</var></file> (selon qu'ils sont dépendants d'une -architecture ou non). On créera des liens symboliques vers ces fichiers dans -<file>/usr/share/doc/<var>paquet</var>/examples</file> si ce sont des fichiers -d'exemples ; ces fichiers sont des fichiers parfaitement ordinaires pour -<prgn>dpkg</prgn> (ce <em>ne sont pas</em> des fichiers de configuration). -</p> - <p> -On ne doit pas mélanger ces deux manières de gérer les fichiers de -configuration car alors la folie guette : <prgn>dpkg</prgn> voudra -remplacer le fichier à chaque mise à jour du paquet. -</p> - </sect1> - -<sect1> - <heading>Partager des fichiers de configuration </heading> - <p> -On doit indiquer un <em>conflit</em> entre des paquets qui ont le même -fichier <tt>conffile</tt>. C'est une application de la règle générale qui veut -qu'on ne partage pas des fichiers. Ni les <em>alternatives</em> ni les -<em>diversions</em> ne sont appropriés dans ce cas ; en particulier, -<prgn>dpkg</prgn> ne gère pas bien les <tt>conffile</tt>s déviés (diverted). - </p> - <p> -Les scripts d'un responsable de paquet ne doivent modifier le -<tt>conffile</tt> d'<em>aucun</em> paquet, même celui du paquet auquel ils -appartiennent.</p> - - <p> -Quand deux paquets ou plus ont le même fichier de configuration et qu'il est -raisonnable d'installer les deux paquets, on doit définir l'un des -paquets comme le <em>propriétaire</em> du fichier de configuration, et -ce sera le paquet qui gère ce fichier comme un fichier de configuration. Les -autres paquets qui utilisent le fichier de configuration doivent déclarer une -dépendance envers ce paquet s'ils ont besoin de ce fichier de configuration -pour leur fonctionnement. Quand -ils ne l'utilisent que s'il est présent et qu'ils sont capables de -fonctionner sans lui, ces paquets n'ont pas besoin de déclarer de -dépendance.</p> - - <p> -Si l'on veut que deux ou plusieurs paquets apparentés partagent un fichier de -configuration <em>et</em> que chacun d'eux soit capable de le modifier, il -faut faire ce qui suit : - - <enumlist compact="compact"> - <item> - <p> -L'un des paquets apparentés (le paquet « propriétaire ») doit gérer -le fichier de -configuration avec les scripts du responsable de paquet comme il est décrit -dans les sections précédentes ;</p> - </item> - <item><p> -le paquet « propriétaire » fournira aussi un programme que les -autres paquets utiliseront pour modifier le fichier de configuration ;</p> - </item> - <item> - <p> -les paquets apparentés doivent se servir de ce programme pour faire -les modifications voulues sur le fichier de configuration. Ils dépendront alors -de la garantie donnée quant à la disponibilité de ce programme, -ou bien ils accepteront avec élégance de ne pouvoir modifier -le fichier de configuration si ce programme n'est pas disponible. C'est une -addition au fait que le fichier de configuration pourrait même ne pas -exister dans ce dernier scénario. -</p> - </item> - </enumlist></p> - <p> -Quelques fois, il convient de créer un nouveau paquet qui fournit -l'infrastructure de base pour les autres paquets et qui gère les fichiers -de configuration partagés (on peut consulter le paquet <tt>sgml-base</tt> -comme exemple).</p> - </sect1> - - <sect1> - <heading>Les fichiers de configuration de l'utilisateur (« dotfiles »)</heading> - - <p> -Les fichiers dans <file>/etc/skel</file> sont copiés automatiquement dans les -comptes des nouveaux utilisateurs par <prgn>adduser</prgn>. Aucun programme -ne devra référencer les fichiers dans <file>/etc/skel</file>. -</p> - - <p> -Ainsi, quand un programme, pour fonctionner correctement, a besoin -qu'un fichier « .fichier » existe par avance dans <tt>$HOME</tt>, -le paquet installera ce fichier dans <file>/etc/skel</file> et le -traitera comme un fichier de configuration. -</p> - - <p> -Cependant, avoir un programme qui, pour fonctionner correctement, a besoin -de fichiers « .fichier » est une mauvaise idée, à moins que ce -programme ne crée automatiquement ces fichiers. - </p> -<p>L'installation par défaut de Debian -devrait configurer les programmes d'une manière aussi proche que possible de -la configuration originelle par défaut. -</p> - <p> -Ainsi, le programme d'un paquet Debian, qui a besoin d'une quelconque -configuration pour fonctionner correctement, sera configuré globalement pour -le système à l'aide d'un fichier placé dans <file>/etc</file>. C'est -uniquement -dans le cas où le programme n'accepte pas de configuration globale au site, -et si le responsable du paquet n'a pas le temps d'ajouter un fichier de -configuration par défaut, qu'un tel fichier pourra être placé dans -<file>/etc/skel</file>. -</p> - <p> -<file>/etc/skel</file> sera aussi vide que possible. C'est d'autant plus -nécessaire qu'il n'existe pas de mécanisme simple (ou même désirable) pour -s'assurer que les -fichiers « .fichier » nécessaires sont copiés dans les comptes des -utilisateurs existants à l'installation du paquet. -</p> - - </sect1> - </sect> - - <sect> - <heading>Les fichiers-journaux (« log file »)</heading> - - <p> -Les fichiers-journaux se nomment habituellement -<tt>/var/log/<var>paquet</var>.log</tt>. Si vous avez de nombreux -fichiers-journaux ou si vous avez besoin d'un répertoire pour des raisons de -droits -(<tt>/var/log</tt> ne peut être modifié que par <tt>root</tt>), vous créerez -habituellement un répertoire nommé <tt>/var/log/<var>paquet</var></tt> où -vous mettrez ces fichiers. -</p> - <p> -Une rotation des fichiers-journaux doit être assurée de manière qu'ils -ne grandissent pas indéfiniment ; -la meilleure façon de procéder est de mettre un fichier de configuration pour -la rotation des fichiers dans le répertoire <tt>/etc/logrotate.d</tt> et -d'utiliser les facilités apportées par <em>logrotate</em> <footnote> -<p> -L'approche traditionnelle pour les fichiers-journaux était d'utiliser -« cron » et de simples scripts shell pour monter des combines -<em>ad hoc</em> pour la rotation des fichiers. Cette -approche, grandement paramétrable, demandait beaucoup de travail -à l'administrateur système. Bien que le premier système Debian ait apporté une -aide en installant automatiquement un système qui pouvait être pris -comme modèle, cela ne fut pas considéré comme suffisant. -</p> - <p> -Une meilleure idée est d'utiliser <prgn>logrotate</prgn>, un programme -développé par Red Hat, qui centralise la gestion des fichiers-journaux. Il -possède à la fois un fichier de configuration -(<tt>/etc/logrotate.conf</tt>) et un répertoire où les paquets peuvent -déposer leurs configurations pour la rotation des fichiers, -(<tt>/etc/logrotate.d</tt>). - </p> -</footnote>. -Voici un bon exemple de fichier de configuration de « logrotate » -(pour plus de renseignements voir <manref name="logrotate " section="8">) : - <example compact="compact"> -/var/log/foo/*.log { -rotate 12 -weekly -compress -postrotate -/etc/init.d/foo force-reload -endscript -} - </example> - Cela fait tourner tous les fichiers sous <tt>/var/log/foo</tt>, -sauve 12 compressions, et demande au démon de recharger ses informations de -configuration après la rotation des fichiers. - </p> - - <p> -Les fichiers-journaux seront supprimés quand le paquet est -« purgé » (mais pas quand le paquet est simplement supprimé). Ce -sera fait par le script <prgn>postrm</prgn> quand il sera appelé avec -l'argument <tt>purge</tt> (voir <ref id="removedetails">). - </p> - </sect> - - <sect> - <heading>Permissions et propriétaires</heading> - - <p> -Les règles de cette section sont des directives pour une utilisation -élémentaire. Quand c'est nécessaire, vous pouvez vous écarter de certains -détails. Cependant, dans ce cas, sécurisez ce que vous -faites et restez aussi cohérent que possible avec le système. Vous devriez -probablement en discuter aussi dans <prgn>debian-devel</prgn>. -</p> - <p> -Les fichiers appartiendront à <tt>root.root</tt>. Ils seront -modifiables uniquement par le propriétaire et seront lisibles -par tous (exécutables si nécessaire) c'est-à-dire 644 ou 755. -</p> - <p> -Les répertoires auront le mode 755 ou, pour ceux qui doivent être -modifiables par un groupe, le mode 2775. La propriété du répertoire sera -cohérente avec le mode -- si le répertoire a comme mode 2775, il -appartiendra au groupe qui a besoin d'y accéder.<footnote> - <p> -Quand un paquet est mis à jour et que le propriétaire ou les permissions d'un -fichier inclus dans le paquet a changé, dpkg s'arrange pour que le propriétaire -et les permissions soient positionnées correctement lors de -l'installation. Cependant, cela ne s'étend pas aux répertoires ; les -permissions et le propriétaire des répertoires déjà présents sur le système ne -changent pas lors d'une installation ou d'une mise à jour de paquet. Cela est -logique car, sinon, des répertoires communs comme <tt>/usr</tt> serait toujours -en flux. Pour changer correctement les permissions d'un répertoire appartenant -à un paquet, une action explicite est nécessaire, habituellement dans le script -<tt>postinst</tt>. Dans ce cas, une attention particulière doit être prise pour -gérer également les mises à jour vers une version antérieure. - </p> - </footnote> - </p> - - <p> -Les exécutables qui sont « setuid » et « setgid » auront -respectivement les modes 4755 et 2755, et ils appartiendront à l'utilisateur -ou au groupe approprié. On n'interdira pas leur lecture (par des modes -comme 4711 ou 2711 ou même 4111) ; en effet cela n'apporte aucun gain de -sécurité puisque n'importe qui peut obtenir les binaires dans les paquets -Debian qui sont librement disponibles ; c'est simplement gênant. Pour la même -raison vous ne restreindrez pas les droits en lecture ou en exécution -des exécutables « non-set-id ». -</p> - <p> -Certains programmes « setuid » doivent être restreints à certains -groupes d'utilisateurs en se servant des permissions sur les fichiers. Dans -ce cas, ils appartiendront à l'« uid » pour lesquels ils sont -« set-id » et au groupe qui aura des droits d'exécution. Ils auront -le mode 4754 ; cela ne sert à rien d'empêcher leur lecture aux -utilisateurs qui n'ont pas les droits d'exécution. -</p> - <p> -On peut permettre que, pour suivre sa politique locale de sécurité, un -administrateur système puisse reconfigurer un paquet en changeant -les permissions des fichiers binaires : il peut utiliser -<prgn>dpkg-statoverride</prgn> pour cela, comme c'est décrit plus bas -<footnote> -<p> -Les fichiers ordinaires (à l'exception des <tt>conffile</tt>s et d'autres -fichiers similaires) installés par <prgn>dpkg</prgn> ont normalement -leurs droits réinitialisés avec les droits de la distribution lors de la -réinstallation d'un paquet. Cependant, l'utilisation du programme -<prgn>dpkg-statoverride</prgn> annule ce comportement par défaut. Si vous -utilisez cette méthode, vous penserez à décrire ce programme dans la -documentation du paquet ; en tant qu'apport relativement récent -à Debian, il est probablement peu connu. - </p></footnote>. -Une autre méthode est de créer un groupe comprenant les utilisateurs autorisés -à utiliser le programme et de rendre tous les exécutables <em>setuid</em> -exécutables seulement par ce groupe. - </p> - - <p> -Si vous avez besoin d'un nouvel utilisateur ou groupe pour votre paquet, vous -avez deux possibilités. La première est de rendre cet utilisateur ou ce -groupe propriétaire d'un ou plusieurs fichiers de votre paquet. La deuxième -est de compiler l'identifiant (plutôt que le nom) d'utilisateur ou de groupe -dans le binaire. Dans ce cas vous avez besoin d'un identifiant attribué de -façon fixe. -</p> - <p> -Si vous avez besoin d'un identifiant attribué de façon fixe, vous devez alors -demander un identifiant d'utilisateur ou de groupe au -responsable du système de base, <tt>base-passwd</tt> et vous ne devez pas -livrer votre paquet avant d'avoir reçu un tel identifiant. Quand vous l'avez -reçu, vous devez faire dépendre votre paquet d'une version du système de base -dans laquelle l'identifiant est présent dans <tt>/etc/passwd</tt> ou dans -<tt>/etc/group</tt>. Alternativement, vous pouvez modifier votre paquet pour -qu'il crée lui-même l'utilisateur ou le groupe avec le bon identifiant -(en utilisant <tt>adduser</tt>) dans les scripts <prgn>preinst</prgn> ou -<prgn>postinst</prgn>. (Utiliser <prgn>postinst</prgn> est préférable si c'est -possible ; sinon, il faudra une pré-dépendance envers le paquet -<tt>adduser</tt>.) -</p> - - <p> -D'un autre côté, un programme peut être capable, en fonctionnement, de -déterminer l'« uid » ou le « gid » à partir du nom d'un -groupe de façon à utiliser un identifiant attribué de façon dynamique. Dans -ce cas vous choisirez un nom d'utilisateur ou de groupe approprié, vous en -discuterez dans <prgn>debian-devel</prgn>, vous vérifierez avec le responsable -du paquet <package>base-passwd</package> que ce nom est unique et vous vous -assurerez qu'ils -(la liste <prgn>debian-devel</prgn>) ne préfèrent pas un identifiant attribué -de manière fixe. Quand tout cela a été vérifié, vous devez modifier votre -paquet pour qu'il crée, si nécessaire, l'utilisateur ou le groupe avec -<prgn>adduser</prgn> dans les scripts <prgn>preinst</prgn> ou -<prgn>postinst</prgn> (à nouveau, ces derniers sont préférables si c'est -possible). -</p> - <p> -Il faut noter que changer la valeur numérique d'un identifiant associé -à un nom est une opération très difficile. Elle implique de rechercher -dans le système de fichier tous les fichiers concernés. Réfléchissez -sérieusement au meilleur choix entre « id » statique ou dynamique, -car modifier votre choix ultérieurement posera des problèmes. -</p> - -<sect1><heading>L'utilisation du programme <prgn>dpkg-statoverride</prgn></heading> -<p> -Cette section ne se veut pas normative : c'est une description de -l'utilisation du programme <prgn>dpkg-statoverride</prgn>. - </p> -<p> -Le programme <prgn>dpkg-statoverride</prgn> remplace le paquet -<tt>suidmanager</tt>. Les paquets qui utilisaient <tt>suidmanager</tt> -auront un champ <tt>Conflicts: suidmanager (<<0.50)</tt> et les appels -à <tt>suidregister</tt> et à <tt>suidunregister</tt> seront simplement -supprimés des scripts des responsables de paquet. - </p> -<p> -Quand un administrateur système souhaite installer un fichier (un répertoire, -etc.) avec un système de permissions différent de celui du paquet Debian -distribué, il peut se servir de <prgn>dpkg-statoverride</prgn> pour dire -à <prgn>dpkg</prgn> d'utiliser un système particulier à chaque installation -du fichier. Ainsi, le responsable du paquet distribuera les fichiers avec -un système de permissions normal et laissera faire -ses modifications. Par exemple, un démon, qui est normalement -<em>setuid root</em> mais qui pourrait parfois être utilisé sans être -<em>setuid</em>, sera installé <em>setuid</em> dans le fichier <tt>.deb</tt>. -Puis, l'administrateur système local changera cela s'il le souhaite. Quand il -y a deux façons de faire, le responsable de paquet peut utiliser -<tt>debconf</tt> pour trouver la préférée, et appeler -<prgn>dpkg-statoverride</prgn> dans ses scripts pour prendre en compte les -choix de l'administrateur système. Une attention particulière doit être prise -pendant les mises à jour pour ne pas supprimer un paramétrage existant. - </p> -<p> -Le programme <prgn>dpkg-statoverride</prgn> est donc essentiellement un -outil pour administrateur système et les scripts de responsable de paquet -ne devraient pas en avoir besoin. Il y a cependant une situation où des -appels à <prgn>dpkg-statoverride</prgn> peuvent être nécessaires dans ces -scripts ; il s'agit des paquets qui se servent d'identifiants -d'utilisateur ou de groupe attribués dynamiquement. Dans cette situation, où -<tt>sysuser</tt> est un identifiant dynamiquement attribué, il peut être -utile de se servir, dans le <prgn>postinst</prgn> du paquet, de quelque chose -comme : - <example> -for i in /usr/bin/foo /usr/sbin/bar -do - # ne faire quelque chose que si aucun paramétrage n'existe - if ! dpkg-statoverride --list $i >/dev/null - then - #inclus : traitement debconf, question à propos de foo et bar - if [ "$RET" = "true" ] ; then - dpkg-statoverride --update --add sysuser root 4755 $i - fi - fi -done - </example> -Quand le paquet est <em>purgé</em>, on peut faire sans condition les appels -correspondants <tt>dpkg-statoverride --remove</tt>. - </p> - </sect1> - </sect> - </chapt> - - <chapt id="customized-programs"> - <heading>Programmes personnalisés</heading> - - <sect id="arch-spec"> - <heading>Les chaînes de spécification d'architecture</heading> - - <p> -Quand un programme doit fournir une <em>chaîne de spécification -d'architecture</em>, il devra choisir l'une des chaînes fournies par -<tt>dpkg-architecture -L</tt>. Les chaînes sont au format : -<tt><var>os</var>-<var>arch</var></tt>, bien que la partie OS soit parfois omise -quand l'OS est Linux.<footnote> - <p> - Actuellement, les chaînes sont : - i386 ia64 alpha amd64 armeb arm hppa m32r m68k mips - mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb - sparc darwin-i386 darwin-ia64 darwin-alpha darwin-amd64 - darwin-armeb darwin-arm darwin-hppa darwin-m32r - darwin-m68k darwin-mips darwin-mipsel darwin-powerpc - darwin-ppc64 darwin-s390 darwin-s390x darwin-sh3 - darwin-sh3eb darwin-sh4 darwin-sh4eb darwin-sparc - freebsd-i386 freebsd-ia64 freebsd-alpha freebsd-amd64 - freebsd-armeb freebsd-arm freebsd-hppa freebsd-m32r - freebsd-m68k freebsd-mips freebsd-mipsel freebsd-powerpc - freebsd-ppc64 freebsd-s390 freebsd-s390x freebsd-sh3 - freebsd-sh3eb freebsd-sh4 freebsd-sh4eb freebsd-sparc - kfreebsd-i386 kfreebsd-ia64 kfreebsd-alpha - kfreebsd-amd64 kfreebsd-armeb kfreebsd-arm kfreebsd-hppa - kfreebsd-m32r kfreebsd-m68k kfreebsd-mips - kfreebsd-mipsel kfreebsd-powerpc kfreebsd-ppc64 - kfreebsd-s390 kfreebsd-s390x kfreebsd-sh3 kfreebsd-sh3eb - kfreebsd-sh4 kfreebsd-sh4eb kfreebsd-sparc knetbsd-i386 - knetbsd-ia64 knetbsd-alpha knetbsd-amd64 knetbsd-armeb - knetbsd-arm knetbsd-hppa knetbsd-m32r knetbsd-m68k - knetbsd-mips knetbsd-mipsel knetbsd-powerpc - knetbsd-ppc64 knetbsd-s390 knetbsd-s390x knetbsd-sh3 - knetbsd-sh3eb knetbsd-sh4 knetbsd-sh4eb knetbsd-sparc - netbsd-i386 netbsd-ia64 netbsd-alpha netbsd-amd64 - netbsd-armeb netbsd-arm netbsd-hppa netbsd-m32r - netbsd-m68k netbsd-mips netbsd-mipsel netbsd-powerpc - netbsd-ppc64 netbsd-s390 netbsd-s390x netbsd-sh3 - netbsd-sh3eb netbsd-sh4 netbsd-sh4eb netbsd-sparc - openbsd-i386 openbsd-ia64 openbsd-alpha openbsd-amd64 - openbsd-armeb openbsd-arm openbsd-hppa openbsd-m32r - openbsd-m68k openbsd-mips openbsd-mipsel openbsd-powerpc - openbsd-ppc64 openbsd-s390 openbsd-s390x openbsd-sh3 - openbsd-sh3eb openbsd-sh4 openbsd-sh4eb openbsd-sparc - hurd-i386 hurd-ia64 hurd-alpha hurd-amd64 hurd-armeb - hurd-arm hurd-hppa hurd-m32r hurd-m68k hurd-mips - hurd-mipsel hurd-powerpc hurd-ppc64 hurd-s390 hurd-s390x - hurd-sh3 hurd-sh3eb hurd-sh4 hurd-sh4eb hurd-sparc - </p> - </footnote> - </p> - - <p> -On remarquera que nous ne voulons pas utiliser -<tt><var>arch</var>-debian-linux</tt> dans la chaîne -<tt><var>architecture</var>-<var>vendor</var>-<var>os</var></tt> -car cela rendrait nos programmes incompatibles avec les autres distributions -Linux. Notez aussi que nous n'utilisons pas -<tt><var>arch</var>-unknown-linux</tt>, car <tt>unknown</tt> ne sonne pas -très bien. -</p> -</sect> - - - <sect> - <heading>Les « démons »</heading> - - <p> -Les fichiers de configuration <file>/etc/services</file>, -<file>/etc/protocols</file> et <file>/etc/rpc</file> sont gérés par le paquet -<prgn>netbase</prgn> et ne doivent pas être modifiés par d'autres paquets. -</p> - - <p> -Quand un paquet a besoin d'une nouvelle entrée dans l'un de ces fichiers, -son responsable contactera le responsable du paquet <prgn>netbase</prgn>, -qui ajoutera cette entrée et produira une nouvelle version du paquet -<prgn>netbase</prgn>. -</p> - - <p> -Le fichier de configuration <file>/etc/inetd.conf</file> ne doit pas être -modifié par les scripts d'un paquet sauf si c'est <em>via</em> le script -<prgn>update-inetd</prgn> ou le module Perl <file>DebianNet.pm</file>. Voir la -documentation pour savoir comment ajouter des entrées. -</p> - <p> -Quand un paquet veut ajouter un exemple d'entrée dans -<file>/etc/inetd.conf</file>, cette entrée doit être précédée par un seul -caractère « # ». De telles lignes sont traitées comme des -commentaires de l'utilisateur par le script <prgn>update-inetd</prgn> et -ne seront pas modifiées ou activées lors des mises à jour des paquets. -</p> -</sect> - - <sect> -<heading>L'utilisation des pseudo-ttys et la modification de « wtmp », -« utmp » et « lastlog »</heading> - - <p> -Certains programmes ont besoin de créer des pseudo-ttys. -On doit le faire avec les « Unix98 » ptys si la bibliothèque -« C » le permet. Le programme résultant ne doit pas être installé -« setuid root », à moins que d'autres fonctions ne le demandent.</p> - - <p> -Les fichiers <tt>/var/run/utmp</tt>, <tt>/var/log/wtmp</tt> et -<tt>/var/log/lastlog</tt> doivent être modifiables par le groupe -<tt>utmp</tt>. Les programmes qui ont besoin de modifier ces fichiers -doivent appartenir au groupe <tt>utmp</tt>. - </p> - </sect> - - <sect> - <heading>Les éditeurs de texte et les pagineurs</heading> - - <p> -Certains programmes peuvent appeler un éditeur ou un pagineur pour modifier -ou afficher un document texte. Comme de nombreux éditeurs et pagineurs sont -disponibles dans la distribution Debian, l'administrateur système et les -utilisateurs pourront choisir leur éditeur ou leur pagineur préféré. -</p> - <p> -De plus, chaque programme choisira un éditeur ou un pagineur -par défaut si l'utilisateur ou l'administrateur système n'en a pas choisi un. -</p> - - <p> -Ainsi chaque programme qui appelle un éditeur ou un pagineur doit -utiliser les variables d'environnement EDITOR ou PAGER pour déterminer -l'éditeur ou le pagineur que l'utilisateur souhaite employer. Si ces -variables ne sont pas définies, les programmes <tt>/usr/bin/editor</tt> -et <tt>/usr/bin/pager</tt> seront, respectivement, utilisés. -</p> - <p> -Ces deux fichiers sont gérés par l'outil de <prgn>dpkg</prgn>, -« alternatives ». Tout paquet, -fournissant un éditeur ou un pagineur, doit employer le script -« update-alternatives » pour déclarer ces programmes. -</p> - - <p> -Lorsqu'il est très difficile d'adapter un programme pour qu'il utilise -les variables EDITOR et PAGER, ce programme peut être configuré -pour utiliser respectivement <tt>/usr/bin/sensible-editor</tt> et -<tt>/usr/bin/sensible-pager</tt> comme éditeur ou pagineur. Ce sont -deux scripts fournis par le système Debian de base qui testent les -variables EDITOR ou PAGER et lancent les programmes appropriés ou bien -exécutent par défaut <tt>/usr/bin/editor</tt> ou <tt>/usr/bin/pager</tt> -quand la variable n'est pas définie. -</p> - <p> -Un programme peut aussi se servir de la variable d'environnement VISUAL -pour connaître l'éditeur choisi par l'utilisateur. Si elle existe, elle -prend le pas sur la variable EDITOR. Et c'est ce que fait -<tt>/usr/bin/sensible-editor</tt>.</p> - - - <p> -Un paquet n'a pas besoin de dépendre d'<tt>editor</tt> ou de <tt>pager</tt>, -et il n'y a pas besoin de paquets virtuels pour cela -<footnote> -<p> -Le système Debian de base fournit déjà un éditeur et -un pagineur.</p> - </footnote>. -</p> - </sect> - <sect id="web-appl"> - <heading>Serveurs et applications Web</heading> - - <p> -Cette section décrit les emplacements et les « URL » qui seront -employés par tous les serveurs et applications Web dans le système Debian. -</p> - - <p> - <enumlist> - <item> -<p>Les fichiers exécutables cgi-bin sont installés dans le répertoire - <example compact="compact"> -/usr/lib/cgi-bin/<var>cgi-bin-name</var> - </example> -et seront référencés par - <example compact="compact"> -http://localhost/cgi-bin/<var>cgi-bin-name</var> - </example></p></item> - - - <item><p>L'accès aux documents HTML</p> - - <p> -Les documents HTML d'un paquet sont conservés dans -<tt>/usr/share/doc/<var>package</var></tt> et peuvent être référencés par - <example compact="compact"> -http://localhost/doc/<var>paquet</var>/<var>nom-de-fichier</var> - </example></p> -<p> -Le serveur web restreindra l'accès à l'arborescence des documents pour que -seuls les clients appartenant à cette machine puissent consulter ces documents. -Quand le serveur ne peut contrôler les accès, il ne fournira aucun accès, ou -questionnera, pendant l'installation, au sujet d'un tel accès. -</p> -</item> - - <item> - <p>L'accés au images</p> - <p> -Il est recommandé de mettre les images d'un paquet dans -<tt>/usr/share/images/<var>paquet</var></tt> et de les référencer par un alias -comme dans cet exemple : - <example> - http://localhost/images/<package>/<filename> - </example> - - </p> - </item> - - - - <item><p>La racine des documents Web</p> - - <p> -Les applications Web éviteront de conserver des fichiers dans la racine -des documents Web. Il faut utiliser, à la place, le répertoire -/usr/share/doc/<var>paquet</var> pour les documents et déclarer -l'application Web <em>via</em> le paquet <package>doc-base</package>. -Si l'accès à la racine des documents Web est inévitable alors il faut utiliser - <example compact="compact"> -/var/www - </example> -comme racine des documents. Cela peut être juste un lien symbolique -vers l'emplacement où l'administrateur a mis la véritable racine -des documents. - </p> -</item> - <item><p>Fournir httpd et/ou httpd-cgi</p> - <p> -Tous les serveurs web devraient fournir le paquet virtuel <tt>httpd</tt>. Si un -serveur intègre une gestion des CGI, il devrait de plus fournir -<tt>httpd-cgi</tt>. - </p> - <p> -Toutes les applications web ne contenant pas de scripts CGI devraient dépendre -de <tt>httpd</tt>, toutes les applications web <tt>contenant</tt> des scripts -CGI, devraient dépendre de <tt>httpd-cgi</tt>. - </p> - </item> -</enumlist> -</p> -</sect> - - - <sect id="mail-transport-agents"> - <heading>Le courrier : transport, distribution et lecture des messages.</heading> - - <p> -Les paquets Debian qui traitent le courrier électronique, que ce soient les -agents utilisateurs (<em>MUA: Mail User Agents</em>) ou les agents de -transport (<em>MTA: Mail Transport Agent</em>), doivent respecter les -directives de configuration qui suivent. Le non-respect de celles-ci peut -entraîner la perte de messages, la présence de lignes <tt>From:</tt> -incorrectes et d'autres dommages sérieux ! -</p> - - <p> -Le répertoire pour le courrier est <tt>/var/mail</tt> et l'interface -pour envoyer des courriers est <tt>/usr/sbin/sendmail</tt> (conformément au -FHS). Sur des systèmes plus anciens, le répertoire du courrier peut être -physiquement situé dans <tt>/var/spool/mail</tt> mais les accès à ce répertoire -se feront par le lien symbolique <tt>/var/mail</tt>. Le répertoire pour le -courrier fait partie du système de base et n'appartient pas au paquet MTA. -</p> - -<p> -Dans le système Debian, tous les MUA, MTA, MDA et autres programmes de -gestions des boîtes aux lettres (comme les démons IMAP) doivent verrouiller -les boîtes aux lettres de façon à permettre l'usage de NFS. Cela signifie -que le verrouillage de type <tt>fcntl()</tt> doit être associé avec celui -de type point (« dot locking »). Pour éviter les situations inextricables, un programme utilisera d'abord <tt>fcntl()</tt> et ensuite le -verrouillage « point » ou bien implantera si possible les deux -méthodes à la fois<footnote><p>Quand il n'est pas possible d'établir les deux -modes de verrouillage, le système ne doit pas attendre que le second mode soit -mis en place, mais doit enlever le premier mode, attendre un certain temps -et recommencer le verrouillage.</p></footnote>. Pour faire cela, il est -conseillé d'employer les fonctions <tt>maillock</tt> et <tt>mailunlock</tt> -présentes dans le paquet <tt>liblockfile*</tt><footnote> - <p> -Pour utiliser ces fonctions, il faut avoir une dépendance envers -<tt>liblockfile</tt> version >>1.01.</p> - </footnote>. - </p> - - - <p> -Les boîtes aux lettres ont généralement le mode 660 -<tt><var>utilisateur</var>.mail</tt> à moins que l'administrateur système n'en -ait décidé autrement. Un MUA peut supprimer une boîte aux lettres (sauf -si elle n'a pas les permissions standards). Dans ce cas, le MTA ou -un autre MUA doit la recréer au besoin. Le groupe <tt>mail</tt> doit -pouvoir modifier les boîtes aux lettres. -</p> - <p> -La file d'attente du courrier a le mode 2775 -<tt>root.mail</tt> et les MUA doivent appartenir au groupe <tt>mail</tt> -pour effectuer le verrouillage mentionné précédemment (et doivent évidemment -s'interdire l'accès aux boîtes aux lettres des autres utilisateurs -en employant ce privilège). -</p> - <p> -<file>/etc/aliases</file> est le fichier contenant les alias du système -de messagerie (par exemple postmaster, usenet, etc.) — c'est l'un des -fichiers que l'administrateur système et les scripts <prgn>postinst</prgn> -peuvent modifier. Après avoir modifié <file>/etc/aliases</file>, le programme -ou l'administrateur doit exécuter <prgn>newaliases</prgn>. Tous les -paquets MTA doivent contenir un programme <prgn>newaliases</prgn>, -même s'il ne fait rien. Cependant les anciens paquets MTA ne le -faisant pas, les programmes ne doivent pas échouer si -<prgn>newaliases</prgn> ne peut être trouvé. À cause de cela, tous les -MTA doivent posséder les champs <tt>Provides</tt>, <tt>Conflicts</tt> et -<tt>Replaces: mail-transport-agent</tt> dans leur fichier de contrôle. -</p> - - <p> -La convention consistant à écrire <tt>forward to <var>adresse</var></tt> -dans la boîte aux lettres elle-même n'est pas supportée. Utilisez -un fichier <tt>.forward</tt> à la place. -</p> - <p> -L'emplacement du programme <prgn>rmail</prgn> utilisé par UUCP pour -les messages entrants sera <tt>/usr/sbin/rmail</tt>. -De même le programme <prgn>rsmtp</prgn>, qui reçoit des lots SMTP via UUCP, -sera placé dans <tt>/usr/sbin/rsmtp</tt> s'il est supporté. -</p> - <p> -Quand un programme veut savoir quel nom d'hôte employer, par exemple, pour les -messages sortants (courrier et nouvelles) qui sont créés localement, -il utilisera le fichier <tt>/etc/mailname</tt>. Il contient -la partie située après le nom d'utilisateur et le signe <tt>@</tt> (at) -des adresses électroniques des utilisateurs de la machine (suivi -par un retour à la ligne). -</p> - - <p> -Un tel programme s'assurera de l'existence de ce fichier. S'il existe, -il sera employé sans commentaire (le script de configuration -d'un MTA peut vouloir interroger l'utilisateur même s'il trouve -ce fichier). S'il n'existe pas, il demandera une valeur -à l'utilisateur (en utilisant de préférence <prgn>debconf</prgn>) et la -stockera dans <tt>/etc/mailname</tt> puis -l'emploiera pour la configuration du paquet. Le message d'invite -sera explicite afin d'indiquer que ce nom ne sera pas utilisé -seulement par ce paquet. Par exemple dans cette situation, le paquet -<tt>INN</tt> pourrait dire : - <example compact="compact"> -Please enter the "mail name" of your system. This is the -hostname portion of the address to be shown on outgoing -news and mail messages. The default is -<var>syshostname</var>, your system's host name. Mail -name ["<var>syshostname</var>">']: - </example> - où <var>syshostname</var> est la sortie de <tt>hostname - --fqdn</tt>. -</p> -</sect> - - - <sect> - <heading>La configuration du système de « Nouvelles »</heading> - - <p> -Tous les fichiers de configuration relatifs aux serveurs et aux -clients NNTP (nouvelles) seront placés dans le répertoire <file>/etc/news</file>. -</p> - - <p> -Quelques points de configuration s'appliquent à de nombreux paquets -concernant les nouvelles (clients et serveurs) sur la machine : - - <taglist> - <tag><tt>/etc/news/organization</tt></tag> - <item><p>c'est une chaîne qui apparaîtra dans le champ -organisation de l'en-tête de chaque -message posté par les clients NNTP de la machine. - </p> -</item> - - <tag><tt>/etc/news/server</tt></tag> - <item><p>contient soit le FQDN du serveur NNTP principal soit -localhost si la machine locale est un serveur NNTP. - </p> -</item> - </taglist> - </p> -<p> -D'autres fichiers de portée générale peuvent être ajoutés s'ils sont requis -pour la configuration commune à plusieurs paquets concernant les nouvelles. -</p> -</sect> - - <sect> - <heading>Les programmes pour le système X Window</heading> - - <sect1> - <heading>X et la priorité des paquets</heading> - - <p> -On doit configurer pour le système X Window les programmes qui peuvent l'être, -et on doit déclarer toutes les dépendances nécessaires à leur fonctionnement -sous « X ». Quand ces dépendances sont pour un paquet -dont la priorité est une priorité supérieure à celles des paquets X dont il -dépend, les binaires spécifiques à « X » peuvent être mis dans un -paquet distinct, ou bien des versions alternatives du paquet avec support de -« X » peuvent être fournies, ou bien encore la priorité du paquet -peut être abaissée. -</p> - </sect1> - -<sect1><heading> Les paquets fournissant un serveur X</heading> - -<p> -<em>Les paquets qui fournissent un serveur « X » </em> et qui, -directement ou indirectement, communiquent avec le matériel d'entrée et -d'affichage, déclareront dans leurs données de contrôle qu'ils fournissent -le paquet virtuel <tt>xserver</tt> - <footnote> - <p> -Cela met en ½uvre la pratique actuelle et offre une -vraie politique pour l'utilisation du paquet virtuel <tt>xserver</tt>, -lequel apparaît dans la liste des paquets virtuels. En résumé, les serveurs -« X » qui communiquent directement avec le matériel d'entrée et -d'affichage ou via un autre sous-système (p. ex. GGI) fourniront -<tt>xserver</tt>. Des choses comme <tt>Xvfb</tt>, <tt>Xnest</tt> et -<tt>Xprt</tt> ne doivent pas le faire. - </p> - </footnote>. - </p> - </sect1> -<sect1> -<heading>Les paquets fournissant un émulateur de terminal</heading> - -<p> - -Les paquets qui fournissent un émulateur de terminal pour le -système X Window et qui correspondent aux critères énumérés plus bas, -déclareront dans leurs données de contrôle qu'ils fournissent le paquet -virtuel <tt>x-terminal-emulator</tt>. Ils se déclareront comme une -alternative pour <file>/usr/bin/x-terminal-emulator</file>, avec une priorité -égale à 20. -</p> -<p> -Pour être un <tt>x-terminal-emulator</tt>, un programme doit : -<list compact="compact"> -<item><p> -se comporter comme un terminal DEC VT100 ou un terminal compatible ; -</p></item> -<item><p> -accepter l'option de ligne de commande <tt>-e <var>commande</var></tt> qui -crée une nouvelle fenêtre de terminal<footnote> -Une nouvelle fenêtre de terminal ne signifie pas nécessairement une nouvelle -fenêtre X de plus haut niveau directement liée au gestionnaire de -fenêtres ; elle pourrait être, si l'application qui émule le terminal -était codée ainsi, une nouvelle « vue » dans une interface pour -plusieurs documents (MDI, multiple-document interface). - </footnote> -et exécuter la <var>commande</var> spécifiée, en interprétant tout le reste de -la ligne de commande comme une commande à donner directement à exec, à la -manière de <tt>xterm</tt> ; -</p></item> -<item><p> -accepter l'option de ligne de commande <tt>-T <var>titre</var></tt> qui -crée une nouvelle fenêtre de terminal avec comme titre <var>titre</var>. -</p></item> -</list> -</p> -</sect1> - -<sect1><heading>Les paquets fournissant des gestionnaires de fenêtres</heading> - -<p> -Les paquets qui fournissent des gestionnaires de fenêtres déclareront dans -leurs données de contrôle qu'ils fournissent le paquet virtuel -<tt>x-window-manager</tt>. Ils se déclareront comme une alternative pour -<tt>/usr/bin/x-window-manager</tt>, avec une priorité qu'on calculera ainsi : -<list compact="compact"> - <item><p>Commencez avec une priorité égale à 20.</p></item> - <item> -<p> -Si le gestionnaire de fenêtres permet le système des menus de Debian, on -ajoutera 20 points si cela se fait avec la configuration par défaut du -paquet (c.-à-d. qu'il n'y a pas besoin, pour obtenir cette fonctionnalité, -de modifier des fichiers de configuration appartenant au système ou à -l'utilisateur) ; si l'on doit modifier des fichiers de configuration, on -ajoutera seulement 10 points.</p> -</item> - <item> - <p> -Si le gestionnaire de fenêtres est conforme au -<url id="http://www.freedesktop.org/standards/wm-spec" - name="Projet pour la spécification des gestionnaires de fenêtres (The Window Manager Specification Project)">, écrit par le - <url id="http://www.freedesktop.org" - name="Free Desktop Group">, on ajoutera 20 points. - </p> - </item> - -<item> -<p> -Si le gestionnaire de fenêtres autorise, dans sa configuration par défaut, le -redémarrage d'une session X avec un <em>nouveau</em> gestionnaire de fenêtres -(sans tuer le serveur X), on ajoutera 10 points ; sinon, rien. -</p> -</item> -</list> - </p> - </sect1> - -<sect1> -<heading>Les paquets fournissant des polices</heading> -<p> -Les paquets qui fournissent des polices pour le système X Window -<footnote> -<p> -Dans le cadre de cette charte, une « police pour le système X Window » -est une police accessible par des requêtes utilisant le protocole X. Les -polices pour la console Linux, pour les formateurs PostScript, etc., ne -rentrent pas dans cette catégorie. Tous les outils qui rendent disponibles de -telles polices pour le système X Window doivent cependant se conformer à cette -règle.</p> - </footnote> -doivent faire un certain nombre de choses pour s'assurer à la fois qu'ils -sont disponibles sans avoir à modifier la configuration du serveur -X ou du serveur de polices, et qu'ils n'abîment pas les fichiers utilisés -par d'autres paquets pour déclarer les renseignements qui les concernent. -<enumlist> - <item> -<p> -Les polices de tout type offertes pour le système X Window doivent être dans des -paquets distincts des binaires, bibliothèques ou de la documentation (sauf -celle liée à la police fournie, par exemple leur licence). Quand une ou -plusieurs polices sont nécessaires à l'exploitation correcte du paquet auquel -elles sont associées, le paquet qui les contient peut être placé dans un -champ <em>Recommends</em> ; si elles n'apportent que des améliorations, -on peut utiliser un champ <em>Suggests</em>. Les paquets ne doivent pas -dépendre de paquets contenants des polices<footnote> -<p> -Le serveur X peut en effet récupérer des polices sur le système de fichiers -local ou, à travers le réseau, sur un serveur de polices pour X ; le -système Debian des paquets ne permet que l'utilisation du système de fichiers -local. -</p> -</footnote>. - </p> - </item> -<item> -<p> -Les polices BDF seront converties en polices PCF avec le programme -<prgn>bdftopcf</prgn> (disponible dans le paquet <tt>xfonts-utils</tt>), -<prgn>gzip</prgn>ées, et placées dans un répertoire qui correspond à leur -définition : -<list compact="compact"> - <item><p> - Les polices à 100 dpi seront mises dans - <tt>/usr/share/fonts/X11/100dpi/</tt> ; - </p></item> - <item><p> - Les polices à 75 dpi seront mises dans - <tt>/usr/share/fonts/X11/75dpi/</tt> ; - </p></item> - <item><p> -Les polices à chasse fixe, les polices pour le curseur, ainsi que -d'autres polices de faible définition seront mises dans - <tt>/usr/share/fonts/X11/misc/</tt>. - </p></item> - </list> - </p> -</item> - <item><p> -les polices « Speedo » seront mises dans -<tt>/usr/share/fonts/X11/Speedo/</tt>. - </p> </item> -<item><p> -les polices « Type 1 » seront mises dans - <tt>/usr/share/fonts/X11/Type1/</tt>. -Si des fichiers de métrique sont disponibles, ils peuvent aussi être placés -là. - </p> </item> - <item><p> -On ne doit pas créer ni utiliser d'autres répertoires dans -<tt>/usr/share/fonts/X11/</tt> que ceux répertoriés dans la liste qui -précède. Les répertoires <tt>PEX</tt>, <tt>CID</tt> et <tt>cyrillic</tt> -font exception pour des raisons historiques, mais l'installation de fichiers -dans ces répertoires reste déconseillée. -</p> -</item> - <item> -<p> -Au lieu de mettre directement des fichiers dans les répertoires cités dans -la liste qui précède, les paquets peuvent fournir des liens symboliques -dans le répertoire des polices pointant vers l'emplacement réel des fichiers -dans l'arborescence. Un tel emplacement doit se conformer au « FHS ». - </p></item> - <item><p> -Les paquets ne contiendront pas à la fois les versions à 75 dpi et les versions -à 100 dpi d'une police. Si les deux sont disponibles, elles seront fournies -dans des paquets distincts dont les noms seront étiquetés <tt>-75dpi</tt> -ou <tt>-100dpi</tt>.</p></item> - <item><p> -Les polices destinées au répertoire <tt>misc</tt> ne doivent pas être mises -dans les mêmes paquets que ceux des polices à 75 dpi ou 100 dpi mais elles -seront fournies dans un paquet distinct étiqueté <tt>-misc</tt>. -</p> -</item> - <item> -<p> -Les paquets ne doivent pas fournir les fichiers <tt>fonts.dir</tt>, -<tt>fonts.alias</tt> ou <tt>fonts.scale</tt> dans un répertoire de polices. -<list compact="compact"> - <item><p> -les fichiers <tt>fonts.dir</tt> ne doivent en aucun cas être fournis ; - </p></item> - <item><p> -si besoin est, les fichiers <tt>fonts.alias</tt> et <tt>fonts.scale</tt> -seront fournis dans le répertoire -<tt>/etc/X11/fonts/<var>fontdir</var>/<var>paquet</var>.<var>extension</var></tt> -où <var>fontdir</var> est le nom du répertoire de -<tt>/usr/share/fonts/X11/</tt> dans lequel sont conservées les polices -du paquet correspondant (p. ex. <tt>75dpi</tt> ou <tt>misc</tt>), où -<var>paquet</var> est le nom du paquet qui fournit ces polices, et où -<var>extension</var> correspond au contenu du fichier, soit <tt>scale</tt> -soit <tt>alias</tt>. -</p> -</item> - </list> - </p> - </item> - <item> -<p> -Les paquets doivent déclarer une dépendance envers le paquet -<tt>xfonts-utils</tt> dans leurs données de contrôle. - </p> - </item> -<item><p> -Les paquets qui fournissent un ou plusieurs fichiers <tt>fonts.scale</tt> tels -qu'ils sont décrits plus haut, doivent appeler le programme -<prgn>update-fonts-scale</prgn>, pour chaque répertoire où est installée une -police, <em>avant</em> d'appeler le programme <prgn>update-fonts-dir</prgn> -pour ce répertoire. Cet appel doit se faire à la fois dans le script -<prgn>postinst</prgn> (pour tous les arguments) et dans le script -<prgn>postrm</prgn> (pour tous les arguments sauf <tt>upgrade</tt>). - </p> -</item> - <item> -<p> -Les paquets qui fournissent un ou plusieurs de ces fichiers -<tt>fonts.alias</tt> dont on vient de parler, doivent appeler le programme -<prgn>update-fonts-alias</prgn> pour chaque répertoire où ils installent des -polices. Cet appel doit se faire à la fois dans le script -<prgn>postinst</prgn> (pour tous les arguments) et dans le script -<prgn>postrm</prgn> (pour tous les arguments sauf <tt>upgrade</tt>). - </p> -</item> - - - <item> -<p> -Les paquets doivent appeler le programme <prgn>update-fonts-dir</prgn> -pour chaque répertoire où ils installent des -polices. Cet appel doit se faire à la fois dans le script -<prgn>postinst</prgn> (pour tous les arguments) et dans le script -<prgn>postrm</prgn> (pour tous les arguments sauf <tt>upgrade</tt>). - </p> -</item> -<item> -<p> -Les paquets ne doivent pas proposer, pour les noms des polices qu'ils -fournissent, des alias qui entrent en conflit avec les alias déjà utilisés -par des polices d'autres paquets. -</p></item> -<item> -<p> -Les paquets ne doivent pas fournir des polices qui ont le même nom pour -l'enregistrement XLFD que celui donné par une police déjà en usage. -</p> -</item> - </enumlist> - </p> - </sect1> - -<sect1> -<heading>Les fichiers « défaut » des applications</heading> -<p> -Les fichiers « défaut » des applications doivent être -installés dans le répertoire <tt>/etc/X11/app-defaults/</tt> -(on peut utiliser un répertoire particulier dans <file>/etc/X11/</file> -comme l'indique le manuel -<em>X Toolkit Intrinsics - C Language Interface</em>). -On ne les déclarera pas comme des <tt>conffile</tt>s et on ne les -traitera pas non plus comme des fichiers de configuration. Les paquets ne -doivent pas fournir le répertoire <tt>/usr/X11R6/lib/X11/app-defaults/</tt>. - </p> -<p> -Le paramétrage des ressources X des programmes peut aussi se faire par -l'intermédiaire d'un fichier portant le même nom que celui du paquet mis -dans le répertoire <tt>/etc/X11/Xresources/</tt> et qui doit être -enregistré comme <tt>conffile</tt> ou traité comme un fichier de configuration -<footnote> -<p> -Ce mécanisme n'est pas identique à celui d'<em>app-defaults</em> ; les -fichiers <em>app-defaults</em> sont liés au binaire client du système de -fichiers local, alors que les ressources X sont stockées dans le serveur X -et influencent tous les clients qui se connectent. - </p> - </footnote>. - -<em>Important :</em> les paquets -qui installent des fichiers dans le répertoire <tt>/etc/X11/Xresources/</tt> -doivent déclarer un conflit avec le paquet <tt>xbase -(<<3.3.2.3a-2)</tt> ; si ce n'est pas fait, le paquet peut détruire un -<em>fichier</em> <tt>/etc/X11/Xresources</tt> préexistant qui a pu être -paramétré par l'administrateur système. - </p> - </sect1> -<sect1> -<heading>Questions concernant le répertoire d'installation</heading> - -<p> -Les paquets qui utilisent le système X Window ne seront pas configurés pour -installer des fichiers sous le répertoire <tt>/usr/X11R6/</tt>. La hiérarchie du -répertoire <tt>/usr/X11R6/</tt> sera tenue comme obsolète. - </p> - - <p> -Les programmes qui utilisent les programmes GNU <prgn>autoconf</prgn> et -<prgn>automake</prgn> sont facilement configurés au moment de la compilation -pour utiliser <file>/usr/</file> au lieu de <file>/usr/X11R6/</file>, et cela -sera fait à chaque fois que c'est possible. On placera les fichiers de -configuration des gestionnaires de fenêtres et des gestionnaires d'affichage -dans un sous-répertoire de <file>/etc/X11/</file> correspondant au nom du -paquet ; cela est dû à l'interpénétration étroite de ces programmes et -du mécanisme du système X Window. Les programmes applicatifs utiliseront le -répertoire <file>/etc/</file> sauf si cette charte impose autre chose. - </p> -<p> -L'installation de fichiers dans des -sous-répertoires de <file>/usr/X11R6/include/X11/</file> et de -<file>/usr/X11R6/lib/X11/</file> est maintenant interdite ; les -responsables de paquet détermineront s'ils peuvent utiliser des -sous-répertoires de <file>/usr/lib/</file> et de <file>/usr/share/</file>. - </p> -<p> -Les paquets devraient installer tout fichier pertinent dans les répertoires -<file>/usr/include/X11/</file> et <file>/usr/lib/X11/</file>, mais s'ils le -font, ils doivent avoir une pré-dépendance sur <tt>x11-common (>= -1:7.0.0)</tt>.<footnote> - <p> - Ces bibliothèques étaient auparavant des liens - symboliques. Cependant, avec <tt>X11R7</tt>, - <tt>/usr/include/X11</tt> et <tt>/usr/lib/X11</tt> - sont maintenant des vrais répertoires et les paquets - <strong>devraient</strong> placer leur fichiers à cet endroit - plutôt que dans <tt>/usr/X11R6/{include,lib}/X11</tt>. - <tt>x11-common (>= 1:7.0.0) </tt> est le paquet responsable - de la conversion de ces liens symboliques en répertoires. - </p> - </footnote> -</p> - </sect1> -<sect1> -<heading>Les bibliothèques <em>OSF/Motif</em> et <em>OpenMotif</em></heading> - - <p> -Les programmes qui demandent les bibliothèque <em>OSF-Motif</em> et -<em>OpenMotif</em><footnote> -<p> -Dans ce document, on regroupe les deux termes sous le nom de « Motif ».</p> - </footnote>, -bibliothèques non conformes aux « DFSG », seront compilés et -testés avec « LessTif » (une libre ré-implémentation de -« Motif »). Quand le responsable du paquet juge que -le programme ne fonctionne pas suffisamment bien avec « LessTif » -pour être distribué et supporté, mais qu'il fonctionne correctement quand -il est compilé avec « Motif », il créera alors deux versions du -paquet ; l'une qui sera liée de façon statique à « Motif » et -dont le nom sera étiqueté « -smotif », et l'autre qui sera liée -de façon dynamique à « Motif » et dont le nom sera étiqueté -« -dmotif ». - </p> -<p> -Les deux versions liées à « Motif » sont -dépendantes de logiciels non conformes aux « DFSG » et donc ne -peuvent être mises dans la section « main » de la -distribution ; si -le logiciel lui-même est conforme aux « DFSG » il peut être mis -dans la section « contrib ». Toutes les versions connues de -« OSF-Motif » autorisent la redistribution sans restriction de -binaires liés de façon statique ou dynamique à cette bibliothèque, mais -c'est au responsable de paquet de déterminer si la licence -de la version de « Motif » qu'il possède le permet. - </p> - </sect1> - </sect> - - -<sect id="perl"> -<heading>Les programmes et modules Perl</heading> -<p> -Les programmes et modules Perl suivront les règles concernant Perl. - </p> -<p> -On peut trouver ces règles dans le fichier <tt>perl-policy</tt> du paquet -<tt>debian-policy</tt>. Elles sont aussi disponibles sur les miroirs web de -Debian, - <tt><url name="/doc/packaging-manuals/perl-policy/" - id="https://www.debian.org/doc/packaging-manuals/perl-policy/"></tt>. - </p> - - </sect> - <sect id="emacs"> - <heading>Les programmes emacs lisp</heading> - - <p> -Veuillez consulter le « Debian Emacs Policy » pour les détails -concernant la création de paquets de programmes emacs lisp. -</p> - <p> -On peut trouver les règles concernant Emacs dans le fichier -<file>debian-emacs-policy.gz</file> du paquet -<package>emacsen-common</package> package. Elles sont aussi disponibles -sur les miroirs web de Debian, -<tt><url name="/doc/packaging-manuals/debian-emacs-policy" id="https://www.debian.org/doc/packaging-manuals/debian-emacs-policy"></tt>. - </p> - -</sect> - - - <sect> - <heading>Les jeux</heading> - - <p> -Les permissions de <tt>/var/lib/games</tt> sont 755 , propriétaire -<tt>root</tt> et groupe <tt>root</tt>. -</p> - - <p> -Chaque jeu décide de ses propres règles de sécurité. -</p> - - <p> -Les jeux qui demandent des accès privilégiés et protégés à des -fichiers de scores, de sauvegardes de parties, etc., peuvent appartenir -à <tt>root.games</tt> et être exécutables par le groupe <tt>games</tt> -(mode 2755) et doivent utiliser des fichiers et des répertoires avec -des permissions appropriées (770 <tt>root.games</tt> par exemple). -Ils ne doivent pas être exécutable par un utilisateur (set-user-id), -car cela entraîne des problèmes de sécurité. Si un attaquant arrive -à corrompre un jeu « set-user-id », il peut alors remplacer -l'exécutable d'autres utilisateurs, forçant les autres joueurs de ces jeux à -exécuter un cheval de Troie. Avec un programme « set-group-id », -l'attaquant n'a accès qu'à des données de jeu moins -importantes. S'il veut accéder aux comptes des autres joueurs, cela lui -demandera des efforts beaucoup plus importants. -</p> - - <p> -Certains paquets, comme les programmes « fortune », sont configurés -par leurs auteurs originaux pour interdire la lecture de leurs fichiers -de données ou d'autres informations statiques, -de manière qu'ils ne puissent être accessibles que par les programmes -« set-id » fournis. Vous ne ferez pas de même dans un paquet -Debian : n'importe qui peut télécharger le fichier <tt>.deb</tt> et y lire -les données, cela n'a donc pas de sens d'avoir des fichiers non lisibles. -Créer des fichiers accessibles en lecture implique aussi que vous n'avez pas -à construire des programmes « set-id », ce qui réduit le risque de -failles de sécurité. -</p> - <p> - Conformément au « FHS », les binaires des jeux seront -installés dans le répertoire <file>/usr/games</file>. Cela s'applique -aussi aux jeux utilisant le système <em>X Window</em>. On installera les -pages de manuel des jeux (« X » et « non-X ») dans -<file>/usr/share/man/man6</file>. -</p> -</sect> -</chapt> - - <chapt id="docs"> -<heading>La documentation</heading> - - - <sect> - <heading>Les pages du manuel</heading> - - <p> -On installera les pages de manuel sous la forme d'un source -<prgn>nroff</prgn>, à l'emplacement approprié dans <file>/usr/share/man</file>. -Vous utiliserez uniquement les sections 1 à 9 (voir le FHS pour -plus de détails). Vous ne devez pas installer de -pages « cat » préformatées. -</p> -<p> -Chaque programme, utilitaire ou fonction aura une page de manuel associée -dans le même paquet. On suggère aussi que chaque fichier de configuration -ait une page de manuel associée. Pour des protocoles ou des programmes -secondaires, les pages de manuel sont facultatives. -</p> - <p> -L'absence de page de manuel est considérée comme un bogue et un rapport sera -envoyé au système Debian de suivi de bogues (le responsable du paquet peut -écrire lui-même ce rapport, s'il le souhaite). On ne doit pas fermer le -rapport tant que la page de manuel n'est pas disponible <footnote> -<p> -Ce n'est pas très difficile d'écrire une page de manuel. Voyez le -<url id="http://www.schweikhardt.net/man_page_howto.html" -name="Man-Page-HOWTO">, la page <manref name="man" section="7">, les exemples -créés par <prgn>debmake</prgn> ou par <prgn>dh_make</prgn>, les programmes -d'aide <prgn>help2man</prgn>, ou les exemples dans le répertoire -<file>/usr/share/doc/man-db/examples</file>. - </p> - </footnote>. -</p> - - <p> -Vous pouvez faire suivre une plainte concernant l'absence d'une page du manuel -aux auteurs originaux, et signaler qu'un rapport de bogue a été envoyé au -système Debian de suivi des bogues. Même si le projet GNU ne considère pas en -général l'absence d'une page du manuel comme un bogue, nous oui. S'ils vous -répondent qu'ils ne considèrent pas cela comme un bogue, laissez quand même -le bogue ouvert dans notre système de suivi. -</p> - - <p> -Les pages de manuel seront installées comprimées avec <tt>gzip -9</tt>. -</p> - <p> -Si une page de manuel doit être accessible via différents noms, il est -préférable d'utiliser un lien symbolique plutôt que la fonctionnalité -<tt>.so</tt>, mais il est inutile de bricoler les parties -incriminées dans les sources originaux pour changer les <tt>.so</tt> -en liens symboliques (à moins que ce soit trivial). -Ne créez pas de lien physique dans les répertoires des pages du manuel -et ne mettez pas de chemin absolu dans les directives <tt>.so</tt>. -Le nom du fichier dans le <tt>.so</tt> d'une page du manuel sera -relatif à la racine des pages (habituellement <tt>/usr/share/man</tt>). -Si l'on ne crée pas de liens (liens symboliques, liens « en dur » -ou des directives <tt>.so</tt>) dans le système de fichiers pour les autres -noms de cette page, on ne comptera pas sur <prgn>man</prgn> pour trouver la -page de manuel sous ces noms à partir des seuls renseignements contenus dans -l'en-tête de la page<footnote> -<p> -Cette faculté demande à <prgn>man</prgn> un temps de calcul déraisonnable -pour trouver une page de manuel, rapporter qu'elle n'existe pas et -transférer dans sa base de données une information qui devrait rester dans le -système de fichier. Elle est déconseillée et cessera d'exister à l'avenir. - </p> - </footnote>. -</p> -</sect> - - <sect> - <heading>Les documents « Info »</heading> - - <p> - -On installera les documents « Info » dans <tt>/usr/share/info</tt>. -Ils seront comprimés avec <tt>gzip -9</tt>. -</p> - <p> -Votre paquet appellera <prgn>install-info</prgn>, dans le script -<prgn>postinst</prgn>, appelé par exemple avec un argument <tt>configure</tt>, -pour mettre à jour le fichier <tt>dir</tt> de « Info » : - <example compact="compact"> -install-info --quiet --section Development Development \ -/usr/share/info/foobar.info - </example></p> - - <p> -Il est judicieux de spécifier une section pour l'emplacement de votre -programme ; cela se fait avec l'option <tt>--section</tt>. -Pour déterminer la section à utiliser, vous devez consulter -<tt>/usr/share/info/dir</tt> sur votre système et choisir la plus adéquate -(ou créer une nouvelle section si aucune des sections actuelles n'est -adaptée). Notez que l'option <tt>--section</tt> prend deux arguments ; -le premier est une expression régulière pour rechercher une section -existante (indépendamment de la casse), le second est utilisé pour la création -d'une nouvelle section. -</p> - <p> -Vous retirerez les entrées dans le script <prgn>prerm</prgn> appelé avec un -argument <tt>remove</tt> : - <example compact="compact"> -install-info --quiet --remove /usr/share/info/foobar.info - </example></p> - - <p> -Si <prgn>install-info</prgn> ne trouve pas une entrée descriptive dans -le fichier Info, vous devrez en fournir une. Voir -<manref name="install-info" section="8"> pour des précisions. -</p> -</sect> - - <sect> - <heading>Documentations supplémentaires</heading> - - <p> -Le responsable d'un paquet peut installer toute documentation supplémentaire -qui vient avec ce paquet. Les documents texte seront placés dans le -répertoire <tt>/usr/share/doc/<var>paquet</var></tt>, -et comprimés avec <tt>gzip -9</tt> à moins qu'ils soient petits. -</p> - - <p> -Si un paquet contient une importante documentation dont la majorité des -utilisateurs du paquet n'a pas besoin, vous la mettrez dans un paquet binaire -distinct. Ainsi elle ne prendra pas d'espace disque sur -les machines des utilisateurs qui n'en ont pas besoin ou qui ne veulent -pas l'installer. -</p> - - - <p> -Il est souvent judicieux de mettre les fichiers d'informations -(<tt>README</tt>, changelogs, etc.) provenant du paquet source -dans <tt>/usr/share/doc/<var>paquet</var></tt> au sein des paquets binaires. -Bien entendu, vous n'avez pas besoin de fournir les instructions -de compilation et d'installation. -</p> - -<p> -Aucun programme ne demandera, pour son fonctionnement, que des fichiers -existent dans <tt>/usr/share/doc</tt> <footnote> -<p> -L'administrateur système pourra supprimer tout fichier dans -<file>/usr/share/doc/</file> sans craindre de <em>planter</em> -un programme. - </p> - </footnote>. -Tout fichier référencé par un programme et qui est utile -en tant que documentation indépendante sera installé dans -<file>/usr/share/<var>paquet</var>/</file> et lié symboliquement avec -<file>/usr/share/doc/<var>paquet</var>/</file>. - </p> -<p> -<file>/usr/share/doc/<var>paquet</var></file> peut être un lien symbolique -vers un autre répertoire de <file>/usr/share/doc</file> seulement si -les deux paquets proviennent de la même source et si le premier paquet -dépend du second. <footnote> - <p> - -Il faut remarquer que cela n'annule pas la section dans les fichiers -changelog et le fichier <file>/usr/share/<var>package</var>/changelog.Debian.gz</file> -doit se référer au changelog de la version courante du <var>paquet</var> -en question. En pratique, cela signifie que la source de la cible -et la destination du lien symbolique doivent être identiques -(même paquet source et même version). - </p> - </footnote> -</p> - <p> -Les précédentes versions de Debian plaçaient toute la documentation -supplémentaire dans <file>/usr/doc/<var>paquet</var></file>. C'est maintenant -<file>/usr/share/doc/<var>paquet</var></file>, et les paquets ne doivent pas -mettre de la documentation dans le répertoire -<file>/usr/doc/<var>paquet</var></file> <footnote> -<p> -À ce moment de la transition, nous n'avons plus besoin d'un lien symbolique -vers <file>/usr/doc/</file>. Plus tard, la charte transformera ces liens -symboliques en bogues.</p> - </footnote>. - </p> - </sect> - - - <sect> - <heading>Les formats préférés pour la documentation </heading> - - <p> -L'unification de la documentation Debian se fait autour du format HTML. -</p> - - <p> -Si votre paquet comprend une importante documentation dans un format balisé -qui peut être converti en d'autres formats, vous livrerez -si possible la version HTML dans le paquet binaire, dans le répertoire -<tt>/usr/share/doc/<var>paquet-approprié</var></tt> ou l'un de ses -sous-répertoires -<footnote> - <p> - Le raisonnement : ce qui importe ici, c'est que les documents HTML - soient disponibles dans <em>certains</em> paquets, et pas - nécessairement dans le paquet binaire principal. - </p> -</footnote>. - -</p> - <p> -Le responsable de paquet peut fournir à sa guise d'autres formats, comme -PostScript. -</p> -</sect> - - <sect id="copyrightfile"> - <heading>Les informations de copyright</heading> - - <p> -Chaque paquet doit être accompagné d'une copie <em>verbatim</em> de son -copyright ainsi que de sa licence de distribution dans le fichier -<tt>/usr/share/doc/<var>paquet</var>/copyright</tt>. Ce fichier ne doit -pas être comprimé ni être un lien symbolique. -</p> - <p> -De plus, le fichier de copyright doit préciser où ont été obtenus -les fichiers sources originaux (s'ils existent). Il nommera les auteurs -originaux et le(s) responsable(s) Debian qui ont ½uvré à la création -du paquet. -</p> - -<p> -Une copie du fichier installé dans -<file>/usr/share/doc/<var>paquet</var>/copyright</file> sera faite dans le -<file>debian/copyright</file> du paquet source.</p> - - <p> -<file>/usr/share/doc/<var>paquet</var></file> peut être un lien symbolique -vers un répertoire de <file>/usr/share/doc</file> seulement si, de deux -paquets -provenant tous les deux de la même source, le premier possède une relation -« Depends » avec le second. Ces règles sont importantes car -on doit pouvoir extraire les copyrights par des moyens automatiques. -</p> - <p> -Les paquets distribués sous la licence « UCB BSD », la licence -« Artistic », la licence « GNU GPL » ou la licence -« GNU LGPL » feront respectivement référence aux fichiers -correspondants sous <file>/usr/share/common-licenses</file>,<footnote> - <p> - Par exemple, - <file>/usr/share/common-licenses/Artistic</file>, - <file>/usr/share/common-licenses/BSD</file>, - <file>/usr/share/common-licenses/GPL</file>, - <file>/usr/share/common-licenses/LGPL</file>, - <file>/usr/share/common-licenses/GFDL</file>, - <file>/usr/share/common-licenses/GPL-2</file> et - <file>/usr/share/common-licenses/LGPL-2.1</file> et ainsi de - suite. Notez que la GFDL est nouvelle ici et que le fichier de - licence peut ne pas être encore en place dans - <file>/usr/share/common-licenses/GFDL</file>. - </p> - </footnote> -plutôt que de les citer dans le fichier de copyright. -</p> - - <p> -Vous ne devez pas utiliser le fichier copyright comme un fichier -<file>README</file> général. Si votre paquet possède un tel fichier, vous -l'installerez dans <file>/usr/share/doc/<var>paquet</var>/README</file> ou -<file>README.Debian</file> ou dans un autre endroit approprié. -</p> -</sect> - -<sect> -<heading>Exemples</heading> - -<p> -On installera tous les exemples (configuration, fichiers source, autres) dans -un répertoire <file>/usr/share/doc/<var>paquet</var>/examples</file>. -Ces fichiers ne seront pas utilisés par un quelconque programme. -Ils ne sont là qu'en tant que documentation, et pour le seul bénéfice de -l'administrateur système et des utilisateurs. -On installera les exemples concernant une architecture particulière dans un -répertoire <file>/usr/lib/<var>paquet</var>/examples</file> et les fichiers -dans <file>/usr/share/doc/<var>paquet</var>/examples</file> seront des liens -symboliques. Ou bien, ce dernier répertoire sera un lien vers le premier. -</p> - <p> -Si le but d'un paquet est de fournir des exemples, les fichiers d'exemples -peuvent être installés dans <file>/usr/share/doc/<var>paquet</var></file>. - </p> - -</sect> - -<sect id="changelogs"> -<heading>Les fichiers « Changelog »</heading> -<p> -Les paquets qui ne sont pas originaires de Debian doivent contenir, -dans <file>/usr/share/doc/<var>paquet</var></file>, une copie compressée nommée -<file>changelog.Debian.gz</file> du fichier <file>debian/changelog</file> qui -est dans l'arborescence des sources. - </p> -<p> -S'il existe un « changelog » original, il sera accessible comme un -fichier texte, <file>/usr/share/doc/<var>paquet</var>/changelog.gz</file>. -Si le « changelog » original est distribué comme un fichier HTML, -il sera rendu disponible en tant que -<file>/usr/share/doc/<var>paquet</var>/changelog.html.gz</file> et le -<file>changelog.gz</file> sera produit en utilisant p. ex. -<tt>lynx -dump -nolist</tt>. -Si le changelog original n'est pas déjà conforme -à cette convention, alors cela peut être réalisé soit en renommant ce fichier -soit en créant un lien symbolique, c'est à la convenance du responsable -du paquet<footnote><p> Argument : on n'a pas à chercher dans deux endroits -les « changelogs » originaux simplement parce qu'ils ont des noms -différents ou parce qu'ils sont dans un format HTML.</p></footnote>. -</p> - -<p> -Ces fichiers seront installés comprimés par <tt>gzip -9</tt>, car -ils grossissent avec le temps même s'ils commencent petitement. -</p> - -<p> -Quand un paquet a un seul changelog, utilisé à la fois comme -changelog Debian et changelog original car le responsable principal est le même -que le responsable Debian, on appellera simplement ce changelog : -<file>/usr/share/doc/<var>paquet</var>/changelog.gz</file>. S'il y a un -responsable principal mais pas de changelog source, on appellera toujours le -changelog Debian : <file>changelog.Debian.gz</file>. -</p> - <p> -Pour des précisions sur le format et le contenu d'un fichier changelog de -Debian, voyez <ref id="dpkgchangelog">. - </p> - -</sect> -</chapt> - -<appendix id="pkg-scope"> -<heading>Introduction : la portée des ces annexes</heading> - -<p> -Ces annexes sont tirées essentiellement <em>verbatim</em> du -<em>Packaging Manual</em>, version 3.2.1.0, dont l'usage est maintenant -déconseillé. Elles contiennent les chapitres qui peuvent aider les -responsables de paquet et qui n'ont pas été inclus dans la Charte elle-même. -La plupart de ces sections ne sont sans doute pas pertinentes pour une -charte ; elles seront vues comme une documentation du système -d'empaquetage. -Veuillez remarquer que ces annexes ont été incluses pour leur utilité et -pour des raisons historiques : elles faisaient partie du paquet -« policy » et n'ont pas encore intégré la documentation de -<prgn>dpkg</prgn>. Cependant, elles sont utiles et sont donc présentées ici. - </p> -<p> -On ne s'est pas assuré qu'elles étaient compatibles avec le contenu de la -Charte ; s'il y a contradiction, la version de la Charte prime. On ne -s'est pas assuré non plus qu'aucune partie des chapitres restants du vieux -<em>Packaging Manual</em> n'a été oubliée. Ces deux choses seront faites en -temps et en heure. - </p> - <p> -Des parties du <em>Packaging Manual</em> ont été intégrées dans la Charte et -supprimées de ces annexes. Des liens renvoient de l'ancienne place à la -nouvelle. - </p> - -<p> -<prgn>dpkg</prgn> est un ensemble de programmes servant à la création, -l'installation et la suppression des fichiers des paquets binaires sur les -systèmes Unix -<footnote><p><prgn>dpkg</prgn> est conçu d'abord pour Debian GNU/Linux, mais -peut fonctionner sur, ou être porté vers, d'autres systèmes.</p></footnote>. - </p> -<p> -Les paquets binaires sont conçus pour la gestion des programmes exécutables -installés (habituellement des binaires compilés) et de leurs données -associées, bien que les exemples de code source et la documentation fassent -partie de certains paquets. - </p> -<p> -Ce manuel décrit les aspects techniques de la création des paquets binaires -Debian (fichiers <tt>.deb</tt>). Il documente le comportement des -programmes de gestion des paquets <prgn>dpkg</prgn>, -<prgn>dselect</prgn> et al., et la manière dont ils interagissent avec les -paquets. - </p> -<p> -Il précise aussi les interactions entre le c½ur de <prgn>dselect</prgn> et les -méthodes d'accès qu'il utilise pour installer réellement les paquets -sélectionnés, et décrit comment créer une nouvelle méthode d'accès. - </p> -<p> -Ce manuel ne détaille pas les options et l'utilisation des outils de création -et d'installation des paquets. Il est donc souhaitable de le lire -conjointement avec les pages de manuel de ces programmes. - </p> -<p> -Les utilitaires qui sont fournis avec <prgn>dpkg</prgn> pour gérer -les problèmes de configuration des différents systèmes, tels -que <prgn>update-rc.d</prgn> et <prgn>install-info</prgn> ne sont pas non -plus décrits en détail, voyez leurs pages de manuel. - </p> -<p> -On supposera que le lecteur est familier avec le manuel de -l'administrateur système <prgn>dpkg</prgn>. Malheureusement ce document n'existe pas encore. - - </p> -<p> -La version Debian du programme GNU <prgn>hello</prgn> de la <em>FSF</em> est -proposé comme exemple aux personnes qui souhaitent créer des paquets Debian. -Le paquet Debian <prgn>debmake</prgn> est un outil recommandé pour la -création et -la maintenance des paquets Debian. Bien qu'utiles, ces outils et les -exemples ne peuvent cependant dispenser de la lecture de la Charte. - </p> - </appendix> - -<appendix id="pkg-binarypkg"> -<heading>Les paquets binaires (annexe tirée de l'ancien <em>Packaging Manual</em>)</heading> -<p> -Un paquet binaire comporte deux parties principales. La première comprend -divers fichiers d'information de contrôle et des scripts utilisés -par <prgn>dpkg</prgn> lors de l'installation ou de la dés-installation. Voir -<ref id="pkg-controlarea">. - </p> -<p> -La deuxième partie est une archive contenant les fichiers et les -répertoires à installer. - </p> -<p> -À l'avenir les paquets binaires pourront contenir d'autres composants, -comme des sommes de contrôle ou des signatures numériques. Le format -de l'archive est décrit dans la page de manuel de <tt>deb(5)</tt>. - </p> - -<sect id="pkg-bincreating"><heading>Comment créer les fichiers d'un paquet ? -- <prgn>dpkg-deb</prgn></heading> -<p> -Toutes les manipulations des fichiers d'un paquet binaire se font avec -<prgn>dpkg-deb</prgn> ; c'est le seul programme qui connaisse le format. -<prgn>dpkg-deb</prgn> peut être appelé par <prgn>dpkg</prgn>, car -<prgn>dpkg</prgn> reconnaît que les options qui lui sont données appartiennent -à <prgn>dpkg-deb</prgn> et l'appelle avec ces arguments. - </p> -<p> -Pour créer un paquet binaire, on doit créer une arborescence qui -contient tous les fichiers et répertoires destinés à la partie « données » -du système de fichiers du paquet. Dans les paquets Debian au format -source, ce répertoire, <tt>debian/tmp</tt>, est habituellement relatif à la -racine de l'arborescence du paquet source. - </p> -<p> -Ces fichiers auront l'adresse (relativement à la racine de l'arborescence -que l'on construit) et le système de propriété et de permissions que l'on -veut leur donner sur le système où ils seront installés. -</p> -<p> -Avec les versions actuelles de <prgn>dpkg</prgn>, les identifiants <em>uid</em> -(utilisateur) et les identifiants <em>gid</em> (groupe) utilisés seront les -mêmes pour le système <em>sur</em> lequel on construit que pour le système -<em>pour</em> lequel on construit. - </p> -<p> -On doit ajouter un répertoire spécial à la racine de la mini -arborescence créée : <prgn>DEBIAN</prgn>. Il contiendra les -fichiers de contrôle, notamment le fichier de contrôle des -paquets binaires (voir <ref id="pkg-controlfile">). - </p> -<p> -Le répertoire <tt>DEBIAN</tt> n'apparaîtra pas dans l'archive du système -de fichiers du paquet, et ainsi ne sera pas créé par <prgn>dpkg</prgn> -quand le paquet sera installé. - </p> -<p> -Quand le paquet est prêt, on appellera : -<example> -dpkg --build <var>répertoire</var> -</example> - </p> -<p> -Le paquet sera construit dans <file><var>répertoire</var>.deb</file>. -(<prgn>dpkg</prgn> sait que <tt>--build</tt> est une option de -<prgn>dpkg-deb</prgn> et il appelle <prgn>dpkg-deb</prgn> avec ces arguments -pour construire le paquet.) - </p> -<p> -Voir les pages de manuel <manref name="dpkg-deb" section="8"> -pour savoir comment examiner le contenu de ce fichier fraîchement créé. -Les sorties des commandes suivantes peuvent être éclairantes : -<example> -dpkg-deb --info <var>filename</var>.deb -dpkg-deb --contents <var>filename</var>.deb -dpkg --contents <var>filename</var>.deb -</example> -Pour voir le copyright d'un paquet, on peut utiliser cette commande : -<example> -dpkg --fsys-tarfile <var>filename</var>.deb | tar xOf - \*/copyright | pager -</example> - </p> - </sect> - -<sect id="pkg-controlarea"> -<heading>Les fichiers de contrôle d'un paquet</heading> -<p> -La partie contenant les informations de contrôle d'un paquet binaire est une -collection de fichiers dont les noms sont connus par <prgn>dpkg</prgn>. -<prgn>dpkg</prgn> traitera le contenu de ces fichiers d'une manière spéciale - -certains d'entre eux contiennent des informations utilisées pour -l'installation ou la suppression d'un paquet ; les autres sont des -scripts dont le responsable de paquet désire l'exécution. - </p> -<p> -Il est possible de mettre d'autres fichiers dans la zone de contrôle du -paquet, mais ce n'est pas une bonne idée (de toute façon ils seront ignorés). - </p> -<p> -Voici une brève liste des fichiers de contrôle utilisés par -<prgn>dpkg</prgn> et un résumé de ce qu'ils font. - </p> -<p> -<taglist> -<tag><tt>control</tt></tag> -<item> -<p> -C'est le principal fichier de description utilisé par <prgn>dpkg</prgn>. Il -indique le nom et la version du paquet, donne sa description pour les -utilisateurs, établit les relations avec les autres paquets, etc. -Voir <ref id="sourcecontrolfiles"> et <ref id="binarycontrolfiles">. - </p> -<p> -Ce fichier est créé par le programme <prgn>dpkg-gencontrol</prgn>, avec -l'aide de <prgn>dpkg-shlibdeps</prgn>, à partir des informations -contenues dans le paquet source. Voir <ref id="pkg-sourcetools">. - </p> - </item> -<tag><tt>postinst</tt>, <tt>preinst</tt>, <tt>postrm</tt>, <tt>prerm</tt></tag> -<item> -<p> -Ce sont des fichiers exécutables (habituellement des scripts) que -<prgn>dpkg</prgn> exécute pendant l'installation, la mise à jour ou -la suppression des paquets. Ils permettent de traiter les particularités -d'un paquet ou celles qui nécessitent un traitement plus -compliqué que celui fourni par <prgn>dpkg</prgn>. Quand et comment ils sont -appelés est indiqué dans <ref id="maintainerscripts">. - </p> -<p> -Il est très important de rendre ces scripts idempotents. -Voyez <ref id="idempotency">. - </p> -<p> -Les scripts de maintenance peuvent compter sur un -terminal de contrôle et peuvent interagir avec l'utilisateur. -Voyez <ref id="controllingterminal">. - </p> -</item> - -<tag><tt>conffiles</tt> -</tag> -<item> -<p> -Ce fichier contient une liste des fichiers de configuration qui doivent être -gérés automatiquement par <prgn>dpkg</prgn> (voir <ref id="pkg-conffiles">). -Il faut remarquer que tous les fichiers de configuration ne sont pas -nécessairement listés là. - </p> - </item> -<tag><tt>shlibs</tt> -</tag> -<item> -<p> -Ce fichier contient une liste des bibliothèques partagées fournies par -le paquet avec les informations de dépendances pour chacune. Elle est utilisée -par <prgn>dpkg-shlibdeps</prgn> quand il détermine quelles dépendances sont -nécessaires dans un fichier de contrôle de paquet. Le format du fichier -<tt>shlibs</tt> est décrit dans <ref id="shlibs">. - </p> - </item> - </taglist> -</p> - </sect> - -<sect id="pkg-controlfile"> -<heading>Le principal fichier d'informations de contrôle : <tt>control</tt></heading> - <p> -<tt>control</tt> est le plus important des fichiers pour <prgn>dpkg</prgn>. -Il contient toutes les informations vitales d'un paquet. - </p> - -<p> -Les fichiers de contrôle des paquets binaires construits à partir des sources -Debian sont faits par un outil spécial <prgn>dpkg-gencontrol</prgn> qui lit -<tt>debian/control</tt> et <tt>debian/changelog</tt> pour trouver les -informations dont il a besoin. Voir <ref id="pkg-sourcepkg"> pour des -précisions. - </p> -<p> -Les champs d'un fichier de contrôle d'un paquet binaire sont listés -dans <ref id="binarycontrolfiles">. - </p> - <p> -La description de la syntaxe de ces champs et de leur signification se -trouve dans <ref id="controlfields">. - </p> - - </sect> - -<sect> -<heading>Les cachets de date</heading> - <p> - Voyez <ref id="timestamps">. - </p> - </sect> - </appendix> - -<appendix id="pkg-sourcepkg"> -<heading>Les paquets sources (annexe tirée de l'ancien<em> Packaging Manual</em>)</heading> -<p> -Les paquets binaires de la distribution Debian sont créés à partir des -paquets sources, lesquels sont dans un format spécial pour faciliter la -construction automatique des binaires. - </p> - -<sect id="pkg-sourcetools"> -<heading>Les outils pour gérer les paquets sources</heading> -<p> -De nombreux outils sont fournis pour manipuler les paquets sources. -Ils emballent et déballent les sources, aident à la construction -des paquets binaires et gèrent la distribution des nouvelles versions. - </p> -<p> -Ils sont présentés ici et leurs usages habituels décrits ; pour de plus -amples informations, voir <manref name="dpkg-source" section="1">. - </p> -<p> -Le paquet <prgn>hello</prgn> est un exemple de construction de paquet source -Debian et de la mise en ½uvre des utilitaires qui y sont impliqués. - </p> -<sect1 id="pkg-dpkg-source"> -<heading><prgn>dpkg-source</prgn> - faire et défaire un paquet source Debian</heading> - -<p> -Ce programme est fréquemment utilisé sur la ligne de commande ; il est -aussi appelé à partir des scripts de construction automatique de paquet, tel -que <prgn>dpkg-buildpackage</prgn>. - </p> -<p> -Il est appelé ainsi pour dépaqueter un paquet : -<example> -dpkg-source -x <var>.../path/to/filename</var>.dsc -</example> - </p> -<p> -avec <file><var>filename</var>.tar.gz</file> et <file><var>filename</var>.diff.gz</file> (si c'est utile) dans le même répertoire. Il dépaquette dans -<file><var>package</var>-<var>version</var></file>, et, si c'est utile, -<file><var>package</var>-<var>version</var>.orig</file>, dans le répertoire -actuel. - </p> -<p> -Pour créer un paquet, on utilise : - -<example> - dpkg-source -b <var>paquet</var>-<var>version</var> -</example> - </p> -<p> - -Les fichiers <file>.dsc</file>, <file>.tar.gz</file> et <file>.diff.gz</file> -seront -créés (si c'est utile) dans le répertoire courant. <prgn>dpkg-source</prgn> -n'efface pas l'arborescence des sources. Cela doit être fait séparément, si -nécessaire. - </p> -<p> -Voir aussi <ref id="pkg-sourcearchives">. - </p> - </sect1> - -<sect1 id="pkg-dpkg-buildpackage"> -<heading><prgn>dpkg-buildpackage</prgn> - script de contrôle pour la -construction de paquet</heading> -<p> -<prgn>dpkg-buidpackage</prgn> est un script qui fait appel à -<prgn>dpkg-source</prgn>, aux cibles de <tt>debian/rules</tt> : -<tt>clean</tt>, <tt>build</tt> et <tt>binary</tt>, -à <prgn>dpkg-genchanges</prgn> et à <prgn>pgp</prgn> -(ou <prgn>pgp</prgn>) pour construire des paquets -signés, source et binaire, installables sur le serveur. - </p> -<p> -Il est généralement utilisé sur la ligne de commande, à la racine du répertoire -source à créer ou à détruire. Il peut être invoqué sans arguments. -Les arguments utiles sont : -<taglist compact="compact"> -<tag><tt>-uc</tt>, <tt>-us</tt></tag> -<item> - -<p> -ne pas chiffrer, respectivement le fichier <tt>.changes</tt> -et le fichier paquet source <tt>.dsc</tt>. - </p> - </item> -<tag><tt>-p<var>sign-command</var></tt></tag> -<item> -<p> -Invoque la commande <var>sign-command</var> -au lieu de chercher <tt>gpg</tt> ou <tt>pgp</tt> dans la variable -<tt>PATH</tt>. -<var>sign-command</var> doit avoir le même comportement que -<prgn>gpg</prgn> ou <tt>pgp</tt>. - </p> - </item> -<tag><tt>-r<var>root-command</var></tt></tag> -<item> -<p> -Quand les privilèges de root sont nécessaires, invoque -la commande <var>root-command</var>. <var>root-command</var> invoquera -son premier argument comme une commande, dans le <tt>PATH</tt> si nécessaire, -et passera son second argument et les autres à la commande qu'il appelle. -Si aucune <var>root-command</var> n'est fournie, -<prgn>dpkg-buildpackage</prgn> ne fera rien pour obtenir les -privilèges de root ; ainsi, pour la plupart des programmes, il devra être -appelé par root pour démarrer. - </p> - </item> -<tag><tt>-b</tt>, <tt>-B</tt></tag> -<item> -<p> -Deux types de construction et d'installation pour les binaires, -voir <manref name="dpkg-source" section="1">. - </p> - </item> - </taglist></p> - </sect1> - <sect1 id="pkg-dpkg-gencontrol"> -<heading><prgn>dpkg-gencontrol</prgn> - créer des fichiers de contrôle pour -les paquets binaires</heading> -<p> -Ce programme est habituellement appelé à partir du fichier -<file>debian/rules</file> (voir <ref id="pkg-sourcetree">) depuis la racine de -l'arborescence source. -</p> -<p> -On l'appelle juste avant que ne soit établi le système des permissions pour -les fichiers et les répertoires du répertoire temporaire où le paquet est -construit et avant la construction du paquet par <prgn>dpkg-deb</prgn> -<footnote><p>Il en est ainsi afin que le fichier de contrôle produit possède -les bonnes permissions.</p></footnote>. - </p> -<p> -<prgn>dpkg-gencontrol</prgn> doit être appelé après que tous les fichiers du -paquet ont été mis en place dans le répertoire temporaire de construction, -afin que le calcul de la taille du paquet installé soit correct. - </p> -<p> -Il faut aussi que <prgn>dpkg-gencontrol</prgn> soit exécuté après -<prgn>dpkg-shlibdeps</prgn> afin que les variables de substitutions, créées par -<prgn>dpkg-shlibdeps</prgn> dans le fichier <tt>debian/substvars</tt>, soient -disponibles. - </p> -<p> -Un paquet qui crée un seul paquet binaire et qui le construit -dans le répertoire <tt>debian/tmp</tt> relatif à la racine du paquet -source, appellera simplement : <prgn>dpkg-gencontrol</prgn>. - </p> -<p> -Les sources qui construisent plusieurs binaires utiliseront : -<example> -dpkg-gencontrol -Pdebian/tmp-<var>pkg</var> -p<var>paquet</var> -</example> -L'argument <tt>P</tt> indique à <prgn>dpkg-gencontrol</prgn> que le paquet est -en train de se construire dans un répertoire différent de celui par défaut -et l'argument <tt>-p</tt> indique le fichier de contrôle qui sera créé. - </p> -<p> -<prgn>dpkg-gencontrol</prgn> ajoute aussi des informations à la liste des -fichiers dans <tt>debian/files</tt> ; cela peut servir à un prochain appel -à <prgn>dpkg-genchanges</prgn>. - </p> - </sect1> -<sect1 id="pkg-dpkg-shlibdeps"> -<heading><prgn>dpkg-shlibdeps</prgn> - les dépendances des bibliothèques partagées</heading> -<p> -Ce programme est habituellement appelé à partir du fichier -<file>debian/rules</file>, -juste avant <prgn>dpkg-gencontrol</prgn> (voir <ref id="pkg-sourcetree">), -à la racine de l'arborescence source. - </p> -<p> -Les arguments sont des exécutables <footnote> -<p> -Dans une prochaine version de dpkg, <prgn>dpkg-shlibdeps</prgn> serait aussi -appelé pour les bibliothèques partagées. -</p> -<p> -Ils peuvent être spécifiés soit dans les emplacements de l'arborescence source -où ils sont créés soit dans les emplacements de l'arborescence temporaire de -construction où ils sont installés avant la création du paquet binaire. - </p> - </footnote> pour lesquels les dépendances des bibliothèques -partagées seront incluses dans le fichier de contrôle du paquet. - </p> -<p> -Si certaines bibliothèques partagées doivent seulement justifier d'un -<tt>Recommends</tt> ou d'un <tt>Suggests</tt>, ou si certaines demandent un -<tt>Pre-Depends</tt>, cela peut être réalisé en utilisant l'option -<tt>-d</tt><em>dependency-field</em> avant ces exécutables -(chaque option <tt>-d</tt> prend effet jusqu'au prochain <tt>-d</tt>). - </p> -<p> -<prgn>dpkg-shlibdeps</prgn> ne modifie pas directement le fichier de contrôle. -Par défaut, il ajoute au fichier <file>debian/substvars</file> des variables -comme <tt>shlibs:Depends</tt>. Ces variables doivent être référencées dans les -champs de dépendance du fichier de contrôle source dans les sections propres -aux paquets binaires. - </p> -<p> -Par exemple, un paquet, avec une partie essentielle qui demande des -dépendances et des parties facultatives qui ne demandent que des -recommandations, séparerait ces dépendances en deux champs <footnote> -On peut trouver aujourd'hui un exemple avec le paquet -<package>xmms</package> dont le champ Depends est utilisé pour l'exéutable -xmms, le champ Recommends pour des extensions (« plug-ins » et le -champ Suggests par d'autres fonctionnalités fournies par unzip. - </footnote>. -Cela peut être indiqué dans le fichier <tt>debian/rules</tt> par : -<example> - dpkg-shlibdeps -dDepends <var>programme autreprogramme ...</var> \ - -dRecommends <var>partiefacultative autrepartiefacultative</var> - -</example> -et ensuite dans le fichier principal de contrôle <file>debian/control</file> : -<example> -<var>...</var> -Depends: ${shlibs:Pre-Depends} -Recommends: ${shlibs:Recommends} -<var>...</var> -</example> - </p> -<p> -Les sources qui produisent plusieurs paquets binaires avec des exigences -différentes pour les dépendances envers les bibliothèques partagées peuvent -utiliser l'option <tt>-p<var>varnameprefix</var></tt> pour annuler le préfixe -<tt>shlibs:</tt> par défaut (un seul appel à <prgn>dpkg-shlibdeps</prgn> -par réglage de cette option). Ils peuvent ainsi produire plusieurs ensembles -de variables de dépendance, chacune de la forme -<tt><var>varnameprefix</var>:<var>dependencyfield</var></tt>, auxquelles -peuvent se référer les parties appropriées des fichiers de contrôle des -paquets binaires. - </p> - </sect1> - -<sect1 id="pkg-dpkg-distaddfile"> -<heading><prgn>dpkg-distaddfile</prgn> - ajouter un fichier à <file>debian/files</file></heading> -<p> -Certaines installations de paquets sur le serveur nécessitent d'inclure -d'autres fichiers que les fichiers des paquets sources et binaires. - </p> -<p> -<prgn>dpkg-distaddfile</prgn> ajoute un fichier dans -<file>debian/files</file> afin -qu'il soit inclus dans le fichier <file>.changes</file> lorsque -<prgn>dpkg-genchanges</prgn> sera lancé. - </p> -<p> -Il est habituellement invoqué à partir de la cible <prgn>binary</prgn> du -fichier <tt>debian/rules</tt> : -<example> -dpkg-distaddfile <var>fichier</var> <var>section</var> <var>priority</var> - </example> -L'argument <var>filename</var> est relatif au répertoire où -<prgn>dpkg-genchanges</prgn> s'attend à le trouver, généralement au-dessus de -la racine de l'arborescence source. La règle de <tt>debian/rules</tt> devrait -placer ce fichier juste avant ou juste après l'appel à -<prgn>dpkg-distaddfile</prgn>. - </p> -<p> -Les arguments <var>section</var> et <var>priority</var> sont placés sans -modification dans le fichier résultant <file>.changes</file>. - </p> - </sect1> - -<sect1 id="pkg-dpkg-genchanges"> -<heading><prgn>dpkg-genchanges</prgn> - créer un fichier de contrôle de -l'installation sur le serveur <file>.changes</file></heading> -<p> -Ce programme est généralement appelé par des scripts de construction automatique de paquet tels que <prgn>dpkg-buildpackage</prgn> mais peut être aussi -appelé sur la ligne de commande. - </p> -<p> -Il est habituellement exécuté à la racine de l'arborescence source construite, -et quand il est invoqué sans arguments, il écrira un simple fichier -<file>.changes</file> basé sur les informations des fichiers de contrôle et -de changement des paquets sources, et des paquets -sources et binaires qui ont dû être construits. - </p> - </sect1> - -<sect1 id="pkg-dpkg-parsechangelog"> -<heading><prgn>dpkg-parsechangelog</prgn> - produire une représentation du fichier <tt>changelog</tt></heading> -<p> -Ce programme est utilisé en interne par <prgn>dpkg-source</prgn> et al. -Il peut être aussi occasionnellement utilisé dans <file>debian/rules</file> et -ailleurs. Il analyse un fichier <em>changelog</em>, par défaut -<file>debian/changelog</file>, et affiche sur la sortie standard une -représentation des informations -contenues faite selon le format d'un fichier de contrôle. - </p> - </sect1> - -<sect1 id="pkg-dpkg-architecture"> -<heading><prgn>dpkg-architecture</prgn> - informations -sur les systèmes de construction et d'installation</heading> - -<p> -On peut utiliser ce programme sur la ligne de commande ; mais il est aussi -appelé par <tt>dpkg-buildpackage</tt> ou <file>debian/rules</file> pour -déterminer les variables d'environnement qui indiquent les architectures -utilisées pour la construction et pour l'installation pendant le processus -de construction du paquet. - </p> - </sect1> - </sect> - -<sect id="pkg-sourcetree"><heading>L'arborescence debianisée</heading> -<p> -La structure de l'archive source, décrite ci-dessous, a été conçue pour -permettre à une arborescence source debianisée et ses informations de -contrôle associées d'être facilement dupliquée et transportée. L'arborescence -source debianisée comprend une version du programme original, certains -fichiers ajoutés pour le processus de debianisation, ainsi que tous les -changements nécessaires réalisés sur les codes sources et scripts -d'installation. - </p> -<p> -Les fichiers supplémentaires créés pour Debian sont dans le répertoire -<file>debian</file> à la racine de l'arborescence source debianisée. Ils sont -décrits ci-dessous. - </p> - -<sect1 id="pkg-debianrules"> -<heading><file>debian/rules</file> - le script principal de construction</heading> - <p> -Voyez <ref id="debianrules">. - </p> - - <sect1 id="pkg-dpkgchangelog"> - <heading><file>debian/changelog</file></heading> - - <p> -Voyez <ref id="dpkgchangelog">. - </p> - - <p> -Il est recommandé que tout le fichier changelog soit codé en -<url id="http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc2279.html" name="UTF-8"> - de <url id="http://www.unicode.org/" name="Unicode"> <footnote> - <p> -Il me paraît évident que nous devrons passer au codage UTF-8 pour notre -infrastructure des paquets. C'est réellement le seul codage adéquat à un -environnement international. Mais nous ne pouvons l'utiliser dans les -champs des fichiers de contrôle des paquets tant que dpkg n'accepte pas -ce codage. On peut malgré tout demander aujourd'hui que les fichiers -changelogs soient codés en UTF-8. - </p> - <p> -Vérifier la présence de caractères n'appartenant pas à UTF-8 dans les -changelogs est facile. Passer le fichier dans -<example>iconv -f utf-8 -t ucs-4</example>, délaisser la sortie et -vérifier la valeur de retour. Si des chaînes comportent des séquences -qui n'appartiennent pas à UTF-8, iconv s'arrêtera avec un code d'erreur. -Ce sera pareil avec la grande majorité des autres jeux de caractères. - </p> - </footnote> - </p> - - <sect2><heading>Comment définir des formats alternatifs pour le -fichier <tt>changelog</tt></heading> -<p> -Il est possible d'utiliser un format différent de celui proposé, -en fournissant un analyseur pour le format qu'on veut utiliser. - </p> -<p> -Pour que <tt>dpkg-parsechangelog</tt> exécute l'analyseur, on inclura une -ligne à l'intérieur des quarante dernières lignes du fichier correspondant -à l'expression rationnelle Perl suivante : -<tt>\schangelog-format:\s+([0-9a-z]+)\W</tt>. La partie entre parenthèses sera -le nom du format. Par exemple, on pourrait dire : -<example> -@@@ changelog-format: joebloggs @@@ -</example> -Les noms des formats pour changelog sont des chaînes non vides -de caractères alphanumériques. -</p> -<p> -Quand une telle ligne existe, <tt>dpkg-parsechangelog</tt> cherche l'analyseur -dans <file>/usr/lib/dpkg/parsechangelog/<var>format-name</var></file> ou dans -<file>/usr/local/lib/dpkg/parsechangelog/<var>format-name</var></file> ; -c'est une erreur de ne pas le trouver, ou qu'il ne soit pas exécutable. Le -format changelog par défaut est <tt>dpkg</tt> et un analyseur est fourni -avec le paquet <tt>dpkg</tt>. - </p> -<p> -L'analyseur sera invoqué, au début du fichier, avec le changelog ouvert sur -l'entrée standard. Il lira le fichier (ou le parcourra avec seek) pour -trouver l'information et la retourner analysée sur la sortie standard sous la -forme d'une série de champ de contrôle dans le format standard. Par défaut, -il retournera seulement les informations les plus récentes du fichier -changelog ; il acceptera l'option <tt>-v</tt><em>version</em> pour -retourner les informations de changement de toutes les versions présentes -strictement supérieures à <em>version</em> et ce sera donc une erreur que -<var>version</var> soit absent dans le fichier changelog. - </p> - <p> - Voici les champs : - <list compact="compact"> - <item><qref id="f-Source"><tt>Source</tt></qref></item> - <item><qref id="f-Version"><tt>Version</tt></qref> (obligatoire)</item> - <item><qref id="f-Distribution"><tt>Distribution</tt></qref> (obligatoire)</item> - <item><qref id="f-Urgency"><tt>Urgency</tt></qref> (obligatoire)</item> - <item><qref id="f-Maintainer"><tt>Maintainer</tt></qref> (obligatoire)</item> - <item><qref id="f-Date"><tt>Date</tt></qref></item> - <item><qref id="f-Changes"><tt>Changes</tt></qref> (obligatoire)</item> - </list> - </p> -<p> -Si plusieurs versions sont retournées (à cause de l'utilisation -de l'option <tt>-v</tt>), la valeur <tt>urgency</tt> sera la plus grande -listée par toutes les versions requises et sera suivie par les commentaires -concaténés -(séparés par une espace) de toutes les versions requises ; les -champs : maintainer, version, distribution et date proviennent toujours -de la version la plus récente. - </p> -<p> -Pour le format du champ <tt>Changes</tt> voir <ref id="f-Changes">. - </p> -<p> -Si le format du fichier <tt>changelog</tt> analysé laisse toujours ou presque -toujours une ligne vide entre les notes de modifications individuelles, ces -lignes vides seront supprimées, pour rendre la sortie résultante plus compacte. - </p> -<p> -Si le format de changelog ne contient pas de date ou d'information sur le nom -du paquet, ces informations seront omises en sortie. L'analyseur ne doit pas -essayer de les synthétiser ou de les trouver à partir d'autres sources. - </p> -<p> -Si le fichier changelog n'a pas le format attendu, l'analyseur se terminera -avec un statut différent de zéro, plutôt que d'essayer de se débrouiller tant -bien que mal et créer des sorties incorrectes. - </p> -<p> -Un analyseur de changelog ne doit pas être interactif. - </p> - </sect2> - </sect1> - - -<sect1 id="pkg-srcsubstvars"> -<heading><tt>debian/substvars</tt> et les variables de substitution</heading> - - <p> - Voyez <ref id="substvars">. - </p> - </sect1> - -<sect1> -<heading><file>debian/files</file></heading> - <p> -Voyez <ref id="debianfiles">. - </p> - </sect1> - -<sect1> -<heading><file>debian/tmp</file></heading> - -<p> -C'est l'emplacement temporaire, pour la construction des paquets -binaires par la cible <tt>binary</tt>. Le répertoire <tt>tmp</tt> sert -de racine à l'arbre du système de fichier qui est en train de se -construire (par exemple en utilisant la règle d'installation du -<prgn>Makefile</prgn> du paquet original et en le redirigeant dans -<tt>tmp</tt>), et il contient aussi le sous-répertoire <tt>DEBIAN</tt>. Voir -<ref id="pkg-bincreating">. - </p> -<p> -Si plusieurs paquets binaires sont créés à partir du même arbre -source, il est habituel d'utiliser plusieurs répertoires -<tt>debian/tmp-truc</tt>, par exemple <tt>tmp-a</tt> -ou <tt>tmp-doc</tt>. - </p> -<p> -Quelques soient les répertoires <tt>tmp</tt> créés et utilisés par -<tt>binary</tt>, la cible <tt>clean</tt> doit bien sûr les effacer. - </p> - </sect1> - </sect> - -<sect id="pkg-sourcearchives"><heading>Les paquets sources en tant qu'archive</heading> -<p> -Sur les sites FTP, les paquets sources contiennent trois fichiers reliés -entre eux. On doit avoir les trois bonnes versions pour pouvoir -les utiliser. - </p> -<p> -<taglist> -<tag>Le fichier de contrôle des sources Debian - <tt>.dsc</tt></tag> -<item> -Ce fichier est un fichier de contrôle utilisé par <prgn>dpkg-source</prgn> -pour extraire un paquet source. Voyez <ref id="debiansourcecontrolfiles">. - </item> - -<tag>L'archive source originelle - -<file><var>paquet</var>_<var>version-amont</var>.orig.tar.gz</file></tag> -<item> -<p>C'est un fichier <prgn>tar</prgn> comprimé (avec <prgn>gzip -9</prgn>) -contenant le code source de l'auteur original du programme. - </p> - </item> -<tag>fichier <tt>diff</tt> de debianisation - <tt><var>paquet</var>_<var>version_amont-revision</var>.diff.gz</tt></tag> -<item> -<p> -C'est un fichier <tt>diff</tt> unifié (<tt>diff -u</tt>) donnant les -changements requis pour modifier le source original en source Debian. -Ces changements peuvent inclure seulement la modification ou la création de -simples fichiers. Les permissions des fichiers, les cibles des -liens symboliques et les caractéristiques des fichiers spéciaux ou -tubes ne peuvent pas être changés et aucun fichier ne doit être -enlevé ou renommé. - </p> -<p> -Tous les répertoires dans le fichier <tt>diff</tt> doivent exister, sauf -le sous-répertoire <tt>debian</tt> à la racine de l'arbre source, qui -sera crée par <prgn>dpkg-source</prgn>, si nécessaire, lors de -l'extraction. - </p> -<p> -Le programme <prgn>dpkg-source</prgn> rendra automatiquement exécutable le -fichier <tt>debian/rules</tt> (voir ci-dessous).</p> - </item> - </taglist> - </p> -<p> -S'il n'y a pas de code source original, par exemple, si le paquet a été -spécialement préparé pour Debian ou si le responsable Debian est le -même que le responsable original, le format est alors légèrement -différent : il n'y pas de fichier <tt>diff</tt> et le fichier -<prgn>tar</prgn> est nommé <em>paquet-version</em><tt>.tar.gz</tt> et -contient de préférence un répertoire nommé <em>paquet-version</em>. - </p> - </sect> - -<sect><heading>Comment dépaqueter un paquet source Debian sans <prgn>dpkg-source</prgn></heading> - -<p> -<prgn>dpkg-source -x</prgn> est la manière recommandée pour dépaqueter un -paquet source Debian. Cependant, si le programme n'est pas disponible, -il est possible de faire comme suit : - -<enumlist compact="compact"> -<item> -<p> -<em>Déballer</em> le fichier <tt>tar</tt>, pour créer un répertoire -<tt>.orig</tt>.</p> - </item> -<item> -<p> -Changer le nom du répertoire <tt>.orig</tt> en <tt><var>package</var>-<var>version</var></tt>.</p> - </item> -<item> -<p> -Créer le sous-répertoire <tt>Debian</tt> à la racine de l'arborescence source. - </p> - </item> -<item> -<p> -Appliquer le fichier <tt>diff</tt> en utilisant <tt>patch -p0</tt>. - </p> - </item> -<item> -<p> -<em>Déballer</em> le fichier <tt>tar</tt> de nouveau, si l'on veut une copie du -code source original à côté de la version debianisée. - </p> - </item> - </enumlist> - </p> -<p> -Il n'est pas possible de créer une archive source Debian valide sans -utiliser <prgn>dpkg-source</prgn>. En particulier, essayer d'utiliser -<prgn>diff</prgn> directement pour créer le fichier <tt>.diff.gz</tt> ne -fonctionnera pas. - </p> - </sect> - </appendix> - - - <appendix id="pkg-controlfields"><heading>Les fichiers de contrôle et leurs -champs (annexe tirée de l'ancien <em>Packaging Manual</em>)</heading> - -<p> -Beaucoup d'outils de la suite <tt>dpkg</tt> manipulent les données dans -un format commun, connu sous le nom de fichiers de contrôle. -Les paquets source et binaire ont des données de contrôle comme les -fichiers <tt>.changes</tt> qui contrôlent l'installation des fichiers sur le -serveur, et les bases de données internes à <tt>dpkg</tt> sont dans -un format similaire. - </p> - - <sect><heading>La syntaxe des fichiers de contrôle</heading> - - <p> -Voyez <ref id="controlsyntax">. - </p> -<p> -Il est important de noter que plusieurs champs sont facultatifs -pour ce qui concerne <prgn>dpkg</prgn> et ses outils associés ; mais ils -doivent apparaître dans chaque paquet Debian, et leur omission peut -entraîner des problèmes. -</p> - </sect> - -<sect><heading>La liste des champs</heading> - <p> -Voyez <ref id="controlfieldslist">. - </p> - <p> -Cette section ne contient plus que les champs qui n'appartiennent pas à la -charte Debian. - </p> - -<sect1 id="pkg-f-Filename"> -<heading><tt>Filename</tt> et <tt>MSDOS-Filename</tt></heading> -<p> -Ces champs dans les fichiers <tt>Packages</tt> donnent les noms de -fichiers d'un paquet dans une distribution, par rapport à la racine de -la hiérarchie Debian. Si le paquet a été découpé en plusieurs morceaux, -les parties sont toutes listées dans l'ordre, séparées par des espaces. - </p> - </sect1> - -<sect1 id="pkg-f-Size"> -<heading><tt>Size</tt> et <tt>MD5sum</tt></heading> -<p> -Ces champs dans les fichiers <tt>Packages</tt> donnent la taille (en -octets, exprimée en décimal) et la somme de contrôle MD5 du ou des -fichiers qui composent le paquet de la distribution. Si le paquet est -découpé en plusieurs parties, les valeurs pour ces parties sont listées -dans l'ordre, séparées par des espaces. - </p> - </sect1> - -<sect1 id="pkg-f-Status"> -<heading><tt>Status</tt></heading> -<p> -Ce champ dans le fichier status de <prgn>dpkg</prgn> enregistre si -l'utilisateur veut un paquet installé, enlevé ou laissé tout seul, s'il -est défectueux (nécessite une réinstallation) ou non et son état actuel -sur le système. Chaque partie de ces informations est un simple mot. - </p> - </sect1> - -<sect1 id="pkg-f-Config-Version"> -<heading><tt>Config-Version</tt></heading> -<p> -Si un paquet n'est pas installé, ou non configuré, ce champ dans le -fichier status de <prgn>dpkg</prgn> enregistre la dernière version de ce -paquet qui a été configurée avec succès. - </p> - </sect1> - -<sect1 id="pkg-f-Conffiles"> -<heading><tt>Conffiles</tt></heading> -<p> -Ce champ dans le fichier status de <tt>dpkg</tt> contient des informations -sur les fichiers de configuration automatiquement gérés et maintenus par un -paquet. Ce champ <em>ne doit pas</em> apparaître n'importe où dans un -paquet ! -</p> - </sect1> - -<sect1><heading>Champs obsolètes</heading> -<p> -Ils sont toujours reconnus par <prgn>dpkg</prgn> mais ne doivent plus -apparaître n'importe où. -<taglist compact="compact"> -<tag><tt>Revision</tt></tag> -<tag><tt>Package-Revision</tt></tag> -<tag><tt>Package_Revision</tt></tag> -<item> -<p>La partie revision Debian d'une version de paquet a été dans un champ de -fichier de contrôle séparé. Ce champ était présent à travers plusieurs noms. - </p> - </item> -<tag><tt>Recommended</tt></tag> -<item><p>ancien nom de <tt>Recommends</tt></p> - </item> -<tag><tt>Optional</tt></tag> -<item><p>ancien nom de <tt>Suggests</tt>.</p> - </item> -<tag><tt>Class</tt></tag><item><p>ancien nom de <tt>Priority</tt>.</p> - </item> - </taglist> -</p> - </sect1> - </sect> - </appendix> - -<appendix id="pkg-conffiles"> -<heading>La gestion des fichiers de configuration (annexe tirée de l'ancien <em>Packaging Manual</em>)</heading> - -<p> -<prgn>dpkg</prgn> peut faire de la gestion automatique de fichiers de -configuration des paquets. - </p> -<p> - -Que ce mécanisme soit adéquat, dépend d'un certain nombre de facteurs ; -mais fondamentalement, pour tout fichier de configuration, il y a deux -approches. - </p> -<p> - -Une méthode simple est de mettre la meilleure configuration possible -dans le paquet et d'utiliser le mécanisme des <em>conffile</em> de -<prgn>dpkg</prgn> pour faire les mises à jour. -Il est peu probable que l'utilisateur veuille modifier le fichier, mais il -faut que cela soit possible sans perdre les modifications ; -et un nouveau paquet avec une version modifiée du fichier est -mis à jour rarement ; c'est la meilleure approche. - </p> -<p> - -La méthode radicale est de construire le fichier de configuration à partir -du script <prgn>postinst</prgn>, et de prendre la responsabilité de résoudre -automatiquement les erreurs des versions précédentes du paquet. C'est -justifié si le fichier est nécessairement différent sur chaque système. - </p> - -<sect><heading> <prgn>Dpkg</prgn> et la gestion automatique des fichiers de -configuration.</heading> - -<p> -Un paquet peut contenir un fichier dans la zone de contrôle appelé -<tt>conffiles</tt>. Ce fichier doit être une liste de noms de fichier de -configuration nécessitant une gestion automatique ; les noms sont séparés par -un retour chariot. Les noms de fichiers seront des noms absolus, -et les fichiers référencés doivent réellement exister dans le -paquet. - </p> -<p> - -Quand un paquet est mis à jour, <prgn>dpkg</prgn> traitera les fichiers de -configuration pendant l'étape de configuration, juste avant d'exécuter -le script <tt>postinst</tt> du paquet. - </p> -<p> - -Pour chaque fichier, il vérifie si la version du fichier inclus dans le -paquet est la même que celle du fichier inclus dans la dernière version du -paquet (celui à partir duquel on fait la mise à jour). <prgn>dpkg</prgn> -compare aussi la version actuellement installée sur le système avec celle -donnée dans la dernière version du paquet. - </p> -<p> - -Quand ni l'utilisateur ni le responsable du paquet n'ont changé le fichier, -il est laissé tel quel. Si l'un ou l'autre l'ont modifié, les nouvelles -versions sont prises en compte : si l'utilisateur modifie son fichier, mais -le responsable ne donne pas de nouvelle version, les modifications de -l'utilisateur sont conservées (silencieusement) ; si le -responsable donne une nouvelle version et l'utilisateur n'a pas modifié son -fichier, la nouvelle version sera installée (avec un message d'avertissement). -Si les deux ont modifié le fichier, l'utilisateur est averti du problème et -doit résoudre les différences lui-même. - </p> -<p> - -La comparaison est faite en calculant le MD5 des fichiers et en stockant -ce MD5 comme s'il était inclus dans la plus récente version du -paquet. - </p> -<p> - -Quand un paquet est installé pour la première fois, <prgn>dpkg</prgn> -installera le fichier qui l'accompagne, à moins que cela ne -signifie le remplacement d'un fichier existant sur le système de -fichiers. - </p> -<p> - -Cependant, notons que <prgn>dpkg</prgn> ne remplacera pas un conffile qui a -été supprimé par l'utilisateur (ou par un script). -C'est nécessaire parce qu'avec certains programmes, un fichier -manquant produit un effet difficile ou impossible à réaliser d'une autre -manière ; un fichier manquant ne sera pas remplacé -si l'utilisateur en a décidé ainsi. - </p> -<p> - -Notons qu'un paquet ne doit pas modifier un conffile géré par -<prgn>dpkg</prgn> dans ses scripts de maintenance. Faire cela amènera -<prgn>dpkg</prgn> à donner à l'utilisateur des options confuses ou -dangereuses pour la mise à jour des fichiers de configuration quand le -paquet est mis à niveau. - </p> - </sect> - -<sect><heading>La gestion de la configuration entièrement faite par les -scripts du responsable de paquet.</heading> - -<p> -Pour les fichiers qui contiennent des informations spécifiques telles -que le nom de l'hôte, les informations sur le réseau, il est -préférable de créer le fichier dans le script <prgn>postinst</prgn> du -paquet. - </p> -<p> - -Ceci impliquera l'examen de l'état du reste du système pour -déterminer valeurs et autres informations, et peut aussi impliquer -de demander à l'utilisateur des informations qui n'ont pas pu être -obtenues autrement. - </p> -<p> - -Quand on utilise cette méthode, il y a un nombre important de problèmes -à considérer : - </p> -<p> - -Si l'on découvre une erreur dans le programme qui crée le fichier de -configuration, ou si le format d'un fichier change d'une version à la -suivante, on devra modifier le script <tt>postinst</tt> pour le -corriger ; habituellement cela veut dire, éditer le fichier de -configuration installé et enlever le problème ou changer la syntaxe. On -devra faire ça avec soin : l'utilisateur peut avoir -changé le fichier, peut-être pour fixer le problème que le script est -en train de traiter ; on devra détecter ces situations et les traiter -correctement. - </p> -<p> -Si l'on choisit cette voie, c'est alors une bonne idée de mettre le -programme qui crée le fichier de configuration dans un programme séparé -dans <tt>/usr/sbin</tt>, appelé par convention -<tt><var>package</var>config</tt> et de l'exécuter si nécessaire, à partir du -script de post-installation. Le programme <tt><var>package</var>config</tt> -ne doit pas écraser une configuration existante - si son mode opératoire -s'applique à une première installation (non pas une reconfiguration -arbitraire ultérieure), on doit vérifier si une configuration existe déjà, et -utiliser l'option <tt>--force</tt> pour la remplacer. - </p> - </sect> - </appendix> - - -<appendix id="pkg-alternatives"><heading>Versions alternatives d'une interface -- <prgn>update-alternatives</prgn> (annexe tirée de l'ancien <em>Packaging Manual</em>)</heading> - -<p> -Quand plusieurs paquets fournissent tous des versions différentes du -même programme ou fichier, il est utile que le système en sélectionne un -par défaut, tout en autorisant l'administrateur système à le changer et à -faire respecter ses décisions. -</p> -<p> - -Par exemple, il y a plusieurs versions de l'éditeur <prgn>vi</prgn>, et il n'y -a aucune raison d'empêcher leur installation, chacun -sous son propre nom (<prgn>nvi</prgn>, <prgn>vim</prgn>, etc.). Néanmoins, il -est souhaitable que le nom <tt>vi</tt> se réfère à quelque chose, au -moins par défaut. -</p> -<p> -Si tous les paquets impliqués coopèrent, ceci peut être fait par -<prgn>update-alternatives</prgn>. - </p> -<p> - -Chaque paquet fournit sa propre version sous son propre nom, et appelle -<prgn>update-alternatives</prgn> dans le script <prgn>postinst</prgn> pour -enregistrer sa version (et dans le script <prgn>prerm</prgn> pour l'enlever). - </p> -<p> - -Voir le manuel en page <manref name="update-alternatives" section="8"> -pour des précisions. - </p> -<p> - -Si <prgn>update-alternatives</prgn> ne semble pas approprié, on peut essayer -d'utiliser les déviations.</p> - </appendix> - -<appendix id="pkg-diversions"><heading>Les déviations - remplacer la version -d'un fichier contenue dans un paquet.</heading> - -<p> -Quand <prgn>dpkg</prgn> réinstalle un paquet, on peut faire que tel ancien -fichier ne soit pas remplacé et que le nouveau fichier correspondant soit mis -ailleurs. - </p> -<p> -Une utilisation locale de cette technique peut être de remplacer la version -d'un fichier contenue dans un paquet ; un paquet peut aussi s'en servir pour -remplacer tel fichier d'un autre paquet ou bien pour mettre à sa place un -« wrapper ». - </p> -<p> -Avant de décider de l'utilisation d'une déviation, lire -<ref id="pkg-alternatives">, pour savoir si on veut vraiment une déviation -plutôt que plusieurs versions différentes d'un même programme. - </p> -<p> - -Il y a une liste des déviations qui est lue par <prgn>dpkg</prgn> et mise -à jour par un programme spécial <prgn>dpkg-divert</prgn>. Voir -<manref name="dpkg-divert" section="8"> -pour plus de renseignements sur ses arguments. - </p> -<p> -Quand un paquet souhaite remplacer un fichier par un autre, il doit -appeler <prgn>dpkg-divert</prgn> dans son fichier « preinst » pour ajouter la -déviation et changer le nom du fichier existant. Par exemple, supposons qu'un -paquet <prgn>smailwrapper</prgn> souhaite installer un « wrapper » pour -<tt>/usr/sbin/smail</tt> : - -<example> - if [ install = "$1" ]; then - dpkg-divert --package smailwrapper --add --rename \ - --divert /usr/sbin/smail.real /usr/sbin/smail - fi -</example> -Le test de <tt>$1</tt> est nécessaire afin que le script n'essaye pas -d'ajouter encore la déviation quand <prgn>smailwrapper</prgn> est mis -à jour. L'option <tt>--package smailwrapper</tt> assure que la copie du fichier -<prgn>/usr/sbin/smail</prgn> contenue dans le paquet <tt>smailwrapper</tt> -évitera la déviation et s'installera comme la vraie version. - </p> -<p> -Le <tt>postrm</tt> fait l'inverse : -<example> - if [ remove = "$1" ]; then - dpkg-divert --package smailwrapper --remove --rename \ - --divert /usr/sbin/smail.real /usr/sbin/smail - fi -</example> -Il ne faut pas essayer de remplacer un fichier vital pour la marche -du système. Il y a en effet un moment, quand on utilise <tt>dpkg</tt>, après -que le fichier a été dévié, mais avant que <tt>dpkg</tt> ait installé -la nouvelle version, où le fichier n'existe pas. -</p> - </appendix> -</book> -</debiandoc> - - -<!-- LocalWords: NNTP - --> diff --git a/french/international/french/translations/project-history.fr.html/ch1.html b/french/international/french/translations/project-history.fr.html/ch1.html deleted file mode 100644 index e226d19a69e..00000000000 --- a/french/international/french/translations/project-history.fr.html/ch1.html +++ /dev/null @@ -1,67 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> - -<html> - -<head> - -<title>L'histoire du projet Debian - Introduction -- Qu'est-ce que le Projet Debian ?</title> - -</head> - -<body> - -<hr> - -[ <a href="index.html#abstract">Résumé</a> ] -[ <a href="index.html#copyright">Copyright</a> ] -[ <a href="index.html#contents">Table des matières</a> ] -[ <a href="ch2.html">suivant</a> ] - -<hr> - -<h1> -L'histoire du projet Debian - Chapitre 1<br> -Introduction -- Qu'est-ce que le Projet Debian ? -</h1> - -<hr> - -<p> -<code><a href="http://www.fr.debian.org/">Le Projet Debian</a></code> -est un groupe de bénévoles qui réalisent la distribution logicielle -Debian GNU/Linux, disponible actuellement pour processeurs Intel -et Motorola 68000. Des distributions Sparc, UltraSparc, MIPS et -PowerPC sont en développement, et le support de l'architecture -Alpha est annoncé pour la prochaine version 2.1. -Debian est le projet principal de Software In The Public Interest, Inc. -(Logiciels d'intérêt public), une association sans but lucratif -basée à New York et dédiée à la généralisation des logiciels -libres (aussi appelés "Open Source Software"). - -<p> -Pour plus d'information sur les logiciels libres,voir le -<code><a href="https://www.debian.org/social_contract.html">Contrat Social Debian</a></code> -et <code><a href="https://www.debian.org/intro/free">Les principes du logiciel libre selon Debian</a></code>. -</p> - -<hr> - -[ <a href="index.html#abstract">Résumé</a> ] -[ <a href="index.html#copyright">Copyright</a> ] -[ <a href="index.html#contents">Table des matières</a> ] -[ <a href="ch2.html">suivant</a> ] - -<hr> - -L'histoire du projet Debian<br> - -<address> -1.0 (dernière révision le 3 Nov 98)<br> -Will Lowe <code><a href="mailto:lowe@debian.org">lowe@debian.org</a></code><br> -Version française par Jérôme Rousselot <code><a href="mailto:r.jerome@francemel.com">r.jerome@francemel.com</a></code> -</address> - -</body> - -</html> - diff --git a/french/international/french/translations/project-history.fr.html/ch2.html b/french/international/french/translations/project-history.fr.html/ch2.html deleted file mode 100644 index 83cfb629338..00000000000 --- a/french/international/french/translations/project-history.fr.html/ch2.html +++ /dev/null @@ -1,90 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> - -<html> - -<head> - -<title>L'histoire du projet Debian - Les différentes versions de Debian</title> - -</head> - -<body> - -<hr> - -[ <a href="ch1.html">précédent</a> ] -[ <a href="index.html#abstract">Résumé</a> ] -[ <a href="index.html#copyright">Copyright</a> ] -[ <a href="index.html#contents">Table des matières</a> ] -[ <a href="ch3.html">suivant</a> ] - -<hr> - -<h1> -L'histoire du projet Debian - Chapitre 2<br> -Les différentes versions de Debian -</h1> - -<hr> - -<p> -Debian 0.01 à 0.90 (Août-Décembre 1993) - -<p> -Debian 0.91 (Janvier 1994): cette version était équipée d'un système de gestion -de paquets primitif qui pouvait installer et désinstaller les paquets. Plusieurs -douzaines de personnes participaient au projet à cette époque. - -<p> -Debian 0.93R5 (Mars 1995): à partir de cette date, chaque développeur -a la responsabilité d'un ou plusieurs paquets, et le gestionnaire de paquets (<code>dpkg</code>) -était utilisé pour installer les paquets après la mise en place d'un système de base. - -<p> -Debian 0.93R6 (Novembre 1995): apparition de <code>dselect</code>. -C'est la dernière version de Debian utilisant le format a.out; il y a -maintenant approximativement 60 développeurs. - -<p> -Debian 1.1 <em>Buzz</em> (Juin 1996): sans doute la première version de -Debian à posséder un nom de code (inspiré, comme pour tous les autres, du film -<em>Toy Story</em>); ceci sans doute parce que c'était la première version -réalisée après que Bruce Perens aie remplacé Ian Murdock à la tête du Projet. -Cette version était entièrement basée sur le format binaire ELF, utilisait le -noyau Linux 2.0, et contenait 474 paquets. - -<p> -Debian 1.2 <em>Rex</em> (Décembre 1996): 848 paquets, 120 développeurs. - -<p> -Debian 1.3 <em>Bo</em> (Juillet 1997): 974 paquets, 200 développeurs. - -<p> -Debian 2.0 <em>Hamm</em> (Juillet 1998): première distribution Debian supportant -l'architecture des Motorola 68000. Cette distribution (la première avec Ian -Jackson en tant que chef de Projet) fit la transition vers la libc6, comprenait plus -de 1500 paquets et était le résultat du travail de 400 développeurs. -</p> - -<hr> - -[ <a href="ch1.html">précédent</a> ] -[ <a href="index.html#abstract">Résumé</a> ] -[ <a href="index.html#copyright">Copyright</a> ] -[ <a href="index.html#contents">Table des matières</a> ] -[ <a href="ch3.html">suivant</a> ] - -<hr> - -L'histoire du projet Debian<br> - -<address> -1.0 (dernière révision le 3 Nov 98)<br> -Will Lowe <code><a href="mailto:lowe@debian.org">lowe@debian.org</a></code><br> -Version française par Jérôme Rousselot <code><a href="mailto:r.jerome@francemel.com">r.jerome@francemel.com</a></code> -</address> - -</body> - -</html> - diff --git a/french/international/french/translations/project-history.fr.html/ch3.html b/french/international/french/translations/project-history.fr.html/ch3.html deleted file mode 100644 index dd99e248ec6..00000000000 --- a/french/international/french/translations/project-history.fr.html/ch3.html +++ /dev/null @@ -1,282 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> - -<html> - -<head> - -<title>L'histoire du projet Debian - Un historique détaillé</title> - -</head> - -<body> - -<hr> - -[ <a href="ch2.html">précédent</a> ] -[ <a href="index.html#abstract">Résumé</a> ] -[ <a href="index.html#copyright">Copyright</a> ] -[ <a href="index.html#contents">Table des matières</a> ] - -<hr> - -<h1> -L'histoire du projet Debian - Chapitre 3<br> -Un historique détaillé -</h1> - -<hr> - -<h2> -<a name="s3.1">3.1 Les versions 0.x</a> -</h2> - -<p> -Le Projet Debian fut créé en Août 1993 par Ian Murdock, à l'époque -étudiant à l'Université Purdue. Debian était financé par le projet -GNU de <code><a href="http://www.fsf.org/">La Free Software Foundation</a></code>, -l'organisation créée par Richard Stallman et liée à la General Public -License (GPL, License Publique Générale), pour un an (de novembre 1994 -à novembre 1995). - -<p> -Les distributions Debian 0.01 à Debian 0.90 furent finalisées entre -Août et Décembre 1993. Ian Murdock écrit : - -<p> -"Debian 0.91 sortit en Janvier 1994. Cette distribution disposait d'un -système de gestion des paquets primitif qui permettait aux utilisateurs -de manipuler des paquets mais pas grand-chose d'autre (pas de dépendances -ou quoi que ce soit dans le genre). A cette date, quelques douzaines -de personnes travaillaient sur Debian, bien que je m'occupais encore -moi-même de centraliser l'ensemble de chaque distribution. 0.91 fut -la dernière distribution réalisée de cette manière. - -<p> -La plus grande partie de l'année 1994 fut consacrée à organiser le Projet Debian -de manière à ce que d'autres puissent y contribuer plus efficacement, -ainsi qu'à travailler sur dpkg (Ian Jackson en fut le principal responsable). -Je ne me souviens pas de versions distribuées au public en 1994, bien -qu'il y eut plusieurs nouvelles versions internes alors que nous -travaillions sur notre organisation. - -<p> -Debian 0.93 Version 5 sortit en mars 1995 et fut la première distribution -"moderne" de Debian : il y avait beaucoup plus de développeurs -(bien que je ne puisse me rappeler du nombre exact), chacun -étant responsable de ses propres paquets, et dpkg était utilisé -pour installer et mettre à jour tous ces paquets après l'installation -du système de base. - -<p> -Debian 0.93 Version 6 sortit en novembre 1995 et fut la dernière distribution -au format a.out. Il y avait approximativement 60 développeurs responsables -de paquets pour la 0.93R6. Si je me souviens bien, dselect apparu pour la -première fois dans 0.93R6." - -<p> -Mr. Murdock fait aussi remarquer que Debian 0.93R6 "... a toujours été ma version -préférée de Debian", bien qu'il admette la possibilité de ne pas être totalement -objectif, ayant arrêté de participer activement au projet en mars 1996 pendant -la pré-production de Debian 1.0, qui fut finalement distribuée sous le nom de -Debian 1.1. - -<p> -Un ancien membre du projet, Bill Mitchell, se rappelle du noyau linux - -<p> -"... qui était entre la version 0.99r8 et la 0.99r15 quand nous démarrâmes -le projet. Pendant une longue période, j'ai pu construire le noyau en moins -de 30 minutes sur un 386 à 20 Mhz, et je pouvais aussi installer Debian dans -le même temps sur moins de 10 MB d'espace disque. - -<p> -"... Je me rappelle que le groupe initial comprenait Ian Murdock, moi-même, -Ian Jackson, un autre Ian dont je ne me rappelle pas le nom de famille, -Dan Quinlan, et d'autres dont j'ai oublié les noms. Matt Welsh -faisait partie du groupe initial ou nous joignit très tôt (il a depuis quitté -le projet). -Quelqu'un mis en place une mailing list, et le travail commença. - -<p> -Pour autant que je me souvienne, nous n'avons pas démarré avec un plan bien -défini, ni avec une démarche d'organisation poussée pour en définir un. -Quand nous avons commencé le travail, je me rappelle que nous avons -rassemblé des sources jusqu'à obtenir un ensemble de paquets peu homogène. -Le temps passant, nous nous sommes concentrés sur un ensemble de paquets -nécessaires à la création d'une distribution : le kernel, un shell, update, -getty, d'autres programmes variés et les fichiers nécessaires à l'initialisation -du système, ainsi qu'un groupe d'utilitaires de base." -</p> - -<hr> - -<h3> -<a name="s3.1.1">3.1.1 Le premier système de gestion de paquets Debian</a> -</h3> - -<p> -Aux touts débuts du Projet, les membres pensaient distribuer uniquement -des paquets de fichiers sources. Chaque paquet devait être composé -du code source original du programme accompagné d'un fichier patch -"débianisé", et les utilisateurs devaient détarrer les sources, appliquer -les patches, et compiler eux-mêmes les binaires. Ils réalisèrent cependant -rapidement qu'une méthode de distribution de binaires serait nécessaire. -Le premier utilitaire de gestion des paquets, écrit par Ian Murdock et appelé -dpkg, permettait de créer un paquet dans un format binaire spécifique -à Debian, et pouvait être utilisé plus tard pour décompresser et installer -les fichiers contenus dans ce paquet. - -<p> -Ian Jackson pris très tôt le contrôle du développement de l'utilitaire de gestion -des paquets, le renommant <code>dpkg-web</code> et se mit à écrire un programme -offrant une interface utilisateur qu'il nomma <code>dpkg</code> pour faciliter -l'utilisation de <code>dpkg-web</code> et pour permettre la gestion des -<em>Conflits</em> et <em>Dépendances</em> du système Debian actuel. -Les paquets produits par ces utilitaires comprenaient un en-tête indiquant -la version de l'outil utilisé pour créer le paquet et le nombre d'octets séparant -la fin de l'en-tête du fichier de l'archive <code>tar</code>, séparés par des informations de contrôle. - -<p> -C'est à peu près à cette époque qu'un débat intense commença entre les -membres du projet -- certain considéraient que le format spécifique à Debian créé -par <code>dpkg-deb</code> devait être abandonné au profit du format produit par <code>ar</code>. -Après plusieurs formats de fichiers révisés et autant d'outils de gestion de -paquetages, le format <code>ar</code> fut adopté. -</p> - -<hr> - -<h2> -<a name="s3.2">3.2 Les versions 1.x</a> -</h2> - -<p> -Quand Ian Murdock quitta Debian, il désigna Bruce Perens comme son successeur -à la tête du projet. Mr Perens fut d'abord intéressé par Debian à une époque où -il essayait de créer une distribution Linux du nom de "Linux -for Hams" (ndt: Linux pour radio-amateurs), qui devait inclure tous les logiciels -Linux pouvant intéresser des radio-amateurs. Estimant que le système de base -Debian nécessiterait encore beaucoup de travail avant de pouvoir aider -son projet, Mr. Perens finit par travailler intensément sur le système Linux -de base et reporta sa distribution pour radio-amateurs, réalisant -notamment (avec Ian Murdock) le premier ensemble de scripts d'installation -Debian, dont on peut peut-être retrouver des traces dans l'actuelle disquette -de secours Debian. - -<p> -Mr. Murdock déclare: - -<p> -"Le choix de Bruce pour ma succession s'imposait, car il avait maintenu -le système de base pendant presqu'un an, et il avait repris le flambeau -alors que le temps dont je disposais pour me consacrer à Debian diminuait -rapidement." - -<p> -Il démarra plusieurs facettes importantes du projet. Il se chargea notamment -de coordonner les efforts pour produire les Principes du Logiciel Libre selon Debian -et le Contrat Social Debian, et l'initiation de -<code><a href="http://www.openhardware.org/">The Open Hardware Project</a></code> (ndt: -projet de certification de matériel informatique. Extrait de http://www.openhardware.org/ : "En certifiant un périphérique -informatique comme "Open" [ouvert], le constructeur s'engage à fournir la documentation -nécessaire pour pouvoir programmer un pilote pour ce périphérique"). -Durant la période où Mr. Perens fut chef de Projet, Debian gagna -des parts de marché et la réputation d'une plate-forme pour utilisateurs -Linux sérieux et capables techniquement. - -<p> -Mr. Perens soutena aussi la création de -<code><a href="https://www.spi-inc.org/">Software in the Public Interest, Incorporated</a></code>. -Originellement conçue dans le but de doter le Projet Debian d'une entité légale -permettant de recevoir des donations, cette association -se développa rapidement pour permettre d'aider d'autres projets de -logiciels libres sans liens avec le Projet Debian. - -<p> -Les distributions Debian suivantes furent conçues durant cette période : - -<ul> - -<p> -<li> -1.1 <em>Buzz</em> sortie en Juin 1996 (474 paquets, noyau 2.0, entièrement ELF, dpkg) -</li> - -<p> -<li> -1.2 <em>Rex</em> sortie en Décembre 1996 (848 paquets, 120 développeurs) -</li> - -<p> -<li> -1.3 <em>Bo</em> sortie en Juillet 1997 (974 paquets, 200 développeurs) -</li> - -</ul> - -<p> -Plusieurs mises à jour mineures de la 1.3 ont été réalisées, -la dernière étant la 1.3.1R6. - -<p> -Bruce Perens fut remplacé par Ian Jackson comme Chef de Projet Debian -au début Janvier 1998, après avoir dirigé le projet pendant une grande -partie de la préparation de la version 2.0. -</p> - -<hr> - -<h2> -<a name="s3.3">3.3 Les versions 2.x</a> -</h2> - -<p> -Ian Jackson devint le chef du Projet Debian début Janvier 1998, et fut -rapidement admis au conseil d'administration de Software in the -Public Interest en tant que vice-président. Après le départ du trésorier -(Tim Sailer), du président (Bruce Perens), et du secrétaire (Ian Murdock), -il devint président du conseil d'administration et trois nouveaux -membres furent choisis : Martin Schulze (vice-président), Dale Scheetz -(secrétaire), et Nils Lohner (trésorier). - -Debian 2.0 (<em>Hamm</em>) sortit en Juillet 1998 pour les architectures Intel -i386 et Motorola 68000. Cette version marque le mouvement vers une nouvelle -version des librairies système C (libc6 ou glibc2). A ce moment, il y -avait plus de 1500 paquets maintenus par plus de 400 développeurs Debian. -</p> - -<hr> - -<h2> -<a name="s3.4">3.4 Et après ?</a> -</h2> - -<p> -Les développeurs Debian travaillent actuellement sur Debian 2.1, dont -le nom de code est <em>Slink</em>. Cette version inclura le support -du Linux Filesystem Hierarchy Standard, une nouvelle interface utilisateur pour -l'utilitaire système de gestion de paquets (appelée <code>apt</code>), et -<code><a href="http://www.gnome.org/">Gnome</a></code>. -</p> - -<hr> - -[ <a href="ch2.html">précédent</a> ] -[ <a href="index.html#abstract">Résumé</a> ] -[ <a href="index.html#copyright">Copyright</a> ] -[ <a href="index.html#contents">Table des matières</a> ] - -<hr> - -L'histoire du projet Debian<br> - -<address> -1.0 (dernière révision le 3 Nov 98)<br> -Will Lowe <code><a href="mailto:lowe@debian.org">lowe@debian.org</a></code><br> -Version française par Jérôme Rousselot <code><a href="mailto:r.jerome@francemel.com">r.jerome@francemel.com</a></code> -</address> - -</body> - -</html> - diff --git a/french/international/french/translations/project-history.fr.html/index.html b/french/international/french/translations/project-history.fr.html/index.html deleted file mode 100644 index 2fb91a242c0..00000000000 --- a/french/international/french/translations/project-history.fr.html/index.html +++ /dev/null @@ -1,107 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> - -<html> - -<head> - -<title>L'histoire du projet Debian</title> - -</head> - -<body> - -<hr> - -[ <a href="index.html#abstract">Résumé</a> ] -[ <a href="index.html#copyright">Copyright</a> ] -[ <a href="index.html#contents">Table des matières</a> ] - -<hr> - -<h1>L'histoire du projet Debian</h1> - -<hr> - -<h2><a name="abstract">Résumé</a></h2> - -<p> -Ce document décrit l'histoire et les buts du projet Debian. -</p> - -<h2><a name="copyright">Copyright</a></h2> - -<p> -Ce document peut être librement redistribué ou modifié tant que vos modifications sont clairement indiquées. - -<p> -Ce document peut être redistribué gratuitement ou non, et peut être modifié -(ceci incluant le transfert d'un type de média ou de format de fichier vers -un autre, ou encore une traduction) tant que toutes les modifications par rapport -au document original sont clairement indiquées. - -<p> -Les personnes suivantes ont contribué à ce document : - -<ul> - -<p> -<li> -Ian Murdock <code><a href="mailto:imurdock@cs.arizona.edu">imurdock@cs.arizona.edu</a></code> -</li> - -<p> -<li> -Nils Lohner <code><a href="mailto:lohner@typhoon.icd.teradyne.com">lohner@typhoon.icd.teradyne.com</a></code> -</li> - -<p> -<li> -Craig Small <code><a href="mailto:csmall@scooter.o.i.net">csmall@scooter.o.i.net</a></code> -</li> - -<p> -<li> -Bill Mitchell <code><a href="mailto:Bill.Mitchell@pobox.com">Bill.Mitchell@pobox.com</a></code> -</li> - -</ul> - -</p> - -<hr> - -<h2><a name="contents">Table des matières</a></h2> - -<ul> -<li><a href="ch1.html">1 Introduction -- Qu'est-ce que le Projet Debian ?</a> -<li><a href="ch2.html">2 Les différentes versions de Debian</a> -<li><a href="ch3.html">3 Un historique détaillé</a> -<ul> -<li><a href="ch3.html#s3.1">3.1</a> Les versions 0.x -<li><a href="ch3.html#s3.2">3.2</a> Les versions 1.x -<li><a href="ch3.html#s3.3">3.3</a> Les versions 2.x -<li><a href="ch3.html#s3.4">3.4</a> Et après ? -</ul> -</ul> -</p> - -<hr> - -[ <a href="index.html#abstract">Résumé</a> ] -[ <a href="index.html#copyright">Copyright</a> ] -[ <a href="index.html#contents">Table des matières</a> ] - -<hr> - -L'histoire du projet Debian<br> - -<address> -1.0 (dernière révision le 3 Nov 98)<br> -Will Lowe <code><a href="mailto:lowe@debian.org">lowe@debian.org</a></code><br> -Version française par Jérôme Rousselot <code><a href="mailto:r.jerome@francemel.com">r.jerome@francemel.com</a></code> -</address> - -</body> - -</html> - |