diff --git a/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml index 612d4b8ccf..15227f50b8 100755 --- a/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml @@ -1,2039 +1,2039 @@ Jim Mock Mis à jour et restructuré par Jake Hamby Contribution originale de Configurer le noyau de FreeBSD &trans.a.fonvieille; Synopsis noyau compiler un noyau sur mesure Le noyau est le coeur du système d'exploitation FreeBSD. Il est responsable de la gestion de la mémoire, de la mise en application des contrôles de sécurité, du réseau, des accès disque, et bien plus. Bien que FreeBSD devienne de plus en plus configurable dynamiquement, il est toujours nécessaire occasionnellement de reconfigurer et recompiler votre noyau. Après la lecture de ce chapitre, vous saurez: Pourquoi vous pourriez avoir besoin de compiler un noyau sur mesure. Comment écrire un fichier de configuration du noyau, ou modifier un fichier de configuration existant. Comment utiliser le fichier de configuration du noyau pour créer et recompiler un nouveau noyau. Comment installer un nouveau noyau. Comment créer les entrées dans /dev qui pourront être nécessaires. Que faire si quelque chose se passe mal. Toutes les commandes listées dans les exemples de ce chapitre doivent être exécutées en tant que root afin de fonctionner. Pourquoi compiler un noyau sur mesure? Traditionnellement, FreeBSD a eu ce qui s'appelle un noyau “monolithique”. Cela signifie que le noyau était un gros programme, supportant une liste figée de périphériques, et si vous vouliez modifier le comportement du noyau alors vous deviez compiler un nouveau noyau, et ensuite redémarrer votre ordinateur avec le nouveau noyau. Aujourd'hui, FreeBSD s'oriente rapidement vers un modèle où une grande partie des fonctions du noyau est contenue dans des modules qui peuvent être dynamiquement chargés et déchargés si nécessaire. Cela permet au noyau de s'adapter au nouveau matériel devenant soudainement disponible (comme les cartes PCMCIA dans un ordinateur portable), ou pour qu'une nouvelle fonctionnalité qui n'était pas nécessaire lors de la compilation du noyau y soit intégrée. On appelle cela un noyau modulaire. En dépit de cela, il est encore nécessaire d'effectuer certaines configurations de noyau en statique. Dans certains cas c'est parce que la fonctionnalité est si proche du noyau qu'elle ne peut être rendue dynamiquement chargeable. Dans d'autres cas, cela peut tout simplement venir du fait que personne n'a encore pris le temps d'écrire un module dynamiquement chargeable pour cette fonctionnalité. Compiler un noyau sur mesure est l'un des plus importants rites de passage que doit endurer tout utilisateur BSD. Cette opération, tout en prenant du temps, apportera de nombreuses améliorations à votre système FreeBSD. A la différence du noyau GENERIC, qui doit supporter une large gamme de matériels, un noyau sur mesure ne contient que le support pour votre configuration matérielle. Cela a de nombreux avantages, comme: Un temps de démarrage plus court. Comme le noyau ne recherchera que le matériel présent sur votre système, le temps nécessaire au démarrage de votre système peut diminuer de façon importante. Une utilisation plus faible de la mémoire. Un noyau sur mesure utilise souvent moins de mémoire que le noyau GENERIC, ce qui est important car le noyau doit toujours résider en mémoire. Pour cette raison, un noyau sur mesure est tout particulièrement utile sur un système dont les ressources mémoire sont limitées. Le support de matériels supplémentaires. Un noyau sur mesure vous permet d'intégrer le support pour des périphériques, qui ne sont pas présents dans le noyau GENERIC comme les cartes son. Compiler et installer un noyau sur mesure noyau compiler / installer Commençons par passer rapidement en revue le répertoire de configuration du noyau. Tous les chemins d'accès mentionnés seront relatifs au répertoire principal /usr/src/sys, qui est également accessible via le lien symbolique /sys. Il comporte un certain nombre de sous-répertoires correspondants à différentes parties du noyau, mais les plus importantes, en ce qui nous concerne, sont arch/conf, où vous éditerez votre fichier configuration personnalisé, et compile, qui est l'espace de travail où votre noyau sera compilé. arch représente une des architectures suivante: i386, soit alpha, amd64, ia64, powerpc, sparc64, ou encore pc98 (une branche alternative de développement de l'architecture PC, populaire au Japon). Tout ce qui se trouve dans un répertoire particulier à une architecture est propre uniquement à cette architecture; le reste du code est un code indépendant du type de machine et commun à toutes les plates-formes sur lesquelles FreeBSD pourrait être potentiellement porté. Remarquez l'organisation logique de l'arborescence des répertoires, où chaque périphérique, système de fichiers, et option supportés a son propre sous-répertoire. Les versions de &os; antérieures à 5.X ne supportent que les architectures i386, alpha et sparc64. Les exemples de ce chapitre supposent que vous utilisez l'architecture i386. Si ce n'est pas votre cas, effectuez les ajustements appropriés au niveau des chemins d'accès pour votre architecture. S'il n'y a pas de répertoire /usr/src/sys sur votre système, alors c'est que les sources du noyau n'ont pas été installées. La manière la plus facile de les installer est d'exécuter /stand/sysinstall en tant que root, et sélectionner Configure, puis Distributions, src, sys. Si vous avez une aversion envers sysinstall et que vous disposez d'un CDROM “officiel” de FreeBSD, alors vous pouvez installer les sources depuis la ligne de commande: &prompt.root; mount /cdrom &prompt.root; mkdir -p /usr/src/sys &prompt.root; ln -s /usr/src/sys /sys &prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf - Ensuite allez dans le répertoire arch/conf et copiez le fichier de configuration GENERIC dans un fichier qui portera le nom que vous voulez donner à votre noyau. Par exemple: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; cp GENERIC MONNOYAU Par tradition, c'est un nom en majuscules, et si vous maintenez plusieurs machines FreeBSD avec des configurations matérielles différentes, c'est une bonne idée de lui donner le - même nom que la machine. Nous l'appelerons + même nom que la machine. Nous l'appellerons MONNOYAU pour les besoins de cet exemple. Conserver votre fichier de configuration du noyau directement sous /usr/src peut être une mauvaise idée. Si vous avez des problèmes il peut être tentant de juste effacer /usr/src et recommencer à nouveau. Après avoir fait cela ne prends que quelques secondes pour vous rendre compte que vous venez d'effacer votre fichier de configuration du noyau personnalisé. N'éditez pas, non plus, directement le fichier GENERIC, il peut être écrasé à la prochaine mise à jour de l'arborescence des sources, et vos modifications seraient perdues. Vous voudrez peut être conserver votre fichier de configuration du noyau ailleurs et alors créer un lien symbolique vers le fichier dans le répertoire i386. Par exemple: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; mkdir /root/noyaux &prompt.root; cp GENERIC /root/noyaux/MONNOYAU &prompt.root; ln -s /root/noyaux/MONNOYAU Editez maintenant MONNOYAU avec votre éditeur de texte préféré. Si vous venez tout juste de finir l'installation, le seul éditeur disponible sera probablement vi, qui est trop complexe pour être décrit ici, mais est bien expliqué dans de nombreux ouvrages de la bibliographie. Cependant, FreeBSD offre un éditeur plus simple appelé ee qui, si vous êtes débutant, sera votre éditeur de choix. N'hésitez pas à modifier les commentaires d'entête pour y décrire votre configuration ou les modifications que vous avez apportés par rapport au noyau GENERIC. SunOS Si vous avez déjà compilé un noyau sur &sunos; ou tout autre système d'exploitation BSD, l'essentiel de fichier vous sera familier. Si vous venez d'un système d'exploitation comme DOS, à l'inverse, le fichier de configuration GENERIC vous paraîtra inintelligible, lisez alors lentement et attentivement la section sur le fichier de configuration. Si vous synchronisé votre arborescence des sources avec les toutes dernières sources du projet &os;, assurez-vous de toujours lire le fichier /usr/src/UPDATING avant d'effectuer une quelconque opération de mise à jour. Ce fichier décrit les problèmes importants ou les domaines demandant une attention particulière dans le code mis à jour. /usr/src/UPDATING correspond toujours à votre version des sources de &os;, et est donc plus à jour que ce Manuel. Vous devez maintenant compiler le code source du noyau. Il existe deux procédures que vous pouvez utiliser dans ce but, et celle que vous utiliserez dépendra de pourquoi vous recompilez le noyau et de la version de &os; que vous utilisez. Si vous avez uniquement installé les sources du noyau, utilisez la procédure numéro 1. Si vous utilisez une version de FreeBSD antérieure à la 4.0, et que vous ne mettez pas à jour vers la version 4.0 ou supérieure en utilisant la procédure make world, employez la procédure 1. Si vous compilez un nouveau noyau sans mettre à jour le code source (peut être pour juste ajouter une nouvelle option, comme IPFIREWALL) vous pouvez utilisez n'importe quelle procédure. Si vous recompilez le noyau durant le processus make world utilisez la procédure numéro 2. cvsup CVS anonyme CTM CVS anonyme Si vous n'avez pas mis à jour votre arborescence des sources depuis la dernière fois où vous avez effectué avec succès un cycle buildworld-installworld (vous n'avez pas exécuté CVSup, CTM, ou utilisé anoncvs), alors vous pouvez utiliser sans risque la séquence config, make depend, make, make install. Procédure 1. Compiler un noyau suivant la méthode dite “traditionnelle” Exécutez &man.config.8; pour générer le code source du noyau. &prompt.root; /usr/sbin/config MONNOYAU Passez dans le répertoire de compilation. &man.config.8; affichera le nom de ce répertoire après avoir été exécuté comme ci-dessus. &prompt.root; cd ../compile/MONNOYAU Pour les versions de &os; antérieures à la 5.0, utiliser plutôt la forme suivante: &prompt.root; cd ../../compile/MONNOYAU Compilez le noyau. &prompt.root; make depend &prompt.root; make Installez le nouveau noyau. &prompt.root; make install Procédure 2. Compiler un noyau suivant la “nouvelle” méthode. Passez dans le répertoire /usr/src. &prompt.root; cd /usr/src Compilez le noyau. &prompt.root; make buildkernel KERNCONF=MONNOYAU Installez le nouveau noyau. &prompt.root; make installkernel KERNCONF=MONNOYAU Sous FreeBSD 4.2 et versions antérieures vous devez remplacer KERNCONF= par KERNEL=. Une version 4.2-STABLE qui a été récupérée avant le 2 février 2001 ne reconnaît pas le paramètre KERNCONF=. /boot/kernel.old Le nouveau noyau sera copié dans le répertoire /boot/kernel avec le nom /boot/kernel/kernel et l'ancien noyau sera renommé en /boot/kernel.old/kernel. Maintenant, arrêtez le système et redémarrez pour utiliser votre nouveau noyau. Si quelque chose se passe mal, il y a quelques instructions de dépannage à la fin de ce chapitre que vous pourrez trouver utiles. Assurez-vous de lire la section qui explique comment revenir en arrière dans le cas où votre nouveau noyau ne démarre pas. Sous &os; 4.X et versions précédentes, les noyaux sont installés sous le nom /kernel, les modules dans /modules et les anciens noyaux sont archivés en tant que /kernel.old. Les autres fichiers concernant le processus de démarrage, comme le chargeur (&man.loader.8;) et la configuration du démarrage sont conservés dans le répertoire /boot. Les modules tiers et personnalisés peuvent être placés dans /boot/modules, bien que les utilisateurs doivent être conscients que garder ses modules synchronisés avec le noyau compilé est très important. Les modules qui ne sont pas destinés à fonctionner avec le noyau compilé peuvent être instables et - ne pas donner les resultats escomptés. + ne pas donner les résultats escomptés. Si vous avez ajouté de nouveaux périphériques (comme une carte son) et que vous utilisez FreeBSD 4.X ou une version antérieure, vous devrez peut être rajouter des fichiers spéciaux de périphériques dans votre répertoire /dev avant de pouvoir les utiliser. Pour plus d'informations, reportez-vous à la section Créer les fichiers spéciaux de périphériques plus loin dans ce chapitre. Joel Dahl Mis à jour pour &os; 5.X par Le fichier de configuration noyau NOTES noyau LINT NOTES LINT noyau fichier de configuration Le format général du fichier de configuration est assez simple. Chaque ligne est composée d'un mot-clé et d'un ou plusieurs arguments. Pour simplifier, la plupart des lignes ne contiennent qu'un seul argument. Tout ce qui suit le caractère # est considéré comme un commentaire et ignoré. Les sections suivantes décrivent chaque mot-clé, normalement dans l'ordre où ils apparaissent dans le fichier GENERIC, quoique certains mots-clés apparentés aient été regroupés en une seule section (Réseau par exemple) bien qu'ils soient en fait dispersés dans le fichier GENERIC. Pour une liste exhaustive des options et périphériques dépendants de l'architecture utilisée, consultez le fichier NOTES présent dans le même répertoire que GENERIC. Pour les options ne dépendant pas de l'architecture, consultez le fichier /usr/src/sys/conf/NOTES. Le fichier NOTES n'existe pas sous &os; 4.X. Consultez à la place le fichier LINT pour des explications détaillées sur les options et les périphériques présents dans le fichier GENERIC. Le fichier LINT a deux objectifs sous &os; 4.X: fournir une référence pour choisir les options du noyau quand on compile un noyau sur mesures, fournir une configuration du noyau avec le plus d'options paramétrables utilisant des valeurs différentes de celles par défaut. La raison derrière cela était qu'une telle configuration facilitait (et c'est toujours le cas) grandement les choses quand il est question de tester du code nouveau ou des modifications du code existant qui peuvent être à l'origine de conflits avec d'autres parties du noyau. L'organisation de la configuration du noyau a cependant subit d'importants changements sous la version 5.X; un exemple est le fait que les options de paramétrage des pilotes aient été déplacées dans un fichier hints de manière à ce qu'elles puissent être modifiées et chargées dynamiquement au démarrage du système, et le fichier LINT pouvait ne plus contenir du tout ces options. Pour cela et d'autres raisons, le fichier LINT a été renommé en NOTES et fut conservé principalement pour la première raison à l'origine de son existence: documenter les options disponibles à l'utilisateur. Sous &os; 5.X et les versions suivantes, vous pouvez toujours générer un fichier LINT compilable en tapant: &prompt.root; cd /usr/src/sys/i386/conf && make LINT noyau exemple de fichier de configuration Ce qui suit est un exemple de fichier de configuration du noyau GENERIC avec divers commentaires aux endroits nécessaires pour un peu plus de clarté. Cet exemple devrait correspondre de façon très proche à votre copie du fichier /usr/src/sys/i386/conf/GENERIC. # # GENERIC -- Generic kernel configuration file for FreeBSD/i386 # # For more information on this file, please read the handbook section on # Kernel Configuration Files: # # http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html # # The handbook is also available locally in /usr/share/doc/handbook # if you've installed the doc distribution, otherwise always see the # FreeBSD World Wide Web server (http://www.FreeBSD.ORG/) for the # latest information. # # An exhaustive list of options and more detailed explanations of the # device lines is also present in the ../../conf/NOTES and NOTES files. # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD: /repoman/r/ncvs/src/sys/i386/conf/GENERIC,v 1.413 2004/08/11 01:34:18 rwatson Exp $ Ce qui suit sont les mots-clés obligatoires requis dans tous les noyaux que vous compilez: options du noyau machine machine i386 C'est l'architecture de la machine. Elle doit être alpha, amd64, i386, ia64, pc98, powerpc, ou encore sparc64. options du noyau cpu cpu I486_CPU cpu I586_CPU cpu I686_CPU Ce qui précède définit le type de CPU présent dans votre système. Il peut y avoir plusieurs occurrences de la ligne CPU (si, par exemple, vous n'êtes pas sûr de devoir utiliser I586_CPU ou I686_CPU), cependant, pour un noyau personnalisé, il est mieux de spécifier uniquement le CPU que vous avez. Si vous n'êtes pas sûr du type, vous pouvez lister le fichier /var/run/dmesg.boot pour visualiser les messages de démarrage. options du noyau type de cpu Le support I386_CPU est encore fourni dans les sources de &os;, mais est désactivé par défaut dans les branches -STABLE et -CURRENT. Cela signifie que pour installer &os; sur un 386, vous avez désormais les possibilités suivantes: Installer une vieille version de &os; et recompiler à partir des sources comme décrit dans la Compiler le système de base et le noyau sur une machine plus récente et installer le tout sur le 386 en utilisant les fichiers pré-compilés du répertoire /usr/obj (voir la pour plus de détails). Fabriquer votre propre version de &os; incluant le support I386_CPU dans les noyaux du CD-ROM d'installation. La première de ces options est probablement la plus simple de toutes, mais vous aurez besoin de beaucoup d'espace disque ce qui, sur une machine 386, peut être difficile à trouver. options du noyau ident ident GENERIC C'est l'identification du noyau. Vous devriez changer cela pour le nom, quel qu'il soit, que vous donnez à votre noyau, par exemple MONNOYAU si vous avez suivi les instructions des exemples précédents. La valeur que vous donnez à la chaîne ident s'affichera au démarrage du noyau, il est donc utile de donner au nouveau noyau un nom différent si vous voulez le différencier de votre noyau habituel (e.g., vous voulez compiler un noyau expérimental). options du noyau maxusers maxusers n L'option maxusers définit la taille d'un certain nombre de tables importantes du système. Ce nombre est supposé être en gros égal au nombre d'utilisateurs simultanés que vous vous attendez à avoir sur votre machine. Depuis FreeBSD 4.5, le système auto-ajuste ce paramètre pour vous si vous le fixez explicitement à 0 L'algorithme d'auto-ajustement fixe maxusers à une valeur égale à la quantité de mémoire présente sur le système, avec un minimum de 32 et un maximum de 384... Sous &os; 5.X et versions suivantes, maxusers est par défaut égal à 0 si rien n'est spécifié. Si vous utilisez une version de &os; antérieure à la 4.5, ou que vous désirez le gérer par vous même, vous devrez fixer maxusers à 4 au moins, en particulier si vous utilisez le système X Window ou compilez des logiciels. La raison de cela est que la valeur la plus importante que dimensionne maxusers est le nombre maximal de processus, qui est fixé à 20 + 16 * maxusers, donc si vous positionnez maxusers à 1, alors vous ne pouvez avoir que 36 processus en simultanés, comprenant les 18, environ, que le système lance au démarrage et les 15, à peu près, que vous créerez probablement au démarrage du système X Window. Même une tâche simple comme la lecture d'une page de manuel lancera jusqu'à neuf processus pour la filtrer, la décompresser, et l'afficher. Fixer maxusers à 64 autorisera jusqu'à 1044 processus simultanés, ce qui devrait suffire dans la plupart des cas. Si, toutefois, vous obtenez le message d'erreur tant redouté proc table full quand vous tentez d'exécuter un nouveau programme, ou gérez un serveur avec un grand nombre d'utilisateurs en simultanés (comme ftp.FreeBSD.org), vous pouvez toujours augmenter cette valeur et recompiler le noyau. maxusers ne limite pas le nombre d'utilisateurs qui pourront ouvrir une session sur votre machine. Cette valeur dimensionne simplement différentes tables à des valeurs raisonnables en fonction du nombre maximal d'utilisateur que vous aurez vraisemblablement sur votre système et combien de processus chacun d'entre eux pourra utiliser. Un mot-clé qui limite le nombre d'utilisateurs distants et de terminaux X en simultané est pseudo-device pty 16. Avec &os; 5.X, vous n'avez pas à vous soucier de ce nombre puisque le pilote &man.pty.4; est capable d'auto-clonage, vous devez donc utiliser la ligne device pty dans votre fichier de configuration. # Floating point support - do not disable. device npx npx est sous FreeBSD l'interface avec le - coprocesseur mathémathique, qu'il soit matériel + coprocesseur mathématique, qu'il soit matériel ou émulé par logiciel. Cette option n'est pas facultative. # Pseudo devices device loop # Network loopback C'est l'interface générique en boucle de TCP/IP. Si vous employez telnet ou FTP sur localhost (aussi connu en tant qu'adresse 127.0.0.1) la réponse vous parviendra via ce pseudo-périphérique. Ceci est obligatoire. Sous &os; 4.X, vous devez utiliser la ligne pseudo-device loop. Tout ce qui suit est plus ou moins optionnel. Voyez les notes sous ou à côté de chaque option pour plus d'information. #To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" #Default places to look for devices. Sous &os; 5.X et versions plus récentes &man.device.hints.5; est utilisé pour configurer les paramètres des pilotes de périphériques. Le &man.loader.8; recherchera le fichier /boot/device.hints au démarrage. En utilisant l'option hints vous pouvez compiler ces valeurs en statique dans votre noyau. Il n'est alors pas utile de créer de fichier device.hints dans /boot. #makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols Le processus normal de compilation de &os; n'inclus pas d'information de débogage lors de la compilation du noyau et retire la plupart des symboles une fois que l'édition de liens du noyau résultant est terminée, pour économiser de l'espace à l'endroit où il va être installé. Si vous avez l'intention de tester des noyaux dans la branche -CURRENT ou effectuer des modifications personnelles sur le noyau &os;, vous pourriez vouloir décommenter cette ligne. Cela activera l'utilisation de l'option qui autorisera les informations de débogage quand le noyau sera passé à &man.gcc.1;. La même chose peut être accomplie par l'option de &man.config.8;, si vous utilisez la méthode “traditionnelle” pour la compilation de vos noyaux (Voir la pour plus d'information). options SCHED_4BSD # 4BSD scheduler L'ordonnanceur (scheduler) traditionnel de &os;. En fonction de la charge de travail de votre système, vous pouvez gagner en performance en utilisant le nouvel ordonnanceur ULE pour &os; qui a été conçu tout spécialement pour les systèmes SMP, mais il fonctionne également bien avec les systèmes monoprocesseur. Si vous désirez le tester, remplacez SCHED_4BSD par SCHED_ULE dans votre fichier de configuration. options INET #InterNETworking Support réseau. Conservez-le, même si vous n'envisagez pas de vous connecter à un réseau. La plupart des programmes utilisent le réseau “en boucle” (i.e., établissent des connexions réseau avec le PC lui-même), cette option est donc quasiment obligatoire. options INET6 #IPv6 communications protocols Ceci active les protocoles de communication IPv6. options FFS #Berkeley Fast Filesystem C'est le système de fichiers de base sur disque dur. Gardez ces options si vous démarrez depuis le disque dur. options UFS_ACL #Support for access control lists Cette option, uniquement présente sous &os; 5.X, active le support des listes de contrôle d'accès au système de fichiers (ACL). Elles reposent sur l'utilisation d'attributs étendus et d'UFS2, cette fonctionnalité est décrite dans la . Les ACLs sont activées par défaut, et leur support ne devraient pas être retiré du noyau si elles ont été précédemment utilisées sur un système de fichiers, étant donné que cela supprimera les listes de contrôle d'accès changeant alors la façon dont sont protégés les fichiers d'une manière imprévisible. options UFS_DIRHASH #Improve performance on big directories Cette option inclut certaines fonctions pour accélérer les opérations disque sur de gros répertoires, aux dépens d'employer de la mémoire supplémentaire. Vous conserverez normalement cela pour un gros serveur, ou une station de travail très active, et vous l'enlèverez si vous utilisez FreeBSD sur un petit système où la mémoire prime et la vitesse d'accès disque est moins importante, comme pour un coupe-feu. options SOFTUPDATES #Enable FFS Soft Updates support Cette option rajoutera le support des “Soft Updates” dans le noyau, ce qui aidera l'accélération des accès en écriture sur les disques. Même quand cette fonction est fournit par le noyau, elle doit être activée sur chaque disque. Regardez le résultat de la commande &man.mount.8; pour voir si les “Soft Updates” sont activées sur les disques de votre système. Si vous ne voyez pas apparaître l'option soft-updates alors vous devrez l'activer en utilisant les commandes &man.tunefs.8; (pour les systèmes de fichiers existant) ou &man.newfs.8; (pour les nouveaux systèmes de fichiers). options MD_ROOT #MD is a potential root device Cette option active le support pour des disques virtuels en mémoire utilisés comme périphérique racine. options du noyau NFS options du noyau NFS_ROOT options NFSCLIENT # Network Filesystem Client options NFSSERVER # Network Filesystem Server options NFS_ROOT # NFS usable as /, requires NFSCLIENT Le système de fichiers réseau. A moins que vous n'envisagiez de monter des partitions d'un serveur de fichiers &unix; par l'intermédiaire d'un réseau TCP/IP, vous pouvez mettre en commentaire ces options. options du noyau MSDOSFS options MSDOSFS #MSDOS Filesystem Le système de fichiers &ms-dos;. A moins que vous n'envisagiez de monter une partition DOS d'un disque dur au démarrage, vous pouvez sans risque commenter cette option. Le module sera automatiquement chargé la première fois que vous monterez une partition DOS, comme décrit plus haut. Par ailleurs, l'excellent logiciel emulators/mtools vous permet d'accéder à des disquettes DOS sans avoir besoin de les monter (et ne requiert pas non plus MSDOSFS). options CD9660 #ISO 9660 Filesystem Le système de fichiers ISO 9660 pour les CDROMs. Commentez ces options si vous n'avez pas de lecteur de CDROM ou que vous ne montez qu'occasionnellement des CDROMs (il sera chargé dynamiquement dès que vous monterez un CDROM). Les CDROMs audios n'ont pas besoin de ce système de fichiers. options PROCFS #Process filesystem Le système de fichiers pour les processus. C'est un “pseudo-système” de fichiers monté sur /proc qui permet à des programmes comme &man.ps.1; de vous fournir plus d'informations sur les processus qui tournent sur le système. Sous &os; 5.X et versions suivantes, l'utilisation de PROCFS n'est pas nécessaire la plupart du temps, comme la majeur partie des outils de débogage et de monitoring ont été adaptés pour s'exécuter sans PROCFS: contrairement à &os; 4.X, les nouvelles installations de &os; 5.X ne monteront pas par le défaut le système de fichiers virtuel des processus. De plus, les noyaux &os; 6.X-CURRENT faisant usage de l'option PROCFS doivent maintenant inclure le support PSEUDOFS: options PSEUDOFS #Pseudo-filesystem framework L'option PSEUDOFS n'est pas disponible sous &os; 4.X. options GEOM_GPT # GUID Partition Tables. Cette option apporte la possibilité d'avoir un grand nombre de partitions sur un seul disque. options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!] Compatibilité avec 4.3BSD. Conservez cette option; certains programmes auront un comportement bizarre si vous la commentez. options COMPAT_FREEBSD4 #Compatible with FreeBSD4 Cette option est nécessaires aux systèmes &i386; et Alpha fonctionnant sous &os; 5.X pour supporter les applications compilées sur d'anciennes version de &os; qui utilisent d'anciennes interfaces d'appel système. Il est recommandé d'utiliser cette option sur tous les systèmes &i386; et Alpha susceptibles d'exécuter d'anciennes applications; les plateformes apparues sous &os; 5.0, comme l'ia64 et &sparc64;, n'ont pas besoin de cette option. options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI Cette option oblige le noyau à attendre 15 secondes avant de rechercher les périphériques SCSI présents sur votre système. Si vous n'avez que des disques IDE, vous pouvez l'ignorer, sinon vous voudrez peut-être diminuer cette valeur, éventuellement à 5 secondes, pour accélérer le démarrage du système. Bien sûr, si vous le faites, et que FreeBSD a du mal à reconnaître vos périphériques SCSI, vous devrez l'augmenter à nouveau. options KTRACE #ktrace(1) support Ceci permet de tracer le processus du noyau, ce qui est utile pour le débogage. options SYSVSHM #SYSV-style shared memory Cette option implémente la mémoire partagée System V. L'usage le plus courant qui en est fait est l'extension XSHM d'X, dont de nombreux logiciels gourmants en graphique tireront automatiquement parti pour fonctionner plus vite. Si vous utilisez X, vous utiliserez absolument cette option. options SYSVSEM #SYSV-style semaphores Support des sémaphores System V. D'un usage moins courant, mais n'augmente la taille du noyau que de quelques centaines d'octets. options SYSVMSG #SYSV-style message queues Support des messages System V. Encore une fois, cette option n'augmente que de quelques centaines d'octets la taille du noyau. L'option de la commande &man.ipcs.1; donnera la liste des processus utilisant chacun de ces mécanismes System V. options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions Extensions temps-réel ajoutées dans la norme &posix; 1993. Certaines applications du catalogue des logiciels portés les utilisent (comme &staroffice;). options KBD_INSTALL_CDEV # install a CDEV entry in /dev Cette option concerne le clavier. Elle installe une entrée CDEV dans le répertoire /dev. options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver. options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. - Ceci aide le déboguage en affichant l'état des + Ceci aide le débogage en affichant l'état des registres de manière plus simple à lire. options ADAPTIVE_GIANT # Giant mutex is adaptive. Giant est le nom d'un mécanisme d'exclusion mutuelle (un mutex dormant) qui protège l'accès à un ensemble important de ressources du noyau. Aujourd'hui c'est un goulot d'étranglement des performances inacceptable que l'on est en train de remplacer activement par des verrous qui protègent les ressources individuelles. L'option ADAPTIVE_GIANT permet à Giant d'être inclus dans l'ensemble des mutex lancés de manière adaptative. C'est à dire, quand un thread désire verrouiller le mutex Giant, mais que ce dernier est déjà verrouillé par un thread sur un autre CPU, le premier thread continuera à fonctionner et attendra la libération du verrou. Normalement, le thread retournera à l'état dormant et attendra une nouvelle chance de pouvoir s'exécuter. Si vous n'êtes pas sûr, laissez la configuration en l'état. options du noyau SMP device apic # I/O APIC Le périphérique apic active l'utilisation de l'E/S APIC pour l'acheminement des interruptions. Le périphérique apic peut être utilisé dans les noyaux UP (monoprocesseur) et SMP, mais est requis pour les noyaux SMP. Ajoutez options SMP pour inclure le support pour plusieurs processeurs. device isa Tous les PCs supportés par FreeBSD ont un contrôleur ISA. Ne supprimez pas cette ligne même si vous ne disposez pas de slot ISA. Si vous avez un système IBM PS/2 (Micro Channel Architecture), FreeBSD fournit un support limité pour l'instant. Pour plus d'informations au sujet du support MC, voir le fichier /usr/src/sys/i386/conf/NOTES. device eisa Rajoutez cela si vous avez une carte mère EISA. Cela permet l'auto-détection et la configuration de tous les périphériques présents sur le bus EISA. device pci Ajoutez cette option si vous avez une carte mère PCI. Cela permet l'auto-détection des cartes PCI et gère l'interface entre les bus PCI et ISA. device agp Ajoutez cette option si vous avez une carte AGP dans votre système. Cela activera le support AGP, et l'AGP GART pour les cartes qui ont cette fonction. # Floppy drives device fdc C'est le contrôleur de lecteur de disquettes. # ATA and ATAPI devices device ata Ce pilote supporte tous les périphériques ATA et ATAPI. Vous n'avez besoin que d'une seule ligne device ata pour que le noyau détecte tous les périphériques PCI ATA/ATAPI sur les machines modernes. device atadisk # ATA disk drives Ceci est requis avec device ata pour les disques ATA. device ataraid # ATA RAID drives Ceci est nécessaire avec device ata pour les disques RAID ATA. device atapicd # ATAPI CDROM drives Ceci est nécessaire avec device ata pour le support des lecteurs de CDROM ATAPI. device atapifd # ATAPI floppy drives Ceci est nécessaire avec device ata pour le support des lecteurs de disquettes ATAPI. device atapist # ATAPI tape drives Ceci est nécessaire avec device ata pour le support des lecteurs de bande ATAPI. options ATA_STATIC_ID #Static device numbering Cela rend la numérotation des périphériques statique, sans cela l'allocation des numéros de périphériques sera dynamique. # SCSI Controllers device ahb # EISA AHA1742 family device ahc # AHA2940 and onboard AIC7xxx devices device ahd # AHA39320/29320 and onboard AIC79xx devices device amd # AMD 53C974 (Teckram DC-390(T)) device isp # Qlogic family device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets) device trm # Tekram DC395U/UW/F DC315U adapters device adv # Advansys SCSI adapters device adw # Advansys wide SCSI adapters device aha # Adaptec 154x SCSI adapters device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. device bt # Buslogic/Mylex MultiMaster SCSI adapters device ncv # NCR 53C500 device nsp # Workbit Ninja SCSI-3 device stg # TMC 18C30/18C50 Contrôleurs SCSI. Mettez en commentaires ceux que vous n'avez pas sur votre système. Si vous n'avez qu'un système IDE, vous pouvez supprimer toutes ces lignes. # SCSI peripherals device scbus # SCSI bus (required for SCSI) device ch # SCSI media changers device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE) Périphériques SCSI. A nouveau, mettez en commentaires tous ceux que vous n'avez pas, ou si vous n'avez que du matériel IDE, vous pouvez tous les supprimer. Le pilote USB &man.umass.4; et quelques autres pilotes utilisent le sous-système SCSI même si ce ne sont pas de véritables périphériques SCSI. Par conséquent assurez-vous de ne pas retirer le support SCSI si un tel pilote fait partie de la configuration du noyau. # RAID controllers interfaced to the SCSI subsystem device amr # AMI MegaRAID device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - See NOTES for options device hptmv # Highpoint RocketRAID 182x device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID device twa # 3ware 9000 series PATA/SATA RAID # RAID controllers device aac # Adaptec FSA RAID device aacp # SCSI passthrough for aac (requires CAM) device ida # Compaq Smart RAID device mlx # Mylex DAC960 family device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID Contrôleurs RAID supportés. Si vous n'avez aucun de ces derniers dans votre système, vous pouvez les mettre en commentaires ou les supprimer. # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller Le contrôleur du clavier (atkbdc) permet de gérer les E/S du clavier AT et des périphériques de pointage PS/2. Ce contrôleur est nécessaire au pilote de périphérique du clavier (atkbd) et celui des périphériques de pointage PS/2 (psm). device atkbd # AT keyboard Le pilote de périphérique atkbd, associé au contrôleur atkbdc, fournit un accès au clavier AT 84 touches ou au clavier AT étendu qui est connecté au contrôleur de clavier de la machine. device psm # PS/2 mouse Utilisez ce périphérique si votre souris se branche sur le port PS/2. device vga # VGA video card driver Pilote de la carte graphique. # splash screen/screen saver device splash # Splash screen and screen saver support Ecran/bannière de démarrage. Les économiseurs d'écran ont également besoin de ce pseudo-périphérique. Utilisez la ligne pseudo-device splash avec &os; 4.X. # syscons is the default console driver, resembling an SCO console device sc sc est le pilote par défaut pour la console, qui ressemble à une console SCO. Comme la plupart des programmes en mode plein-écran accèdent à la console par l'intermédiaire d'une base de données de description des terminaux comme termcap, cela n'a guère d'importance que vous choisissiez ce pilote ou vt, le pilote compatible VT220. Quand vous ouvrez une session, positionnez votre variable d'environnement TERM à scoansi si vous avez des problèmes pour utiliser des programmes en mode plein-écran avec cette console. # Enable this for the pcvt (VT220 compatible) console driver #device vt #options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor C'est le pilote de console compatible VT220, et, rétrospectivement, compatible VT100/102. Il fonctionne bien sur certains ordinateurs portables qui sont matériellement incompatibles avec le pilote sc. Comme précédemment, positionnez la variable d'environnement TERM lorsque que vous ouvrez une session, mais cette fois-ci à vt100 ou vt220. Ce pilote peut aussi s'avérer utile quand vous vous connectez à un grand nombre de machines différentes par le réseau sur lesquelles les entrées pour le périphérique sc ne sont souvent pas définies dans leurs fichiers termcap ou terminfo — alors que le terminal vt100 devrait être disponible sur pratiquement toutes les plates-formes. # Power management support (see NOTES for more options) device apm “Advanced Power Management support” - gestion avancée de l'énergie. Utile pour les ordinateurs portables, ceci est cependant désactivé par défaut dans le noyau GENERIC sous &os; 5.X et versions suivantes # Add suspend/resume support for the i8254. device pmtimer Pilote du périphérique de gestion du temps pour les événements de la gestion de l'énergie, comme l'APM ou l'ACPI. # PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support device cbb # cardbus (yenta) bridge device pccard # PC Card (16-bit) bus device cardbus # CardBus (32-bit) bus Support PCMCIA. Vous en avez besoin si vous utilisez un ordinateur portable. # Serial (COM) ports device sio # 8250, 16[45]50 based serial ports Cela représente les ports séries, appelés ports COM dans le monde &ms-dos;/&windows;. Si vous avez un modem interne sur le port COM4 et un port série COM2, vous devrez changer l'IRQ du modem en 2 (pour d'obscures raisons techniques, IRQ 2 = IRQ 9) pour y accéder avec FreeBSD. Si vous avez une carte série multi-ports, consultez la page de manuel de &man.sio.4; pour plus d'informations sur les bonnes valeurs à ajouter à votre fichier /boot/device.hints. Certaines cartes vidéo (notamment celle à base de circuits S3) utilisent des adresses d'E/S sous la forme 0x*2e8, et comme de nombreuses cartes séries bon marché de décodent pas complètement l'espace d'adresse d'E/S 16 bits, il y a aura des conflits avec ces cartes, rendant le port COM4 pratiquement inutilisable. Chaque port série doit avoir une IRQ unique (à moins que vous n'utilisiez une carte multi-ports qui autorise le partage d'interruption), donc les IRQs par défaut pour les ports COM3 et COM4 ne peuvent être utilisées. # Parallel port device ppc C'est l'interface parallèle du bus ISA. device ppbus # Parallel port bus (required) Fournit le support pour le bus du port parallèle. device lpt # Printer Support pour les imprimantes parallèles. Les trois lignes précédentes sont nécessaires pour permettre le support des imprimantes parallèles. device plip # TCP/IP over parallel C'est le pilote pour l'interface réseau sur port parallèle. device ppi # Parallel port interface device Port d'E/S d'usage général (“geek port”) + port d'E/S IEEE1284. #device vpo # Requires scbus and da lecteur zip Ceci est pour le lecteur Zip de Iomega. Les options scbus et da sont également requises. Les meilleures performances sont obtenues avec les ports configurés dans le mode EPP 1.9. #device puc Décommentez ce périphérique si vous disposez d'une carte PCI série ou parallèle idiote qui est supportée par le pilote &man.puc.4;. # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (Tulip) device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device txp # 3Com 3cR990 (Typhoon) device vx # 3Com 3c590, 3c595 (Vortex) Divers pilotes de cartes réseaux PCI. Mettez en commentaires ou supprimer les lignes de celles qui ne sont pas présentes sur votre système. # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! device miibus # MII bus support Le support du bus MII est nécessaire pour certaines cartes Ethernet PCI 10/100, à savoir celles qui utilisent des interfaces compatibles MII ou implémentent une gestion de l'interface opérant comme le bus MII. Ajouter device miibus à la configuration du noyau intègre le support pour l'API miibus générique et tous les pilotes d'interfaces PHY, incluant un pilote générique pour les interfaces PHYs qui ne sont pas spécifiquements gérées par un pilote individuel. device dc # DEC/Intel 21143 and various workalikes device miibus # MII bus support device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 and various workalikes device fxp # Intel EtherExpress PRO/100B (82557, 82558) device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc') device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (Starfire) device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 EPIC) device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (Boomerang, Cyclone) Pilotes qui utilisent le code du contrôleur du bus MII. # ISA Ethernet NICs. pccard NICs included. device cs # Crystal Semiconductor CS89x0 NIC # 'device ed' requires 'device miibus' device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards device ex # Intel EtherExpress Pro/10 and Pro/10+ device ep # Etherlink III based cards device fe # Fujitsu MB8696x based cards device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc. device lnc # NE2100, NE32-VL Lance Ethernet cards device sn # SMC's 9000 series of Ethernet chips device xe # Xircom pccard Ethernet # ISA devices that use the old ISA shims #device le Pilotes pour les cartes Ethernet ISA. Consultez le fichier /usr/src/sys/i386/conf/NOTES pour savoir quelles cartes sont supportées et par quel pilote. # Wireless NIC cards device wlan # 802.11 support device an # Aironet 4500/4800 802.11 wireless NICs. device awi # BayStack 660 and others device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. #device wl # Older non 802.11 Wavelan wireless NIC. Support pour diverses cartes réseau sans fil. device mem # Memory and kernel memory devices Les périphériques mémoire système. device io # I/O device Cette option autorise à un processus d'obtenir les permissions d'E/S. Ceci est utile pour l'écriture de - programmes en mode utilisateur pouvant gerer directement le + programmes en mode utilisateur pouvant gérer directement le matériel. Ceci est nécessaire pour exécuter le système X Window. device random # Entropy device Générateur de nombres aléatoire sécurisé pour les applications de chiffrement. device ether # Ethernet support ether ne sert que si vous avez une carte Ethernet. Cela intègre le code générique pour le protocole Ethernet. Sous &os; 4.X, utilisez la ligne pseudo-device ether. device sl # Kernel SLIP sl est le support pour le protocole SLIP. Il a été presque entièrement supplanté par le protocole PPP, plus facile à mettre en oeuvre, mieux adapté aux connexions par modem, et aussi plus puissant. Avec &os; 4.X, utilisez la ligne pseudo-device sl. device ppp # Kernel PPP C'est le support intégré au noyau du protocole PPP pour les connexions par modem. Il y a aussi une version de PPP sous forme de programme utilisateur qui utilise tun et offre plus de souplesse et de possibilités comme la connexion à la demande. Avec &os; 4.X , utilisez la ligne pseudo-device ppp. device tun # Packet tunnel. Ceci est utilisé par le programme PPP en mode utilisateur. Voyez la section PPP de ce manuel pour plus d'informations. Avec &os; 4.X, utilisez la ligne pseudo-device tun. device pty # Pseudo-ttys (telnet etc) C'est un “pseudo-terminal” ou un port simulant une session. Il est utilisé par les sessions telnet et rlogin entrantes, par xterm, et d'autres applications comme Emacs. Sous &os; 4.X, vous devez utiliser la ligne pseudo-device pty nombre. Le nombre après pty indique le nombre de ptys à créer. Si vous avez besoin de plus que les 16 fenêtres xterm et/ou connexions à distance simultanées par défaut, veillez à augmenter ce nombre en conséquence, jusqu'à un maximum de 256. device md # Memory disks Pseudo-périphérique de disque mémoire. Avec &os; 4.X, utilisez la ligne pseudo-device md. device gif # IPv6 and IPv4 tunneling Ceci implémente l'encapsulation du protocole IPv6 par dessus l'IPv4, l'IPv4 par dessus l'IPv6, l'encapsulation IPv4 par dessus l'IPv4, et IPv6 par dessus IPv6. Avec FreeBSD 4.4 le périphérique gif “s'auto-duplique” et vous devriez utiliser la ligne pseudo-device gif). Les versions antérieures de &os; 4.X nécessitent un nombre, par exemple pseudo-device gif 4. device faith # IPv6-to-IPv4 relaying (translation) Ce pseudo-périphérique capture les paquets qui lui sont envoyés et les détourne vers le “daemon” de translation IPv4/IPv6. Avec &os; 4.X, utilisez la ligne pseudo-device faith 1. # The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! device bpf # Berkeley packet filter C'est le filtre de paquets de Berkeley. Ce pseudo-périphérique permet de placer les interfaces en mode “promiscuous” (indiscret), pour capturer chaque paquet sur réseau de diffusion (e.g., un réseau Ethernet). Ces paquets peuvent être enregistrés sur le disque et/ou examinés avec le programme &man.tcpdump.1;. Avec &os; 4.X, utilisez la ligne pseudo-device bpf. Le périphérique &man.bpf.4; est également utilisé par &man.dhclient.8; pour obtenir une adresse IP du routeur par défaut (passerelle) et ainsi de suite. Si vous utilisez DHCP, conservez cette ligne non commentée. # USB support device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface device usb # USB Bus (required) #device udbp # USB Double Bulk Pipe devices device ugen # Generic device uhid # Human Interface Devices device ukbd # Keyboard device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse device urio # Diamond Rio 500 MP3 player device uscanner # Scanners # USB Ethernet, requires mii device aue # ADMtek USB Ethernet device axe # ASIX Electronics USB Ethernet device cue # CATC USB Ethernet device kue # Kawasaki LSI USB Ethernet device rue # RealTek RTL8150 USB Ethernet Support pour divers périphériques USB. # FireWire support device firewire # FireWire bus code device sbp # SCSI over FireWire (Requires scbus and da) device fwe # Ethernet over FireWire (non-standard!) Support pour divers périphériques Firewire. Pour plus d'informations et pour avoir la liste de périphériques supplémentaires supportés par FreeBSD, voyez le fichier /usr/src/sys/i386/conf/NOTES. Configurations mémoire importantes (<acronym>PAE</acronym>) Extensions d'adressage physique—“Physical Address Extensions” (PAE) Configurations mémoire importantes Les machines à configuration mémoire importante ont besoin de pouvoir accéder à plus d'espace mémoire utilisateur et noyau que la limite des 4 gigaoctets de l'espace d'adresse noyau+utilisateur (“Kernel Virtual Address”—KVA). En raison de cette limite, Intel a ajouté le support d'adresses physiques sur 36 bits pour l'espace d'adresses dans les familles de microprocesseurs &pentium; Pro et suivantes. L'extension de l'adressage physique&mdash,“Physical Address Extension” (PAE) est une caractéristique des microprocesseurs &intel; &pentium; Pro et suivants autorisant les configurations mémoires jusqu'à 64 gigaoctets. &os; fournit un support pour cette caratéristique via l'option de configuration du noyau , disponible sous les version 4.X de &os; depuis la 4.9-RELEASE et sous &os; 5.X depuis la 5.1-RELEASE. En raison des limitations de l'architecture mémoire &intel;, aucune distinction n'est faite entre la mémoire au-dessus et en-dessous de 4 gigaoctets. La mémoire allouée au-dessus de 4 gigaoctets est simplement ajoutée à l'ensemble de la mémoire disponible. Pour activer le support PAE dans le noyau, ajoutez simplement la ligne suivante dans votre fichier de configuration du noyau: options PAE Le support PAE sous &os; est uniquement disponible pour les processeurs IA-32 d'&intel;. Il doit être noté que le support PAE sous &os; n'a pas été énormément testé, et devrait être considéré comme bêta comparé aux autres fonctionnalités stables de &os;. Le support PAE sous &os; a quelques limitations: Un processus est incapable d'accéder à plus de 4 gigaoctets d'espace mémoire. Les modules KLD ne peuvent être chargés dans un noyau avec PAE activé, en raison des différences entre la structure d'un module et du noyau. Les pilotes de périphériques qui n'utilisent pas l'interface &man.bus.dma.9; seront à l'origine de corruption de données avec un noyau PAE et ne sont pas recommandés. Pour cette raison, le fichier de configuration du noyau avec support PAE qui est fourni avec &os; 5.X exclut tous les pilotes connus pour ne pas fonctionner avec un noyau avec support PAE. Certains paramètres modifiables du système déterminent l'utilisation des ressources mémoire par la quantité de la mémoire physique disponible. De tels paramètres peuvent être inutilement sur-alloués en raison de la grande quantité de mémoire d'un système PAE. Un bon exemple est le “sysctl” , qui contrôle le nombre maximal de “vnodes” alloués par le noyau. Il est recommandé d'ajuster ce dernier et les autres paramètres du même genre à des valeurs raisonnables. Il pourra être nécessaire d'augmenter l'espace d'adressage virtuel du noyau (“kernel virtual address”—KVA) ou de réduire le montant de la ressource spécifique du noyau qui est fortement utilisée (voir plus haut) afin d'éviter l'épuisement de l'espace KVA. L'option du noyau peut être employée pour augmenter l'espace KVA. Pour des considérations de performance et de stabilité, il est recommandé de consulter la page de manuel &man.tuning.7;. La page de manuel &man.pae.4; contient des informations à jour sur le support PAE sous &os;. Créer les fichiers spéciaux de périphériques fichiers spéciaux de périphériques MAKEDEV Si vous utilisez FreeBSD 5.0 ou une version ultérieure, vous pouvez sans risque passer cette section. Ces versions utilisent &man.devfs.5; pour allouer les fichiers spéciaux de périphérique de façon transparente pour l'utilisateur. A pratiquement chaque périphérique correspond un “noeud” (ou fichier spécial de périphérique) dans le répertoire /dev. Ces fichiers spéciaux ressemblent à des fichiers ordinaires, mais sont en fait des points d'entrée particuliers dans le noyau que les programmes utilisent pour accéder aux périphériques. La procédure /dev/MAKEDEV, qui est exécutée à la première installation du système d'exploitation, crée la plupart des fichiers spéciaux de périphériques supportés. Cependant, elle ne les crée pas tous, donc quand vous ajoutez le support pour un nouveau périphérique, cela vaut la peine de vérifier que les entrées adéquates sont dans ce répertoire , et sinon, ajoutez-les. Voici un exemple simple: Supposons que vous ajoutez au noyau le support du lecteur de CD-ROMs IDE. La ligne pour l'ajouter est: device acd0 Cela signifie que vous devrez chercher des entrées commençant par acd0 dans le répertoire /dev, éventuellement suivies par une lettre, comme c,, ou précédées par la lettre r, qui désigne un périphérique en mode caractère - “raw”. S'il s'avère que ces fichiers n'existent pas, vous devez vous rendre dans le répertoire /dev et taper: MAKEDEV &prompt.root; sh MAKEDEV acd0 Quand la procédure s'achève, vous trouverez qu'il y a désormais des entrées acd0c et racd0c dans /dev, ce qui confirme qu'elle a bien fonctionné. Pour les cartes sons, la commande suivante crée les entrées adéquates: &prompt.root; sh MAKEDEV snd0 Quand vous créez des noeuds pour les périphériques comme les cartes sons, si d'autres personnes ont accès à votre machine, il est peut être souhaitable de protéger ces périphériques d'un accès depuis l'extérieur en les ajoutant au fichier /etc/fbtab. Voir la page de manuel &man.fbtab.5; pour plus d'informations. Suivez cette simple procédure pour tous les autres périphériques absents du noyau GENERIC pour lesquels les entrées n'existent pas encore. Tous les contrôleurs SCSI utilisent le même ensemble d'entrées dans /dev, vous n'avez donc pas besoin de les créer. Egalement, les cartes réseaux et les pseudo-périphériques SLIP/PPP n'ont pas d'entrées dans /dev, vous n'avez donc pas à vous en préoccuper. Si quelque chose se passe mal Il y a cinq types de problèmes qui peuvent survenir lors de la compilation d'un noyau sur mesure. Ce sont: La commande config échoue: Si la commande &man.config.8; échoue quand vous lui passez en paramètre la description de votre noyau, vous avez probablement fait une simple erreur quelque part. Heureusement &man.config.8; affichera le numéro de la ligne qui lui a posé problème, vous pouvez donc localiser rapidement la ligne contenant l'erreur. Par exemple, si vous avez: config: line 17: syntax error Vérifiez que la ligne est correctement écrite, en le comparant avec le noyau GENERIC ou une autre référence. La commande make échoue: Si la commande make échoue, cela signale habituellement une erreur dans la description de votre noyau, mais qui n'est pas suffisamment sérieuse pour que la commande &man.config.8; la détecte. A nouveau, vérifiez votre fichier de configuration, et si vous n'arrivez toujours pas à résoudre le problème, envoyez un courrier électronique à la &a.questions; en joignant votre fichier de configuration du noyau, le diagnostic devrait être rapide. L'installation du nouveau noyau échoue: Si le noyau se compile sans problème, mais ne peut être installé (la commande make install ou make installkernel échoue), la première chose à vérifier est si votre système fonctionne à un niveau de sécurité égal à 1 ou supérieur (voir &man.init.8;). L'installation du noyau tente de retirer le drapeau rendant votre noyau actuel immuable et positionner ce drapeau sur le nouveau noyau. Comme le niveau de sécurité 1 et supérieur empêche de modifier l'état immuable d'un fichier du système, l'installation du noyau doit être effectuée au niveau de sécurité 0 ou inférieur. Ce qui précède ne s'applique qu'à &os; 4.X et les versions précédentes. &os; 5.X, tout comme les versions suivantes, ne positionne pas le drapeau immuable sur le noyau et un échec d'installation du noyau indiquera probablement un problème plus important. Le noyau ne démarre pas: Si votre nouveau noyau ne démarre pas, ou ne reconnaît pas vos périphériques, ne paniquez pas! Heureusement, FreeBSD dispose d'un excellent mécanisme pour récupérer si le noyau ne fonctionne pas. Sélectionnez simplement le noyau, à partir duquel vous désirez démarrer, à l'invite du chargeur de FreeBSD. Vous pouvez y accéder quand le système décompte à - partir de 10 au menu de démarrage. Au lieu de d'appuyez sur + partir de 10 au menu de démarrage. Au lieu de d'appuyer sur Entrée, appuyez sur une autre touche, puis tapez unload et ensuite boot /boot/kernel.old/kernel, ou le nom de fichier d'un autre noyau qui pourra démarrer proprement. Quand on reconfigure un noyau, il est toujours bon de conserver à portée de la main un noyau dont on sait qu'il fonctionne. Après avoir démarré avec un noyau en état de marche, vous pouvez revérifier votre fichier de configuration et essayer de recompiler à nouveau votre noyau. Une ressource utile est le fichier /var/log/messages qui enregistre, entre autres, tous les messages du noyau à chaque démarrage réussi. En outre, la commande &man.dmesg.8; affichera les messages du noyau pour le dernier démarrage. Si vous avez des difficultés à compiler un noyau, veillez à conserver un noyau GENERIC, ou un autre noyau dont vous savez qu'il fonctionne, sous la main, avec un nom différent de sorte qu'il ne soit pas écrasé à la prochaine compilation. Vous ne pouvez pas faire confiance au noyau kernel.old parce qu'en installant un nouveau noyau, kernel.old est remplacé par le dernier noyau installé dont il n'est pas certain qu'il soit opérationnel. Aussi, dès que possible, déplacez le noyau opérationnel vers le bon emplacement /boot/kernel où des commandes comme &man.ps.1; pourront ne pas fonctionner correctement. Pour cela, renommez le répertoire contenant le bon noyau: &prompt.root; mv /boot/kernel /boot/kernel.bad &prompt.root; mv /boot/kernel.good /boot/kernel Pour les versions de &os; antérieure à 5.X, la commande correcte pour déverrouiller un noyau installé par make (pour mettre définitivement en place un autre noyau) est: &prompt.root; chflags noschg /kernel Si vous vous apercevez que vous ne pouvez pas effectuer cette opération, c'est que vous êtes probablement sous un “&man.securelevel.8;” supérieur à zéro. Editez la ligne kern_securelevel dans /etc/rc.conf et positionnez-la à -1, puis redémarrez. Vous pouvez repositionner l'ancienne valeur si vous êtes satisfait de votre nouveau noyau. Et, si vous voulez “verrouiller” votre nouveau noyau, ou tout autre fichier, de sorte qu'il ne puisse être déplacé ou modifié, utilisez: &prompt.root; chflags schg /kernel Le noyau est opérationnel, mais la commande ps ne fonctionne plus du tout: Si vous avez installé une version du noyau différente de celle avec laquelle ont été compilés les utilitaires système, par exemple, un noyau 5.X sur un système 4.X, de nombreuses commandes d'affichage de l'état du système comme &man.ps.1; and &man.vmstat.8; ne fonctionneront plus. Vous devrez recompiler et installer un système avec la même version de l'arborescence des sources de celle utilisée pour votre noyau. C'est une des raisons pour lesquelles il n'est pas judicieux d'utiliser des versions différentes du noyau et du reste du système d'exploitation. diff --git a/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml index f4ad79b60d..8ccfd039cc 100644 --- a/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml @@ -1,3930 +1,3930 @@ Jim Mock Restructuré et en partie mis à jour par Brian N. Handy Contribution originelle de Rich Murphey Compatibilité binaire avec Linux &trans.a.fonvieille; Synopsis compatibilité binaire avec Linux compatibilité binaire Linux &os; fournit une compatibilité binaire avec plusieurs autres systèmes d'exploitation du type &unix;, y compris Linux. A ce point, vous devez vous demander pourquoi exactement &os; a besoin d'être capable d'exécuter des binaires Linux? La réponse à cette question est très simple. De nombreuses entreprises et de nombreux développeurs ne développent que pour Linux, puisque que c'est la dernière chose “à la mode” dans le monde de l'informatique. Cela ne laisse aux utilisateurs de &os; que la possibilité de réclamer auprès des ces mêmes entreprises et développeurs des versions native pour &os; de leurs applications. Le problème est, que la plupart de ces entreprises ne réalisent pas vraiment combien de personnes utiliseraient leur produit si il y aurait une version pour &os; également, et la plupart continuent de développer uniquement pour Linux. Donc que doit faire un utilisateur de &os;? C'est là que la compatibilité binaire avec Linux entre en scène. En bref, la compatibilité permet aux utilisateurs de &os; d'exécuter environ 90% des applications Linux sans aucune modification. Cela inclus des applications comme &staroffice;, la version Linux de &netscape;, &adobe; &acrobat;, RealPlayer, VMware, &oracle;, WordPerfect, Doom, Quake, et plus. On rapporte également que dans certaines situations, les binaires Linux sont plus performants sous &os; que sous Linux. Il existe cependant certaines caractéristiques spécifiques à Linux qui ne sont pas supportées sous &os;. Les binaires Linux ne fonctionneront pas sous &os; s'ils utilisent massivement des appels &i386; spécifiques, comme activation du mode virtuel 8086. Après la lecture de ce chapitre, vous connaîtrez: Comment activer la compatibilité binaire avec Linux sur votre système. Comment installer des bibliothèques partagées Linux supplémentaires. Comment installer des application Linux sur votre système &os;. Les détails de l'implémentation de la compatibilité Linux sous &os;. Avant de lire ce chapitre, vous devrez: Savoir comment installer des logiciels tiers (). Installation KLD (kernel loadable object) La compatibilité binaire avec Linux n'est pas activée par défaut. La manière la plus simple pour activer cette fonctionnalité est de charger le KLD linux (Kernel LoaDable object—objet chargeable par le noyau, ce que l'on nomme couramment un module). Vous pouvez charger ce module en tapant ce qui suit sous l'utilisateur root: &prompt.root; kldload linux Si vous désirez que la compatibilité Linux soit toujours activée, alors vous devrez ajouter la ligne suivante au fichier /etc/rc.conf: linux_enable="YES" La commande &man.kldstat.8; peut être utilisée pour vérifier que le KLD est chargé: &prompt.user; kldstat Id Refs Address Size Name 1 2 0xc0100000 16bdb8 kernel 7 1 0xc24db000 d000 linux.ko options du noyau LINUX Si pour quelques raisons vous ne voulez ou pouvez charger le KLD, alors vous pouvez lier statiquement la compatibilité binaire Linux dans votre noyau en ajoutant options COMPAT_LINUX à votre fichier de configuration du noyau. Puis installez votre noyau comme décrit dans la . Installer les bibliothèques Linux Linux installer les bibliothèques Linux Cela peut être fait de deux manières, soit en utilisant le logiciel porté linux_base, soit en les installant à la main. Installation à l'aide du logiciel porté linux_base catalogue des logiciels portés C'est de loin la méthode la plus simple pour installer les bibliothèques. La procédure est juste identique à l'installation d'un autre logiciel porté à partir du catalogue des logiciels portés. Faites ce qui suit: &prompt.root; cd /usr/ports/emulators/linux_base &prompt.root; make install distclean La compatibilité binaire Linux devrait maintenant fonctionner. Certains programmes pourront se plaindre de versions mineures incorrectes de certaines bibliothèques systèmes. Cela semble, en général, ne pas vraiment être un problème. Il peut y avoir de multiples versions disponibles du logiciel porté emulators/linux_base, correspondant à différentes distributions et versions de Linux. Vous devez installez la version la plus proche de ce que nécessite les applications Linux que vous désirez installer. Installer les bibliothèques à la main Si vous n'avez pas le catalogue des logiciels portés installé, vous pouvez à la place installer les bibliothèques à la main. Il vous faudra les bibliothèques partagées Linux dont à besoin le programme et l'éditeur de lien dynamiques. Vous devrez également créer un répertoire racine “masquant” (“shadow root”), /compat/linux, pour les bibliothèques Linux sur votre système &os;. Toute bibliothèque partagée ouverte par les programmes Linux exécutés sous &os; iront d'abord voir dans cette arborescence. Ainsi, si un programme Linux charge, par exemple, /lib/libc.so, &os; essayera d'abord d'ouvrir /compat/linux/lib/libc.so, puis si cette bibliothèque n'existe pas, /lib/libc.so. Les bibliothèques partagées doivent donc être installées sous l'arborescence /compat/linux/lib plutôt que sous les chemins d'accès mentionnés par la commande Linux ld.so. Généralement, vous ne devrez cherchez à savoir de quelles bibliothèques partagées dépendent les binaires Linux que les premières fois que vous installerez des programmes Linux sur votre système &os;. Au bout d'un moment, vous disposerez d'un jeu suffisant de bibliothèques partagées Linux sur votre système pour être en mesure d'exécuter les binaires Linux nouvellement importés sans effort supplémentaire. Comment installer des bibliothèques partagées supplémentaires bibliothèques partagées Que faire si vous avez installé le logiciel porté linux_base et que votre application se plaint toujours qu'il lui manque des bibliothèques partagées? Comment savoir quelles bibliothèques partagées ont besoin les binaires Linux, et où se les procurer? Il a habituellement deux possibilités (pour suivre les instructions ci-dessous, vous devrez être en session sous le compte super-utilisateur root). Si vous avez accès à un système Linux, déterminez de quelles bibliothèques partagées l'application a besoin, et copiez-les sur votre système &os;. Soit l'exemple suivant: Supposons que vous veniez de télécharger le binaire Linux de Doom, et que vous l'avez installé sur un système Linux. Vous pouvez alors vérifier de quelles bibliothèques partagées il a besoin pour fonctionner avec la commande ldd linuxdoom: &prompt.user; ldd linuxdoom libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 liens symboliques Vous devrez récupérer tous les fichiers mentionnés dans la dernière colonne, et les installer sous /compat/linux, en utilisant les noms de la première colonne comme liens symboliques qui pointent dessus. Cela signifie que vous aurez éventuellement les fichiers suivants sur votre système &os;: /compat/linux/usr/X11/lib/libXt.so.3.1.0 /compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Remarquez que si vous avez déjà une bibliothèque partagée de même numéro de version majeure que celle indiquée par la première colonne du résultat de la commande ldd, il est inutile de copier le fichier donné par la dernière colonne sur votre système, celui que vous avez déjà devrait suffire. Il est cependant recommandé de recopier malgré tout la bibliothèque partagée si c'est une version récente. Vous pouvez supprimer l'ancienne version, du moment que le lien symbolique pointe sur la nouvelle. Par exemple, si vous avez les bibliothèques suivantes sur votre système: /compat/linux/lib/libc.so.4.6.27 /compat/linux/lib/libc.so.4 -> libc.so.4.6.27 et que vous avez un nouveau binaire qui d'après le résultat de la commande ldd semble avoir besoin d'une version plus récente: libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29 Si vous n'avez qu'une ou deux versions de retard sur le dernier indice, alors ne vous souciez pas d'installer la version /lib/libc.so.4.6.29 plus récente, parce que le programme devrait fonctionner sans problème avec une version légèrement antérieure. Vous pouvez néanmoins décider de remplacer libc.so, ce qui devrait vous donner quelque chose comme: /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Le mécanisme de lien symbolique n'est nécessaire que pour les binaires Linux. L'éditeur de liens dynamiques de &os; se charge lui-même de trouver les numéros de versions majeures adéquats et vous n'avez pas à vous en préoccuper.
Installer des binaires Linux ELF Linux binaires ELF Une étape supplémentaire est parfois nécessaire pour les binaires ELF: le “marquage”. Si vous tentez d'exécuter un binaire ELF non marqué, vous obtiendrez un message d'erreur ressemblant à ce qui suit: &prompt.user; ./mon-binaire-elf-linux ELF binary type not known Abort Pour que le noyau &os; puisse distinguer un binaire ELF &os; d'un binaire Linux, vous devez employer l'utilitaire &man.brandelf.1;: &prompt.user; brandelf -t Linux mon-binaire-elf-linux outils GNU Les outils GNU incorporent désormais automatiquement les marques nécessaires dans les binaires ELF, vous aurez donc de moins en moins besoin de passer par cette étape à l'avenir. Configurer le résolveur de noms de domaines Si le DNS ne fonctionne pas, ou si vous avez les messages: resolv+: "bind" is an invalid keyword resolv+: "hosts" is an invalid keyword Vous devrez configurer un fichier /compat/linux/etc/host.conf contenant: order hosts, bind multi on Où l'ordre ci-dessus spécifie qu'il faut tout d'abord regarder dans le fichier /etc/hosts puis interroger le DNS. Quand le fichier /compat/linux/etc/host.conf n'existe pas, les applications Linux trouvent le fichier /etc/host.conf de &os; et se plaignent de sa syntaxe &os; incompatible. Supprimez bind si vous n'avez pas configuré de serveur de noms avec le fichier /etc/resolv.conf.
Boris Hollas Mis à jour pour &mathematica; 5.X par Installer &mathematica; applications Mathematica Ce document décrit l'installation de la version Linux de &mathematica; 5.X sur un système &os;. La version Linux de &mathematica; ou la version &mathematica; for Students peut être commandée directement auprès de Wolfram à l'adresse . Utiliser l'installeur &mathematica; En premier lieu vous devez indiquer à &os; que les binaires Linux de &mathematica; utilisent l'ABI Linux. La méthode la plus simple pour y parvenir est le marquage par défaut des binaires ELF non marqués comme étant des binaires Linux, ce marquage se faisant avec la commande: &prompt.root; sysctl kern.fallback_elf_brand=3 Avec cela &os; supposera que les binaires ELF non marqués sont des binaires Linux, et donc vous devriez être en mesure d'exécuter le programme d'installation directement depuis le CDROM. Copiez ensuite sur votre disque dur le fichier MathInstaller: &prompt.root; mount /cdrom &prompt.root; cp /cdrom/Unix/Installers/Linux/MathInstaller /localdir/ et dans ce fichier, remplacez /bin/sh sur la première ligne par /compat/linux/bin/sh. Cela permet de garantir que l'installeur est exécuté par la version Linux de &man.sh.1;. Ensuite, remplacez toutes les - occurences de Linux) par + occurrences de Linux) par FreeBSD) à l'aide d'un éditeur de texte ou la procédure proposée dans la section suivante. Cela indique à l'installeur &mathematica;, qui fait appel à la commande uname -s pour déterminer le système d'exploitation, de traiter &os; comme un système d'exploitation de type Linux. Lancer maintenant la commande MathInstaller - procèdera à l'installation de + procédera à l'installation de &mathematica;. Modifier les exécutables &mathematica; Les procédures que &mathematica; a créé lors de l'installation doivent être modifiées avant que vous ne puissiez les utiliser. Si vous avez choisi /usr/local/bin comme répertoires pour les exécutables &mathematica;, vous trouverez alors dans ce répertoire des liens symboliques vers les fichiers nommés math, mathematica, Mathematica, et MathKernel. Dans chacun d'entre eux, remplacez Linux) par FreeBSD) avec un éditeur de texte ou la procédure suivante: #!/bin/sh cd /usr/local/bin for i in math mathematica Mathematica MathKernel do sed 's/Linux)/FreeBSD)/g' $i > $i.tmp sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp > $i rm $i.tmp chmod a+x $i done Obtenir votre mot de passe pour &mathematica; Ethernet adresse MAC Quand vous lancez &mathematica; pour la première fois, un mot de passe vous sera demandé. Si vous n'avez pas encore récupéré votre mot de passe auprès de Wolfram, lancez le programme mathinfo présent dans le répertoire d'installation afin d'obtenir l'identifiant de votre machine. Cet identifiant de machine est basé uniquement sur l'adresse MAC de votre première carte Ethernet, vous ne pouvez donc pas utiliser votre copie de &mathematica; sur une machine différente. Quand vous vous enregistrez auprès de Wolfram, par courrier électronique, téléphone, ou fax, vous leur communiquerez l'“identifiant” de la machine et ils vous donneront en réponse le mot de passe correspondant qui a la forme de plusieurs groupes de nombres. Exécuter l'interface de &mathematica; via le réseau &mathematica; utilise des polices de caractères spécifiques pour afficher des caractères qui ne sont pas présents dans l'ensemble standard de polices (caractère - intégrale, somme, lettres grèques, etc.). + intégrale, somme, lettres grecques, etc.). Le protocole X a besoin que ces polices - de caratères soient installées + de caractères soient installées localement. Cela signifie que vous devrez copier sur votre machine locale ces polices à partir du CDROM ou d'une machine avec &mathematica; installé. Ces polices sont normalement stockées dans /cdrom/Unix/Files/SystemFiles/Fonts sur le CDROM, ou dans /usr/local/mathematica/SystemFiles/Fonts sur votre disque dur. En fait les polices sont dans les sous-répertoires Type1 et X. Il existe différentes manières de les utiliser, comme décrit ci-dessous. La première manière est de les copier dans un des répertoires de polices de caractères existant dans /usr/X11R6/lib/X11/fonts. Il faudra alors éditer le fichier fonts.dir, y ajouter les noms des polices, et changer le nombre de polices sur la première ligne. Alternativement, vous devriez pouvoir juste exécuter &man.mkfontdir.1; dans le répertoire dans lequel vous avez copié les polices de caractères. La deuxième manière est de copier les répertoires dans /usr/X11R6/lib/X11/fonts: &prompt.root; cd /usr/X11R6/lib/X11/fonts &prompt.root; mkdir X &prompt.root; mkdir MathType1 &prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts &prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X &prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1 &prompt.root; cd /usr/X11R6/lib/X11/fonts/X &prompt.root; mkfontdir &prompt.root; cd ../MathType1 &prompt.root; mkfontdir Maintenant ajoutez les nouveaux répertoires de polices à votre chemin de recherche des polices de caractères: &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1 &prompt.root; xset fp rehash Si vous utilisez le serveur &xorg;, vous pouvez charger ces répertoires de polices automatiquement en les ajoutant à votre fichier xorg.conf. Sous les serveurs &xfree86;, le fichier de configuration se nomme XF86Config. polices de caractères Si vous n'avez pas déjà de répertoire appelé /usr/X11R6/lib/X11/fonts/Type1, vous pouvez modifier le nom du répertoire MathType1 dans l'exemple ci-dessus par Type1. Aaron Kaplan Contribution de Robert Getschmann Remerciements à Installer &maple; applications Maple &maple; est un programme mathématique commercial similaire à &mathematica;. Vous devez acquérir ce logiciel auprès de et vous enregistrer pour obtenir un fichier de licence. Pour installer ce logiciel sous &os;, veuillez suivre les étapes suivantes: Exécutez la procédure INSTALL fournie avec le logiciel. Choisissez l'option “RedHat” quand le programme vous le demandera. Un répertoire d'installation typique devrait être: /usr/local/maple. Si vous ne l'avez pas déjà fait, demandez une licence pour &maple; auprès de Maple Waterloo Software () et copiez-la sous /usr/local/maple/license/license.dat. Installez le gestionnaire de licence FLEXlm en exécutant la procédure d'installation INSTALL_LIC fournie avec &maple;. Précisez le nom de la machine au serveur de licence. Modifiez le fichier /usr/local/maple/bin/maple.system.type avec le correctif suivant: ----- snip ------------------ *** maple.system.type.orig Sun Jul 8 16:35:33 2001 --- maple.system.type Sun Jul 8 16:35:51 2001 *************** *** 72,77 **** --- 72,78 ---- # the IBM RS/6000 AIX case MAPLE_BIN="bin.IBM_RISC_UNIX" ;; + "FreeBSD"|\ "Linux") # the Linux/x86 case # We have two Linux implementations, one for Red Hat and ----- snip end of patch ----- Remarquez qu'après "FreeBSD"|\ aucun espace ne doit être ajouté. Ce correctif demande à &maple; de reconnaître “FreeBSD” comme étant un type de système Linux. La procédure bin/maple fait appel à la procédure bin/maple.system.type qui à son tour appelle uname -a pour déterminer le nom du système d'exploitation. En fonction de ce nom, la procédure déterminera quels binaires utiliser. Lancez le serveur de licence. La procédure suivante, installée sous le nom /usr/local/etc/rc.d/lmgrd.sh est une façon pratique de lancer lmgrd: ----- snip ------------ #! /bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX export PATH LICENSE_FILE=/usr/local/maple/license/license.dat LOG=/var/log/lmgrd.log case "$1" in start) lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2 echo -n " lmgrd" ;; stop) lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2 ;; *) echo "Usage: `basename $0` {start|stop}" 1>&2 exit 64 ;; esac exit 0 ----- snip ------------ Testez &maple;: &prompt.user; cd /usr/local/maple/bin &prompt.user; ./xmaple Cela devrait fonctionner. Assurez-vous d'écrire à Maplesoft pour leur indiquer que vous désirez une version native pour &os;! Pièges courants Le gestionnaire de licence FLEXlm peut être difficile à utiliser. De la documentation supplémentaire à ce sujet est disponible à l'adresse . lmgrd est connu pour être très capricieux au sujet du fichier de licence et de planter si il y a un quelconque problème. Un fichier de licence correct devrait ressembler à ceci: # ======================================================= # License File for UNIX Installations ("Pointer File") # ======================================================= SERVER chillig ANY #USE_SERVER VENDOR maplelmg FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \ PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \ ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \ SN=XXXXXXXXX Le numéro de série et la clé ont été ici remplacés par des X. chillig est le nom de la machine. L'édition du fichier de licence est possible tant que vous ne touchez pas à la ligne “FEATURE” (qui est protégée par la clé de la licence). Dan Pelleg Contribution de Installer &matlab; applications MATLAB Ce document décrit l'installation de la version Linux de &matlab; version 6.5 sur un système &os;. Le logiciel fonctionne plutôt bien, à l'exception de la &jvm;, machine virtuelle &java; (voir la ). La version Linux de &matlab; peut être commandée directement auprès de The MathWorks à l'adresse . Assurez-vous d'avoir le fichier de licence ou les instructions pour le créer. Pendant que vous y êtes, faites-leur savoir que vous désireriez une version &os; native de leur logiciel. Installer &matlab; Pour installer &matlab;, faites ce qui suit: Insérez le CD d'installation et montez-le. Ouvrez une session super-utilisateur (root), comme recommandé par la procédure d'installation. Pour lancer la procédure d'installation tapez: &prompt.root; /compat/linux/bin/sh /cdrom/install Le programme d'installation est graphique. Si vous obtenez une erreur disant que le programme est incapable d'ouvrir une instance d'affichage, tapez setenv HOME ~utilisateur, où utilisateur est l'utilisateur à partir duquel vous avez fait un &man.su.1;. Quand on vous demande le répertoire racine pour &matlab;, tapez: /compat/linux/usr/local/matlab. Pour faciliter la suite de l'installation et réduire les frappes inutiles, tapez à l'invite de l'interpréteur de commandes ceci: set MATLAB=/compat/linux/usr/local/matlab Editez le fichier de licence comme précisé lors de l'obtention de la licence &matlab;. Vous pouvez préparer d'avance ce fichier en utilisant votre éditeur favori, et en le copiant sous le nom $MATLAB/license.dat avant que le programme d'installation ne vous demande de l'éditer. Terminez le processus d'installation. A ce point, votre installation de &matlab; est terminée. Les étapes suivantes rajoutent le nécessaire pour l'intégrer à votre système &os;. Démarrage du gestionnaire de licence Créez des liens symboliques pour les procédures du gestionnaire de licence: &prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW &prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW Créez un fichier de démarrage nommé /usr/local/etc/rc.d/flexlm.sh. L'exemple ci-dessous est une version modifiée du fichier $MATLAB/etc/rc.lm.glnx86 fourni. Les modifications concernent l'emplacement des fichiers, et le lancement du gestionnaire de licence sous l'émulation Linux. #!/bin/sh case "$1" in start) if [ -f /usr/local/etc/lmboot_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u utilisateur && echo 'MATLAB_lmgrd' fi ;; stop) if [ -f /usr/local/etc/lmdown_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1 fi ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0 Le fichier doit être rendu exécutable: &prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.sh Vous devez remplacer utilisateur dans la procédure par un nom d'utilisateur valide sur votre système (et non pas root). Lancez le gestionnaire de licence avec la commande: &prompt.root; /usr/local/etc/rc.d/flexlm.sh start Lier l'environnement d'exécution &java; (“&java; Runtime Environment”) Modifiez le lien vers le “&java; Runtime Environment” (JRE) pour un lien fonctionnant correctement sous &os;: &prompt.root; cd $MATLAB/sys/java/jre/glnx86/ &prompt.root; unlink jre; ln -s ./jre1.1.8 ./jre Création d'une procédure de lancement pour &matlab; Placez la procédure de démarrage suivante dans le répertoire /usr/local/bin/matlab: #!/bin/sh /compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@" Puis tapez la commande chmod +x /usr/local/bin/matlab. En fonction de la version emulators/linux_base utilisée, vous pouvez rencontrer des problèmes lors de l'utilisation de cette procédure. Pour éviter cela, éditez le fichier /compat/linux/usr/local/matlab/bin/matlab, et modifiez la ligne qui dit: if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then (dans la version 13.0.1, c'est la ligne 410) en: if test -L $newbase; then Créer une procédure d'arrêt pour &matlab; Ce qui suit est nécessaire pour corriger le fait que &matlab; ne peut être quitter correctement. Créez un fichier $MATLAB/toolbox/local/finish.m, et y mettre la ligne suivante: ! $MATLAB/bin/finish.sh $MATLAB doit être écrit tel quel. Dans le même répertoire, vous trouverez les fichiers finishsav.m et finishdlg.m, qui vous permettront de sauvegarder l'environnement avant de quitter. Si vous utilisez l'un d'eux, insérez la ligne ci-dessus après la commande save. Créez un fichier $MATLAB/bin/finish.sh, qui contiendra ce qui suit: #!/usr/compat/linux/bin/sh (sleep 5; killall -1 matlab_helper) & exit 0 Rendez le fichier exécutable: &prompt.root; chmod +x $MATLAB/bin/finish.sh Utilisation de &matlab; A ce point, vous êtes prêt à taper la commande matlab et à commencer à l'utiliser. Marcel Moolenaar Contribution de Installer &oracle; applications Oracle Préface Ce document décrit le processus d'installation d'&oracle; 8.0.5 et d'&oracle; 8.0.5.1 Enterprise Edition pour Linux sur une machine &os;. Installer l'environnement Linux Assurez-vous d'avoir installé les deux logiciels emulators/linux_base et devel/linux_devtools du catalogue des logiciels portés. Si vous rencontrez des problèmes avec ces logiciels portés, il se peut que vous ayez à utiliser les versions pré-compilées ou des versions plus anciennes disponibles dans le catalogue des logiciels portés. Si vous désirez installer l'agent intelligent, vous devrez également installer le “package” Red Hat Tcl: tcl-8.0.3-20.i386.rpm. La commande générale pour installer des RPMs avec le logiciel RPM (archivers/rpm) est: &prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package L'installation du package ne devrait pas générer d'erreur. - Créer l'environment &oracle; + Créer l'environnent &oracle; Avant de pouvoir installer &oracle;, vous devez configurer un environnement propre. Ce document ne décrit que ce qu'il y a faire spécifiquement pour utiliser &oracle; pour Linux sous &os;, et non pas ce qui a été décrit dans le guide d'installation d'&oracle;. Optimisation du noyau optimisation du noyau Comme décrit dans le guide d'installation d'&oracle;, vous devez configurer une taille maximale pour la mémoire partagée. Sous &os; n'utilisez pas l'option SHMMAX. SHMMAX est simplement calculée à partir de SHMMAXPGS et PGSIZE. Définissez donc l'option SHMMAXPGS. Toutes les autres options peuvent être configurées comme décrit dans le guide. Par exemple: options SHMMAXPGS=10000 options SHMMNI=100 options SHMSEG=10 options SEMMNS=200 options SEMMNI=70 options SEMMSL=61 Configurez ces options en fonction de l'utilisation prévue d'&oracle;. Assurez-vous également de la présence des options suivantes dans votre fichier de configuration du noyau: options SYSVSHM #SysV shared memory options SYSVSEM #SysV semaphores options SYSVMSG #SysV interprocess communication Compte &oracle; Créez un compte oracle de la même manière que vous créerez un autre compte utilisateur. Le compte oracle n'a de spécial que le fait que vous devez lui donner un interpréteur de commandes Linux. Ajoutez /compat/linux/bin/bash au fichier /etc/shells et fixez l'interpréteur de commande du compte oracle à /compat/linux/bin/bash. Environnement En plus des variables d'environnement normales d'&oracle; comme ORACLE_HOME et ORACLE_SID vous devez fixer les variables d'environnement suivantes: Variable Valeur LD_LIBRARY_PATH $ORACLE_HOME/lib CLASSPATH $ORACLE_HOME/jdbc/lib/classes111.zip PATH /compat/linux/bin /compat/linux/sbin /compat/linux/usr/bin /compat/linux/usr/sbin /bin /sbin /usr/bin /usr/sbin /usr/local/bin $ORACLE_HOME/bin Il est conseillé de définir toutes les variables d'environnement dans le fichier .profile. Un exemple complet est: ORACLE_BASE=/oracle; export ORACLE_BASE ORACLE_HOME=/oracle; export ORACLE_HOME LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH ORACLE_SID=ORCL; export ORACLE_SID ORACLE_TERM=386x; export ORACLE_TERM CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip export CLASSPATH PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin export PATH Installer &oracle; En raison d'une particularité de l'émulateur Linux, vous devez créer un répertoire appelé .oracle dans /var/tmp avant de lancer le programme d'installation. Faites en sorte que l'utilisateur oracle en soit le propriétaire. Vous devriez être en mesure d'installer &oracle; sans problème. Si vous rencontrez cependant des problèmes, contrôlez tout d'abord votre distribution d'&oracle; et/ou configuration! Après avoir installé &oracle;, appliquez les correctifs décrits dans les deux sous-sections suivantes. Un problème fréquent est que l'interface au protocole TCP n'est pas correctement installée. Avec comme conséquence l'impossibilité d'écouter le trafic TCP. Les opérations suivantes aident à résoudre ce problème: &prompt.root; cd $ORACLE_HOME/network/lib &prompt.root; make -f ins_network.mk ntcontab.o &prompt.root; cd $ORACLE_HOME/lib &prompt.root; ar r libnetwork.a ntcontab.o &prompt.root; cd $ORACLE_HOME/network/lib &prompt.root; make -f ins_network.mk install N'oubliez pas de lancer à nouveau root.sh! Appliquer un correctif au fichier root.sh Quand on installe &oracle;, certaines opérations, qui doivent être effectuées en tant que root, sont enregistrées dans une procédure d'interpréteur de commandes appelée root.sh. Cette procédure se trouve dans le répertoire orainst. Appliquez le correctif suivant au fichier root.sh, pour faire en sorte qu'il utilise le chemin correct pour chown, ou exécute une procédure sous un interpréteur de commandes Linux natif. *** orainst/root.sh.orig Tue Oct 6 21:57:33 1998 --- orainst/root.sh Mon Dec 28 15:58:53 1998 *************** *** 31,37 **** # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/bin/chown # # Define variables to be used in this script --- 31,37 ---- # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/usr/sbin/chown # # Define variables to be used in this script Quand vous n'installez pas &oracle; à partir d'un CD, vous pouvez modifier les sources de root.sh. La procédure se nomme rthd.sh et se trouve dans le répertoire orainst dans l'arborescence des sources. Patching genclntsh La procédure genclntsh est utilisée pour créer une simple bibliothèque partagée cliente. Elle est utilisée lors de la construction des démos. Appliquez le correctif suivant pour commenter la définition de la variable d'environnement PATH: *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998 --- bin/genclntsh Tue Dec 22 15:36:49 1998 *************** *** 32,38 **** # # Explicit path to ensure that we're using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst --- 32,38 ---- # # Explicit path to ensure that we're using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst Exécuter &oracle; Après avoir suivi les instructions précédentes, vous devriez être en mesure d'exécuter &oracle; comme si le programme tournait sous Linux. Holger Kipp Contribution de Valentino Vaschetto Conversion en SGML par Installer &sap.r3; applications &sap.r3; Les installations de systèmes &sap; sous &os; ne seront pas supportées par l'équipe de support de SAP — ils n'assurent que le support pour des plateformes ceritifiées. Préface Ce document décrit une façon d'installer un système &sap.r3; avec la base de données &oracle; pour Linux sur une machine &os;, comprenant l'installation de &os; et d'&oracle;. Deux configurations différentes seront décrites: &sap.r3; 4.6B (IDES) avec &oracle; 8.0.5 sous &os; 4.3-STABLE &sap.r3; 4.6C avec &oracle; 8.1.7 sous &os; 4.5-STABLE Même si ce document tente de décrire toutes les étapes importantes de façon détaillée, il n'est pas destiné à remplacer les guides d'installation d'&oracle; et &sap.r3;. Veuillez consulter la documentation fournie avec la version Linux de &sap.r3; et les questions spécifiques à &oracle;, ainsi que les ressources d'&oracle; et de &sap; OSS. Logiciels Les CD-ROMs suivants ont été utilisés pour les installations de &sap;: &sap.r3; 4.6B, &oracle; 8.0.5 Nom Numéro Description KERNEL 51009113 Noyau SAP Oracle / Installation / AIX, Linux, Solaris RDBMS 51007558 Oracle / RDBMS 8.0.5.X / Linux EXPORT1 51010208 IDES / DB-Export / Disque 1 sur 6 EXPORT2 51010209 IDES / DB-Export / Disque 2 sur 6 EXPORT3 51010210 IDES / DB-Export / Disque 3 sur 6 EXPORT4 51010211 IDES / DB-Export / Disque 4 sur 6 EXPORT5 51010212 IDES / DB-Export / Disque 5 sur 6 EXPORT6 51010213 IDES / DB-Export / Disque 6 sur 6 De plus, nous avons utilisé le CD d'&oracle; 8 Serveur (version 8.0.5 de pré-production pour Linux, noyau 2.0.33) qui n'est pas vraiment nécessaire, et &os; 4.3-STABLE (une version plus vieille de quelques jours que la 4.3-RELEASE). &sap.r3; 4.6C SR2, &oracle; 8.1.7 Nom Numéro Description KERNEL 51014004 Noyau SAP Oracle / Noyau SAP Version 4.6D / DEC, Linux RDBMS 51012930 Oracle 8.1.7/ RDBMS / Linux EXPORT1 51013953 Version 4.6C SR2 / Export / Disque 1 sur 4 EXPORT1 51013953 Version 4.6C SR2 / Export / Disque 2 sur 4 EXPORT1 51013953 Version 4.6C SR2 / Export / Disque 3 sur 4 EXPORT1 51013953 Version 4.6C SR2 / Export / Disque 4 sur 4 LANG1 51013954 Version 4.6C SR2 / Langue / DE, EN, FR / Disque 1 sur 3 En fonction des langues que vous désirez installer, des CDs propres à ces langues pourront être nécessaires. Ici nous utilisons juste l'allemand (DE) et l'anglais (EN), donc seul le premier CD propre aux langues sera nécessaire. Notez que le numéro des quatre CDs EXPORT est identique (c'est différent du numérotage des CDs 4.6B IDES). Au moment de l'écriture de ces lignes, cette installation utilise &os; 4.5-STABLE (du 20 mars 2002). Notes concernant &sap; Les notes suivantes devraient être lues avant d'installer &sap.r3; et ont prouvé leur utilité durant l'installation: &sap.r3; 4.6B, &oracle; 8.0.5 Numéro Titre 0171356 SAP sous Linux: Remarques importantes 0201147 INST: 4.6C R/3 Inst. sur UNIX - Oracle 0373203 Mise à jour / Migration Oracle 8.0.5 --> 8.0.6/8.1.6 LINUX 0072984 Digital UNIX 4.0B pour Oracle 0130581 Fin de l'étape DIPGNTAB de R3SETUP 0144978 Votre système n'a pas été installé correctement 0162266 Questions et conseils pour R3SETUP sous Windows NT / W2K &sap.r3; 4.6C, &oracle; 8.1.7 Numéro Titre 0015023 Initialisation de la table TCPDB (RSXP0004) (EBCDIC) 0045619 R/3 avec plusieurs langues ou languages or typefaces 0171356 SAP sous Linux: Remarques importantes 0195603 RedHat 6.1 version entreprise: problèmes connus 0212876 Le nouvel outil d'archivage SAPCAR 0300900 Linux: matériel DELL 0377187 RedHat 6.2: remarques importantes 0387074 INST: R/3 4.6C SR2 Installation sous UNIX 0387077 INST: R/3 4.6C SR2 Inst. sous UNIX - Oracle 0387078 SAP sous UNIX: Dépendances 4.6C SR2 Matériel nécessaire L'équipement suivant est suffisant pour l'installation d'un système &sap.r3;. Bien sûr pour une utilisation en production, un choix plus pointu du matériel est nécessaire: Composant 4.6B 4.6C Processeur 2 x 800MHz &pentium; III 2 x 800MHz &pentium; III Mémoire 1Go ECC 2Go ECC Espace disque 50-60Go (IDES) 50-60Go (IDES) Pour une utilisation en production, des processeurs &xeon; avec un cache important, un accès disque rapide (SCSI, contrôleur RAID matériel) et de la mémoire ECC. L'espace disque nécessaire est important en raison du système IDES pré-configuré, qui créé une base de données de 27 Go durant l'installation. Cet espace est également suffisant pour démarrer des systèmes destinés à la production. &sap.r3; 4.6B, &oracle; 8.0.5 Le matériel suivant fut utilisé: une carte mère bi-processeurs avec 2 processeurs &pentium; III 800 MHz, une carte SCSI &adaptec; 29160 Ultra160 (pour utiliser un lecteur de bande 40/80 Go DLT et un lecteur de CDROM), une carte &mylex; &acceleraid; (2 canaux, firmware 6.00-1-00 avec 32 Mo de RAM). Au contrôleur RAID &mylex; sont reliés deux disques durs de 17 Go (miroirs) et quatre disques de 36 Go (RAID niveau 5). &sap.r3; 4.6C, &oracle; 8.1.7 Pour cette installation un &dell; &poweredge; 2500 a été utilisé: une carte mère bi-processeurs avec deux processeurs &pentium; III 1000 MHz (256 Ko de cache), 2 Go PC133 ECC SDRAM, un contrôleur PERC/3 DC PCI RAID avec 128 Mo, et un lecteur DVD-ROM EIDE. Au contrôleur RAID sont reliés deux disques durs 18 Go (miroirs) et quatre disques de 36 Go (RAID niveau 5). Installation de &os; Tout d'abord vous devez installer &os;. Il existe de nombreuses manière d'installer &os; (&os; 4.3 a été installé via FTP, &os; 4.5 directement à partir d'un CD), pour plus d'informations consultez la . Organisation des disques Pour rester simple, la même organisation des disques a été utilisée pour les installations de &sap.r3; 46B et &sap.r3; 46C SR2. Seuls les noms de périphériques ont changé, comme les installations ont été effectuées sur du matériel différent (/dev/da et /dev/amr respectivement, aussi si l'on utilise un contrôleur AMI MegaRAID, on verra /dev/amr0s1a à la place de /dev/da0s1a): Système de fichiers Taille (blocs de 1k) Taille (Go) Monté sous /dev/da0s1a 1.016.303 1 / /dev/da0s1b 6 swap /dev/da0s1e 2.032.623 2 /var /dev/da0s1f 8.205.339 8 /usr /dev/da1s1e 45.734.361 45 /compat/linux/oracle /dev/da1s1f 2.032.623 2 /compat/linux/sapmnt /dev/da1s1g 2.032.623 2 /compat/linux/usr/sap Configurez et initialisez les deux disques logiques à l'avance avec les logiciels &mylex; ou PERC/3 RAID. Ces logiciels peuvent être lancés lors de la phase de démarrage du BIOS. Notez que l'organisation du disque diffère légèrement des recommandations de SAP, comme SAP suggère de monter séparément les sous-répertoires d'&oracle; (et d'autres) — nous avons décidé de simplement créer de véritables sous-répertoires directement. Utiliser <command>make world</command> et compiler un nouveau noyau Téléchargez les sources -STABLE les plus récentes. Recompilez l'intégralité du système et votre noyau personnalisé après avoir configuré votre fichier de configuration du noyau. Là, vous devriez également ajouter les paramètres du noyau requis par &sap.r3; et &oracle;. Installer l'environnement Linux Installer le système de base Linux Tout d'abord le logiciel porté linux_base doit être installé (en tant que super-utilisateur): &prompt.root; cd /usr/ports/emulators/linux_base &prompt.root; make install distclean Installer l'environnement de développement Linux L'environnement de développement Linux est nécessaire, si vous désirez installer &oracle; sous &os; comme cela est décrit dans la : &prompt.root; cd /usr/ports/devel/linux_devtools &prompt.root; make install distclean L'environnement de développement Linux a été installé en vue de l'installation de &sap.r3; 46B IDES. Ce n'est pas nécessaire si &oracle; DB n'est pas liée sur un système &os;. C'est le cas si vous utilisez l'archive tar &oracle; en provenance d'un système Linux. Installer les RPMs nécessaires RPMs Pour lancer le programme R3SETUP, le support PAM est nécessaire. Lors de la première installation de &sap; sous &os; 4.3-STABLE, nous avons tenté d'installer PAM avec tous les “packages” nécessaires, et nous avons finalement forcé l'installation du “package” PAM, ce qui a fonctionné. Pour &sap.r3; 4.6C SR2, nous avons directement forcé l'installation du RPM PAM, ce qui fonctionne également, il semble donc que les RPMs de dépendance ne sont pas nécessaires: &prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \ pam-0.68-7.i386.rpm Pour utiliser l'agent intelligent d'&oracle; 8.0.5, nous devons également installer la version RedHat de Tcl tcl-8.0.5-30.i386.rpm (sinon l'édition de liens durant l'installation d'&oracle; ne fonctionnera pas). Il existe d'autres problèmes à ce niveau, mais ils concernent directement la version Linux d'&oracle;, et ne sont donc pas spécifiquent à &os;. Quelques conseils supplémentaires Cela peut être une bonne idée d'ajouter linprocfs au fichier /etc/fstab, pour plus d'informations consultez la page de manuel &man.linprocfs.5;. Un autre paramètre à positionner est kern.fallback_elf_brand=3, ce qui doit être fait dans le fichier /etc/sysctl.conf. Créer l'environnement SAP/R3 Créer les systèmes de fichiers et points de montage nécessaires Pour une simple installation, il est suffisant de créer les systèmes de fichiers suivants: point de montage taille en Go /compat/linux/oracle 45 Go /compat/linux/sapmnt 2 Go /compat/linux/usr/sap 2 Go Il est également nécessaire de créer certains liens. Sinon l'intalleur &sap; se plaindra, lors du contrôle des liens créés: &prompt.root; ln -s /compat/linux/oracle /oracle &prompt.root; ln -s /compat/linux/sapmnt /sapmnt &prompt.root; ln -s /compat/linux/usr/sap /usr/sap Un message d'erreur possible durant l'installation (ici avec un système PRD l'installation de &sap.r3; 4.6C SR2): INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200 Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to /sapmnt/PRD/exe. Creating if it does not exist... WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400 Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file /compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The program cannot go on as long as this link exists at this location. Move the link to another location. ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0 can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content '/sapmnt/PRD/exe' Création des utilisateurs et des répertoires &sap.r3; a besoin de deux utilisateurs et de trois groupes. Les noms d'utilisateurs dépendent du système d'ID de &sap; (SID) qui est composé de trois lettres. Certains de ces SIDs sont réservés par &sap; (par exemple SAP et NIX. Pour une liste complète consultez la documentation de &sap;). Pour l'installation IDES, nous avons utilisé IDS, pour l'installation 4.6C SR2 PRD, comme ce système était destiné à la production. Nous avons cependant les groupes suivants (les identifiants de groupe peuvent être différents, ce sont seulement les valeurs que nous avons utilisés dans notre installation): groupe ID nom du groupe description 100 dba Administrateur de la base de données 101 sapsys Système &sap; 102 oper Opérateur de la base de données Pour une installation d'&oracle; par défaut, seul le groupe dba est utilisé. Tout comme le groupe oper, certains utilisent également le groupe dba (Voir les documentations d'&oracle; et de &sap; pour plus d'information). Nous avons également besoin des utilisateurs suivants: ID utilisateur nom d'utilisateur - nom généric + nom générique groupe groupes supplémentaires description 1000 idsadm/prdadm sidadm sapsys oper Administrateur &sap; 1002 oraids/oraprd orasid dba oper Administrateur de la base de données &oracle; L'ajout des utilisateurs avec la commande &man.adduser.8; nécessite les entrées suivantes (notez l'interpréteur de commandes et le répertoire utilisateur) pour l'“Administrateur &sap;”: Name: sidadm Password: ****** Fullname: SAP Administrator SID Uid: 1000 Gid: 101 (sapsys) Class: Groups: sapsys dba HOME: /home/sidadm Shell: bash (/compat/linux/bin/bash) et pour l'“Administrateur de la base de données &oracle;”: Name: orasid Password: ****** Fullname: Oracle Administrator SID Uid: 1002 Gid: 100 (dba) Class: Groups: dba HOME: /oracle/sid Shell: bash (/compat/linux/bin/bash) Ceci devrait également inclure le groupe oper au cas où vous utiliseriez les deux groupes dba et oper. Création des répertoires Ces répertoires sont généralement créés sous forme de systèmes de fichiers séparés. Cela dépend entièrement de vous besoins. Nous avons choisi de créer de simple répertoires, comme ils sont placés sur le même système RAID 5: Nous positionnerons tout d'abord les propriétaires et les droits de certains répertoires (en tant que root): &prompt.root; chmod 775 /oracle &prompt.root; chmod 777 /sapmnt &prompt.root; chown root:dba /oracle &prompt.root; chown sidadm:sapsys /compat/linux/usr/sap &prompt.root; chmod 775 /compat/linux/usr/sap Ensuite nous crérons les répertoires en tant qu'utilisateur orasid. Ce seront tous les répertoires du type /oracle/SID: &prompt.root; su - orasid &prompt.root; cd /oracle/SID &prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB &prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6 &prompt.root; mkdir saparch sapreorg &prompt.root; exit Pour l'installation d'&oracle; 8.1.7 des répertoires supplémentaires sont nécessaires: &prompt.root; su - orasid &prompt.root; cd /oracle &prompt.root; mkdir 805_32 &prompt.root; mkdir client stage &prompt.root; mkdir client/80x_32 &prompt.root; mkdir stage/817_32 &prompt.root; cd /oracle/SID &prompt.root; mkdir 817_32 Le répertoire client/80x_32 est créé tel quel. Ne remplacez pas le x par quelque chose d'autre. La dernière étape consiste à créer les répertoires en tant qu'utilisateur sidadm: &prompt.root; su - sidadm &prompt.root; cd /usr/sap &prompt.root; mkdir SID &prompt.root; mkdir trans &prompt.root; exit Entrées dans <filename>/etc/services</filename> &sap.r3; a besoin de certaines entrées dans le fichier /etc/services, qui ne seront pas créées durant son installation sous &os;. Veuillez ajouter les entrées suivantes (vous avez besoin au moins des entrées correspondant au numéro d'instance — dans notre cas, 00. Cela ne posera pas de problème d'ajouter toutes les entrées de 00 à 99 pour dp, gw, sp et ms). Si vous allez utiliser SAProuter ou vous devez accéder au &sap; OSS, vous avez également besoin de l'entrée 99, comme le port 3299 est généralement utilisé par le processus SAProuter sur le système cible: sapdp00 3200/tcp # SAP Dispatcher. 3200 + Instance-Number sapgw00 3300/tcp # SAP Gateway. 3300 + Instance-Number sapsp00 3400/tcp # 3400 + Instance-Number sapms00 3500/tcp # 3500 + Instance-Number sapmsSID 3600/tcp # SAP Message Server. 3600 + Instance-Number sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-Number “Locales” nécessaires locale &sap; nécessite au moins deux “locales” qui ne font pas partie de l'installation RedHat par défaut. SAP propose les RPMs nécessaires en téléchargement à partir de leur serveur FTP (qui est uniquement accessible si vous êtes un client avec un accès OSS). Consultez la note 0171356 pour la liste des RPMs dont vous avez besoin. Il est également possible de créer just les appropriés (par exemple à partir de de_DE et en_US), mais nous ne recommandons pas cela pour un système destiné à la production (bien que cela a fonctionné sans problème avec le système IDES). Les “locales” suivantes sont nécessaires: de_DE.ISO-8859-1 en_US.ISO-8859-1 Créez les liens comme suit: &prompt.root; cd /compat/linux/usr/share/locale &prompt.root; ln -s de_DE de_DE.ISO-8859-1 &prompt.root; ln -s en_US en_US.ISO-8859-1 S'ils n'existent pas, des problèmes apparaîtrons lors de l'installation. Si ces problèmes sont intentionnellement ignorés (en fixant la valeur de la variable STATUS des étapes pour lesquelles les problèmes sont apparus à la valeur OK dans le fichier CENTRDB.R3S), il sera impossible d'ouvrir une session sur le système &sap; sans effort supplémentaire. Optimisation du noyau optimisation du noyau Les systèmes &sap.r3; demandent beaucoup de ressources. Nous avons donc ajouté les paramètres suivants au fichier de configuration du noyau: # Set these for memory pigs (SAP and Oracle): options MAXDSIZ="(1024*1024*1024)" options DFLDSIZ="(1024*1024*1024)" # System V options needed. options SYSVSHM #SYSV-style shared memory options SHMMAXPGS=262144 #max amount of shared mem. pages #options SHMMAXPGS=393216 #use this for the 46C inst.parameters options SHMMNI=256 #max number of shared memory ident if. options SHMSEG=100 #max shared mem.segs per process options SYSVMSG #SYSV-style message queues options MSGSEG=32767 #max num. of mes.segments in system options MSGSSZ=32 #size of msg-seg. MUST be power of 2 options MSGMNB=65535 #max char. per message queue options MSGTQL=2046 #max amount of msgs in system options SYSVSEM #SYSV-style semaphores options SEMMNU=256 #number of semaphore UNDO structures options SEMMNS=1024 #number of semaphores in system options SEMMNI=520 #number of semaphore identifiers options SEMUME=100 #number of UNDO keys Les valeurs minimales sont précisées dans la documentation en provenance de SAP. Comme il n'y a pas d'éléments concernant Linux, consultez la section sur HP-UX (32bits) pour plus d'information. Comme le système utilisé pour l'installation de la version 4.6C SR2 dispose de plus de mémoire principale, les segments de mémoire partagée (“shared segments”) peuvent être plus larges pour &sap; et &oracle;, cependant choisissez un nombre plus important de page de mémoire partagée. Avec l'installation par défaut de &os; 4.5 sur architecture &i386;, laissez MAXDSIZ et DFLDSIZ à une valeur de 1 Go maximum. Sinon, des erreurs étranges comme ORA-27102: out of memory et Linux Error: 12: Cannot allocate memory risquent d'apparaître. Installer &sap.r3; Préparer les CDROMs &sap; Il y a de nombreux CDROMs à monter et démonter lors de l'installation. Si vous disposez de - suffisament de lecteurs de CDROMs, vous pouvez tout + suffisamment de lecteurs de CDROMs, vous pouvez tout simplement les monter tous. Nous avons décidé de copier le contenu des CDROMs dans les répertoires correspondant: /oracle/SID/sapreorg/nom-du-cd nom-du-cd est un nom parmi KERNEL, RDBMS, EXPORT1, EXPORT2, EXPORT3, EXPORT4, EXPORT5 et EXPORT6 pour l'installation de la version 4.6B/IDES, et KERNEL, RDBMS, DISK1, DISK2, DISK3, DISK4 et LANG pour l'installation de la version 4.6C SR2. Tous les noms de fichiers sur les CDs montés devraient être en majuscules, sinon utilisez l'option pour le montage. Utilisez donc les commandes suivantes: &prompt.root; mount_cd9660 -g /dev/cd0a /mnt &prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/nom-du-cd &prompt.root; umount /mnt Exécuter la procédure d'installation Tout d'abord, vous devez préparer un répertoire install: &prompt.root; cd /oracle/SID/sapreorg &prompt.root; mkdir install &prompt.root; cd install Ensuite la procédure d'installation est lancée, qui copiera tous fichiers correspondant dans le répertoire install: &prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SH L'installation IDES (4.6B) est fournie avec un système &sap.r3; de démonstration complètement configuré, il y a donc six CDs EXPORT au lieu de juste trois CDs EXPORT. A ce point la configuration par défaut d'installation CENTRDB.R3S est destiné à l'installation d'une instance centrale standard (&r3; et base de données), et non pas l'instance centrale standard IDES, on doit donc copier le fichier CENTRDB.R3S correspondant du répertoire EXPORT1, sinon R3SETUP ne demandera que trois CDs EXPORT. La nouvelle version &sap; 4.6C SR2 est fournie avec quatre CDs EXPORT. Le fichier de paramètres qui contrôle les étapes de l'installation est le fichier CENTRAL.R3S. Contrairement aux versions précédentes, il n'y a pas de modèle de configuration d'installation séparé pour une instance centrale avec ou sans base de données. &sap; utilise un modèle de configuration séparé pour l'installation de base de données. Pour relancer l'installation postérieurement, il suffit de la relancer avec le fichier d'origine. Pendant et après l'installation, &sap; a besoin que la commande hostname renvoie uniquement le nom de la machine et non pas le nom complet de la machine. Fixez donc le nom de la machine en fonction, ou créez un alias avec alias hostname='hostname -s' pour les utilisateurs orasid et sidadm (et pour le super-utilisateur root au moins durant les étapes de l'installation effectuées en tant que root). Il est également possible d'ajuster les fichiers .profile et .login des deux utilisateurs qui sont installés lors de l'installation de &sap;. Exécuter <command>R3SETUP</command> 4.6B Assurez-vous que la variable LD_LIBRARY_PATH est correctement positionnée: &prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib Lancez R3SETUP en tant que root à partir du répertoire d'installation: &prompt.root; cd /oracle/IDS/sapreorg/install &prompt.root; ./R3SETUP -f CENTRDB.R3S La procédure pose ensuite un certain nombre de questions (les valeurs par défaut sont entre crochets, suivies par les entrées clavier): Question Défaut Entrée(s) clavier Enter SAP System ID [C11] IDSEntrée Enter SAP Instance Number [00] Entrée Enter SAPMOUNT Directory [/sapmnt] Entrée Enter name of SAP central host [troubadix.domain.de] Entrée Enter name of SAP db host [troubadix] Entrée Select character set [1] (WE8DEC) Entrée Enter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.6 1Entrée Extract Oracle Client archive [1] (Yes, extract) Entrée Enter path to KERNEL CD [/sapcd] /oracle/IDS/sapreorg/KERNEL Enter path to RDBMS CD [/sapcd] /oracle/IDS/sapreorg/RDBMS Enter path to EXPORT1 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT1 Directory to copy EXPORT1 CD [/oracle/IDS/sapreorg/CD4_DIR] Entrée Enter path to EXPORT2 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT2 Directory to copy EXPORT2 CD [/oracle/IDS/sapreorg/CD5_DIR] Entrée Enter path to EXPORT3 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT3 Directory to copy EXPORT3 CD [/oracle/IDS/sapreorg/CD6_DIR] Entrée Enter path to EXPORT4 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT4 Directory to copy EXPORT4 CD [/oracle/IDS/sapreorg/CD7_DIR] Entrée Enter path to EXPORT5 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT5 Directory to copy EXPORT5 CD [/oracle/IDS/sapreorg/CD8_DIR] Entrée Enter path to EXPORT6 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT6 Directory to copy EXPORT6 CD [/oracle/IDS/sapreorg/CD9_DIR] Entrée Enter amount of RAM for SAP + DB 850Entrée (en mégaoctets) Service Entry Message Server [3600] Entrée Enter Group-ID of sapsys [101] Entrée Enter Group-ID of oper [102] Entrée Enter Group-ID of dba [100] Entrée Enter User-ID of sidadm [1000] Entrée Enter User-ID of orasid [1002] Entrée Number of parallel procs [2] Entrée Si vous n'avez pas copié les CDs en différent endroits, alors l'installeur &sap; ne peut trouver le CD nécessaire (identifié par le fichier LABEL.ASC sur le CD) et vous demandera alors d'insérer, de monter le CD et de confirmer ou d'entrer le chemin du point de montage. Le fichier CENTRDB.R3S peut ne pas être exempt de problème. Dans notre cas, il demanda à nouveau le CD EXPORT4 mais indiqua la clé correcte (6_LOCATION, puis 7_LOCATION, etc.), on peut donc juste continuer à saisir les bonnes valeurs. En dehors des problèmes mentionnés plus bas, tout devrait être assez direct jusqu'au moment où la base de données &oracle; doit être installée. Exécuter <command>R3SETUP</command> 4.6C SR2 Assurez-vous que la variable LD_LIBRARY_PATH est correctement positionnée. La valeur est différente de l'installation 4.6B avec &oracle; 8.0.5: &prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/lib Lancez R3SETUP en tant que root à partir du répertoire d'installation: &prompt.root; cd /oracle/PRD/sapreorg/install &prompt.root; ./R3SETUP -f CENTRAL.R3S La procédure pose ensuite un certain nombre de questions (les valeurs par défaut sont entre crochets, suivies par les entrées clavier): Question Défaut Entrée(s) clavier Enter SAP System ID [C11] PRDEntrée Enter SAP Instance Number [00] Entrée Enter SAPMOUNT Directory [/sapmnt] Entrée Enter name of SAP central host [majestix] Entrée Enter Database System ID [PRD] PRDEntrée Enter name of SAP db host [majestix] Entrée Select character set [1] (WE8DEC) Entrée Enter Oracle server version (2) Oracle 8.1.7 2Entrée Extract Oracle Client archive [1] (Yes, extract) Entrée Enter path to KERNEL CD [/sapcd] /oracle/PRD/sapreorg/KERNEL Enter amount of RAM for SAP + DB 2044 1800Entrée (en mégaoctets) Service Entry Message Server [3600] Entrée Enter Group-ID of sapsys [100] Entrée Enter Group-ID of oper [101] Entrée Enter Group-ID of dba [102] Entrée Enter User-ID of oraprd [1002] Entrée Enter User-ID of prdadm [1000] Entrée LDAP support 3Entrée (pas de support) Installation step completed [1] (continue) Entrée Choose installation service [1] (DB inst,file) Entrée Jusqu'ici, la création d'utilisateurs donne une erreur durant l'installation lors des phases OSUSERDBSID_IND_ORA (pour la création de l'utilisateur orasid) et OSUSERSIDADM_IND_ORA (création de l'utilisateur sidadm). En dehors des problèmes mentionnés plus bas, tout devrait être assez direct jusqu'au moment où la base de données &oracle; doit être installée. Installer &oracle; 8.0.5 Consultez les notes &sap; et les Readmes d'&oracle; concernant Linux et la base de données &oracle; pour de possibles problèmes. La plupart, si ce n'est pas tous, de ces problèmes proviennent de bibliothèques incompatibles. Pour plus d'informations au sujet de l'installation d'&oracle;, référez-vous au chapitre sur l'installation d'&oracle;. Installer &oracle; 8.0.5 avec <command>orainst</command> Si &oracle; 8.0.5 doit être utilisée, des bibliothèques supplémentaires sont nécessaires pour une édition de liens couronnée de succès, comme &oracle; 8.0.5 est liée avec une ancienne bibliothèque glibc (RedHat 6.0), cependant RedHat 6.1 utilise déjà une nouvelle version de la bibliothèque glibc. Vous devez donc installer les “packages” suivants pour s'assurer que l'édition de liens fonctionnera: compat-libs-5.2-2.i386.rpm compat-glibc-5.2-2.0.7.2.i386.rpm compat-egcs-5.2-1.0.3a.1.i386.rpm compat-egcs-c++-5.2-1.0.3a.1.i386.rpm compat-binutils-5.2-2.9.1.0.23.1.i386.rpm Consultez les notes &sap; et les Readmes d'&oracle; pour plus d'informations. On pourra utiliser les binaires d'origine (au moment de l'installation, nous n'avons pas eu le temps de contrôler cela), ou utiliser directement les binaires fraichement liés d'un système RedHat. Pour la compilation de l'agent intelligent, la version RedHat de Tcl doit être installée. Si vous ne pouvez vous procurer tcl-8.0.3-20.i386.rpm, un fichier plus récent comme tcl-8.0.5-30.i386.rpm pour RedHat 6.1 fera l'affaire. En dehors de ce problème de liens, l'installation est relativement directe: &prompt.root; su - oraids &prompt.root; export TERM=xterm &prompt.root; export ORACLE_TERM=xterm &prompt.root; export ORACLE_HOME=/oracle/IDS &prompt.root; cd $ORACLE_HOME/orainst_sap &prompt.root; ./orainst Confirmez tous les écrans en appuyant sur Entrée jusqu'à l'installation complète du logiciel, à l'exception de celui qui permet de déselectionner la “visionneuse de texte &oracle;” (&oracle; On-Line Text Viewer), comme cette dernière n'est pas disponible pour Linux. Ensuite &oracle; veut faire l'édition de liens avec i386-glibc20-linux-gcc à la place des gcc, egcs ou i386-redhat-linux-gcc disponibles. En raison d'un manque de temps, nous avons décidé d'utiliser les binaires d'une version &oracle; 8.0.5 PreProduction, après que la première tentative d'obtenir à partir du CD RDBMS une version fonctionnant eut échoué, et que nous avons trouvé qu'accéder aux bons RPMs était alors un véritable cauchemar. Installer la version &oracle; 8.0.5 Pre-production pour Linux (noyau 2.0.33) Cette installation est simple. Montez le CD, lancez l'installeur. Il vous demandera l'emplacement du répertoire utilisateur &oracle;, et y copiera tous les binaires. Nous n'avions, cependant, pas effacé les restes de nos précédentes tentatives d'installation RDBMS. Après cela, la base de données &oracle; put être installée sans encombres. Installer l'archive tar d'&oracle; 8.1.7 pour Linux Prennez l'archive tar que vous avez produite à partir du répertoire d'installation sur un système Linux, et désarchivez-la dans le répertoire /oracle/SID/817_32/. Poursuivre l'installation de &sap.r3; Tout d'abord vérifiez le paramétrage des - environements des utilisateurs idsamd + environnements des utilisateurs idsamd (sidadm) et oraids (orasid). Ils devraient avoir, tous les deux, des fichiers .profile, .login et .cshrc qui utilisent la directement la commande hostname. Si le nom de machine du système est un nom complet d'hôte, vous devez modifier hostname pour hostname -s dans ces trois fichiers. Chargement de la base de données Ensuite, R3SETUP peut être soit relancé ou poursuivi (tout dépend si le programme a été quitté ou non). R3SETUP créé ensuite les tables pour les données et charge ces données (pour 46B IDES, à partir des disques EXPORT1 à EXPORT6, pour 46C à partir des disques DISK1 à DISK4) avec R3load dans la base de données. Quand le chargement de la base de données est achevé (cela peut prendre plusieurs heures), des mots de passe sont demandés. Pour les installations de tests, on peut utiliser les mots de passe par défauts connus (utilisez-en des différents si la sécurité est importante): Question Entrée(s) clavier Enter Password for sapr3 sapEntrée Confirum Password for sapr3 sapEntrée Enter Password for sys change_on_installEntrée Confirm Password for sys change_on_installEntrée Enter Password for system managerEntrée Confirm Password for system managerEntrée A ce point, nous avons eut quelques problèmes avec dipgntab durant l'installation de la version 4.6B. Programme d'écoute Démarrer le programme d'écoute (“listener”) d'&oracle; sous l'utilisateur orasid comme suit: &prompt.user; umask 0; lsnrctl start Sinon vous risquez d'obtenir l'erreur ORA-12546 comme les “sockets” n'auront pas les bonnes permissions. Consultez la note &sap; 072984. Mettre à jour les tables MNLS Si vous projetez d'importer des données utilisant des langues non latin-1 dans le système &sap;, vous devez mettre à jour les tables de support des langues internationales (“Multi National Language Support” — MNLS). Ceci est décrit dans les notes &sap; OSS 15023 et 45619. Sinon, vous pouvez ignorer cette question lors de l'installation de &sap;. Si vous n'avez pas besoin des tables MNLS, il est toujours nécessaire de contrôler la table TCPDB et l'initialiser si cela n'a pas déjà été fait. Consultez les notes 0015023 et 0045619 pour plus d'information. Etapes de post-installation Demander une clé licence pour &sap.r3; Vous devez demander votre clé &sap.r3;. Cette clé est indispensable étant donné que la licence temporaire qui a été installée lors de l'installation n'est valide que pendant quatre semaines. Tout d'abord récupérez la clé matérielle. Ouvrez une session sous l'utilisateur idsadm et lancez la commande saplicense: &prompt.root; /sapmnt/IDS/exe/saplicense -get Appeler saplicense sans paramètres affiche la liste des options disponibles. Après la réception de la clé, elle peut être installée en utilisant: &prompt.root; /sapmnt/IDS/exe/saplicense -install Vous devez ensuite entrer les valeurs suivantes: SAP SYSTEM ID = SID, 3 chars CUSTOMER KEY = hardware key, 11 chars INSTALLATION NO = installation, 10 digits EXPIRATION DATE = yyyymmdd, usually "99991231" LICENSE KEY = license key, 24 chars Créer les utilisateurs Créez un utilisateur sous le client 000 (certaines tâches doivent être effectuées sous le client 000, mais avec un utilisateur différent de sap* et ddic). Comme nom d'utilisateur, nous choisissons généralement wartung (ou service en français). Les profiles nécessaires sont sap_new et sap_all. Pour plus de sécurité les mots de passe des utilisateurs par défaut à l'intérieur de tous les clients devraient être modifiés (cela inclut les utilisateurs sap* et ddic). Configurer le système de transport, les profils, les modes d'opération, etc. Dans le client 000, avec un utilisateur autre que ddic et sap*, faire, au moins, ce qui suit: Tâche Transaction Configurez le système de transport, par exemple entité autonome de domaine de transport (Stand-Alone Transport Domain Entity) STMS Créez / Editez le profil système RZ10 Maintenez les modes d'opération et les instances RZ04 Cela et toutes les autres étapes de post-installation sont intégralement décrites dans les guides d'installation &sap;. Editer <filename>init<replaceable>sid</replaceable>.sap</filename> (<filename>initIDS.sap</filename>) Le fichier /oracle/IDS/dbs/initIDS.sap contient le profil de sauvegarde &sap;. Ici la taille de la bande à utiliser, le type de compression et ainsi de suite doivent être définis. Pour garantir un fonctionnement avec les commandes sapdba/brbackup, nous avons modifié les valeurs suivantes: compress = hardware archive_function = copy_delete_save cpio_flags = "-ov --format=newc --block-size=128 --quiet" cpio_in_flags = "-iuv --block-size=128 --quiet" tape_size = 38000M tape_address = /dev/nsa0 tape_address_rew = /dev/sa0 Explications: compress: la bande que nous utilisons est une HP DLT1 qui fournie une compression matérielle. archive_function: définie le comportement par défaut en ce qui concerne l'archivage des fichiers journaux d'&oracle;: les nouveaux journaux sont sauvegardés sur la bande, ceux déjà sauvegardés le sont à nouveau et sont ensuite effacés. Cela évite de nombreux problèmes si vous devez rétablir la base de données, et qu'une des bandes de sauvegarde est endommagée. cpio_flags: l'indicateur par défaut est qui fixe la taille d'un bloc à 5120 octets. Pour les bande DLT, HP recommande une taille de bloc d'au moins 32Ko, aussi nous avons utilisé pour 64Ko. L'option est nécessaire car nous avons un nombre d'inodes supérieur à 65535. La dernière option, , est nécessaire sinon brbackup se plaint dès que cpio donne le nombre de blocs sauvés. cpio_in_flags: indicateurs nécessaires pour charger les données à partir de bandes. Le format est reconnu automatiquement. tape_size: cette variable donne la capacité brute de la bande. Pour des raisons de sécurité (nous utilisons une compression matérielle), la valeur est légèrement inférieure à la valeur réelle. tape_address: le périphérique non rembobinable devant être utilisé avec cpio. tape_address_rew: le périphérique rembobinable à utiliser avec cpio. Problèmes de configuration après l'installation Les paramètres &sap; suivants devraient être optimisés après l'installation (exemples pour IDES 46B, 1 Go de mémoire): Nom Valeur ztta/roll_extension 250000000 abap/heap_area_dia 300000000 abap/heap_area_nondia 400000000 em/initial_size_MB 256 em/blocksize_kB 1024 ipc/shm_psize_40 70000000 Note &sap; 0013026: Nom Valeur ztta/dynpro_area 2500000 Note &sap; 0157246: Nom Valeur rdisp/ROLL_MAXFS 16000 rdisp/PG_MAXFS 30000 Avec les paramètres donnés ci-dessus, sur un système avec 1Go de mémoire, on pourra avoir une utilisation de la mémoire similaire à: Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K Free Problèmes lors de l'installation Relancer <command>R3SETUP</command> après la correction d'un problème R3SETUP s'arrête s'il rencontre une erreur. Si vous avez examiné les fichiers journaux correspondants et corrigé l'erreur, vous devez relancer R3SETUP à nouveau, habituellement en sélectionnant comme option de la dernière étape pour laquelle R3SETUP avait rencontré un problème. Pour relancer R3SETUP, exécutez-le avec le fichier R3S correspondant: &prompt.root; ./R3SETUP -f CENTRDB.R3S pour la version 4.6B, ou avec &prompt.root; ./R3SETUP -f CENTRAL.R3S pour la version 4.6C, peu importe si l'erreur est apparue avec CENTRAL.R3S ou DATABASE.R3S. A certains points, R3SETUP suppose que la base de données et le processus &sap; sont en fonctionnement (comme s'il avait déjà complété ces étapes). Au cas où les erreurs se produiraient et que par exemple la base de données ne peut être lancée, vous devez lancer la base de données et &sap; à la main après avoir corrigé les erreurs et avant d'exécuter à nouveau R3SETUP. N'oubliez pas également de démarrer le programme d'écoute d'&oracle; à nouveau (en tant que orasid avec umask 0; lsnrctl start) s'il a également été stoppé (par exemple en raison d'un redémarrage du système). Etape OSUSERSIDADM_IND_ORA lors de l'utilisation de <command>R3SETUP</command> Si R3SETUP se plaint à ce stade, éditez le fichier modèle utilisé par R3SETUP à ce moment (CENTRDB.R3S (4.6B) ou CENTRAL.R3S ou DATABASE.R3S (4.6C)). Localisez la ligne [OSUSERSIDADM_IND_ORA] ou cherchez l'unique entrée STATUS=ERROR et éditez les valeurs suivantes: HOME=/home/sidadm (was empty) STATUS=OK (had status ERROR) Vous pouvez ensuite relancer R3SETUP. Etape OSUSERDBSID_IND_ORA lors de l'utilisation de <command>R3SETUP</command> Il est possible que R3SETUP se plaigne également à ce stade. L'erreur ici est similaire à celle durant la phase OSUSERSIDADM_IND_ORA. Editez juste le fichier modèle utilisé par R3SETUP à ce moment (CENTRDB.R3S (4.6B) ou CENTRAL.R3S ou DATABASE.R3S (4.6C)). Localisez la ligne [OSUSERDBSID_IND_ORA] ou cherchez l'unique entrée STATUS=ERROR et éditez la valeur suivante dans la section: STATUS=OK Puis relancez R3SETUP. Erreur <errorname>oraview.vrf FILE NOT FOUND</errorname> lors de l'installation d'&oracle; Vous n'avez pas désélectionné la visionneuse de texte en ligne d'&oracle; - avant de débutter l'installation. Elle est + avant de débuter l'installation. Elle est sélectionnée par défaut même si cette option n'est actuellement pas disponible pour Linux. Désélectionnez cet élément dans le menu d'installation d'&oracle; et relancez l'installation. Erreur <errorname>TEXTENV_INVALID</errorname> lors du lancement de <command>R3SETUP</command>, RFC ou SAPgui Si cette erreur apparaît, la “locale” correcte n'est pas présente. La note &sap; 0171356 liste les RPMs nécessaires (e.g. saplocales-1.0-3, saposcheck-1.0-1 pour RedHat 6.1). Dans le cas où vous avez ignoré toutes les erreurs en rapport et modifié la valeur du STATUS correspondant de la valeur ERROR vers la valeur OK (dans CENTRDB.R3S) à chaque fois que R3SETUP s'est plaint et que vous avez relancé R3SETUP, le système &sap; ne sera pas correctement configuré et vous ne serez pas en mesure de vous connecter au système avec SAPgui, même si le système peut être lancé. Tenter de se connecter avec l'ancien SAPgui Linux donna les messages suivants: Sat May 5 14:23:14 2001 *** ERROR => no valid userarea given [trgmsgo. 0401] Sat May 5 14:23:22 2001 *** ERROR => ERROR NR 24 occured [trgmsgi. 0410] *** ERROR => Error when generating text environment. [trgmsgi. 0435] *** ERROR => function failed [trgmsgi. 0447] *** ERROR => no socket operation allowed [trxio.c 3363] Speicherzugriffsfehler Ce comportement est dû au fait que &sap.r3; est incapable d'assigner correctement une “locale” et n'est lui-même pas correctement configuré (entrées manquantes dans certaines tables de la base de données). Pour être en mesure de se connecter à &sap;, ajoutez les entrées suivantes au fichier DEFAULT.PFL (voir la note 0043288): abap/set_etct_env_at_new_mode = 0 install/collate/active = 0 rscp/TCP0B = TCP0B Redémarrer le système &sap;. Vous pouvez maintenant vous connecter au système, même si les - paramètrages spécifiques à certaines + paramétrages spécifiques à certaines langues peuvent ne pas fonctionner comme attendu. Après la correction des paramétrages de langue (et après avoir fourni les “locales” correctes), ces entrées peuvent être supprimées du fichier DEFAULT.PFL et le système &sap; peut être relancé. Erreur <errorcode>ORA-00001</errorcode> Cette erreur s'est produite uniquement avec &oracle; 8.1.7 sous &os; 4.5. La raison était que la base de données &oracle; ne pouvait pas s'initialiser correctement et plantait, laissant des sémaphores et de la mémoire partagée sur le système. La tentative suivante de démarrer la base de données retourna alors l'erreur ORA-00001. Retrouvez-les avec la commande ipcs -a et détruisez-les avec ipcrm. Erreur <errorcode>ORA-00445</errorcode> (le processus en tâche de fond PMON n'a pas démarré — “Background Process PMON Did Not Start”) Cette erreur s'est produite avec &oracle; 8.1.7. Cette erreur est rapportée si la base de données est démarrée avec la procédure startsap habituelle (par exemple startsap_majestix_00) en tant qu'utilisateur prdadm. Une solution possible est de démarrer la base de données sous l'utilisateur oraprd avec la commande svrmgrl: &prompt.user; svrmgrl SVRMGR> connect internal; SVRMGR> startup; SVRMGR> exit Erreur <errorcode>ORA-12546</errorcode> (Lancez le programme d'écoute avec les droits corrects — “Start Listener with Correct Permissions”) Démarrez le programme d'écoute (“listener”) d'&oracle; sous l'utilisateur oraids avec les commandes suivantes: &prompt.root; umask 0; lsnrctl start Sinon vous pourrez obtenir l'erreur ORA-12546 étant donné que les “sockets” n'auront pas les bonnes permissions. Consultez la note &sap; 0072984. Erreur <errorcode>ORA-27102</errorcode> (Mémoire épuisée — “Out of Memory”) Cette erreur s'est produite quand nous avons essayé des valeurs pour MAXDSIZ et DFLDSIZ supérieures à 1 Go (1024x1024x1024). De plus, nous avons eu l'erreur Linux Error 12: Cannot allocate memory. Erreur [DIPGNTAB_IND_IND] lors de l'utilisation de <command>R3SETUP</command> En général, vous devez consulter la note &sap; 0130581 (“R3SETUP step DIPGNTAB terminates”). Lors de l'installation d'IDES, pour certaines raisons le processus d'installation n'a pas utilisé le nom correct pour le système &sap; “IDS”, - mais la chaîne de caratère "" + mais la chaîne de caractère "" à la place. Cela conduit à des problèmes mineurs d'accès aux répertoires, comme les chemins sont générés dynamiquement en utilisant l'identifiant système SID (dans ce cas IDS). Aussi au lieu d'accéder par: /usr/sap/IDS/SYS/... /usr/sap/IDS/DVMGS00 les chemins suivants ont été utilisé: /usr/sap//SYS/... /usr/sap/D00 Afin de poursuivre l'installation, nous avons créé un lien et un répertoire supplémentaire: &prompt.root; pwd /compat/linux/usr/sap &prompt.root; ls -l total 4 drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00 drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 trans Nous avons également trouvé des notes &sap; (0029227 et 0008401) décrivant ce comportement. Nous n'avons pas rencontré un seul de ces problèmes lors de l'installation de SAP 4.6C. Erreur [RFCRSWBOINI_IND_IND] lors de l'utilisation de <command>R3SETUP</command> Lors de l'installation de SAP 4.6C, cette erreur est juste une conséquence d'une autre erreur survenant plus tôt dans l'installation. Dans ce cas, vous devez consulter les fichiers journaux correspondant et corriger le véritable problème. Si après avoir cherché dans les fichiers journaux cette erreur est confirmée (consultez les notes &sap;), vous pouvez modifier la valeur du STATUS de l'étape posant problème de la valeur ERROR à la valeur OK. Après l'installation, vous devez exécuter le report RSWBOINS à partir de la transaction SE38. Lire la note &sap; 0162266 pour des informations supplémentaires au sujet des phases RFCRSWBOINI et RFCRADDBDIF. Erreur [RFCRADDBDIF_IND_IND] lors de l'utilisation de <command>R3SETUP</command> Ici les même restrictions s'appliquent: assurez-vous en consultant les fichiers journaux, que cette erreur n'est pas causée par d'autres problèmes apparus précédemment. Si vous avez confirmation que la note &sap; 0162266 s'applique, modifiez juste la valeur du STATUS de l'étape posant problème de la valeur ERROR à la valeur OK (fichier CENTRDB.R3S) et relancez R3SETUP. Après l'installation, vous devez exécuter le report RADDBDIF à partir de la transaction SE38. Erreur <errorcode>sigaction sig31: File size limit exceeded</errorcode> Cette erreur s'est produite lors du lancement des processus &sap; disp+work. Si &sap; est démarré avec la procédure startsap, les sous-processus sont alors lancés, et lancent les autres processus &sap;. Cela a pour résultat le fait que la procédure ne remarquera pas si quelque chose se passe mal. Pour contrôler si les processus &sap; ont démarré correctement, consultez l'état des processus avec la commande ps ax | grep SID, qui vous donnera une liste de tous les processus &oracle; et &sap;. S'il semble que certains processus sont manquant ou que vous ne pouvez pas vous connecter au système &sap;, consultez les fichiers journaux correspondants qui peuvent être trouvés dans le répertoire /usr/sap/SID/DVEBMGSnr/work/. Les fichiers à consulter sont dev_ms et dev_disp. Le signal 31 se produit ici si la quantité de mémoire partagée utilisée par &oracle; et &sap; dépasse celle définie dans le fichier de configuration du noyau et ce problème peut être résolu en utilisant une valeur plus grande: # larger value for 46C production systems: options SHMMAXPGS=393216 # smaller value sufficient for 46B: #options SHMMAXPGS=262144 Le lancement de <command>saposcol</command> échoue Il y a quelques problèmes avec le programme saposcol (version 4.6D). Le système &sap; utilise saposcol pour collecter les données concernant les performances du système. Ce programme n'est pas nécessaire pour utiliser le système &sap;, aussi ce problème peut être considéré comme mineur. Les anciennes versions (4.6B) fonctionnent, mais ne récupèrent pas toutes les données (nombreux sont les appels qui retournent juste 0, par exemple pour l'utilisation du CPU). Sujets avancés Si vous êtes curieux de savoir comment la compatibilité binaire avec Linux fonctionne, cette section est faite pour vous. La plupart de ce qui suit est principalement basé sur un courrier électronique de Terry Lambert tlambert@primenet.com envoyé à la &a.chat; (Message ID: <199906020108.SAA07001@usr09.primenet.com>). Comme ça marche? chargeur de classe d'exécution &os; possède une abstraction appelée “chargeur de classe d'exécution”. C'est une portion de l'appel système &man.execve.2;. Ce qui se passe est que &os; dispose d'une liste de chargeurs, à la place d'un simple chargeur avec retour (“fallback”) vers le chargeur #! pour exécuter n'importe quel interpréteur de commandes ou procédure. Historiquement, l'unique chargeur sur les plate-formes &unix; examinait le nombre magique (généralement les 4 ou 8 premiers octets du fichier) pour voir si c'était un binaire connu par le système, et si c'était le cas, invoquait le chargeur binaire. Si ce n'était pas le type de binaire du système, l'appel &man.execve.2; retournait un échec, et l'interpréteur de commandes tentait de l'exécuter comme une commande d'interpréteur. Cette hypothèse est celle par défaut quelque soit l'interpréteur de commandes actuel. Plus tard, une modification a été faite sur &man.sh.1; pour examiner les deux premiers caractères, et s'ils étaient :\n, alors elle invoquait l'interpréteur de commandes &man.csh.1; à la place (nous pensons que l'entreprise SCO fut la première à faire cette modification). Ce que fait maintenant &os; est de parcourir une liste de chargeurs, avec un chargeur #! - générique qui reconnait les noms des + générique qui reconnaît les noms des interpréteurs qui se trouvent après le caractère espace suivant, puis avec un retour possible vers /bin/sh. ELF Pour le support de l'ABI Linux, &os; voit le nombre magique comme un binaire ELF (il ne fait pas la différence à ce niveau entre &os;, &solaris;, Linux, ou tout autre système d'exploitation qui dispose d'un type d'image ELF). Solaris Le chargeur ELF recherche une marque spécifique, qui se trouve dans une section de commentaire dans l'image ELF, et qui n'est pas présente dans les binaires SVR4/&solaris; ELF. Pour que les binaires Linux puissent fonctionner, ils doivent être marqués sous le type Linux avec &man.brandelf.1;: &prompt.root; brandelf -t Linux file Quand cela est fait, le chargeur ELF verra le marquage Linux sur le fichier. ELF marquage Lorsque le chargeur ELF voit le marquage Linux, le chargeur remplace un pointeur dans la structure proc. Tous les appels système sont indéxés par l'intermédiaire de ce pointeur (dans un système &unix; traditionnel, cela serait la structure sysent[], contenant les appels système). De plus, le processus est marqué pour une gestion spéciale du vecteur d'interruption (“trap”) pour le signal de code “trampoline”, et plusieurs autres corrections (mineures) qui sont gérées par le noyau Linux. Le vecteur d'appel système Linux contient, entre autres, une liste des entrées sysent[] dont les adresses résident dans le noyau. Quand un appel système est effectué par le binaire Linux, le code “trap” déréférence de la structure proc le pointeur de la fonction de l'appel système, et utilise les points d'entrée Linux, et non pas &os;, de d'appel système. De plus, le mode Linux redéfinit dynamiquement l'origine des requêtes; c'est, en effet, ce qu'effectue l'option (pas le type de système de fichiers unionfs!) de montage des systèmes de fichiers. Tout d'abord, une tentative est faite pour rechercher le fichier dans le répertoire /compat/linux/chemin-origine, puis uniquement si cela échoue, la recherche est effectuée dans le répertoire /chemin-origine. Cela permet de s'assurer que les binaires nécessitant d'autres binaires puissent s'exécuter (par exemple, l'ensemble des outils Linux peuvent tourner sous l'ABI Linux). Cela signifie également que les binaires Linux peuvent charger et exécuter les binaires &os;, s'il n'y a pas de binaires Linux correspondant présents, et vous pourriez placer une commande &man.uname.1; dans l'arborescence /compat/linux pour vous assurer que les binaires Linux ne puissent pas dire qu'ils ne tournent pas sous Linux. En effet, il y a un noyau Linux dans le noyau &os;; les diverses fonctions sous-jacentes qui implémentent tous les services fournis par le noyau sont identiques entre les deux tables d'entrées des appels systèmes &os; et Linux: les opérations sur les systèmes de fichiers, les opérations sur la mémoire virtuelle, la gestion des signaux, l'IPC System V, etc. La seule différence est que les binaires &os; utilisent les fonctions glue de &os;, et les binaires Linux celles de Linux (les plus anciens systèmes d'exploitation avaient uniquement leurs propres fonctions de glue: les adresses des fonctions dans une structure sysent[] statique globale, au lieu des adresses des fonctions déréférencées d'un pointeur initialisé dynamiquement pointant vers la structure proc du processus faisant l'appel). Laquelle est l'ABI native &os;? Cela n'a pas d'importance. Basiquement, la seule différence est que (actuellement, cela pourrait facilement changer dans les versions futures, et probablement après cela) les fonctions glue de &os; sont liées en statique dans le noyau, les fonctions glue Linux peuvent être liées statiquement, ou l'on peut y accéder via un module du noyau. Oui, mais est-ce vraiment de l'émulation? Non. C'est l'implémentation d'une interface binaire pour les applications (ABI). Il n'y a pas d'émulateur (ou de simulateur, pour couper court aux prochaines questions) impliqué. Mais pourquoi appelle-t-on parfois cela “émulation Linux”? Pour rendre difficile la vente des versions de &os;! Sérieusement, c'est dû au fait que l'implémentation historique a été faite à une époque où il n'y avait pas vraiment d'autres mots pour décrire ce qui était en développement; dire que &os; exécutait les binaires Linux n'était pas vrai si vous n'aviez pas compilé le code ou chargé un module, aussi un terme était nécessaire pour qualifier ce qui était chargé — donc l'“émulateur Linux”.
diff --git a/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml index 344fd291b0..37640989f6 100644 --- a/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml @@ -1,2673 +1,2673 @@ Bill Lloyd Contribution originale de Jim Mock Réécrit par Courrier électronique &trans.a.fonvieille; Synopsis email courrier électronique Le “courrier électronique”, plus connu sous le nom d'email, est une des formes de communication les plus utilisées aujourd'hui. Ce chapitre fournit une introduction sur comment faire fonctionner un serveur de courrier électronique sous FreeBSD, et comment envoyer et recevoir du courrier électronique sous &os;. Cependant, cela n'est pas un document de référence, en fait de nombreux éléments importants ont été omis. Pour une couverture plus complète du sujet, le lecteur doit se référer aux nombreux ouvrages excellents listés dans l'. Après la lecture de ce chapitre, vous connaîtrez: Quels composants logiciel sont impliqués dans l'envoi et la réception du courrier électronique. Où se trouvent sous FreeBSD les fichiers de configuration de base de sendmail. La différence entre boîtes aux lettres distantes et boîtes aux lettres locale. Comment empêcher les personnes à l'origine de courriers non sollicités (spam) d'utiliser votre serveur de courrier comme relais. Comment installer et configurer un agent de transfert de courrier alternatif sur votre système, en remplacement de sendmail. Comment dépanner les problèmes courants des serveurs de courrier électronique. Comment utiliser le protocole SMTP avec UUCP. Comment utiliser le courrier électronique avec une connexion temporaire. Comment configurer l'authentification SMTP pour une sécurité accrue. Comment installer et utiliser un client de messagerie, comme mutt pour envoyer et lire du courrier électronique. Comme récupérer votre courrier électronique à partir d'un serveur POP ou IMAP distant. Comment appliquer automatiquement des règles de filtrage au courrier entrant. Avant de lire ce chapitre, vous devrez: Configurer correctement votre connexion réseau (). Configurer correctement les informations DNS pour votre serveur de courrier (). Savoir comment installer des logiciels tiers (). Utilisation du courrier électronique POP IMAP DNS Il y a cinq éléments majeurs impliqués dans un échange de courrier. Ce sont: le programme utilisateur, le “daemon” serveur de courrier, le serveur DNS, une boîte aux lettres distante ou locale, et bien sûr le le serveur de courrier lui-même . Le programme utilisateur Cela inclut des programmes en ligne de commande comme mutt, pine, elm, et mail, et des programmes graphiques comme balsa, xfmail pour juste en nommer quelques-uns, ou quelque chose de plus sophisticated comme un navigateur WWW. Ces programmes transmettent simplement toutes les transactions concernant le courrier électronique au serveur de courrier local, soit en invoquant un des “daemons” serveurs (Agents de transfert de courrier) disponibles, soit via TCP. Le “daemon” serveur de courrier daemons serveurs de courrier sendmail daemons serveurs de courrier postfix daemons serveurs de courrier qmail daemons serveurs de courrier exim &os; est fourni par défaut avec sendmail, mais supporte également de nombreux autres “daemons” serveurs de courrier, parmi lesquels: exim; postfix; qmail. Le serveur a généralement deux fonctions—il est responsable de la réception du courrier comme celle de son envoi. Il n'est cependant pas responsable de la récupération du courrier électronique en utilisant des protocoles comme POP ou IMAP pour lire votre courrier, il ne vous permet pas non plus la connexion à des boîtes aux lettres locales de type mbox ou maildir. Vous avez besoin d'un “daemon” supplémentaire pour cela. Les anciennes version de sendmail ont de sérieux problèmes de sécurité qui peuvent avoir pour conséquence l'obtention d'un accès local et/ou à distance à votre machine pour une personne malveillante. Vérifiez que vous utilisez une version à jour pour éviter de tels problèmes. Vous avez cependant toujours la possibilité d'installer un autre MTA à partir du catalogue des logiciels portés de &os;. Courrier électronique et DNS Le système de noms de domaines (DNS) et son “daemon” named jouent un rôle important dans la transmission du courrier électronique. Afin de délivrer du courrier de votre site à un autre, le serveur recherchera le site distant dans la base de données DNS pour déterminer la machine qui recevra le courrier électronique pour le destinataire. Ce processus intervient également quand un courrier électronique est envoyé à partir d'une machine distante vers votre serveur de courrier. enregistrement MX Le DNS gère la correspondance entre nom de machine et adresse IP, et le stockage des informations spécifiques à la distribution du courrier électronique, connues sous le nom d'enregistrements MX. L'enregistrement MX (“Mail eXchanger”) définit la machine, ou les machines, qui recevra le courrier pour un domaine particulier. Si vous n'avez pas d'enregistrement MX pour votre machine ou votre domaine, le courrier sera directement envoyé à votre machine à condition que vous ayez un enregistrement A faisant correspondre à votre nom de machine votre adresse IP. Vous pouvez obtenir les enregistrements MX pour n'importe quel domaine en utilisant la commande &man.host.1; est présentée ci-dessous: &prompt.user; host -t mx FreeBSD.org FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org Réception de courrier courrier électronique réception La réception du courrier pour votre domaine se fait par le serveur de courrier. Il collectera le courrier qui est envoyé à destination de votre domaine et le stockera soit sous le format mbox (la méthode par défaut de stockage du courrier électronique) ou le format Maildir, en fonction de votre configuration. Une fois le courrier stocké, il peut être lu localement en utilisant des applications comme &man.mail.1; ou mutt, ou lu à distance et récupéré en utilisant des protocoles tels que POP ou IMAP. Cela signifie que si vous désirez uniquement lire votre courrier électroniquement en local, vous n'avez pas besoin d'installer un serveur POP ou IMAP. Accès aux boîtes aux lettres distantes en utilisant <acronym>POP</acronym> et <acronym>IMAP</acronym> POP IMAP Pour accéder à des boîtes aux lettres distantes, vous devez avoir un accès à un serveur POP ou IMAP. Ces protocoles permettent aux utilisateurs de se connecter aisément à leurs - boîtes aux lettes à partir de machines + boîtes aux lettres à partir de machines distantes. Bien que POP et IMAP permettent, tous les deux, l'accès aux boîtes aux lettres pour les utilisateurs, IMAP offre de nombreux avantages, parmi lesquels: IMAP peut stocker les messages sur un serveur distant et les récupérer. IMAP supporte les mises à jour concourantes. IMAP peut être extrêmement utile pour les connexions lentes car il permet aux utilisateurs de récupérer la structure des messages sans les télécharger. Il peut également effectuer des tâches comme la recherche sur le serveur pour réduire les transferts de données entre clients et serveurs. Pour installer un serveur POP ou IMAP, les étapes suivantes doivent être suivies: Choisissez un serveur IMAP ou POP correspondant à vos besoins. Les serveurs POP et IMAP suivants sont connus et sont de bons exemples: qpopper; teapop; imap-uw; courier-imap; Installez le “daemon” POP ou IMAP de votre choix à partir du catalogue des logiciels portés. Si cela est nécessaire, modifiez le fichier /etc/inetd.conf pour charger le serveur POP ou IMAP. Il doit être noté que POP et IMAP transmettent les données, y compris les noms d'utilisateurs et mot de passe d'authentification en clair. Cela signifie que si vous désirez sécuriser la transmission des données avec ces protocoles, vous devriez considérer l'utilisation de de tunnels &man.ssh.1;. L'utilisation de tels tunnels est décrite dans la . Accès aux boîtes aux lettres locales Les boîtes aux lettres peuvent être accessibles localement en utilisant un client de messagerie sur le serveur où se trouve la boîte. Cela peut être fait en employant des applications telles que mutt ou &man.mail.1;. Le serveur de courrier serveur de courrier Le serveur de courrier est le nom donné au serveur qui est responsable de la transmission et la réception du courrier pour votre machine, et probablement votre réseau. Christopher Shumway Contribution de Configuration de <application>sendmail</application> sendmail &man.sendmail.8; est l'agent de transfert de courrier (Mail Transfert Agent—MTA) par défaut sous FreeBSD. Le rôle de sendmail est d'accepter le courrier en provenance des agents de courrier utilisateur (Mail User Agents—MUA) et de délivrer le courrier aux programmes de gestion du courrier définis dans son fichier de configuration. sendmail peut également accepter les connexions réseau et délivrer le courrier dans des boîtes aux lettres locales ou le transmettre à un autre programme. sendmail utilise les fichiers de configuration suivants: /etc/mail/access /etc/mail/aliases /etc/mail/local-host-names /etc/mail/mailer.conf /etc/mail/mailertable /etc/mail/sendmail.cf /etc/mail/virtusertable Fichier Fonction /etc/mail/access Fichier de la base de données d'accès de sendmail /etc/mail/aliases Alias de boîte aux lettres /etc/mail/local-host-names Liste des machines pour lesquelles sendmail accepte du courrier /etc/mail/mailer.conf Configuration du programme de gestion du courrier /etc/mail/mailertable Table de livraison du courrier /etc/mail/sendmail.cf Fichier de configuration principal de sendmail /etc/mail/virtusertable Table des domaines et utilisateurs virtuels <filename>/etc/mail/access</filename> La base de données d'accès définit quelle(s) machine(s) ou adresses IP ont accès au serveur de courrier local et quel type d'accès ils ont. Les machines peuvent être listées avec , , ou simplement transférées à la routine de gestion des erreurs sendmail avec une erreur donnée. Les machines qui sont listées avec , qui est le comportement par défaut, sont autorisées à envoyer du - courrier à cette machinee dès que la destination finale + courrier à cette machine dès que la destination finale du courrier est la machine locale. Les machines listées avec se verront rejeter pour toute connexion au serveur. Les machines présentes avec l'option sont autorisées à envoyer du courrier à n'importe quelle destination par l'intermédiaire de ce serveur de courrier. Configuration de la base de données d'accès de <application>sendmail</application> <programlisting>cyberspammer.com 550 We don't accept mail from spammers FREE.STEALTH.MAILER@ 550 We don't accept mail from spammers another.source.of.spam REJECT okay.cyberspammer.com OK 128.32 RELAY</programlisting> </example> <para>Dans cet exemple nous avons cinq entrées. Les émetteurs de courrier qui correspondent à la partie gauche de la table sont affectés par l'action donnée sur la partie droite de la table. Les deux premiers exemples donnent un code d'erreur à la routine de gestion d'erreur de <application>sendmail</application>. Le message est affiché sur la machine distante quand un courrier électronique correspond à la partie gauche de la table. L'entrée suivante rejette le courrier en provenance d'une machine précise de l'Internet, <hostid>another.source.of.spam</hostid>. L'entrée suivante accepte les connexions à partir de la machine <hostid role="fqdn">okay.cyberspammer.com</hostid>, qui est plus précis que le <hostid role="domainname">cyberspammer.com</hostid> de la ligne précédente. Les correspondances plus spécifiques priment sur les moins précises. La dernière entrée autorise le relais du courrier électronique en provenance de machines avec une adresse IP qui commence par <hostid>128.32</hostid>. Ces machines seront en mesure d'envoyer du courrier destiné à d'autres serveurs de courrier par l'intermédiaire de ce serveur de courrier.</para> <para>Quand ce fichier est mis à jour, vous devez exécuter la commande <command>make</command> dans <filename>/etc/mail/</filename> pour mettre à jour la base de données.</para> </sect2> <sect2> <title><filename>/etc/mail/aliases</filename> La base de données d'alias contient une liste de boîtes aux lettres virtuelles dont le contenu sera transmis à d'autres utilisateurs, fichiers, programmes ou d'autres alias. Voici quelques exemples qui peuvent être utilisés dans /etc/mail/aliases: Exemple de base de données d'alias root: localuser ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail" Le format du fichier est simple; le nom de la boîte aux lettres à gauche et la cible sur la droite. Le premier exemple transfère la boîte aux lettres root vers la boîte aux lettres localuser, qui est ensuite recherchée dans la base de données d'alias. Si aucune correspondance n'est trouvée alors le message est délivré à l'utilisateur locale localuser. L'exemple suivant montre une liste de correspondance. Un courrier envoyé à la boîte aux lettres ftp-bugs sera délivré aux trois boites locales joe, eric, et paul. Notez qu'une boîte aux lettres distante comme user@exemple.com/procmail pourra être spécifiée. L'exemple suivant montre comment transférer le courrier dans un fichier, dans notre cas /dev/null. Le dernier exemple montre l'envoi du courrier à un programme, dans le cas présent le message est écrit sur l'entrée standard de /usr/local/bin/procmail par l'intermédiaire d'un tube &unix;. Quand ce fichier est mis à jour, vous devez exécuter la commande make dans /etc/mail/ pour mettre à jour la base de données. <filename>/etc/mail/local-host-names</filename> C'est la liste des machines pour lesquelles &man.sendmail.8; accepte du courrier comme s'il était destiné à la machine locale. Placez-y tous les domaines ou machines pour lesquels sendmail doit recevoir du courrier. Par exemple, si le serveur de courrier devait accepter du courrier pour le domaine exemple.com et la machine mail.exemple.com, sont local-host-names ressemblera à quelque chose comme ceci: exemple.com mail.exemple.com Quand ce fichier est mis à jour, &man.sendmail.8; doit être relancé pour lire les changements. <filename>/etc/mail/sendmail.cf</filename> Fichier principal de configuration de sendmail, sendmail.cf contrôle le comportement général de sendmail, y compris tout depuis la réécriture des adresses de courrier jusqu'à l'envoi de message de rejet aux serveurs de courrier distants. Naturellement, avec tant de différentes activités, ce fichier de configuration est relativement complexe et son étude détaillée n'est pas le but de cette section. Heureusement, ce fichier a rarement besoin d'être modifié pour les serveurs de courrier standards. Le fichier de configuration principal de sendmail peut être créé à partir de macros &man.m4.1; qui définissent les fonctions et le comportement de sendmail. Veuillez consulter /usr/src/contrib/sendmail/cf/README pour plus de détails. Quand des modifications à ce fichier sont apportées, sendmail doit être redémarré pour que les changements prennent effet. <filename>/etc/mail/virtusertable</filename> La table virtusertable fait correspondre les adresses de courrier électronique pour des domaines virtuels et les boîtes aux lettres avec des boîtes aux lettres réelles. Ces boîtes aux lettres peuvent être locales, distantes, des alias définis dans /etc/mail/aliases ou des fichiers. Exemple de correspondance de domaine virtuel de courrier root@exemple.com root postmaster@exemple.com postmaster@noc.exemple.net @exemple.com joe Dans l'exemple ci-dessus, nous avons une correspondance pour un domaine exemple.com. Ce fichier est traité jusqu'à trouver la première correspondance. Le premier élément fait correspondre root@exemple.com à la boîte aux lettres root locale. L'entrée suivante fait correspondre postmaster@exemple.com à la boîte aux lettres postmaster sur la machine noc.exemple.net. Et enfin, si un courrier en provenance de exemple.com n'a pas trouvé de correspondance, il correspondra à la - dernière ligne, qui regira tous les autres messages + dernière ligne, qui régira tous les autres messages adressés à quelqu'un du domaine exemple.com. La correspondance sera la boîte aux lettres locale joe. Andrew Boothman Ecrit par Gregory Neil Shapiro Information provenant de courriers électroniques écrit par Changer votre agent de transfert de courrier courrier électronique changer d'agent de transfert de courrier Comme mentionné précédemment, FreeBSD est fournit avec sendmail comme agent de transfert du courrier (MTA - Mail Transfert Agent). Il est donc par défaut en charge de votre courrier sortant et entrant. Cependant, pour une variété de raison, certains administrateurs système désirent changer le MTA de leur système. Ces raisons vont de la simple envie d'essayer un autre agent au besoin d'une fonction ou ensemble spécifique qui dépend d'un autre gestionnaire de courrier. Heureusement, quelle qu'en soit la raison, FreeBSD rend le changement aisé. Installer un nouveau MTA Vous avez un vaste choix d'agent disponible. Un bon point de départ est le catalogue des logiciels portés de FreeBSD où vous pourrez en trouver un grand nombre. Bien évidemment vous êtes libres d'utiliser n'importe quel agent de n'importe quelle origine, dès que vous pouvez le faire fonctionner sous FreeBSD. Commencez par installer votre nouvel agent. Une fois ce dernier installé, il vous donne une chance de décider s'il remplit vraiment vos besoins, et vous donne l'opportunité de configurer votre nouveau logiciel avant de remplacer sendmail. Quand vous faites cela, vous devez être sûr que l'installation du nouveau logiciel ne tentera pas de remplacer des binaires du système comme /usr/bin/sendmail. Sinon, votre nouveau logiciel sera mis en service avant d'avoir pu le configurer. Veuillez vous référer à la documentation de l'agent choisi pour de l'information sur comment configurer le logiciel que vous avez choisi. Désactiver <application>sendmail</application> La procédure utilisée pour lancer sendmail a changé de façon significative entre la 4.5-RELEASE et la 4.6-RELEASE. Par conséquent, la procédure utilisée pour la désactiver est légèrement différente. FreeBSD 4.5-STABLE d'avant le 2002/4/4 et plus ancienne (y compris 4.5-RELEASE et précédentes) Ajoutez: sendmail_enable="NO" dans /etc/rc.conf. Cela désactivera le service de courrier entrant de sendmail mais si /etc/mail/mailer.conf (voir plus bas) n'est pas modifié, sendmail sera toujours utilisé pour envoyer du courrier électronique. FreeBSD 4.5-STABLE d'après le 2002/4/4 (y compris 4.6-RELEASE et suivantes) Afin de complètement désactiver sendmail vous devez utiliser sendmail_enable="NONE" dans /etc/rc.conf. Si vous désactivez le service d'envoi de courrier de sendmail de cette manière, il est important que vous le remplaciez par un système de courrier alternatif fonctionnant parfaitement. Si vous choisissez de ne pas le faire, des fonctions du système comme &man.periodic.8; ne seront pas en mesure de délivrer leur résultat par courrier électronique comme elles s'attendent normalement à le faire. De nombreux composants de votre système s'attendent à avoir un système compatible à sendmail en fonctionnement. Si des applications continuent à utiliser les binaires de sendmail pour essayer d'envoyer du courrier électronique après la désactivation, le courrier pourra aller dans une file d'attente inactive, et pourra n'être jamais livré. Si vous voulez uniquement désactiver le service de réception de courrier de sendmail vous devriez fixer sendmail_enable="NO" dans /etc/rc.conf. Plus d'information sur les options de démarrage de sendmail est disponible à partir de la page de manuel de &man.rc.sendmail.8;. Lancement de votre nouvel agent au démarrage Vous pourrez avoir le choix entre deux méthodes pour lancer votre nouvel agent au démarrage, encore une fois en fonction de la version de FreeBSD dont vous disposez. FreeBSD 4.5-STABLE d'avant le 2002/4/11 (y compris 4.5-RELEASE et précédentes) Ajouter une procédure dans /usr/local/etc/rc.d/ qui se termine en .sh et qui est exécutable par root. La procédure devrait accepter les paramètres start et stop. Au moment du démarrage les procédures système exécuteront la commande /usr/local/etc/rc.d/supermailer.sh start que vous pouvez également utiliser pour démarrer le serveur. Au moment de l'arrêt du système, les procédures système utiliseront l'option stop en exécutant la commande /usr/local/etc/rc.d/supermailer.sh stop que vous pouvez également utiliser manuellement pour arrêter le serveur quand le système est en fonctionnement. FreeBSD 4.5-STABLE d'après le 2002/4/11 (y compris 4.6-RELEASE et suivantes) Avec les versions suivantes de FreeBSD, vous pouvez utiliser la méthode ci-dessus ou fixer mta_start_script="nomfichier" dans /etc/rc.conf, où nomfichier est le nom d'une procédure que vous voulez exécuter au démarrage pour lancer votre agent. Remplacer <application>sendmail</application> comme gestionnaire du courrier du système par défaut Le programme sendmail est tellement omniprésent comme logiciel standard sur les systèmes &unix; que certains programmes supposent qu'il est tout simplement déjà installé et configuré. Pour cette raison, de nombreux agents alternatifs fournissent leur propre implémentation compatible avec l'interface en ligne de commande de sendmail; cela facilite leur utilisation comme remplaçant pour sendmail. Donc, si vous utilisez un programme alternatif, vous devrez vérifier que le logiciel essayant d'exécuter les binaires standards de sendmail comme /usr/bin/sendmail exécute réellement l'agent que vous avez choisi à la place. Heureusement, FreeBSD fournit un système appelé &man.mailwrapper.8; qui remplit ce travail pour vous. Quand sendmail fonctionne tel qu'il a été installé, vous trouverez quelque chose comme ce qui suit dans /etc/mail/mailer.conf: sendmail /usr/libexec/sendmail/sendmail send-mail /usr/libexec/sendmail/sendmail mailq /usr/libexec/sendmail/sendmail newaliases /usr/libexec/sendmail/sendmail hoststat /usr/libexec/sendmail/sendmail purgestat /usr/libexec/sendmail/sendmail Cela signifie que lorsque l'une des commandes courantes (comme sendmail lui-même) est lancée, le système invoque en fait une copie de “mailwrapper” appelée sendmail, qui lit mailer.conf et exécute /usr/libexec/sendmail/sendmail à la place. Ce système rend aisé le changement des binaires qui sont réellement exécutés quand les fonctions de sendmail par défaut sont invoquées. Donc si vous avez voulu que /usr/local/supermailer/bin/sendmail-compat soit lancé en place de sendmail, vous pourrez modifier /etc/mail/mailer.conf de cette façon: sendmail /usr/local/supermailer/bin/sendmail-compat send-mail /usr/local/supermailer/bin/sendmail-compat mailq /usr/local/supermailer/bin/mailq-compat newaliases /usr/local/supermailer/bin/newaliases-compat hoststat /usr/local/supermailer/bin/hoststat-compat purgestat /usr/local/supermailer/bin/purgestat-compat Pour en terminer Une fois que vous avez tout configuré de la façon dont vous le désirez, vous devriez soit tuer les processus de sendmail dont vous n'avez plus besoin et lancer les processus appartenant à votre nouveau logiciel, ou tout simplement redémarrer. Le redémarrage vous donnera l'opportunité de vous assurer que vous avez correctement configuré votre système pour le lancement automatique de votre nouvel agent au démarrage. Dépannage courrier électronique dépannage Pourquoi faut-il que j'utilise le FQDN (“Fully Qualified Domain Name” - nom complet de machine) pour les machines de mon site? Vous vous rendrez probablement compte que la machine est en fait dans un domaine différent; par exemple, si vous êtes dans le domaine foo.bar.edu et que vous voulez atteindre la machine mumble du domaine bar.edu, vous devrez utiliser son nom de machine complet, mumble.bar.edu, au lieu de juste mumble. BIND C'était traditionnellement autorisé par les résolveurs BIND BSD. Néanmoins, la version de BIND qui est maintenant livrée avec FreeBSD ne sait pas compléter les noms de machines abrégés autrement qu'avec le nom de votre domaine. Donc le nom non qualifié mumble doit correspondre à mumble.foo.bar.edu, sans quoi il sera recherché dans le domaine racine. Cela diffère du comportement précédent, où la recherche se prolongeait à mumble.bar.edu, puis mumble.edu. Consultez la RFC 1535 pour savoir pourquoi cela était considéré comme une mauvaise pratique, voire même un trou de sécurité. Comme solution, vous pouvez mettre la ligne: search foo.bar.edu bar.edu à la place de: domain foo.bar.edu dans votre fichier /etc/resolv.conf. Cependant, assurez-vous que la recherche ne franchit pas la “limite entre l'administration locale et publique”, selon l'expression de la RFC 1535. MX record sendmail affiche le message mail loops back to myself La réponse donnée dans la FAQ de sendmail est la suivante: J'obtiens les messages d'erreur suivant: 553 MX list for domain.net points back to relay.domain.net 554 <user@domain.net>... Local configuration error Comment puis-je résoudre ce problème? Vous avez demandé que le courrier pour un domaine (e.g., domain.net) soit transmis à une machine donnée (dans ce cas précis, relay.domain.net) en utilisant un enregistrement MX, mais la machine relais ne se connaît pas elle-même comme domain.net. Ajoutez domain.net à /etc/mail/local-host-names [connu sous le nom /etc/sendmail.cw dans les versionsantérieure à 8.10] (si vous utilisez FEATURE(use_cw_file)) ou ajoutez “Cw domain.net” à /etc/mail/sendmail.cf. La FAQ de sendmail peut être trouvée à l'adresse et sa lecture est recommandée si vous voulez “bidouiller” votre configuration du courrier électronique. PPP Comment puis-je faire tourner un serveur de courrier électronique avec une connexion téléphonique PPP Vous voulez connecter une machine FreeBSD du réseau local à l'Internet. Cette machine servira de passerelle de courrier électronique pour le réseau local. La connexion PPP n'est pas dédiée. UUCP MX record Il y a au moins deux façons de faire. L'une d'elle est d'utiliser UUCP. L'autre méthode étant d'obtenir un serveur Internet constamment connecté pour qu'il vous fournisse les services MX pour votre domaine. Par exemple, si le domaine de votre compagnie est exemple.com et votre fournisseur d'accès a configuré exemple.net pour fournir un MX secondaire pour votre domaine: exemple.com. MX 10 exemple.com. MX 20 exemple.net. Une seule machine devrait être spécifiée comme destinataire final (ajoutez Cw exemple.com au fichier /etc/mail/sendmail.cf de exemple.com). Quand le sendmail expéditeur tente de vous délivrer du courrier, il essaiera de se connecter à votre serveur (exemple.com) via votre liaison par modem. Ce qui échouera très probablement par dépassement de délai puisque vous n'êtes pas en ligne. Le programme sendmail enverra automatiquement le courrier au site MX secondaire, i.e. votre fournisseur d'accès (exemple.net). Le site MX secondaire essayera périodiquement de se connecter à votre machine pour expédier le courrier au site MX primaire (exemple.com). Vous pourrez vouloir utiliser quelque chose comme ceci comme procédure de connexion: #!/bin/sh # Mettez-moi dans /usr/local/bin/pppmyisp ( sleep 60 ; /usr/sbin/sendmail -q ) & /usr/sbin/ppp -direct pppmyisp Si vous avez l'intention de définir une procédure de connexion particulière pour un utilisateur, vous pourrez utiliser sendmail -qRexemple.com à la place de la procédure ci-dessus. Cela forcera le traitement immédiat de tout le courrier dans votre file d'attente pour exemple.com. On peut encore affiner la configuration comme suit: Message emprunté à la &a.isp;. > Nous fournissons un MX secondaire à un client. Le client se connecte > à notre service automatiquement plusieurs fois par jour pour acheminer > le courrier sur son MX primaire (nous n'appelons pas son site lorsque > du courrier pour ses domaines arrive). Notre sendmail envoie le courrier de la > file d'attente toutes les demi-heures. Pour l'instant, il doit rester > une demi-heure en ligne pour être sûr que tout le courrier soit > arrivé au MX primaire. > > Y-a-t-il une commande qui permette de dire à sendmail d'envoyer > sur-le-champ tout le courrier? L'utilisateur n'a évidemment pas > les droits super-utilisateur sur la machine. Dans la section “privacy flags” (indicateurs de confidentialité) de sendmail.cf, il y a la définition Opgoaway,restrictqrun Supprimer restrictqrun permet à d'autres utilisateurs que le super-utilisateur de lancer le traitement de la file d'attente. Vous pouvez aussi redéfinir les MXs. Nous sommes le premier MX pour les utilisateurs de ce type, et nous avons défini: # Si nous sommes le meilleur MX pour une machine, essayer directement # au lieu d'émettre des messages d'erreur de configuration locale. OwTrue De cette façon, un site distant vous enverra directement le courrier, sans essayer de se connecter chez votre client. Vous le lui transmettez ensuite. Cela ne marche qu'avec les “machines”, votre client doit nommer son serveur de courrier “client.com” aussi bien que “machine.client.com” dans le DNS. Mettez seulement un enregistrement A pour “client.com”. Pourquoi j'obtiens le message d'erreur Relaying Denied à chaque fois que j'envoie du courrier à partir d'autres machines? Dans l'installation par défaut de FreeBSD, sendmail est configuré pour envoyer du courrier uniquement à partir de la machine sur laquelle il tourne. Par exemple, si un serveur POP est disponible, alors les utilisateurs pourront retirer leur courrier depuis l'école, le travail, ou toute autre machine distante mais ils ne seront toujours pas en mesure d'envoyer du courrier électronique à partir de machines extérieures. Généralement, quelques instants après une tentative, un courrier électronique sera envoyé par le MAILER-DAEMON avec un message 5.7 Relaying Denied. Il y a plusieurs façons d'y remédier. La solution la plus directe est de mettre l'adresse de votre fournisseur d'accès dans un fichier de domaine à relayer /etc/mail/relay-domains. Une façon rapide de le faire serait: &prompt.root; echo "votre.fai.exemple.com" > /etc/mail/relay-domains Après avoir créé ou édité ce fichier vous devez redémarrer sendmail. Cela fonctionne parfaitement si vous êtes l'administrateur d'un serveur et vous ne désirez pas envoyer de courrier localement, ou que vous désiriez utiliser un système ou un client “clic-bouton” sur une autre machine ou un autre FAI. C'est également très utile si vous avez uniquement qu'un ou deux comptes de courrier électronique configurés. S'il y a un grand nombre d'adresses à ajouter, vous pouvez tout simplement ouvrir ce fichier dans votre éditeur de texte favori et ensuite ajouter les domaines, un par ligne: votre.fai.exemple.com autre.fai.exemple.net utilisateurs-fai.exemple.org www.exemple.org Désormais tout courrier envoyé vers votre système, par n'importe quelle machine de cette liste (en supposant que l'utilisateur possède un compte sur votre système), sera accepté. C'est un bon moyen d'autoriser aux utilisateurs d'envoyer du courrier électronique à distance depuis votre système sans autoriser l'utilisation de votre système pour l'envoi de courrier électronique non sollicité (SPAM). Sujets avancés LA fonction suivante couvre des sujets plus avancés comme la configuration du courrier électronique pour l'intégralité de votre domaine. Basic Configuration courrier électronique configuration Sans aucune configuration, vous devrez être en mesure d'envoyer du courrier électronique à des machines extérieures à partir du moment où vous avez configuré /etc/resolv.conf ou que vous avez votre propre serveur de noms. Si vous désirez que le courrier pour votre machine soit délivré au serveur de courrier (e.g., sendmail) sur votre propre machine FreeBSD, il y a deux méthodes: Faites tourner votre propre serveur de noms et possédez votre propre domaine. Par exemple FreeBSD.org Faire délivrer le courrier directement sur votre machine. Cela est possible en délivrant directement le courrier à la machine sur lequel pointe le DNS pour le courrier qui vous est destiné. Par exemple exemple.FreeBSD.org. SMTP Indépendamment de la méthode que vous choisissez, afin d'avoir le courrier délivré directement à votre machine, elle doit avoir une adresse IP statique permanente (et non pas une adresse dynamique, comme avec la plupart des connexions PPP par modem). Si vous êtes derrière un coupe-feu, il doit autoriser le trafic SMTP en votre direction. Si vous voulez recevoir directement le courrier sur votre machine, vous devez être sûrs de l'une de ces deux choses: enregistrement MX Assurez-vous que l'enregistrement MX (le nombre le plus bas) de votre DNS pointe sur l'adresse IP de votre machine. Assurez-vous qu'il n'y a pas d'entrée MX pour votre machine dans votre DNS. Une des deux conditions précédentes vous permettra de recevoir directement le courrier pour votre machine. Essayez: &prompt.root; hostname exemple.FreeBSD.org &prompt.root; host exemple.FreeBSD.org exemple.FreeBSD.org has address 204.216.27.XX Si c'est la réponse que vous obtenez, le courrier adressé à votreindentifiant@exemple.FreeBSD.org arrivera sans problème (en supposant que sendmail fonctionne correctement sur exemple.FreeBSD.org). Si au lieu de cela vous obtenez quelque chose de similaire à ceci: &prompt.root; host exemple.FreeBSD.org exemple.FreeBSD.org has address 204.216.27.XX exemple.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org Tout le courrier adressé à votre machine (exemple.FreeBSD.org) arrivera sur hub adressé au même utilisateur au lieu d'être directement envoyé à votre machine. L'information précédente est gérée par votre serveur DNS. L'enregistrement du DNS qui contient l'information de routage de courrier est l'entrée MX (Mail eXchange). S'il n'y pas d'enregistrement MX, le courrier sera directement envoyé à la machine en utilisant son adresse IP. Voici ce que fut à un moment donné l'entrée MX pour freefall.FreeBSD.org: freefall MX 30 mail.crl.net freefall MX 40 agora.rdrop.com freefall MX 10 freefall.FreeBSD.org freefall MX 20 who.cdrom.com Comme vous pouvez le voir, freefall avait plusieurs entrées MX. L'entrée MX dont le numéro est le plus bas est la machine qui reçoit directement le courrier si elle est disponible; si elle n'est pas accessible pour diverses raisons, les autres (parfois appelées “MX de secours”) acceptent temporairement les messages, et les transmettent à une machine de numéro plus faible quand elle devient disponible, et par la suite à la machine de numéro le plus bas. Les sites MX alternatifs devraient avoir une connexion Internet séparée de la votre afin d'être les plus utiles. Votre fournisseur d'accès ou tout autre site amical ne devrait pas avoir de problème pour vous fournir ce service. Courrier pour votre domaine Pour configurer un serveur de courrier vous devez faire en sorte que tout le courrier à destination des diverses stations de travail lui soit envoyé. Concrètement, vous voulez “revendiquer” tout courrier pour n'importe quelle machine de votre domaine (dans ce cas *.FreeBSD.org) et le détourner vers votre serveur de courrier de sorte que vos utilisateurs puissent recevoir leur courrier sur le serveur de courrier principal. DNS Pour rendre les choses plus aisées, un compte utilisateur avec le même nom d'utilisateur devrait exister sur les deux machines. Utilisez &man.adduser.8; pour ce faire. Le serveur de courrier que vous utiliserez sera défini comme “mail exchanger” pour chaque station de travail du réseau. Cela est fait dans votre configuration de DNS de cette manière: exemple.FreeBSD.org A 204.216.27.XX ; Station de travail MX 10 hub.FreeBSD.org ; Serveur de courrier Cela redirigera le courrier pour votre station de travail au serveur de courrier quelque soit la machine sur laquelle pointe l'enregistrement A. Le courrier est envoyé sur la machine MX. Vous ne pouvez le faire vous-même que si vous gérez un serveur de noms. Si ce n'est pas le cas, ou que vous ne pouvez avoir votre propre serveur DNS, parlez-en à votre fournisseur d'accès ou à celui qui fournit votre DNS. Si vous faites de l'hébergement virtuel du courrier électronique, l'information suivante sera utile. Pour cet exemple, nous supposerons que vous avez un client qui possède son propre domaine, dans notre cas client1.org, et vous voulez que tout le courrier pour client1.org arrive sur votre serveur de courrier, mail.mamachine.com. L'entrée dans votre DNS devrait ressembler à ceci: client1.org MX 10 mail.mamachine.com Vous n'avez pas besoin d'un enregistrement A pour client1.org si vous ne voulez gérer que le courrier pour ce domaine. Soyez conscient que “pinger” client1.org ne fonctionnera pas à moins qu'un enregistrement A existe pour cette machine. La dernière chose que vous devez faire est d'indiquer à sendmail sur le serveur de courrier quels sont les domaines et/ou machines pour lesquels il devrait accepter du courrier. Il y a peu de façons différentes de le faire. L'une des deux méthodes suivantes devrait fonctionner: Ajoutez les machines à votre fichier /etc/mail/local-host-names si vous utilisez la fonction FEATURE(use_cw_file). Si vous utilisez une version de sendmail antérieure à la version 8.10, le fichier sera /etc/sendmail.cw. Ajoutez une ligne Cwyour.host.com à votre fichier /etc/sendmail.cf ou /etc/mail/sendmail.cf si vous utilisez sendmail 8.10 ou supérieur. SMTP avec UUCP La configuration de sendmail fournie avec &os; est conçue pour les sites directement connectés à l'Internet. Les sites désirant échanger leur courrier électronique par l'intermédiaire d'UUCP doivent installer un autre fichier de configuration pour sendmail. Modifier manuellement le fichier /etc/mail/sendmail.cf est un sujet réservé aux spécialistes. Dans version 8 de sendmail la génération des fichiers de configuration se fait par l'intermédiaire du processeur &man.m4.1;, où la configuration se fait à un haut niveau d'abstraction. Les fichiers de configuration &man.m4.1; se trouvent dans le répertoire /usr/src/usr.sbin/sendmail/cf. Si vous n'avez pas installé toutes les sources du système, l'ensemble des fichiers de configuration de sendmail a été regroupé dans une archive séparée des autres sources. En supposant que vous avez monté votre CDROM &os; contenant les sources, faites: &prompt.root; cd /cdrom/src &prompt.root; cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmail Cette extraction ne donne lieu qu'à une centaine de kilo-octets. Le fichier README dans le répertoire cf pourra faire office d'une introduction à la configuration &man.m4.1;. La meilleure façon d'ajouter le support UUCP est d'utiliser la fonctionnalité mailertable. Cela créé une base de données que sendmail utilise pour décider de la manière dont il va router le courrier électronique. Tout d'abord, vous devez créer votre fichier .mc. Le répertoire /usr/src/usr.sbin/sendmail/cf/cf contient quelques exemples. En supposant que vous avez appelé votre fichier foo.mc, tout ce dont vous avez besoin de faire pour le convertir en un fichier sendmail.cf valide est: &prompt.root; cd /usr/src/usr.sbin/sendmail/cf/cf &prompt.root; make foo.cf &prompt.root; cp foo.cf /etc/mail/sendmail.cf Un fichier .mc classique devrait ressembler à ceci: VERSIONID(`Votre numéro de version') OSTYPE(bsd4.4) FEATURE(accept_unresolvable_domains) FEATURE(nocanonify) FEATURE(mailertable, `hash -o /etc/mail/mailertable') define(`UUCP_RELAY', votre.relai.uucp) define(`UUCP_MAX_SIZE', 200000) define(`confDONT_PROBE_INTERFACES') MAILER(local) MAILER(smtp) MAILER(uucp) Cw alias.de.votre.nom.de.machine Cw votrenomdenoeuduucp.UUCP Les lignes contenant les directives accept_unresolvable_domains, nocanonify, et confDONT_PROBE_INTERFACES empêcheront l'utilisation du DNS lors de l'envoi du courrier électronique. La directive UUCP_RELAY est nécessaire pour le support de l'UUCP. Mettez juste un nom de machine Internet capable de gérer des adresses d'un pseudo-domaine .UUCP; la plupart du temps, vous mettrez le nom du serveur de messagerie de votre fournisseur d'accès. Après avoir défini tout ceci, vous avez besoin d'un fichier /etc/mail/mailertable. Si vous n'avez qu'un seul lien avec l'extérieur qui est utilisé pour votre courrier électronique, le fichier suivant devrait suffire: # # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable . uucp-dom:your.uucp.relay Un exemple plus complexe ressemblerait à ceci: # # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable # horus.interface-business.de uucp-dom:horus .interface-business.de uucp-dom:if-bus interface-business.de uucp-dom:if-bus .heep.sax.de smtp8:%1 horus.UUCP uucp-dom:horus if-bus.UUCP uucp-dom:if-bus . uucp-dom: Les trois premières lignes gèrent les cas spécifiques où les courriers électroniques pour l'extérieur ne devraient pas être envoyés au serveur par défaut, mais plutôt à des serveurs UUCP voisins afin de “raccourcir” le chemin à parcourir. La ligne suivante gère le courrier électronique destiné au domaine Ethernet local et qui peut être distribué en utilisant le protocole SMTP. Et enfin, les voisins UUCP sont mentionnés dans la notation de pseudo-domaine UUCP, pour permettre à un courrier du type voisin-uucp !destinataire de passer outre les règles par défaut. La dernière ligne doit toujours être un point, ce qui correspond à tout le reste, avec la distribution UUCP vers un voisin UUCP qui sert de passerelle universelle de courrier électronique vers le reste du monde. Tous les noms de noeuds placés après le mot clé uucp-dom: doivent être des noms valides de voisins UUCP, que vous pouvez vérifier en utilisant la commande uuname. Pour vous rappeler que ce fichier doit être converti en un fichier de base de données DBM avant d'être utilisable. La ligne de commande pour accomplir cette conversion est rappelée dans les commentaires au début du fichier mailertable. Vous devez lancer cette commande à chaque fois que vous modifiez votre fichier mailertable. Pour finir: si vous n'êtes pas certain du bon fonctionnement de certaines configurations de routage du - courrier électronique, rappellez-vous de l'option + courrier électronique, rappelez-vous de l'option de sendmail. Cela lance sendmail dans le mode test d'adresse; entrez simplement 3,0, suivi de l'adresse que vous désirez tester. La dernière ligne vous indiquera le type d'agent utilisé pour l'envoi, la machine de destination à laquelle l'agent doit envoyer le message, et l'adresse (peut-être traduite) à laquelle il l'enverra. Pour quitter ce mode tapez CtrlD. &prompt.user; sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 3,0 foo@example.com canonify input: foo @ example . com ... parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . > > ^D Bill Moran Contribution de Configuration pour l'envoi seul Il existe de nombreux cas où vous désirez être capable d'uniquement envoyer du courrier électronique par l'intermédiaire d'un relais. Quelques exemples: Votre ordinateur est une machine de bureau, mais vous voulez utilisez des programmes comme &man.send-pr.1;. Pour cela vous devez utiliser le relais de courrier électronique de votre FAI. L'ordinateur est un serveur qui ne gère pas le courrier électronique localement, mais a besoin de soumettre tout le courrier à un relais pour qu'il soit transmis. N'importe quel MTA est capable d'assurer cette fonction. Malheureusement, il peut être très compliqué de configurer correctement un MTA complet pour juste gérer le courrier sortant. Des logiciels comme sendmail et postfix sont largement surdimensionnés pour cette utilisation. De plus, si vous utilisez un accès Internet classique, votre contrat peut vous interdire de faire tourner un “serveur de courrier électronique”. La manière la plus simple pour répondre à ce besoin est d'installer le logiciel porté mail/ssmtp. Exécutez les commandes suivantes en tant que root: &prompt.root; cd /usr/ports/mail/ssmtp &prompt.root; make install replace clean Une fois installé, mail/ssmtp peut être configuré avec un fichier de quatre lignes, /usr/local/etc/ssmtp/ssmtp.conf: root=yourrealemail@example.com mailhub=mail.example.com rewriteDomain=example.com hostname=_HOSTNAME_ Assurez-vous d'employer votre adresse électronique réelle pour l'utilisateur root. Utilisez le relais de courrier électronique sortant de votre FAI à la place de mail.example.com (certains FAIs appellent cela le “serveur de courrier sortant” ou le “serveur SMTP”). Assurez-vous également d'avoir désactivé sendmail en fixant sendmail_enable="NONE" dans le fichier /etc/rc.conf. mail/ssmtp dispose d'autres options. Consultez le fichier de configuration d'exemple dans le répertoire /usr/local/etc/ssmtp ou la page de manuel de ssmtp pour quelques exemples et plus d'informations. Configurer ssmtp de cette manière permettra à toute application tournant sur votre ordinateur et ayant besoin d'envoyer un courrier électronique de fonctionner correctement, tout en n'outrepassant pas la politique de votre FAI ou en ne permettant pas l'utilisation de votre ordinateur comme base arrière pour “spammers”. Utiliser le courrier électronique avec une connexion temporaire Si vous disposez d'une adresse IP statique, vous ne devez rien changer du paramétrage par défaut. Définissez votre nom de machine pour qu'il corresponde à celui qui vous a été assigné pour l'Internet et sendmail s'occupera du reste. Si votre adresse IP vous est attribuée dynamiquement et que vous utilisez une connexion PPP par modem pour accèder à l'Internet, vous disposez probablement d'une boite aux lettres chez votre fournisseur d'accès. Supposons que le domaine de votre fournisseur d'accès soit example.net, que votre nom d'utilisateur soit user, que vous avez appelé votre machine bsd.home, et que votre fournisseur vous ait demandé d'utiliser la machine relay.example.net comme serveur relai de messagerie électronique. Pour pouvoir rapatrier votre courrier depuis votre boite aux lettres, vous devez installer un agent de rapatriement. L'utilitaire fetchmail est un bon choix car il supporte la plupart des protocoles de messagerie. Ce programme est disponible sous forme de paquetage ou à partir du catalogue des logiciels portés (mail/fetchmail). La plupart du temps, votre fournisseur d'accès fournit l'accès aux boites aux lettre à l'aide du protocole POP. Si vous utilisez PPP en mode utilisateur, vous pouvez automatiquement récupérer votre courrier quand une connexion Internet est établie avec l'entrée suivante dans le fichier /etc/ppp/ppp.linkup: MYADDR: !bg su user -c fetchmail Si vous utilisez sendmail (comme montré ci-dessous) pour distribuer le courrier aux comptes non-locaux, vous voudrez probablement que sendmail s'occupe de transmettre les messages en attente dès que votre connexion Internet est établie. Pour cela, ajoutez la commande suivante après la commande fetchmail dans le fichier /etc/ppp/ppp.linkup: !bg su user -c "sendmail -q" En supposant que vous avez un compte user sur bsd.home. Dans le répertoire de l'utilisateur user sur bsd.home, créez un fichier .fetchmailrc contenant: poll example.net protocol pop3 fetchall pass MySecret Ce fichier ne devrait être lisible que par l'utilisateur user car il contient le mot de passe MySecret. Afin de pouvoir envoyer du courrier avec l'entête from: correcte, vous devez configurer sendmail pour utiliser l'adresse user@example.net plutôt que user@bsd.home. Vous pouvez également dire à sendmail d'envoyer le courrier via le serveur relay.example.net, permettant une transmission du courrier plus rapide. Le fichier .mc suivant devrait suffire: VERSIONID(`bsd.home.mc version 1.0') OSTYPE(bsd4.4)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnl Cwlocalhost Cwbsd.home MASQUERADE_AS(`example.net')dnl FEATURE(allmasquerade)dnl FEATURE(masquerade_envelope)dnl FEATURE(nocanonify)dnl FEATURE(nodns)dnl define(`SMART_HOST', `relay.example.net') Dmbsd.home define(`confDOMAIN_NAME',`bsd.home')dnl define(`confDELIVERY_MODE',`deferred')dnl Référez-vous à la section précédente pour des détails sur la conversion de ce fichier .mc en un fichier sendmail.cf. N'oubliez pas également de redémarrer sendmail après la mise à jour du fichier sendmail.cf. James Gorham Ecrit par Authentification SMTP Disposer de l'authentification SMTP sur votre serveur de courrier présente un certain nombre d'avantages. L'authentification SMTP peut ajouter une autre couche de sécurité à sendmail, et a l'avantage de donner aux utilisateurs mobiles la possibilité d'utiliser le même serveur de courrier sans avoir besoin de reconfigurer les paramètres de leur client courrier à chaque déplacement. Installez security/cyrus-sasl à partir du catalogue des logiciels portés. Vous pouvez trouver ce logiciel porté dans security/cyrus-sasl. security/cyrus-sasl dispose de nombreuses options de compilation possibles, pour la méthode que nous allons utiliser ici, assurez-vous de sélectionner l'option . Après avoir installé security/cyrus-sasl, éditez /usr/local/lib/sasl/Sendmail.conf (ou créez-le s'il n'existe pas) et ajoutez la ligne suivante: pwcheck_method: passwd Cette méthode activera au niveau de sendmail l'authentification par l'intermédiaire de votre base de données FreeBSD passwd. Cela nous épargne le problème de la création d'un nouvel ensemble de nom d'utilisateur et de mot de passe pour chaque utilisateur ayant besoin de recourir à l'authentification SMTP, et conserve le même nom d'utilisateur et mot de passe pour le courrier. Maintenant éditez /etc/make.conf et ajoutez les lignes suivantes: SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl Ces lignes passeront à sendmail les bonnes options de configuration au moment de la compilation pour lier cyrus-sasl. Assurez-vous que cyrus-sasl a été installé avant de recompiler sendmail. Recompilez sendmail en lançant les commandes suivantes: &prompt.root; cd /usr/src/usr.sbin/sendmail &prompt.root; make cleandir &prompt.root; make obj &prompt.root; make &prompt.root; make install La compilation de sendmail ne devrait pas présenter de problèmes si le répertoire /usr/src n'a pas subi d'énormes changements et si les bibliothèques partagés nécessaires sont disponibles. Une fois que sendmail a été compilé et réinstallé, éditez votre fichier /etc/mail/freebsd.mc (ou tout autre fichier que vous utilisez comme fichier .mc. De nombreux administrateurs utilisent la sortie de &man.hostname.1; comme nom de fichier .mc par unicité). Ajoutez-y les lignes qui suivents: dnl set SASL options TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl Ces options configurent les différentes méthodes disponibles pour sendmail pour l'authentification des utilisateurs. Si vous désirez utiliser une méthode autre que pwcheck, veuillez consulter la documentation fournie. Enfin, exécutez &man.make.1; quand vous êtes dans /etc/mail. Cela prendra votre nouveau fichier .mc et créera un fichier .cf appelé freebsd.cf (ou selon tout autre nom que vous avez utilisé pour votre fichier .mc). Ensuite utilisez la commande make install restart, qui copiera le fichier en sendmail.cf, et redémarrera proprement sendmail. Pour plus d'informations sur ce processus, vous devriez vous réferrer au fichier /etc/mail/Makefile. Si tout s'est bien passé, vous devriez être en mesure d'entrer votre identifiant dans votre programme de courrier et d'envoyer un message de test. Pour plus d'investigation, fixez le de sendmail à 13 et scrutez /var/log/maillog à la recherche d'une erreur. Vous pourrez rajouter les lignes suivantes au fichier /etc/rc.conf afin de rendre ce service disponible après chaque démarrage du système: sasl_pwcheck_enable="YES" sasl_pwcheck_program="/usr/local/sbin/pwcheck" Cela assurera l'initialisation de SMTP_AUTH, l'authentification SMTP, au démarrage du système. Pour plus d'informations, veuillez consulter la page de la documentation de sendmail concernant l'authentification SMTP. Marc Silver Contribution de Clients de messagerie Client de messagerie Un client de messagerie (“Mail User Agent”—MUA) est une application qui est utilisée pour envoyer et recevoir du courrier électronique. En outre, au fur et à mesure que le système du courrier électronique “évolue” et devient plus complexe, les MUA deviennent de plus en plus puissants, offrant aux utilisateurs plus de fonctionnalités et de flexibilité. &os; offre le support pour de nombreux clients de messagerie, ils peuvent tous être aisément installés à partir du catalogue des logiciels portés de &os;. Les utilisateurs pourront choisir entre des clients de messagerie graphiques comme evolution ou balsa, des clients en mode console tels que mutt, pine ou mail, ou encore les interfaces Web utilisées par certaines organisations importantes. mail &man.mail.1; est le client de messagerie (“Mail User Agent”—MUA) par défaut de &os;. C'est un MUA en mode console qui offre toutes les fonctionnalités de base nécessaires pour envoyer et lire son courrier électronique en mode texte, cependant il est limité en ce qui concerne les possibilités de pièces jointes et ne supporte que les boîtes aux lettres locales. Bien que mail ne supporte pas l'intéraction avec les serveurs POP ou IMAP, ces boîtes aux lettres peuvent être téléchargées vers un fichier mbox local en utilisant une application telle que fetchmail, qui sera abordée plus tard dans ce chapitre (). Afin d'envoyer et de recevoir du courrier électronique, invoquez simplement la commande mail comme le montre l'exemple suivant: &prompt.user; mail Le contenu de la boîte aux lettres de l'utilisateur dans /var/mail est automatiquement lu par l'utilitaire mail. Si la boîte est vide, l'utilitaire rend la main avec un message indiquant qu'aucun courrier électronique ne peut être trouvé. Une fois que la boîte aux lettres a été lue, l'interface de l'application est lancée, et une liste de messages sera affichée. Les messages sont automatiquement numérotés, comme on peut le voir dans l'exemple suivant: Mail version 8.1 6/6/93. Type ? for help. "/var/mail/marcs": 3 messages 3 new >N 1 root@localhost Mon Mar 8 14:05 14/510 "test" N 2 root@localhost Mon Mar 8 14:05 14/509 "user account" N 3 root@localhost Mon Mar 8 14:05 14/509 "sample" Les messages peuvent désormais être lus en utilisant la commande t de mail, suivie du numéro du message qui devra être affiché. Dans cet exemple, nous lirons le premier courrier électronique: & t 1 Message 1: From root@localhost Mon Mar 8 14:05:52 2004 X-Original-To: marcs@localhost Delivered-To: marcs@localhost To: marcs@localhost Subject: test Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST) From: root@localhost (Charlie Root) This is a test message, please reply if you receive it. Comme nous pouvons le constater dans l'exemple ci-dessus, l'appuie sur la touche t fera afficher le message avec les entêtes complètes. Pour afficher à nouveau la liste des messages, la touche h doit être utilisée. Si le message nécessite une réponse, vous pouvez utiliser mail pour cela, en entrant soit la touche R, soit la touche r. La touche R demande à mail de ne répondre qu'à l'expéditeur du message, alors que r répond à l'expéditeur mais également aux autres destinataires du message. Vous pouvez ajouter à la suite de ces commandes le numéro du courrier auquel vous désirez répondre. Une fois cela effectué, la réponse doit être tapée, et la fin du message doit être indiquée par un . sur une nouvelle ligne. Ci-dessous est présenté un exemple: & R 1 To: root@localhost Subject: Re: test Thank you, I did get your email. . EOT Afin d'envoyer un nouveau courrier électronique, la touche m doit être utilisée, suivie de l'adresse électronique du destinataire. Plusieurs destinataires peuvent également être spécifiés en séparant chaque adresse par une ,. Le sujet du message peut alors être entré, suivi du corps du message. La fin d'un message doit être indiquée en mettant un . seul sur une nouvelle ligne. & mail root@localhost Subject: I mastered mail Now I can send and receive email using mail ... :) . EOT Bien qu'à partir de l'utilitaire mail, la commande ? puisse être utilisée à tout instant pour afficher l'aide, la page de manuel &man.mail.1; devrait être consultée pour plus d'aide sur mail. Comme indiqué précédemment, la commande &man.mail.1; à l'origine n'a pas été conçue pour gérer les pièces jointes, et par conséquent ne s'en sort pas très bien à ce niveau. Les MUAs plus récents comme mutt gérent les pièces jointes de manière plus intelligente. Mais si vous souhaitez toujours utiliser mail, le logiciel porté converters/mpack vous sera d'une grande aide. mutt mutt est un client de messagerie léger mais très puissant, avec de nombreuses fonctionnalités, parmi lesquelles: la possibilité de gérer les fils (“threads”) de discussions; le support PGP pour la signature électronique et le chiffrage de courriers électroniques; le support MIME; le support du format maildir; application hautement configurable et personnalisable. Toutes ces caractéristiques font de mutt un des clients de messagerie les plus avancés. Consultez pour plus d'informations sur mutt. La version stable de mutt peut être installée en utilisant le logiciel porté mail/mutt, tandis que la version actuellement en développement peut être installée par l'intermédiaire du logiciel porté mail/mutt-devel. Une fois installé, mutt peut être lancé en tapant la commande suivante: &prompt.user; mutt mutt lira automatiquement le contenu de la boîte aux lettres de l'utilisateur dans /var/mail et en affiche le contenu le cas échéant. Si aucun message n'est trouvé dans cette boîte, alors mutt attendra une commande de l'utilisateur. L'exemple ci-dessous montre mutt affichant une liste de messages: Afin de lire un message, sélectionnez-le en utilisant les touches fléchées, et appuyez sur Entrée. Un exemple montrant mutt affichant le contenu d'un message est donné ci-dessous: Comme avec la commande &man.mail.1;, mutt permet aux utilisateurs de répondre uniquement à l'expéditeur du message comme également à l'ensemble de ses destinataires. Pour répondre uniquement à l'expéditeur du courrier électronique, utilisez le raccourci clavier r. Pour faire une réponse groupée, qui sera envoyée à l'expéditeur comme à tous les destinataires du message, utilisez la touche g. mutt emploie &man.vi.1; comme éditeur pour la création et la réponse aux courriers électronique. Cela peut être modifié par l'utilisateur en créant son propre fichier .muttrc dans leur répertoire personnel et en positionnant la variable editor. Pour rédiger un nouveau message, appuyez sur la touche m. Après avoir donné un sujet valide, mutt lancera &man.vi.1; et l'intégralité du message pourra être écrite. Une fois le courrier électronique rédigé, sauvegardez et quittez vi et mutt réapparaîtra affichant un écran résumant le courrier devant être envoyé. Pour envoyer le message, appuyez sur y. Un exemple de résumé peut être vu ci-dessous: mutt propose également une aide complète, qui peut être consultée à partir de la plupart des menus en appuyant sur la touche ?. La ligne située en haut de l'écran affiche également les raccourcis clavier appropriés. pine pine est destiné aux débutants, mais il dispose également de fonctions avancées. Plusieurs vulnérabilités exploitables à distance ont été découvertes dans le logiciel pine par le passé, autorisant à un agresseur distant d'exécuter un programme arbitraire en tant qu'utilisateur local du système, en envoyant un courrier électronique particulier. Tous les problèmes connus ont été corrigés, mais le code source de pine est écrit d'une manière assez peu sécurisée et l'officier de sécurité de &os; pense qu'il existe d'autres failles qui ne sont pas encore découvertes. Vous installez donc pine à vos propres risques. La version actuelle de pine peut être installée en utilisant le logiciel porté mail/pine4. Une fois installé, pine peut être lancé en tapant la commande suivante: &prompt.user; pine Lors du premier lancement de pine, ce dernier affiche une page de présentation avec une brève introduction, ainsi qu'un message de la part de l'équipe de développement de pine demandant l'envoi d'un courrier électronique anonyme pour leur permettre d'évaluer le nombre d'utilisateurs de leur client de messagerie. Pour envoyer ce courrier anonyme, appuyez sur Entrée, ou sinon appuyez sur E pour quitter la présentation sans envoyer de message anonyme. Un exemple de page de présentation peut être vu ci-dessous: Le menu principal est ensuite affiché, menu dans lequel il est aisé de naviguer avec les touches fléchées. Ce menu principal fournit les raccourcis pour la rédaction de nouveaux messages, la navigation dans les répertoires de messages, et même la gestion des entrées du carnet d'adresses. Sous le menu principal, les raccourcis clavier correspondants pour effectuer les différentes tâches sont donnés. Le répertoire ouvert par défaut par pine est inbox. Pour afficher l'index des messages, appuyez sur I, ou sélectionnez l'option MESSAGE INDEX comme montré ci-dessous: L'index des messages montre les messages dans le répertoire courant, on peut se déplacer dans l'index en utilisant les touches fléchées. Les messages en surbrillance peuvent être lus en appuyant sur la touche Enter. Dans la capture d'écran ci-dessous, un message d'exemple est affiché par pine. Les raccourcis clavier sont affichés au bas de l'écran. Un exemple de raccourci est la touche r, qui demande au programme de répondre au message actuellement à l'écran. La rédaction d'une réponse à un courrier électronique avec pine se fait en utilisant l'éditeur pico, qui est installé par défaut avec pine. L'utilitaire pico rend aisé les déplacements dans le message et est plus indulgent avec les novices que &man.vi.1; ou &man.mail.1;. Une fois la réponse rédigée, le message peut être envoyé en appuyant sur CtrlX. pine vous demandera de confirmer votre action. Le programme pine peut être personnalisé en utilisant l'option SETUP du menu principal. Consultez pour plus d'information. Marc Silver Contribution de Utiliser fetchmail Utiliser fetchmail fetchmail est un client IMAP et POP complet qui offre aux utilisateurs le téléchargement automatiquement de leur courrier électronique à partir de serveurs IMAP et POP distants et sa sauvegarde dans des boîtes aux lettres locales; ainsi, le courrier électronique pourra être consulté plus facilement. fetchmail peut être installé en utilisant le logiciel porté mail/fetchmail, et offre diverses fonctionnalités, dont: le support des protocoles POP3, APOP, KPOP, IMAP, ETRN et ODMR; la capacité de faire suivre le courrier électronique en utilisant SMTP, ce qui autorise le filtrage, le transfert, et la gestion des alias de fonctionner correctement; la possibilité de fonctionner en mode “daemon” pour contrôler périodiquement si il y a de nouveaux messages; la possibilité de récupérer le courrier de plusieurs boîtes aux lettres et de le transférer en fonction d'une configuration bien précise aux différents utilisateurs locaux. - Bien qu'expliquer l'intégralités de fonctions + Bien qu'expliquer l'intégralité des fonctions de fetchmail dépasse le cadre de ce document, certaines fonctions de base seront abordées. L'utilitaire fetchmail nécessite un fichier de configuration nommé .fetchmailrc, afin de fonctionner correctement. Ce fichier comprend les informations concernant les serveurs ainsi que les accréditations d'accès. En raison du caractère sensible du contenu de ce fichier, il est recommandé de ne le rendre lisible que par l'utilisateur, avec la commande suivante: &prompt.user; chmod 600 .fetchmailrc Le fichier .fetchmailrc suivant sert d'exemple pour récupérer le courrier électronique pour un seul utilisateur à partir d'une boîte aux lettres utilisant le protocole POP. Il demande à fetchmail de se connecter à example.com en utilisant le nom d'utilisateur joesoap et le mot de passe XXX. Dans cet exemple on suppose que l'utilisateur joesoap est également un utilisateur sur le système local. poll example.com protocol pop3 username "joesoap" password "XXX" L'exemple suivant présente la connexion à plusieurs serveurs POP et IMAP et la redirection vers différents utilisateurs locaux quand c'est nécessaire: poll example.com proto pop3: user "joesoap", with password "XXX", is "jsoap" here; user "andrea", with password "XXXX"; poll example2.net proto imap: user "john", with password "XXXXX", is "myth" here; L'utilitaire fetchmail peut être exécuté en mode “daemon” en le lançant avec le paramètre , suivi par l'intervalle de temps (en secondes) que fetchmail doit respecter entre chaque consultation des serveurs listés dans le fichier .fetchmailrc. L'exemple suivant demandera à fetchmail de récupérer le courrier toutes les 60 secondes: &prompt.user; fetchmail -d 60 Plus d'informations concernant fetchmail peuvent être trouvées sur . Marc Silver Contribution de Utiliser procmail Utiliser procmail L'utilitaire procmail est une application extrêmement puissante utilisée pour filtrer le courrier électronique entrant. Il permet aux utilisateurs de définir des “règles” qui seront utilisées sur le courrier entrant pour effectuer des opérations particulières ou pour transférer le courrier vers d'autres boîtes aux lettres et/ou adresses électroniques. procmail peut être installé en utilisant le logiciel porté mail/procmail. Une fois installé, il peut être intégré dans la plupart des MTAs, consultez la documentation de votre MTA pour plus d'information. Alternativement, procmail peut être intégré en ajoutant la ligne suivante à un fichier .forward dans le répertoire personnel de l'utilisateur employant les fonctionnalités de procmail: "|exec /usr/local/bin/procmail || exit 75" La suite de cette section présentera quelques règles de base pour procmail, avec une brève description de ce qu'elles font. Ces règles, ainsi que d'autres, doivent être ajoutées dans le fichier .procmailrc, qui doit résider dans le répertoire personnel de l'utilisateur. La majorité de ces règles peut également être trouvée dans la page de manuel de &man.procmailex.5;. Transférer tout courrier en provenance de user@example.com vers l'adresse externe goodmail@example2.com: :0 * ^From.*user@example.com ! goodmail@example2.com Transférer tous les courriers d'une taille inférieure à 1000 octets vers l'adresse externe goodmail@example2.com: :0 * < 1000 ! goodmail@example2.com Mettre tout le courrier à destination de alternate@example.com dans une boîte aux lettres appelée alternate: :0 * ^TOalternate@example.com alternate Envoyer tous les courriers avec pour sujet “Spam” vers /dev/null: :0 ^Subject:.*Spam /dev/null Une recette utile pour trier les courriers en provenance des listes de diffusion &os;.org et placer chaque liste dans sa propre boîte aux lettres: :0 * ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG { LISTNAME=${MATCH} :0 * LISTNAME??^\/[^@]+ FreeBSD-${MATCH} } diff --git a/fr_FR.ISO8859-1/books/handbook/mirrors/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/mirrors/chapter.sgml index abc626d4e8..f764fc97c4 100644 --- a/fr_FR.ISO8859-1/books/handbook/mirrors/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/mirrors/chapter.sgml @@ -1,3536 +1,3536 @@ Se procurer &os; &trans.a.fonvieille; Editeurs de CD-ROMs et DVDs Produits vendus en boîte Des versions en boîte de &os; sont disponibles (CDs de &os;, logiciels supplémentaires, et documentation papier) auprès de plusieurs revendeurs:
CompUSA WWW:
Frys Electronics WWW:
CDs et DVDs Les CDs et DVDs de &os; sont disponibles auprès de nombreux revendeurs en ligne:
BSD Mall by Daemon News PO Box 161 Nauvoo, IL 62354 USA Phone: +1 866 273-6255 Fax: +1 217 453-9956 Email: sales@bsdmall.com WWW:
BSD-Systems Email: info@bsd-systems.co.uk WWW:
fastdiscs.com 6 Eltham Close Leeds, LS6 2TY United Kingdom Phone: +44 870 1995 171 Email: sales@fastdiscs.com WWW:
FreeBSD Mall, Inc. 3623 Sanford Street Concord, CA 94520-1405 USA Phone: +1 925 674-0783 Fax: +1 925 674-0821 Email: info@freebsdmall.com WWW:
Hinner EDV St. Augustinus-Str. 10 D-81825 München Allemagne Phone: (089) 428 419 WWW:
Ikarios 22-24 rue Voltaire 92000 Nanterre France WWW:
JMC Software Ireland Phone: 353 1 6291282 WWW:
Linux CD Mall Private Bag MBE N348 Auckland 1030 New Zealand Phone: +64 21 866529 WWW:
The Linux Emporium Hilliard House, Lester Way Wallingford OX10 9TA Royaume-Uni Phone: +44 1491 837010 Fax: +44 1491 837016 WWW:
Linux+ DVD Magazine Lewartowskiego 6 Warsaw 00-190 Poland Phone: +48 22 860 18 18 Email: editors@lpmagazine.org WWW:
Linux System Labs Australie 21 Ray Drive Balwyn North VIC - 3104 Australie Phone: +61 3 9857 5918 Fax: +61 3 9857 8974 WWW:
LinuxCenter.Ru Galernaya Street, 55 Saint-Petersburg 190000 Russia Phone: +7-812-3125208 Email: info@linuxcenter.ru WWW:
Distributeurs Si vous êtes un revendeur et désirez vendre des CDROMS de &os;, veuillez contacter un distributeur:
Cylogistics 809B Cuesta Dr., #2149 Mountain View, CA 94040 USA Phone: +1 650 694-4949 Fax: +1 650 694-4953 Email: sales@cylogistics.com WWW:
Ingram Micro 1600 E. St. Andrew Place Santa Ana, CA 92705-4926 USA Phone: 1 (800) 456-8000 WWW:
Kudzu, LLC 7375 Washington Ave. S. Edina, MN 55439 USA Phone: +1 952 947-0822 Fax: +1 952 947-0876 Email: sales@kudzuenterprises.com
Navarre Corp 7400 49th Ave South New Hope, MN 55428 USA Phone: +1 763 535-8333 Fax: +1 763 535-0341 WWW:
Sites FTP >Les sources officielles de &os; sont disponibles via FTP anonyme à partir d'un ensemble de sites miroir. Le site dispose d'une bonne connectivité et autorise un grand nombre de connexions, mais vous avez intérêt à trouver plutôt un site miroir “plus proche” (tout particulièrement si vous décidez de mettre en place une sorte de miroir à votre tour). La base de données des sites miroir &os; est plus à jour que la liste de ce Manuel, parce qu'elle tire ses informations du DNS plutôt que se reposer sur une liste statique de machines. De plus, &os; est disponible via FTP anonyme à partir des sites miroir ci-dessous. Si vous décidez de vous procurer &os; via FTP anonyme, essayez si possible d'utiliser un site proche de vous. Les sites miroir listés en tant que “sites miroir primaires“ disposent généralement de l'intégralité de l'archive &os; (toutes les versions actuellement disponibles pour chacune des architectures) mais vous obtiendrez les temps de téléchargements les plus courts à partir d'un site situé dans votre pays ou votre région. Les sites régionaux proposent les versions les plus récentes des architectures les plus populaires mais pourraient ne pas proposer l'intégralité de l'archive de &os;. Tous les sites proposent un accès FTP anonyme mais certains sites fournissent également un accès suivant d'autres méthodes. Les méthodes d'accès disponibles pour chaque site sont données entre parenthèses après le nom de la machine. &chap.mirrors.ftp.inc; CVS anonyme <anchor id="anoncvs-intro">Introduction CVS anonyme CVS anonyme (ou comme on l'appelle également, anoncvs) est une de fonctionnalité des utilitaires CVS livrés avec &os; qui permet la synchronisation avec un référentiel CVS sur une machine distante. Elle permet, entre autres, aux utilisateurs de &os;, de lire, sans autorisation particulière, les archives disponibles sur l'un des serveurs anoncvs officiels du projet &os;. Pour l'utiliser, il suffit simplement de définir la variable d'environnement CVSROOT pour qu'elle pointe sur le serveur anoncvs approprié, fournir le fameux mot de passe “anoncvs” avec la commande cvs login, puis ensuite utiliser la commande &man.cvs.1; pour y accéder de la même manière qu'à un référentiel local. La commande cvs login, stocke les mots de passe utilisés pour authentification sur le serveur CVS dans un fichier appelé .cvspass dans votre répertoire HOME. Si ce fichier n'existe pas, vous pourrez obtenir une erreur quand vous essaierez d'utiliser cvs login pour la première fois. Créez juste un fichier .cvspass vide, et relancez la commande. Bien que l'on puisse aussi dire que CVSup et anoncvs assurent globalement la même fonction, il y a diverses nuances qui peuvent influencer l'utilisateur dans son choix d'une méthode de synchronisation. En résumé, CVSup utilise plus efficacement les ressources réseau et est de loin la méthode la plus sophistiquée des deux, mais cela a un prix. Pour employer CVSup, il faut d'abord installer et configurer un programme client spécialisé avant de pouvoir récupérer quoi que ce soit, et il faut ensuite travailler par sous-ensemble relativement importants, que CVSup appelle catalogues. anoncvs, au contraire, peut être utilisé pour examiner n'importe quoi, d'un seul fichier à un programme particulier (tel que ls ou grep) en faisant référence au nom du module CVS. Bien sûr, anoncvs n'est bon qu'à lire un référentiel CVS, si vous avez donc l'intention de développer localement sur un référentiel partagé avec le projet &os;, alors vous n'avez d'autre choix que d'utiliser CVSup. <anchor id="anoncvs-usage">Utiliser CVS anonyme Configurer &man.cvs.1; pour utiliser un référentiel CVS anonyme consiste simplement à définir la variable d'environnement CVSROOT pour qu'elle pointe sur l'un des serveurs anoncvs du projet &os;. A la date de rédaction de ce document, les serveurs suivants sont disponibles: Autriche: :pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs (Utilisez cvs login et entrez le mot de passe “anoncvs” quand on vous le demandera.) France: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs (pserver (mot de passe “anoncvs”), ssh (aucun mot de passe)) Allemagne: :pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs (Utilisez cvs login et entrez le mot de passe “anoncvs” quand on vous le demandera.) Allemagne: :pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs (rsh, pserver, ssh, ssh/2022) Japon: :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs (Utilisez cvs login et entrez le mot de passe “anoncvs” quand on vous le demandera.) USA: freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs (ssh uniquement - pas de mot de passe) SSH HostKey: 1024 8b:c4:6f:9a:7e:65:8a:eb:50:50:29:7c:a1:47:03:bc root@ender.liquidneon.com SSH2 HostKey: 2048 4d:59:19:7b:ea:9b:76:0b:ca:ee:da:26:e2:3a:83:b8 ssh_host_dsa_key.pub USA: anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (ssh uniquement - pas de mot de passe) SSH HostKey: 1024 4b:83:b6:c5:70:75:6c:5b:18:8e:3a:7a:88:a0:43:bb root@ender.liquidneon.com SSH2 HostKey: 1024 80:a7:87:fa:61:d9:25:5c:33:d5:48:51:aa:8f:b6:12 ssh_host_dsa_key.pub Comme CVS vous permet de récupérer (“check out”) pratiquement n'importe quelle version des sources de &os; ayant existé (ou, dans certains cas, à venir), vous devez maîtriser l'indicateur de révision () de &man.cvs.1; et connaître les valeurs qu'il peut prendre dans le référentiel du projet &os;. Il y a deux sortes d'étiquettes, les étiquettes de révision et les étiquettes de branches. Les étiquettes de révision s'appliquent à une révision particulière. Leur signification ne varie pas d'un jour à l'autre. Les étiquettes de branche, à l'inverse, se rapportent à la dernière révision sur une branche particulière à un moment donné. Comme les étiquettes de branche ne se rapportent pas à une révision particulière, elles peuvent désigner demain quelque chose de différent de ce qu'elles référencent aujourd'hui. présente les étiquettes de révision qui peuvent intéresser l'utilisateur. Encore une fois, aucune ne s'applique au catalogue des logiciels portés puisque ce dernier ne présente pas de multiple révisions. Quand vous précisez une étiquette de branche, vous obtenez normalement la dernière version des fichiers de cette branche de développement. Si vous voulez une version antérieure, vous pouvez l'obtenir en précisant une date avec l'indicateur . Reportez-vous aux pages de manuel &man.cvs.1; pour plus de détails. Exemples Bien qu'il soit vraiment recommandé de lire attentivement les pages de manuel de &man.cvs.1; avant de faire quoi que ce soit, voici quelques exemples rapides qui vous montrent essentiellement comment utiliser CVS anonyme: Récupérer quelque chose de -CURRENT (&man.ls.1;): &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs &prompt.user; cvs login At the prompt, enter the password anoncvs. &prompt.user; cvs co ls Utiliser SSH pour récupérer l'arborescence <filename>src/</filename>: &prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established. DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts. Récupérer la version 6-STABLE de &man.ls.1;: &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs &prompt.user; cvs login At the prompt, enter the password anoncvs. &prompt.user; cvs co -rRELENG_6 ls Générer la liste des différences concernant &man.ls.1; (sous forme de “diffs unifiés”) entre différentes versions de &os; &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs &prompt.user; cvs login At the prompt, enter the password anoncvs. &prompt.user; cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls Savoir quels autres noms de modules peuvent être utilisés: &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs &prompt.user; cvs login At the prompt, enter the password anoncvs. &prompt.user; cvs co modules &prompt.user; more modules/modules Autres ressources Les ressources supplémentaires suivantes peuvent être utiles pour apprendre à se servir de CVS: Guide CVS de Cal Poly. CVS Home, la communauté de développement et de support de CVS. CVSweb est l'interface Web pour CVS du projet &os;. Utiliser CTM CTM CTM est une méthode pour synchroniser une arborescence de répertoires distants avec une arborescence centrale. Elle a été développée pour être utilisée avec l'arborescence des sources de &os;, bien que d'autres puissent avec le temps la trouver utile pour d'autres besoins. Il existe actuellement très peu, sinon aucune, documentation sur la façon de créer les deltas, contactez-donc la liste de diffusion &a.ctm-users.name; pour obtenir plus d'informations et si vous souhaitez utiliser CTM pour autre chose. Pourquoi utiliser <application>CTM</application>? CTM vous procurera un exemplaire local de l'arborescence des sources de &os;. Il y a plusieurs “moutures” de l'arborescence disponibles. Que vous désiriez suivre toute l'arborescence CVS ou seulement une de ses branches, CTM peut vous fournir ce dont vous avez besoin. Si vous développez activement sous &os;, mais ne disposez que d'une connectivité TCP/IP peu fiable ou n'en avez pas du tout, ou voulez tout simplement que les modifications vous soient automatiquement envoyées, CTM est ce qu'il vous faut. Il vous faudra jusqu'à trois deltas par jour sur les branches les plus actives. Cependant, vous devriez envisager de vous les faire envoyer automatiquement par courrier électronique. La taille des mises à jour est toujours aussi petite que possible. Typiquement moins de 5KO, occasionnellement (une fois sur 10), entre 10 et 50KO, et de temps à autre, une grosse modification de 100KO ou plus. Vous devrez aussi vous tenir au courant des différentes contre-parties liées au fait de travailler directement avec les sources en cours de développement plutôt qu'avec les versions publiées. C'est particulièrement vrai si vous choisissez les sources de la branche “-CURRENT”. Il est recommandé de lire Se synchroniser avec la version -CURRENT de FreeBSD. Que vous faut-il pour utiliser <application>CTM</application>? Vous aurez besoin de deux choses: le programme CTM, et les deltas initiaux à lui fournir (pour mettre à jour avec la version “courante”). Le programme CTM fait partie de &os; depuis la publication de la version 2.0, et se trouve dans /usr/src/usr.sbin/ctm si vous avez un exemplaire des sources en ligne. Vous pouvez obtenir les “deltas” à fournir à CTM de deux façons, par FTP ou par courrier électronique. Si vous avez un accès FTP à l'Internet, les sites suivants supportent l'accès à CTM: ou reportez-vous à la section Sites miroirs. Allez dans le répertoire vous concernant et commencez par télécharger le fichier README. Si vous souhaitez récupérer vos deltas par courrier électronique: Abonnez-vous à l'une des listes de distribution CTM. &a.ctm-cvs-cur.name; comprend toute l'arborescence -CURRENT. &a.ctm-src-4.name; concerne la branche 4.X, etc... (Si vous ne savez pas comment vous abonner à une liste, cliquez sur le nom de la liste ci-dessus ou sur &a.mailman.lists.link; puis cliquez sur la liste à laquelle vous désirez vous abonner. La page devrait contenir toutes les instructions nécessaires à l'abonnement.) Dès que vous commencez à recevoir vos mises à jour CTM par courrier électronique, vous pouvez utiliser le programme ctm_rmail pour les décompacter et les appliquer. Vous pouvez en fait utiliser directement le programme ctm_rmail à partir d'une entrée dans /etc/aliases si vous voulez automatiser complètement le processus. Consultez les pages de manuel de ctm_rmail pour plus de détails. Quelle que soit la méthode que vous utilisez pour récupérer les deltas CTM, vous devriez vous abonner à la liste de diffusion &a.ctm-announce.name;. Ce sera, dans l'avenir, le seul endroit où les annonces concernant le fonctionnement du système CTM seront faites. Cliquez sur le nom de la liste et suivez les instructions - pour s'incrire à la liste. + pour s'inscrire à la liste. Utiliser <application>CTM</application> pour la première fois Avant de pouvoir utiliser les deltas CTM, il vous faut un point de départ pour appliquer les deltas générés à partir de là. Tout d'abord vous devez déterminer ce que vous avez déjà. Tout le monde peut partir d'un répertoire “vide”. Vous devez utiliser un delta “Empty” (vide) au départ pour débuter votre arborescence supportée par CTM. Il fut question que l'un de ces deltas de départ soit distribué sur le CD, cependant ce n'est actuellement pas le cas. Puisque les arborescences représentent plusieurs dizaines de mégaoctets, vous préférerez commencer avec ce que vous avez déjà sous la main. Si vous disposez d'une version de &os; sur CD, vous pouvez copier ou extraire les sources initiales qui s'y trouvent. Cela évitera un transfert de données conséquent. Vous pouvez reconnaître ces deltas de transition au X qui suit leur numéro de séquence (src-cur.3210XEmpty.gz par exemple). La dénomination après le X correspond à l'origine de votre “racine” initiale. Empty est un répertoire vide. La règle est qu'une transition de base à partir de Empty est générée tous les 100 deltas. Au passage, elles sont volumineuses! De 70 à 80 mégaoctets de données compressées avec gzip est une taille habituelle pour les deltas XEmpty. Une fois que vous avez sélectionné un delta initial à partir duquel commencer, il vous faudra également tous les deltas de numéro supérieur qui le suivent. Utiliser <application>CTM</application> au quotidien Pour appliquer les deltas, tapez simplement: &prompt.root; cd /où/vous/voulez/mettre/les/fichiers &prompt.root; ctm -v -v /où/vous/mettez/vos/deltas/src-xxx.* CTM reconnaît les deltas qui ont été compressés avec gzip, vous n'avez donc pas besoin de les décompresser avant, ce qui économise de l'espace disque. A moins d'être absolument sûr du résultat, CTM ne touchera pas à votre arborescence. Pour contrôler la validité d'un delta, vous pouvez également utiliser l'indicateur et CTM ne modifiera alors pas votre arborescence; il vérifiera simplement l'intégrité du delta et regardera s'il peut s'appliquer proprement à votre arborescence en l'état. Il y a aussi d'autres option pour CTM, voyez les pages de manuel ou lisez les sources pour plus d'informations. C'est à peu près tout. Chaque fois que vous recevez un delta, passez-le à CTM pour tenir à jour votre arborescence des sources. N'effacez pas les deltas s'il vous est difficile de les télécharger de nouveau. Vous pouvez en avoir besoin si quelque chose mauvais se produit. Même si vous n'avez que des disquettes, envisagez d'utiliser &man.fdwrite.1; pour en faire une copie. Conserver vos modifications locales Si vous êtes développeur vous voudrez expérimenter et modifier des fichiers de l'arborescence des sources. CTM supporte de façon limitée les modifications locales: avant de contrôler l'existence d'un fichier foo, il regarde tout d'abord s'il y a un fichier foo.ctm. Si ce fichier existe, CTM l'utilisera au lieu de foo. Ce comportement vous permet de conserver de façon simple des modifications locales: copiez simplement les fichiers que vous envisagez de modifier dans des fichiers de même nom, mais avec le suffixe .ctm. Vous pouvez ensuite bidouiller tranquillement le code, pendant que CTM maintient à jour le fichier .ctm. D'autres options intéressantes de <application>CTM</application> Savoir avec précision ce que va modifier une mise à jour Vous pouvez connaître la liste des modifications que CTM appliquera à votre archive des sources en utilisant CTM avec l'option . C'est utile si vous voulez conserver la trace des modifications, pré- ou post- modifier les fichiers concernés, ou vous vous sentez un tantinet paranoïaque. Faire des sauvegardes avant la mise à jour Parfois vous voudrez sauvegarder tous les fichiers qui seraient toucher par une mise à jour CTM. Avec l'option , CTM sauvegarde tous les fichiers que seraient modifiés par delta CTM donné dans fichier_de_sauvegarde. Restreindre la liste des fichiers touchés par une mise à jour Parfois vous voudrez restreindre le champ d'application d'une mise à jour CTM, ou serez intéressé à n'extraire que quelques fichiers d'une séquence de deltas. Vous pouvez contrôler la liste de fichiers sur laquelle travaillera CTM en donnant comme filtre une expression régulière avec les options et . Par exemple, pour extraire une version à jour de lib/libc/Makefile de la série de deltas CTM que vous avez sauvegardé, lancez les commandes: &prompt.root; cd /where/ever/you/want/to/extract/it/ &prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.* Pour chaque fichier d'un delta CTM, les options et sont appliquées dans l'ordre donné sur la ligne de commande. Le fichier est traité par CTM uniquement s'il est sélectionné après application des options et . Perspectives pour <application>CTM</application> Il y en a des tonnes: Utiliser une méthode d'authentification au système CTM pour détecter la substitution de mises à jour. Faire le ménage dans les options de CTM, elles commencent à engendrer de la confusion et à contredire l'intuition. Divers Il existe aussi une séquence de deltas pour le catalogue des logiciels portés, mais elle n'a pas reçue beaucoup d'écho jusqu'ici. Miroirs <application>CTM</application> CTM/FreeBSD est disponible via FTP anonyme sur les miroirs suivants. Si vous faites le choix de vous procurer CTM via FTP anonyme, utilisez s'il vous plaît un site proche de vous. En cas de problème, contactez la liste de diffusion &a.ctm-users.name;. Californie, Bay Area, source officielle Afrique du Sud, serveur de sauvegarde pour les anciens deltas Taïwan/R.O.C. Si vous n'avez pas trouvé de miroir proche de vous, où si le miroir est incomplet, essayez d'utiliser un moteur de recherche comme alltheweb. Utiliser CVSup Introduction CVSup est un ensemble de logiciels pour la distribution et la mise à jour d'arborescences de sources à partir d'un référentiel CVS principal sur une machine serveur distante. Les sources de &os; sont archivées sous un référentiel CVS sur une machine centrale de développement en Californie. Grâce à CVSup, les utilisateurs de &os; peuvent facilement tenir à jour leur propre arborescence de sources. CVSup utilise le modèle pull de mise à jour. Dans ce schéma, chaque client réclame les mises à jour au serveur, si et quand il le souhaite. Le serveur attend passivement les demandes de mises à jour de ses clients. Toutes les mises à jour sont donc faites à la demande du client. Le serveur n'envoie jamais de mise à jour non sollicitée. Les utilisateurs doivent soit exécuter le client CVSup à la main pour obtenir une mise à jour, soit mettre en oeuvre une tâche cron pour l'exécuter automatiquement et à intervalles réguliers. Le terme CVSup, avec les majuscules, désigne l'ensemble du logiciel. Ses principales composantes sont le client cvsup qui s'exécute sur les machines de chaque utilisateur, et le serveur cvsupd, qui tourne sur tous les sites miroir de &os;. En lisant la documentation et les listes de diffusion de &os;, vous trouverez des références à sup. sup était le prédécesseur de CVSup, et remplissait la même fonction. CVSup est utilisé de la même façon que sup et, emploie de fait des fichiers de configuration qui sont compatibles avec ceux de sup. sup n'est plus utilisé pour le projet &os;, parce que CVSup est à la fois plus rapide et plus souple. Installation La méthode la plus simple pour installer CVSup est d'utiliser la version pré-compilée net/cvsup du catalogue des logiciels portés de &os;. Si vous préférez compiler CVSup à partir des sources, vous pouvez directement utiliser le logiciel porté net/cvsup. Cependant soyez averti: le logiciel porté net/cvsup est écrit en Modula-3, qui demande un temps et un espace disque non négligeables pour le télécharger et le compiler. Si vous avez l'intention d'utiliser CVSup sur une machine qui ne disposera pas de &xfree86; ou &xorg;, comme un serveur, assurez-vous que le logiciel porté de n'incluera pas l'interface graphique (“GUI”) de CVSup, net/cvsup-without-gui. Configuration de <application>CVSup</application> Le fonctionnement de CVSup est contrôlé par un fichier de configuration appelé supfile. Il y a des exemples de fichiers supfile dans le répertoire /usr/share/examples/cvsup/. Les informations du fichier supfile répondent pour CVSup aux question suivantes: Quels fichiers voulez-vous télécharger? Quelles versions de ces fichiers voulez-vous? D'où voulez-vous les télécharger? Où voulez-vous les mettre sur votre machine? Où voulez-vous mettre les fichiers d'état de votre machine? Dans les sections suivantes, nous allons renseigner un fichier supfile typique en répondant une à une à chacune de ces questions. Commençons par décrire la structure d'ensemble d'un fichier supfile. Un fichier supfile est un fichier texte. Les commentaires débutent par un # et se prolongent jusqu'à la fin de la ligne. Les lignes vides ou qui ne contiennent que des commentaires sont ignorées. Les autres lignes décrivent les ensembles de fichiers que l'utilisateur souhaite recevoir. Ces lignes commencent par le nom d'un “catalogue” - collection, un regroupement logique de fichiers défini par le serveur. Le nom du catalogue dit au serveur quels fichiers vous voulez. Ce nom est éventuellement suivi d'un ou plusieurs champs, séparés par un espace. Ces champs répondent aux questions listées ci-dessus. Il y deux types de champs: des indicateurs et des valeurs. Un indicateur est un mot-clé autonome, e.g., delete ou compress. Une valeur commence aussi par un mot-clé, mais il est impérativement suivi sans espace par un = et un deuxième mot. Par exemple, release=cvs est un champ définissant une valeur. Un fichier supfile spécifie en général plus d'un catalogue à télécharger. Une façon de construire un fichier supfile consiste à préciser explicitement tous les champs nécessaires pour chaque catalogue. Cependant, cela tend à donner des fichiers supfile avec des lignes assez longues, et ce n'est pas très pratique parce que la plupart des champs sont les mêmes pour tous les catalogues du fichier supfile. CVSup fournit un mécanisme pour s'affranchir de ce problème. Les lignes qui commencent par le nom du pseudo-catalogue spécial *default servent à définir les indicateurs et les valeurs qui seront pris par défaut pour les catalogues listés ensuite dans le fichier supfile. Une valeur par défaut peut-être surchargée pour un catalogue particulier, en associant au catalogue lui-même une valeur différente. Les valeurs par défaut peuvent également être redéfinies, ou bien on peut en définir de nouvelles, en cours de fichier supfile, par de nouvelles lignes *default. Sachant cela, nous allons maintenant mettre au point un fichier supfile pour télécharger et mettre à jour l'arborescence principale de FreeBSD-CURRENT. Quels fichiers voulez-vous télécharger? Les fichiers disponibles via CVSup sont regroupés par “catalogues” - collections. Les catalogues disponibles sont décrits dans la section suivante. Dans notre exemple, nous souhaitons recevoir toute l'arborescence principale du système &os;. Il existe un unique gros catalogue src-all qui correspond à tout cela. Pour commencer à renseigner notre fichier supfile, nous listons simplement les catalogues, un par ligne (dans notre cas, une seule ligne): src-all Quelle(s) version(s) voulez-vous télécharger? Avec CVSup, vous pouvez obtenir pratiquement n'importe quelle version qui ait - existée des sources. C'est possible parce que le + existé des sources. C'est possible parce que le serveur cvsupd travaille directement à partir du référentiel CVS, qui contient toutes les versions. Vous indiquez quelle version vous voulez en utilisant les valeurs tag= et . Faites très attention à définir correctement la valeur tag=. Certaines étiquettes ne s'appliquent qu'à certains catalogues. Si l'étiquette que vous donnez n'est pas valable ou mal orthographiée, CVSup effacera des fichiers que vous ne vouliez probablement pas supprimer. En particulier, n'utilisez que tag=. pour les catalogues ports-*. Les valeurs données avec tag= sont des étiquettes symboliques définies dans le référentiel. Il y a deux sortes d'étiquettes, les étiquettes de révision et les étiquettes de branches. Les étiquettes de révision s'appliquent à une révision particulière. Leur signification ne varie pas d'un jour à l'autre. Les étiquettes de branches, à l'inverse, se rapportent à la dernière révision sur une branche particulière à un moment donné. Comme les étiquettes de branches ne se rapportent pas à une révision particulière, elles peuvent désigner demain quelque chose de différent de ce qu'elles référencent aujourd'hui. contient les étiquettes de branches qui peuvent intéresser les utilisateurs. Quand on spécifie une étiquette dans le fichier de configuration de CVSup, elle doit être précédée du champ tag= (RELENG_4 deviendra tag=RELENG_4). Gardez à l'esprit que seule l'étiquette tag=. n'a de signification pour le catalogue des logiciels portés. Faites très attention à mentionner précisément l'étiquette exacte. CVSup ne sait différencier une étiquette valide d'une étiquette qui ne l'est pas. Si vous orthographiez mal l'étiquette, CVSup se comportera comme si vous aviez donné une étiquette valide qui ne se réfère à aucun fichier. Dans ce cas il supprimera toutes les sources que vous avez déjà. Lorsque vous indiquez une étiquette de branche, vous recevez normalement les dernières versions des fichiers sur cette branche de développement. Si vous voulez récupérer des version antérieures, vous pouvez le faire en donnant une date avec le champ . La page de manuel de &man.cvsup.1; vous expliquent comment le faire. Dans notre exemple, nous désirons obtenir &os.current;. Nous ajoutons alors la ligne suivante au début de notre fichier supfile: *default tag=. Il existe un cas particulier important qui se produit lorsque que l'on ne spécifie ni le champ tag= ni le champ date=. Dans ce cas, vous obtenez alors les fichiers RCS directement du référentiel CVS du serveur, plutôt que de recevoir une version donnée. Les développeurs préfèrent généralement cette façon de travailler. En maintenant une version du référentiel lui-même sur leur système, ils ont la possibilité de consulter l'historique des révisions et d'accéder aux versions antérieures des fichiers. Cet avantage ne s'obtient cependant qu'au prix d'une consommation importante d'espace disque. D'où voulez-vous les télécharger? Nous employons le champ host= pour dire à cvsup où récupérer ses mises à jour. N'importe quel des sites miroir CVSup fera l'affaire, bien que vous devriez essayer de choisir un site proche de vous. Dans cet exemple, nous utiliserons un site fictif de distribution de &os; cvsup99.FreeBSD.org: *default host=cvsup99.FreeBSD.org Vous devrez changer le site pour un qui existe réellement avant d'exécuter CVSup. Lors de l'exécution de cvsup, vous pouvez surcharger cette définition sur la ligne de commande avec l'option . Où voulez-vous les mettre sur votre machine? Le champ prefix= dit à cvsup où mettre les fichiers qu'il obtient. Dans l'exemple, nous mettrons les fichiers source directement dans notre arborescence des sources, /usr/src. Le répertoire src est déjà implicitement défini dans les catalogues que nous avons choisis de télécharger, voici donc la définition correcte: *default prefix=/usr cvsup doit-il mettre les fichiers d'état? Le client CVSup tient à jour des fichiers d'état dans ce qui est appelé le répertoire de “base”. Ces fichiers permettent à CVSup de travailler plus efficacement en gardant la trace des modifications que vous avez déjà reçues. Nous utiliserons le répertoire de base standard, /var/db: *default base=/var/db Si votre répertoire de base n'existe pas encore, c'est le moment de le créer. Le client cvsup refusera de s'exécuter si le répertoire de base n'existe pas. Diverses autres options de configuration dans le fichier supfile: Il y a une autre ligne d'instruction qui doit normalement figurer dans le fichier supfile: *default release=cvs delete use-rel-suffix compress release=cvs dit au serveur d'obtenir les informations du référentiel principal de &os;. C'est quasiment toujours le cas, mais il existe d'autres possibilités qui sortent du cadre du présent document. delete donne à CVSup l'autorisation de supprimer des fichiers. Vous devriez toujours utiliser cette possibilité, de sorte que CVSup puisse vraiment maintenir à jour votre arborescence des sources. CVSup veille à ne supprimer que les fichiers qu'il maintient. Les fichiers supplémentaires que vous pourriez avoir ne seront pas touchés. use-rel-suffix est... ésotérique. Si vous voulez vraiment savoir de quoi il retourne, lisez la page de manuel de &man.cvsup.1;. Sinon, mettez cet indicateur et ne vous en souciez pas plus. compress permet d'utiliser un algorithme de compression de type &man.gzip.1; sur la ligne de communication. Si votre connexion a la vitesse d'une ligne T1 ou plus, vous ne devriez probablement pas utiliser la compression. Sinon, cela facilite substantiellement les choses. Assembler les morceaux: Voici le fichier supfile de notre exemple en entier: *default tag=. *default host=cvsup99.FreeBSD.org *default prefix=/usr *default base=/var/db *default release=cvs delete use-rel-suffix compress src-all Le fichier <filename>refuse</filename> Comme mentionné ci-dessus, CVSup utilise une méthode de type pull. Fondamentalement, cela signifie que vous vous connectez au serveur CVSup, ce dernier dit, “Voici ce que vous pouvez télécharger...”, puis votre client répond “Ok, je prendrai ceci, ceci, ceci et cela”. Dans la configuration par défaut, le client CVSup téléchargera chaque fichier associé avec le catalogue et l'étiquette que vous avez choisi dans le fichier de configuration. Cependant cela ne correspond pas toujours à ce que vous désirez, tout particulièrement si vous mettez à jour les arborescences doc, ports, ou www — la plupart des personnes sont incapables de lire quatre ou cinq langues différentes, et donc elles n'ont pas besoin de télécharger les fichiers spécifiques à certaines langues. Si vous mettez à jour le catalogue des logiciels portés, vous pouvez remédier à cela en spécifiant chaque catalogue individuellement (e.g., ports-astrology, ports-biology, etc au lieu de spécifier simplement ports-all). Cependant puisque les arborescences doc et www ne disposent pas de catalogues spécifiques à chaque langue, vous devez utiliser une des nombreuses fonctions de CVSup: le fichier refuse. Le fichier refuse indique essentiellement à CVSup qu'il ne doit pas télécharger chaque fichier d'un catalogue; en d'autre termes, il dit au client de refuser certains fichiers du serveur. Le fichier refuse peut être trouvé (ou, si vous n'en disposez pas encore d'un, doit être placé) dans base/sup/. base est défini dans votre supfile; notre répertoire base est défini en tant que /var/db ce qui signifie que le fichier refuse est par défaut /var/db/sup/refuse. Le fichier refuse a un format très simple; il contient tout simplement les noms des fichiers ou des répertoires que vous ne désirez pas rapatrier. Par exemple, si vous ne pouvez parler d'autres langues que l'anglais ou un peu d'allemand, et vous ne ressentez pas le besoin de lire la traduction en allemand de la documentation, vous pouvez mettre ce qui suit dans le fichier refuse: doc/bn_* doc/da_* doc/de_* doc/el_* doc/es_* doc/fr_* doc/it_* doc/ja_* doc/nl_* doc/no_* doc/pl_* doc/pt_* doc/ru_* doc/sr_* doc/tr_* doc/zh_* et ainsi de suite pour les autres langues (vous pouvez en trouver une liste complète en parcourant le référentiel CVS de &os;). Avec cette fonction très utile, les utilisateurs disposant d'une connexion lente ou payant le temps de connexion à la minute seront en mesure d'économiser de précieuses minutes comme ils n'auront plus du tout besoin de télécharger des fichiers qu'ils n'utiliseront jamais. Pour plus d'information sur les fichiers refuse et d'autres caractéristiques intéressantes de CVSup, consultez sa page de manuel. Exécuter <application>CVSup</application> Vous êtes maintenant prêt à essayer de faire une mise à jour. La ligne de commande à utiliser est très simple: &prompt.root; cvsup supfile supfile est bien sûr le nom du fichier supfile que vous venez de créer. Si vous êtes sous X11, cvsup affichera une interface graphique avec des boutons pour les opérations courantes. Appuyez sur le bouton go et suivez le déroulement des opérations. Comme, dans cet l'exemple, vous mettez directement à jour votre arborescence /usr/src, vous devrez exécuter le programme en tant que root de façon à ce que cvsup ait le droit de mettre à jour vos fichiers. Comme vous venez juste de créer votre fichier de configuration et n'avez encore jamais utilisé le programme, il est compréhensible que cela vous rende nerveux. Il est facile de faire un essai sans toucher à vos précieux fichiers. Créez juste un nouveau répertoire quelque part et donnez-le en argument supplémentaire sur la ligne de commande: &prompt.root; mkdir /var/tmp/dest &prompt.root; cvsup supfile /var/tmp/dest Le répertoire indiqué sera pris comme destination pour tous les fichiers modifiés. CVSup examinera les fichiers habituels dans /usr/src, mais ne les modifiera pas et n'en supprimera aucun. Les modifications atterriront dans /var/tmp/dest/usr/src. CVSup ne touchera pas non plus à ses fichiers d'état dans le répertoire de base, lorsqu'il est invoqué de cette manière. Les nouvelles versions de ces fichiers iront dans le répertoire indiqué. A partir du moment où vous avez les les droits en lecture sur /usr/src, vous n'avez pas besoin d'être root pour faire ce genre d'essai. Si vous n'êtes pas sous X11, ou si vous n'aimez tout simplement pas les interfaces graphiques, vous devrez ajouter quelques options supplémentaires sur la ligne de commande de cvsup: &prompt.root; cvsup -g -L 2 supfile L'option dit à CVSup de ne pas utiliser son interface graphique. C'est automatique si vous n'êtes pas sous X11, sinon vous devez le préciser. L'option dit à CVSup d'afficher le détail de ce qu'il est en train de faire. Il y a trois niveaux de trace, de à . La valeur par défaut est de 0, ce qui équivaut à n'émettre que les messages d'erreur. Il y a de nombreuses autres option disponibles. Pour en obtenir un résumé, tapez cvsup -H. Pour une description plus détaillée, reportez-vous aux pages de manuel. Une fois que vous êtes satisfait de la façon dont se passent les mises à jour, vous pouvez mettre en place une exécution de CVSup à intervalles réguliers en utilisant &man.cron.8;. Bien évidemment, vous ne devez pas laisser CVSup utiliser don interface graphique quand vous le lancez depuis &man.cron.8;. Catalogue de fichiers <application>CVSup</application> Les catalogues de fichiers disponibles via CVSup sont organisés hiérarchiquement. Il y a quelques gros catalogues, qui sont divisés en plus petits sous-catalogues. Recevoir un gros catalogue équivaut à recevoir chacun de ces sous-catalogues. Les relations hiérarchiques entre les sous-catalogues sont décrites par les indentations dans la liste ci-dessous. Les catalogues habituellement les plus employés sont src-all, et ports-all. Les autres catalogues ne sont utilisés que par de petits groupes de personnes pour des besoins particuliers, et certains sites miroir ne les mettent pas à disposition. cvs-all release=cvs Le référentiel CVS principal de &os;, incluant les logiciels de chiffrement. distrib release=cvs Les fichiers ayant trait à la distribution et à la mise en place de sites miroir &os;. doc-all release=cvs Les sources du manuel &os; et d'autres documentations. Cela de comprend pas les fichiers pour le site Web de &os;. ports-all release=cvs Le catalogue des logiciels portés de &os;. Si vous ne voulez pas mettre à jour l'intégralité du catalogue ports-all (l'intégralité du catalogue des logiciels portés), mais utiliser un des sous-catalogues listés ci-dessous, assurez-vous de toujours mettre à jour le sous-catalogue ports-base! Dès qu'il - y a un changement dans l'infrastucture + y a un changement dans l'infrastructure de compilation des logiciels portés représentée par ports-base, il est certain que ces changements seront utilisés par un logiciel porté très rapidement. Donc, si vous ne mettez à jour que les logiciels portés en tant que tel et qu'ils utilisent certains des changements, il y a de grandes chances pour que leur compilation échoue avec de mystérieux messages d'erreur. La première chose à faire dans ce cas est de vérifier que votre sous-catalogue ports-base est à jour. Si vous voulez construire votre propre version locale du fichier ports/INDEX, vous devez accepter le catalogue ports-all (l'intégralité du catalogue des logiciels portés). La construction de ports/INDEX avec une arborescence partielle n'est pas supportée. Consultez la FAQ. ports-accessibility release=cvs Logiciels pour utilisateurs handicapées. ports-arabic release=cvs Support pour l'arabe. ports-archivers release=cvs Outils d'archivage. ports-astro release=cvs Logiciels d'astronomie. ports-audio release=cvs Support du son. ports-base release=cvs L'infrastructure de compilation du catalogue des logiciels portés — divers fichiers situés dans les répertoires Mk/ et Tools/ sous-répertoires de la hiérarchie /usr/ports. Lisez l'important avertissement ci-dessus: vous devriez toujours mettre à jour ce sous-catalogue, dès que vous mettez à jour une partie du catalogue des logiciels portés de &os;! ports-benchmarks release=cvs Evaluation de performances. ports-biology release=cvs Biologie. ports-cad release=cvs Outils de conception assistée par ordinateur. ports-chinese release=cvs Support pour le chinois. ports-comms release=cvs Logiciels de communication. ports-converters release=cvs Conversion entre codages de caratères. ports-databases release=cvs Bases de données. ports-deskutils release=cvs Les choses que l'on trouvait sur un bureau avant l'invention des ordinateurs. ports-devel release=cvs Outils de développement. ports-dns release=cvs Logiciels relatifs au DNS. ports-editors release=cvs Editeurs. ports-emulators release=cvs Emulateurs d'autres systèmes d'exploitation. ports-finance release=cvs Applications concernant les finances et l'argent. ports-ftp release=cvs Clients et serveurs FTP. ports-games release=cvs Jeux. ports-german release=cvs Support pour l'allemand. ports-graphics release=cvs Outils graphiques. ports-hebrew release=cvs Support de l'hébreu. ports-hungarian release=cvs Support du hongrois. ports-irc release=cvs Outils pour l'IRC. ports-japanese release=cvs Support pour le japonais. ports-java release=cvs Outils &java;. ports-korean release=cvs Support pour le coréen. ports-lang release=cvs Langages de programmation. ports-mail release=cvs Logiciels de courrier électronique. ports-math release=cvs Logiciels de calcul numérique. ports-mbone release=cvs Applications MBone. ports-misc release=cvs Utilitaires divers. ports-multimedia release=cvs Logiciels pour le multimedia. ports-net release=cvs Logiciels réseau. ports-net-im release=cvs Logiciels de messagerie instantanée. ports-net-mgmt release=cvs Logiciels de gestion des réseaux. ports-net-p2p release=cvs Logiciels pour le peer to peer. ports-news release=cvs Logiciels pour les forums de discussion USENET. ports-palm release=cvs Logiciels de support des machines Palm. ports-polish release=cvs Support pour le polonais. ports-portuguese release=cvs Support pour le portugais. ports-print release=cvs Logiciels d'impression. ports-russian release=cvs Support pour le russe. ports-science release=cvs Science. ports-security release=cvs Outils de sécurité. ports-shells release=cvs Interpréteurs de commandes. ports-sysutils release=cvs Utilitaires système. ports-textproc release=cvs Outils de traitement de texte (sauf les logiciels de publication assistée par ordinateur). ports-ukrainian release=cvs Support de l'ukrainien. ports-vietnamese release=cvs Support du vietnamien. ports-www release=cvs Logiciels concernant le World Wide Web. ports-x11 release=cvs Logiciel pour le système X window. ports-x11-clocks release=cvs Horloges pour X11. ports-x11-fm release=cvs Gestionnaires de fichiers pour X11. ports-x11-fonts release=cvs Polices de caractères et outils associés pour X11. ports-x11-toolkits release=cvs “Toolkits” X11. ports-x11-servers release=cvs Serveurs X11. ports-x11-themes release=cvs Thèmes X11. ports-x11-wm release=cvs Gestionnaires de fenêtres pour X11. src-all release=cvs Les sources du système &os;, comprenant les logiciels de chiffrement. src-base release=cvs Divers fichiers en haut de la hiérarchie /usr/src. src-bin release=cvs Programmes utilisateurs qui peuvent être utiles en mode mono-utilisateur (/usr/src/bin). src-contrib release=cvs Utilitaires et bibliothèques d'origine indépendante du projet &os;, employés à peu près tels quels (/usr/src/contrib). src-crypto release=cvs Utilitaires et bibliothèques pour le chiffrement d'origine indépendante du projet &os;, employés à peu près tels quels (/usr/src/crypto). src-eBones release=cvs Kerberos et DES (/usr/src/eBones). Non utilisés dans les versions de &os; actuellement publiées. src-etc release=cvs Fichiers de configuration du système (/usr/src/etc). src-games release=cvs Jeux (/usr/src/games). src-gnu release=cvs Utilitaires soumis à la licence publique GNU (/usr/src/gnu). src-include release=cvs Fichiers d'entête (/usr/src/include). src-kerberos5 release=cvs Logiciel de sécurité Kerberos5 (/usr/src/kerberos5). src-kerberosIV release=cvs Logiciel de sécurité KerberosIV (/usr/src/kerberosIV). src-lib release=cvs Bibliothèques (/usr/src/lib). src-libexec release=cvs Programmes système normalement exécutés par d'autres programmes (/usr/src/libexec). src-release release=cvs Fichiers nécessaires à la génération d'une version publiable de &os; (/usr/src/release). src-sbin release=cvs Utilitaires système pour le mode mono-utilisateur (/usr/src/sbin). src-secure release=cvs Commandes et bibliothèques pour le chiffrage (/usr/src/secure). src-share release=cvs Fichiers qui peuvent être partagés par plusieurs systèmes (/usr/src/share). src-sys release=cvs Le noyau (/usr/src/sys). src-sys-crypto release=cvs Code du noyau destiné au chiffrement (/usr/src/sys/crypto). src-tools release=cvs Divers outils pour la maintenance de &os; (/usr/src/tools). src-usrbin release=cvs Outils utilisateur (/usr/src/usr.bin). src-usrsbin release=cvs Utilitaires système (/usr/src/usr.sbin). www release=cvs Les sources du site WWW de &os;. distrib release=self Fichiers de configuration du serveur CVSup. Utilisés par les sites miroir CVSup. gnats release=current Base de données GNATS d'historique des bogues. mail-archive release=current Archives des listes de diffusion &os;. www release=current Les fichiers/données WWW publiés (pas les fichiers source). Utilisés par les sites miroir WWW. Pour plus d'informations Pour la FAQ de CVSup et d'autres informations concernant CVSup, consultez la page Web de CVSup. La plupart des discussions relatives à l'utilisation de CVSup sous &os; ont lieu sur la &a.hackers;. Les nouvelles versions du logiciel y sont annoncés ainsi que sur la &a.announce;. Toutes questions et rapports de bogues devraient être adressés à l'auteur du programme à adresse cvsup-bugs@polstra.com. Sites CVSup Des serveurs CVSup pour &os; fonctionnent aux sites suivants: &chap.mirrors.cvsup.inc; Utiliser Portsnap Introduction Portsnap est un système de distribution sécurisée du catalogue des logiciels portés de &os;. Approximativement chaque heure, un instantané du catalogue des logiciels portés est généré, rassemblé et signé de manière chiffrée. Les fichiers résultants sont alors distribués par l'intermédiaire du protocole HTTP. Tout comme CVSup, Portsnap utilise un modèle de mise à jour de type pull: le catalogue des logiciels portés packagé et signé est placé sur un serveur Web qui attend les requêtes des clients. Les utilisateurs doivent soit exécuter manuellement &man.portsnap.8; pour télécharger les mises à jour, soit configurer &man.cron.8; pour un téléchargement régulier et automatique des mises à jour. Pour des raisons techniques, Portsnap ne met pas à jour le catalogue des logiciels portés directement dans le répertoire /usr/ports; le logiciel travaille plutôt par défaut sur une version compressée de l'arborescence des logiciels portés dans le répertoire /var/db/portsnap. Cette copie compressée est ensuite utilisée pour mettre à jour le catalogue des logiciels portés. Si Portsnap est installé à partir du catalogue des logiciels portés de &os;, alors l'emplacement par défaut pour son instantané compressé sera /usr/local/portsnap au lieu de /var/db/portsnap. Installation Sous &os; 6.0 et les versions plus récentes, Portsnap fait partie du système de base de &os;. Sous des versions plus anciennes de &os;, il peut être installé à partir du logiciel porté sysutils/portsnap. Configuration de Portsnap L'exécution de Portsnap est contrôlée par le fichier de configuration /etc/portsnap.conf. Pour la plupart des utilisateurs, le fichier de configuration par défaut sera suffisant; pour plus de détails, consultez la page de manuel &man.portsnap.conf.5;. Si Portsnap est installé à partir du catalogue des logiciels portés, il utilisera /usr/local/etc/portsnap.conf comme fichier de configuration au lieu de /etc/portsnap.conf. Ce fichier n'est pas créé lors de l'installation du logiciel, mais un fichier d'exemple est fourni; pour le copier à son emplacement correct, utilisez la commande suivante: &prompt.root; cd /usr/local/etc && cp portsnap.conf.sample portsnap.conf Exécuter <application>Portsnap</application> pour la première fois Au premier lancement de la commande &man.portsnap.8;, il sera nécessaire de télécharger un instantané compressé de l'intégralité de l'arborescence des logiciels portés dans /var/db/portsnap (ou /usr/local/portsnap si Portsnap a été installé à partir du catalogue des logiciels portés). Au début de l'année 2006, cela représentait un téléchargement d'environ 41 Mo. &prompt.root; portsnap fetch Une fois que l'instantané compressé a été récupéré, une copie utilisable de l'arborescence des logiciels portés peut être extraite dans le répertoire /usr/ports. Cela est nécessaire même si une arborescence a déjà été créée dans ce répertoire (par exemple en utilisant CVSup), puisque cela met en place une version de référence à partir de laquelle portsnap peut déterminer plus tard quelles parties du catalogue des logiciels portés a besoin d'une mise à jour. &prompt.root; portsnap extract Dans l'installation par défaut de &os; /usr/ports n'est pas créé. Si vous utilisez &os; 6.0-RELEASE, ce répertoire doit être créé avant d'utiliser la commande portsnap. Sur les versions de &os; plus récentes ou avec la version de Portsnap installée à partir du catalogue des logiciels portés, cette création est effectuée automatiquement à la premiere utilisation de la commande portsnap. Mettre à jour l'arborescence des logiciels portés Après qu'un instantané initial du catalogue des logiciels portés ait été récupéré puis décompressé dans le répertoire /usr/ports, la mise à jour du catalogue se divise en deux étapes: la récupération (fetch) des mises à jour de l'instantané, et leur utilisation pour mettre à jour (update) le catalogue des logiciels portés en tant que tel. Ces deux étapes peuvent être effectuées par l'intermédiaire d'une seule commande portsnap: &prompt.root; portsnap fetch update Des versions anciennes de portsnap ne supporte pas cette syntaxe; en cas d'échec, utilisez à la place ceci: &prompt.root; portsnap fetch &prompt.root; portsnap update Exécuter Portsnap à partir de cron Afin d'éviter tout problème d'embouteillage lors de l'accès aux serveurs Portsnap, portsnap fetch ne fonctionnera pas à partir d'une tâche &man.cron.8;. Il existe, à la place, une commande portsnap cron spécifique, qui patiente durant un délai aléatoire pouvant aller jusqu'à 3600 secondes avant de récupérer les mises à jour. De plus, il est fortement recommandé de ne pas exécuter portsnap update à partir d'une tâche cron, puisque cela peut être à l'origine de graves problèmes si la commande a lieu au même moment qu'un logiciel porté est en train d'être compilé ou installé. Cependant, les fichiers INDEX peuvent être mis à jour sans risque, et cela peut être fait en passant l'indicateur à la commande portsnap (bien entendu si portsnap -I update est exécuté à par cron, il sera alors nécessaire de lancer portsnap update sans l'option ultérieurement pour mettre à jour le reste de l'arborescence). L'ajout de la ligne suivante dans le fichier /etc/crontab demandera à portsnap de mettre à jour son instantané compressé et les fichiers INDEX du répertoire /usr/ports, et enverra un courrier électronique si un logiciel porté installé n'est pas à jour: 0 3 * * * root portsnap -I cron update && pkg_version -vIL= Si l'horloge système n'est pas positionnée sur le fuseau horaire local, remplacez 3 par une valeur quelconque comprise entre 0 et 23, afin de répartir de manière plus équilibrée la charge sur les serveurs Portsnap. Des versions anciennes de portsnap ne supportent pas l'utilisation de commandes multiples (par exemple cron update) lors de la même invocation de portsnap. Si la ligne précédente échoue, essayez de remplacer portsnap -I cron update par portsnap cron && portsnap -I update. Etiquettes CVS Quand on récupère ou l'on met à jour les sources en utilisant cvs ou CVSup, une étiquette de révision doit être spécifiée. Une étiquette de révision fait référence soit à une branche particulière de développement de &os;, soit à un moment particulier dans le temps. Le premier type d'étiquette est nommé “étiquette de branche”, le second type “étiquette de publication” — release tags. Etiquettes de branche Toutes ces étiquettes, à l'exception de l'étiquette HEAD (qui est une étiquette toujours valide), ne s'appliquent qu'à l'arborescence src/. Il n'y a pas de branche pour les arborescences ports/, doc/, et www/. HEAD Nom symbolique pour la branche principale de développement, ou FreeBSD-CURRENT. C'est aussi la valeur par défaut lorsque la révision n'est pas précisée. Sous CVSup, cette étiquette est représentée par un . (ce n'est pas une ponctuation, mais bien le caractère .). Sous CVS, c'est la valeur par défaut quand aucune étiquette de révision n'est précisée. Ce n'est généralement pas une bonne idée de récupérer ou mettre à jour vers les sources CURRENT sur une machine STABLE, à moins que cela ne soit vraiment votre intention. RELENG_6 Branche de développement pour &os;-6.X, également connue sous le nom de &os; 6-STABLE. RELENG_6_1 Branche de publication de la version &os;-6.1, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_6_0 Branche de publication de la version &os;-6.0, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_5 Branche de développement pour &os;-5.X, également connue sous le nom de &os; 5-STABLE. RELENG_5_4 Branche de publication de la version &os;-5.4, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_5_3 Branche de publication de la version &os;-5.3, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_5_2 Branche de publication des versions &os;-5.2 et &os;-5.2.1, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_5_1 Branche de publication de la version FreeBSD-5.1, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_5_0 Branche de publication de la version FreeBSD-5.0, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_4 Branche de développement de FreeBSD-4.X, aussi connue sous le nom de &os; 4-STABLE. RELENG_4_11 Branche de publication de la version &os;-4.11, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_4_10 Branche de publication de la version &os;-4.10, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_4_9 Branche de publication de la version &os;-4.9, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_4_8 Branche de publication de la version FreeBSD-4.8, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_4_7 Branche de publication de la version FreeBSD-4.7, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_4_6 Branche de publication des versions FreeBSD-4.6 et FreeBSD-4.6.2, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_4_5 Branche de publication de la version FreeBSD-4.5, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_4_4 Branche de publication de la version FreeBSD-4.4, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_4_3 Branche de publication de la version FreeBSD-4.3, utilisée uniquement pour les avis de sécurité et autres correctifs de problèmes critiques. RELENG_3 Branche de développement de FreeBSD-3.X, aussi connue sous le nom de 3.X-STABLE. RELENG_2_2 Branche de développement de FreeBSD-2.2.X, aussi connue sous le nom de 2.2-STABLE. Cette branche est en grande partie obsolète. Etiquettes de publication Ces étiquettes font référence à un moment bien précis dans le temps quand une version particulière de &os; a été publiée. Le processus d'ingénierie des publications est documenté en détails dans les documents Information sur la publication des versions et Processus de publication. L'arborescence src utilise des étiquettes commençant par RELENG_. Les arborescences ports et doc utilisent des étiquettes dont les noms commencent par RELEASE. Enfin, l'arborescence www ne bénéficie pas d'étiquette particulière pour les publications. RELENG_6_0_0_RELEASE FreeBSD 6.0 RELENG_5_4_0_RELEASE FreeBSD 5.4 RELENG_4_11_0_RELEASE FreeBSD 4.11 RELENG_5_3_0_RELEASE FreeBSD 5.3 RELENG_4_10_0_RELEASE FreeBSD 4.10 RELENG_5_2_1_RELEASE FreeBSD 5.2.1 RELENG_5_2_0_RELEASE FreeBSD 5.2 RELENG_4_9_0_RELEASE FreeBSD 4.9 RELENG_5_1_0_RELEASE FreeBSD 5.1 RELENG_4_8_0_RELEASE FreeBSD 4.8 RELENG_5_0_0_RELEASE FreeBSD 5.0 RELENG_4_7_0_RELEASE FreeBSD 4.7 RELENG_4_6_2_RELEASE FreeBSD 4.6.2 RELENG_4_6_1_RELEASE FreeBSD 4.6.1 RELENG_4_6_0_RELEASE FreeBSD 4.6 RELENG_4_5_0_RELEASE FreeBSD 4.5 RELENG_4_4_0_RELEASE FreeBSD 4.4 RELENG_4_3_0_RELEASE FreeBSD 4.3 RELENG_4_2_0_RELEASE FreeBSD 4.2 RELENG_4_1_1_RELEASE FreeBSD 4.1.1 RELENG_4_1_0_RELEASE FreeBSD 4.1 RELENG_4_0_0_RELEASE FreeBSD 4.0 RELENG_3_5_0_RELEASE FreeBSD-3.5 RELENG_3_4_0_RELEASE FreeBSD-3.4 RELENG_3_3_0_RELEASE FreeBSD-3.3 RELENG_3_2_0_RELEASE FreeBSD-3.2 RELENG_3_1_0_RELEASE FreeBSD-3.1 RELENG_3_0_0_RELEASE FreeBSD-3.0 RELENG_2_2_8_RELEASE FreeBSD-2.2.8 RELENG_2_2_7_RELEASE FreeBSD-2.2.7 RELENG_2_2_6_RELEASE FreeBSD-2.2.6 RELENG_2_2_5_RELEASE FreeBSD-2.2.5 RELENG_2_2_2_RELEASE FreeBSD-2.2.2 RELENG_2_2_1_RELEASE FreeBSD-2.2.1 RELENG_2_2_0_RELEASE FreeBSD-2.2.0 Sites AFS Il y a des serveurs AFS pour &os; sur les sites suivants: Suède Le chemin d'accès au fichiers est /afs/stacken.kth.se/ftp/pub/FreeBSD/ stacken.kth.se # Stacken Computer Club, KTH, Suède 130.237.234.43 #hot.stacken.kth.se 130.237.237.230 #fishburger.stacken.kth.se 130.237.234.3 #milko.stacken.kth.se Responsable ftp@stacken.kth.se Sites rsync Les sites suivants fournissent &os; en utilisant le protocole rsync. L'utilitaire rsync fonctionne globalement de la même manière que la commande &man.rcp.1;, mais il dispose de plus d'options et utilise le protocole de mise à jour à distance rsync qui ne transfert que les différences entre deux ensembles de fichiers, ce qui accélère énormément la synchronisation par le réseau. C'est surtout utile si vous disposez d'un miroir du serveur FTP de &os;, ou du référentiel CVS. La suite rsync est disponible sur de nombreux systèmes d'exploitation, et sous &os;, voir le logiciel porté net/rsync ou utilisez la version pré-compilée. République Tchèque rsync://ftp.cz.FreeBSD.org/ Collections disponibles: ftp: un miroir partiel du serveur FTP &os;. FreeBSD: un miroir complet du serveur FTP &os;. Allemagne rsync://grappa.unix-ag.uni-kl.de/ Collections disponibles: freebsd-cvs: référentiel CVS &os; complet. Cette machine est également miroir des référentiels CVS des projets NetBSD et OpenBSD, parmi d'autres. Hollande rsync://ftp.nl.FreeBSD.org/ Collections disponibles: vol/4/freebsd-core: un miroir complet du serveur FTP &os;. Royaume-Uni rsync://rsync.mirror.ac.uk/ Collections disponibles: ftp.freebsd.org: Un miroir complet du serveur FTP &os;. Etats Unis d'Amérique rsync://ftp-master.FreeBSD.org/ Ce serveur ne pourra être utilisé que par les sites miroirs primaires &os;. Collections disponibles: FreeBSD: l'archive principale du serveur FTP &os;. acl: la liste principale ACL de &os;. rsync://ftp13.FreeBSD.org/ Collections disponibles: FreeBSD: Un miroir complet du serveur FTP &os;.
diff --git a/fr_FR.ISO8859-1/books/handbook/multimedia/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/multimedia/chapter.sgml index 3dbe2a1747..f41d40bd97 100644 --- a/fr_FR.ISO8859-1/books/handbook/multimedia/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/multimedia/chapter.sgml @@ -1,2150 +1,2150 @@ Ross Lippert Rédaction de Multimédia &trans.a.fonvieille; Synopsis FreeBSD supporte une grande variété de cartes son, vous permettant d'obtenir un son haute fidélité à partir de votre ordinateur. Ceci inclut la possibilité d'enregistrer et de jouer les formats “MPEG Audio Layer 3” (MP3), WAV et Ogg Vorbis aussi bien que de nombreux autres formats. Le catalogue de logiciels portés de FreeBSD contient également des applications vous permettant d'éditer vos enregistrements, rajouter des effets sonores, et contrôler des périphériques MIDI. Avec un peu de volonté et d'expérimentation, FreeBSD peut lire des fichiers vidéo et des DVDs. Le nombre d'applications pour encoder, convertir, et lire divers supports vidéo est plus limité que le nombre d'applications équivalentes dans le domaine du son. Par exemple au moment de l'écriture de ces lignes, il n'existe pas de bonne application d'encodage dans le catalogue des logiciels portés de FreeBSD, qui pourra être utilisée pour convertir d'un format à un autre, comme peut le faire pour le son le programme audio/sox. Cependant, le paysage logiciel dans ce domaine évolue rapidement. Ce chapitre décrira les étapes nécessaires pour configurer votre carte son. La configuration et l'installation d'X11 () ont déjà pris soin des problèmes matériel de votre carte vidéo, bien qu'il puisse y avoir quelques réglages à ajuster pour obtenir une meilleure lecture des vidéos. Après la lecture de ce chapitre, vous connaîtrez: Comment configurer votre système afin que votre carte son soit reconnue. Les méthodes pour tester si votre carte fonctionne en utilisant certaines applications. Comment faire face aux problèmes de configuration de votre carte son. Comment jouer et encoder des MP3s. Comment la vidéo est supportée par X11. Quelques logiciels portés qui donnent de bon résultats pour lire/encoder de la vidéo. Comment lire des DVDs, des fichiers .mpg et .avi. Comment copier l'information de CDs et DVDs dans des fichiers. Comment configurer une carte TV. Comment configurer un scanner. Avant de lire ce chapitre, vous devrez: Savoir comment configurer et installer un nouveau noyau (). Essayer de monter des CDs audio avec la commande &man.mount.8; aura pour résultat une erreur, au moins, et une panique du noyau, au pire. Ces supports ont des codages spécifiques qui diffèrent du système de fichiers ISO classique. Moses Moore Contribution de Marc Fonvieille Augmentée pour &os; 5.X par Configurer une carte son Configuration du système PCI ISA cartes son Avant que vous commenciez, vous devriez connaître le modèle de carte son que vous avez, la puce qu'elle utilise, et si c'est une carte PCI ou ISA. FreeBSD supporte une grande variété de cartes PCI et ISA. Consultez la liste des périphériques audio supportés des notes de compatibilité matériel pour voir si votre carte est supportée. Ce document indiquera également quel pilote supporte votre carte. noyau configuration Pour utiliser votre carte son, vous devrez charger le pilote de périphérique approprié. Cela peut être fait de deux façons. La plus simple est de charger le module pour votre carte son avec &man.kldload.8;, ce qui peut être soit fait à partir de la ligne de commande: &prompt.root; kldload snd_emu10k1 soit en ajoutant la ligne appropriée dans le fichier /boot/loader.conf comme cela: snd_emu10k1_load="YES" Ces exemples concernent la carte Creative &soundblaster; Live!. Les autres modules son chargeables sont listés dans /boot/defaults/loader.conf. Si vous n'êtes pas sûr du pilote à utiliser, vous pouvez tenter de charger le pilote snd_driver: &prompt.root; kldload snd_driver C'est un méta-pilote chargeant directement les pilotes les plus courants. Cela accélère la recherche du pilote adapté. Il est également possible de charger l'intégralité des pilotes de cartes son en utilisant le système /boot/loader.conf. Si vous voulez connaître le pilote sélectionné lors du chargement du méta-pilote snd_driver, vous pouvez consulter le fichier /dev/sndstat à cet effet, et cela à l'aide de la commande cat /dev/sndstat. Pour charger tous les pilotes sous &os; 4.X, vous devez charger le module snd au lieu de snd_driver. Une seconde méthode est de compiler le support pour votre carte son en statique dans votre noyau. La section ci-dessous fournit les informations nécessaires pour ajouter le support de votre matériel de cette manière. Pour plus d'informations au sujet de la recompilation de votre noyau, veuillez consulter le . Configurer un noyau sur mesure avec support du son La première chose à effectuer est d'ajouter au noyau le pilote de périphérique audio générique &man.sound.4;, pour cela vous devrez ajouter la ligne suivante au fichier de configuration du noyau: device sound Sous &os; 4.X, vous utiliseriez la ligne suivante: device pcm Ensuite nous devons ajouter le support pour votre carte son. Par conséquent, nous devons savoir quel pilote supporte la carte. Consultez la liste des périphériques audio supportés des notes de compatibilité matériel pour déterminer le pilote correct pour votre carte son. Par exemple, une carte son Creative &soundblaster; Live! est supportée par le pilote &man.snd.emu10k1.4;. Pour ajouter le support pour cette carte, utilisez ce qui suit: device "snd_emu10k1" Assurez-vous de lire la page de manuel du pilote pour la - syntaxe à utiliser. Des informations concernants la + syntaxe à utiliser. Des informations concernant la syntaxe des pilotes de cartes son dans la configuration du noyau peuvent être également trouvées dans le fichier /usr/src/sys/conf/NOTES (/usr/src/sys/i386/conf/LINT pour &os; 4.X). Les cartes ISA non-PnP pourront nécessiter de fournir au noyau des informations sur le paramétrage de la carte son (IRQ, port d'E/S, etc.). Cela s'effectue par l'intermédiaire du fichier /boot/device.hints. Au démarrage du système, le chargeur (&man.loader.8;) lira ce fichier et passera les paramètres au noyau. Par exemple, une vieille carte ISA non-PnP Creative &soundblaster; 16 utilisera le pilote &man.snd.sbc.4; de paire avec snd_sb16(4), on ajoutera alors la ligne suivante au fichier de configuration du noyau: device snd_sbc device snd_sb16 avec également ce qui suit dans le fichier /boot/device.hints: hint.sbc.0.at="isa" hint.sbc.0.port="0x220" hint.sbc.0.irq="5" hint.sbc.0.drq="1" hint.sbc.0.flags="0x15" Dans ce cas, la carte utilise le port d'E/S 0x220 et l'IRQ 5. La syntaxe utilisée dans le fichier /boot/device.hints est abordée dans la page de manuel du pilote de la carte son. Sous &os; 4.X, ces paramètres sont directement écrits dans le fichier de configuration du noyau. Dans le cas de notre carte ISA, nous utiliserions uniquement la ligne: device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15 - Les paramétres donnés ci-dessus sont ceux + Les paramètres donnés ci-dessus sont ceux par défaut. Dans certains cas, vous pouvez avoir - besoin de modifier l'IRQ ou tout autre paramétre en + besoin de modifier l'IRQ ou tout autre paramètre en fonction de votre carte son. Consultez la page de manuel &man.snd.sbc.4; pour plus d'informations. Sous &os; 4.X, certains systèmes avec la carte son intégrée à la carte mère auront peut-être besoin de l'option suivante dans la configuration du noyau: options PNPBIOS Tester la carte son Après avoir redémarré avec le noyau modifié, ou après avoir chargé le module nécessaire, la carte son devrait apparaître dans le tampon des messages du système (&man.dmesg.8;) d'un manière proche de la suivante: pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0 pcm0: [GIANT-LOCKED] pcm0: <Cirrus Logic CS4205 AC97 Codec> L'état de la carte son peut être contrôlée par l'intermédiaire du fichier /dev/sndstat: &prompt.root; cat /dev/sndstat FreeBSD Audio Driver (newpcm) Installed devices: pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384 kld snd_ich (1p/2r/0v channels duplex default) Le résultat pourra être différent sur votre système. Si aucun périphérique pcm n'apparaît, retournez en arrière et revoyez ce qui a été fait - précedemment. Contrôlez à nouveau votre + précédemment. Contrôlez à nouveau votre fichier de configuration du noyau et vérifiez que vous avez choisi le périphérique correct. Les problèmes courants sont listés dans la . Si tout va bien, vous devriez avoir maintenant une carte son qui fonctionne. Si votre lecteur de CD-ROM ou de DVD-ROM est correctement relié à votre carte son, vous pouvez introduire un CD dans le lecteur et le jouer avec &man.cdcontrol.1;: &prompt.user; cdcontrol -f /dev/acd0 play 1 Diverses applications, comme audio/workman offrent une meilleure interface. Vous pouvez vouloir installer une application comme audio/mpg123 pour écouter des fichiers audio MP3. Une méthode rapide pour tester la carte est d'envoyer des données au /dev/dsp, de la manière suivante: &prompt.user; cat filename > /dev/dsp filename peut être n'importe quel fichier. Cette ligne de commande devrait produire des sons, confirmant le bon fonctionnement de la carte son. Les utilisateurs de &os; 4.X doivent créer les fichiers spéciaux de périphérique de la carte son pour être en mesure de l'utiliser. Si la carte est apparue dans les messages du système en tant que pcm0, vous devrez faire en tant que root ce qui suit: &prompt.root; cd /dev &prompt.root; sh MAKEDEV snd0 Si la commande a donné pcm1, suivez les mêmes étapes qu'au-dessus, en remplaçant snd0 par snd1. MAKEDEV créera un ensemble de fichiers de spéciaux de périphérique qui seront utilisés par les différentes applications relatives à la carte son. Les niveaux du mixer de la carte son peuvent être modifiés par la commande &man.mixer.8;. Plus de détails peuvent être trouvés dans la page de manuel &man.mixer.8;. Problèmes courants fichiers spéciaux de périphérique port d'E/S IRQ DSP Erreur Solution unsupported subdevice XX Un ou plusieurs fichiers spéciaux de périphérique n'ont pas été créés correctement. Répétez les étapes précédentes. sb_dspwr(XX) timed out Le port d'E/S n'est pas configuré correctement. bad irq XX L'IRQ sélectionnée est incorrecte. Vérifiez que l'IRQ choisie et l'IRQ de la carte son sont les mêmes. xxx: gus pcm not attached, out of memory Il n'y a pas suffisamment de mémoire disponible pour utiliser ce périphérique. xxx: can't open /dev/dsp! Vérifiez avec la commande fstat | grep dsp si une autre application maintient le périphérique ouvert. Souvent à l'origine de ce type de problème on trouve esound et le support son de KDE. Munish Chopra Contribution de Utiliser des sources sonores multiples Il est souvent intéressant de pouvoir jouer simultanément du son à partir de multiples sources, comme lorsque esound ou artsd ne supportent pas le partage du périphérique son avec certaines applications. FreeBSD vous permet de le faire par l'intermédiaire de Canaux Sonores Virtuels, qui peuvent être configurés avec la fonction &man.sysctl.8;. Les canaux virtuels vous permettent de multiplexer les canaux de sortie de votre carte son en mixant le son au niveau du noyau. Pour configurer le nombre de canaux virtuels, il existe deux paramètres de sysctl qui, si vous avez les privilèges de l'utilisateur root, peuvent être configurés comme ceci: &prompt.root; sysctl hw.snd.pcm0.vchans=4 &prompt.root; sysctl hw.snd.maxautovchans=4 L'exemple ci-dessus alloue quatre canaux virtuels, ce qui est un nombre suffisant pour une utilisation classique. hw.snd.pcm0.vchans est le nombre de canaux virtuels que possède pcm0, et est configurable une fois que le périphérique a été attaché au système. hw.snd.maxautovchans est le nombre de canaux virtuels alloués à un nouveau périphérique audio quand il est attaché à l'aide de &man.kldload.8;. Comme le module pcm peut être chargé indépendamment des pilotes de périphériques, hw.snd.maxautovchans peut stocker combien de canaux virtuels seront alloués à chaque périphérique attaché par la suite. Vous ne pouvez pas modifier le nombre de canaux virtuels pour un périphérique en cours d'utilisation. Quittez avant tout autre chose les programmes utilisant le périphérique en question, comme les lecteurs de fichiers sonores ou les daemons audios. Si vous n'utilisez pas &man.devfs.5;, vous devrez faire pointer vos applications sur /dev/dsp0.x, où x est 0 à 3 si hw.snd.pcm.0.vchans est fixé à 4. Sur un système utilisant &man.devfs.5;, ce qui précède sera automatiquement effectué de façon transparente pour l'utilisateur. Josef El-Rayes Contribution de Définir les valeurs par défaut du mixeur des différents canaux Les valeurs par défaut du mixeur des différents canaux sont fixées en dur dans le code source du pilote &man.pcm.4;. Il existe de nombreuses applications et “daemons” qui vous permettent de fixer les valeurs du mixeur, les mémorisent et les refixent à chaque fois qu'ils sont lancés, mais ce n'est pas une solution idéale, nous désirons régler les valeurs par défaut au niveau du pilote. Ceci se fait en définissant les valeurs adéquates dans le fichier /boot/device.hints. Par exemple: hint.pcm.0.vol="100" Cela fixera le volume du canal à une valeur par défaut de 100; dès que le module &man.pcm.4; est chargé. Ceci n'est supporté que sous &os; 5.3-RELEASE et les versions suivantes. Chern Lee Contribution de Fichiers MP3 Les fichiers MP3 (MPEG Layer 3 Audio) donnent un son proche de la qualité d'un CD audio, il n'y a aucune raison pour que votre station de travail FreeBSD ne puisse pas en profiter. Lecteurs de MP3s De loin, le plus populaire des lecteurs MP3 pour X11 est XMMS (X Multimedia System). Les thèmes (skins) de Winamp peuvent être utilisés avec XMMS dès lors que l'interface est quasiment identique à celle du Winamp de Nullsoft. XMMS dispose aussi d'un support natif pour modules externes (plug-in). XMMS peut être installé à partir du catalogue de logiciels portés multimedia/xmms ou de la version pré-compilée. L'interface d'XMMS est intuitive, avec une liste de lecture, un égaliseur graphique, et plus. Ceux qui sont familiers avec Winamp trouveront XMMS simple d'utilisation. Le logiciel porté audio/mpg123 est une alternative, un lecteur de MP3 en ligne de commande. mpg123 peut être utilisé en spécifiant le périphérique sonore et le fichier MP3 sur la ligne de commande, comme montré ci-dessous: &prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3 High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3. Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp. Uses code from various people. See 'README' for more! THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! Playing MPEG stream from Foobar-GreastestHits.mp3 ... MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo /dev/dsp1.0 devrait être remplacé par le périphérique dsp correspondant sur votre système. Extraire les pistes de CDs Audio Avant d'encoder la totalité d'un CD ou une piste en MP3, les données audio doivent être extraites et transférées sur le disque dur. Cela se fait en copiant les données brutes CDDA (CD Digital Audio) en fichiers WAV. L'utilitaire cdda2wav, qui fait partie de la suite sysutils/cdrtools, est utilisé pour extraire les données audio de CDs et les informations rattachées. Avec le CD audio dans le lecteur, la commande suivante peut être utilisée (en tant que root) pour convertir l'intégralité d'un CD en fichiers WAV (un par piste): &prompt.root; cdda2wav -D 0,1,0 -B cdda2wav supportera également les lecteurs de CDROM ATAPI (IDE). Pour faire l'extraction à partir d'un lecteur IDE, précisez le nom du périphérique à la place de l'unité SCSI. Par exemple, pour extraite la piste 7 à partir d'un lecteur IDE: &prompt.root; cdda2wav -D /dev/acd0a -t 7 Le spécifie le périphérique SCSI 0,1,0, qui correspond à ce qui est donné par la commande cdrecord -scanbus. Pour extraire des pistes individuelles, utilisez l'option comme ceci: &prompt.root; cdda2wav -D 0,1,0 -t 7 Cet exemple extrait la septième piste du CD audio. Pour extraire un ensemble de pistes, par exemple, de la piste 1 à 7, précisez un intervalle: &prompt.root; cdda2wav -D 0,1,0 -t 1+7 L'utilitaire &man.dd.1; peut également être utilisé pour extraire des pistes audios à partir de lecteurs ATAPI, consultez la pour plus d'informations sur cette possibilité. Encoder des MP3s De nos jours, l'encodeur mp3 à utiliser est lame. Lame peut être trouvé dans le catalogue de logiciels portés: audio/lame. En utilisant les fichiers WAV extraits, la commande suivante convertira le fichier audio01.wav en audio01.mp3: &prompt.root; lame -h -b 128 \ --tt "La chanson XY" \ --ta "Artiste XY" \ --tl "Album XY" \ --ty "2001" \ --tc "Extrait et encodé par XY" \ --tg "Genre" \ audio01.wav audio01.mp3 128 kbits semble être le taux standard actuel du débit audio utilisé pour les MP3s. Nombreux sont ceux qui préfèrent des taux de haute qualité: 160 ou 192. Plus le débit audio est élevé plus l'espace disque utilisé par le fichier MP3 sera grand mais la qualité sera meilleure. L'option active le mode “haute qualité, mais un peu plus lent”. Les options commençant par indiquent des balises ID3, qui généralement contiennent les informations sur le morceau, devant être intégrées au fichier MP3. D'autres informations sur l'encodage peuvent être trouvées en consultant la page de manuel de Lame. Décoder des MP3s Afin de pouvoir graver un CD audio à partir de fichiers MP3, ces derniers doivent être convertis dans le format WAV non compressé. XMMS et mpg123 supportent tous les deux la sortie de fichiers MP3 en format de fichier non compressé. Ecriture sur le disque avec XMMS: Lancez XMMS. Clic-droit sur la fenêtre pour faire apparaître le menu d'XMMS. Sélectionner Preference sous Options. Changez l'option “Output Plugin” pour “Disk Writer Plugin”. Appuyez sur Configure. Entrez (ou choisissez browse) un répertoire où va être écrit le fichier décompressé. Chargez le fichier MP3 dans XMMS comme à l'accoutumé, avec le volume à 100% et l'égaliseur (EQ settings) désactivé. Appuyez sur PlayXMMS devrait se comporter comme s'il jouait le MP3, mais aucun son ne sera audible. Il est en fait en train de “jouer” le MP3 dans un fichier. Vérifiez que vous avez rétabli l'option “Output Plugin” à sa valeur de départ afin de pouvoir écouter à nouveau des MP3s. Ecriture sur le disque avec mpg123: Lancez mpg123 -s audio01.mp3 > audio01.pcm XMMS crée un fichier au format WAV, tandis que mpg123 convertit le fichier MP3 en données audio PCM brutes. Ces deux formats peuvent être utilisés avec cdrecord pour créer des CDs audio. Vous devez utiliser des fichiers PCM bruts avec &man.burncd.8;. Si vous utilisez des fichiers WAV, vous noterez un petit parasite au début de chaque piste, ce son est l'entête du fichier WAV. Vous pouvez simplement retirer l'entête d'un fichier WAV avec l'utilitaire SoX (il peut être installé à partir du logiciel porté audio/sox ou de la version pré-compilée): &prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.raw Lisez la pour plus d'informations sur l'utilisation d'un graveur de CD sous FreeBSD. Ross Lippert Contribution de Lecture des Vidéos Les applications pour lire des vidéos sont assez récentes et se développent très rapidement. Soyez patient. Tout ne va pas fonctionner aussi bien que cela pu être le cas avec le son. Avant que vous ne commenciez, vous devrez connaître le modèle de carte vidéo dont vous disposez ainsi que le circuit intégré qu'elle utilise. Alors qu'&xorg; et &xfree86; supportent une large variété de cartes vidéo, seul un petit nombre d'entre elles donne de bonnes performances en lecture de vidéos. Pour obtenir la liste des extensions supportées par le serveur X utilisant votre carte employez la commande &man.xdpyinfo.1; durant le fonctionnement d'X11. C'est une bonne idée d'avoir un court fichier MPEG qui pourra être utilisé comme fichier test pour évaluer divers lecteurs et leurs options. Comme certains programmes de lecture de DVD chercheront un support DVD sur /dev/dvd par défaut, ou ont ce périphérique fixé définitivement dans leur code, vous pourrez trouver utile de créer des liens symboliques vers les périphériques corrects: &prompt.root; ln -sf /dev/acd0c /dev/dvd &prompt.root; ln -sf /dev/racd0c /dev/rdvd Sous FreeBSD 5.X, qui utilise &man.devfs.5; il y a un ensemble de liens recommandés légèrement différent: &prompt.root; ln -sf /dev/acd0 /dev/dvd &prompt.root; ln -sf /dev/acd0 /dev/rdvd Notez qu'en raison de la nature du système &man.devfs.5;, les liens créés à la main comme les précédents ne seront pas conservés si vous redémarrez le système. Afin de créer automatiquement les liens symboliques dès que vous redémarrez votre système, ajoutez les lignes suivantes au fichier /etc/devfs.conf: link acd0 dvd link acd0 rdvd De plus, le décodage de DVD, qui nécessite de faire appel à des fonctions spéciales du lecteur de DVD, demande d'avoir la permission d'écrire sur les périphériques DVD. configuration du noyau CPU_ENABLE_SSE configuration du noyau USER_LDT Certains des logiciels portés dépendent des options du noyau suivantes pour pouvoir être compilés correctement. Avant d'essayer de les compiler, ajouter les options suivantes dans le noyau, recompilez-le et redémarrez: option CPU_ENABLE_SSE option USER_LDT L'option option USER_LDT n'existe pas sous &os; 5.X. Pour augmenter la mémoire partagée pour l'interface X11, il est recommandé que les valeurs de certaines variables &man.sysctl.8; soient augmentées: kern.ipc.shmmax=67108864 kern.ipc.shmall=32768 Déterminer les capacités vidéo XVideo SDL DGA Il y a plusieurs manières possibles pour afficher de la vidéo sous X11. Ce qui fonctionnera vraiment est énormément dépendant du matériel. Chaque méthode décrite ci-dessous donnera différents résultats en fonction du matériel. De plus, le rendu de la vidéo sous X11 est un sujet recevant beaucoup d'attention dernièrement, et avec chaque nouvelle version d'&xorg;, ou d'&xfree86;, il pourra y avoir des améliorations significatives. Une liste des interfaces vidéo communes: X11: sortie X11 classique utilisant de la mémoire partagée. XVideo: une extension de l'interface X11 qui supporte la vidéo sur n'importe quelle partie de l'écran contrôlé par X11. SDL: “Simple Directmedia Layer” - couche simple d'accès directe au média. DGA: “Direct Graphics Access” - accès direct au graphique. SVGAlib: couche graphique bas niveau pour la console. XVideo &xorg; et &xfree86; 4.X disposent d'une extension appelée XVideo (également connue sous les termes Xvideo, Xv, ou xv) qui permet d'afficher directement de la vidéo à travers une accélération spécifique. Cette extension fournit une très bonne qualité de rendu même sur les machines bas de gamme. Pour vérifier si l'extension fonctionne utilisez xvinfo: &prompt.user; xvinfo XVideo est supporté pour votre carte si le résultat de la commande ressemble à: X-Video Extension version 2.2 screen #0 Adaptor #0: "Savage Streams Engine" number of ports: 1 port base: 43 operations supported: PutImage supported visuals: depth 16, visualID 0x22 depth 16, visualID 0x23 number of attributes: 5 "XV_COLORKEY" (range 0 to 16777215) client settable attribute client gettable attribute (current value is 2110) "XV_BRIGHTNESS" (range -128 to 127) client settable attribute client gettable attribute (current value is 0) "XV_CONTRAST" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_SATURATION" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_HUE" (range -180 to 180) client settable attribute client gettable attribute (current value is 0) maximum XvImage size: 1024 x 1024 Number of image formats: 7 id: 0x32595559 (YUY2) guid: 59555932-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV (packed) id: 0x32315659 (YV12) guid: 59563132-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x30323449 (I420) guid: 49343230-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x36315652 (RV16) guid: 52563135-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x3e0, 0x7c00 id: 0x35315652 (RV15) guid: 52563136-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x7e0, 0xf800 id: 0x31313259 (Y211) guid: 59323131-0000-0010-8000-00aa00389b71 bits per pixel: 6 number of planes: 3 type: YUV (packed) id: 0x0 guid: 00000000-0000-0000-0000-000000000000 bits per pixel: 0 number of planes: 0 type: RGB (packed) depth: 1 red, green, blue masks: 0x0, 0x0, 0x0 Notez également que les formats listés (YUV2, YUV12, etc...) ne sont pas présents dans chaque implémentation d'XVideo et leur absence pourra gêner certains programmes. Si le résultat ressemble à: X-Video Extension version 2.2 screen #0 no adaptors present Alors XVideo n'est probablement pas supporté pour votre carte. Si XVideo n'est pas supporté pour votre carte, cela signifie seulement qu'il sera plus difficile pour votre système d'affichage de répondre aux demandes du rendu vidéo en termes de puissance de calcul. En fonction de votre carte vidéo et de votre processeur, vous pourriez encore obtenir de bons résultats. Vous devriez probablement vous documenter sur les méthodes pour améliorer les performances en lisant la . “Simple Directmedia Layer” - couche simple d'accès directe au média La couche simple d'accès directe au média, SDL, a été prévue pour être une couche de portage entre µsoft.windows;, BeOS, et &unix;, permettant à des applications “cross-platform” qui font un usage efficace du son et du graphique d'être développées. La couche SDL fournit une abstraction de bas niveau vers le matériel qui peut parfois être plus efficace que l'interface X11. La bibliothèque SDL peut être trouvée dans devel/sdl12. “Direct Graphics Access” - accès direct au graphique L'accès direct au graphique est une extension X11 qui permet à un programme de bypasser le serveur X et d'accéder directement au matériel. Comme il repose sur une copie bas niveau de la mémoire, les programmes l'utilisant doivent être exécutés avec les privilèges de l'utilisateur root. L'extension DGA et ses performances peuvent être testées avec &man.dga.1;. Quand dga est exécuté, il changera les couleurs de l'affichage à chaque appui sur une touche. Pour quitter, utilisez la touche q. Logiciels portés et pré-compilés relatifs à la vidéo logiciels portés vidéo logiciels pré-compilés vidéo Cette section traite des logiciels disponibles dans le catalogue des logiciels portés de FreeBSD qui peuvent être utilisés pour lire de la vidéo. Les applications vidéos sont un domaine de développement très actif, et les capacités de diverses applications seront sujettes à des divergences avec la description donnée ici. Premièrement, il est important de savoir que plusieurs des applications vidéos fonctionnant sous FreeBSD ont été développées comme des applications pour Linux. Plusieurs de ces applications sont encore considérées comme étant de qualité bêta. Parmi les problèmes que l'on peut rencontrer avec les applications vidéos sous &os;, nous trouvons: Une application ne peut pas lire un fichier produit par une autre application. Une application ne peut pas lire un fichier quelle a produit. La même application sur deux machines différentes, recompilée sur chaque machine pour la machine elle-même, jouera le fichier différemment. Un filtre apparemment insignifiant comme un changement d'échelle de l'image donne de très mauvais résultats en raison d'une routine de changement d'échelle boguée. Une application qui plante régulièrement. La documentation n'est pas installée avec le logiciel porté et peut être trouvée sur Internet ou dans le répertoire work du logiciel porté. Parmin ces applications, nombreuses sont celles qui peuvent présenter des “Linuxismes”. Aussi, il y peut y avoir des problèmes résultants de la façon dont certaines bibliothèques standards sont implémentées dans les distributions Linux, ou certaines caractéristiques du noyau Linux qui ont été employées par les auteurs des applications. Ces problèmes ne sont pas toujours remarqués et contournés par les responsables du portage du logiciel ce qui peut mener vers quelques ennuis comme ceux-ci: L'utilisation de /proc/cpuinfo pour détecter les caractéristiques du processeur. Une mauvaise utilisation des “threads” qui provoque le blocage de programme au lieu de se terminer complètement. Des logiciels habituellement utilisés en conjonction avec l'application ne sont pas encore dans le catalogue des logiciels portés. Jusqu'ici, les développeurs de ces applications ont été coopératifs avec les responsables des logiciels portés pour minimiser les modifications nécessaires au portage. MPlayer MPlayer est une application pour lire des vidéos récemment et rapidement développée. Les objectifs de l'équipe de MPlayer sont la rapidité et la flexibilité sur Linux et autre &unix;. Le projet fut démarré quand le fondateur de l'équipe en eu assez des mauvaises performances en lecture des autres lecteurs disponibles. Certains diront que l'interface graphique a été sacrifiée pour une conception rationalisée. Cependant, une fois que vous avez les options en ligne de commande et les combinaisons de touches en main, cela fonctionne très bien. Compiler MPlayer mplayer compilation MPlayer réside dans multimedia/mplayer. MPlayer effectue un certain nombre de contrôle du matériel durant le processus de compilation, il en résulte un binaire qui ne sera pas portable d'un système à l'autre. Ainsi il est important d'utiliser le logiciel porté et de ne pas utiliser un logiciel pré-compilé. En plus, un certain nombre d'options peuvent être spécifiées dans la ligne de commande make, comme décrit dans le fichier Makefile et au départ de la compilation: &prompt.root; cd /usr/ports/multimedia/mplayer &prompt.root; make N - O - T - E Take a careful look into the Makefile in order to learn how to tune mplayer towards you personal preferences! For example, make WITH_GTK1 builds MPlayer with GTK1-GUI support. If you want to use the GUI, you can either install /usr/ports/multimedia/mplayer-skins or download official skin collections from http://www.mplayerhq.hu/homepage/dload.html Les options par défaut du logiciel porté devraient être suffisantes pour la plupart des utilisateurs. Cependant si vous avez besoin du codec XviD, vous devez spécifier l'option WITH_XVID dans la ligne de commande. Le périphérique DVD par défaut peut également être défini avec l'option WITH_DVD_DEVICE, par défaut /dev/acd0 sera utilisé. Au moment de l'écriture de ces lignes, le logiciel porté de MPlayer compilera sa documentation HTML et deux exécutables, mplayer et mencoder, qui est un outil pour ré-encoder de la vidéo. La documentation HTML de MPlayer est très complète. Si le lecteur trouve l'information sur le matériel vidéo et les interfaces manquante dans ce chapitre, la documentation de MPlayer est une alternative très complète. Vous devriez certainement prendre le temps de lire la documentation de MPlayer, si vous êtes à la recherche d'informations sur le support vidéo sous &unix;. Utiliser MPlayer MPlayer utiliser Chaque utilisateur de MPlayer doit créer un sous-répertoire .mplayer dans son répertoire d'utilisateur. Pour créer ce sous-répertoire nécessaire, vous pouvez taper ce qui suit: &prompt.user; cd /usr/ports/multimedia/mplayer &prompt.user; make install-user Les options de commande de mplayer sont données dans la page de manuel. Pour plus de détails il y a la documentation HTML. Dans cette section, nous décrirons que quelques unes des utilisations les plus courantes. Pour lire à un fichier, comme testfile.avi en utilisant une des diverses interfaces vidéo utilisez l'option : &prompt.user; mplayer -vo xv testfile.avi &prompt.user; mplayer -vo sdl testfile.avi &prompt.user; mplayer -vo x11 testfile.avi &prompt.root; mplayer -vo dga testfile.avi &prompt.root; mplayer -vo 'sdl:dga' testfile.avi Cela vaut la peine d'essayer toutes ces options, comme leur performance relative dépend de nombreux facteurs et variera de façon significative avec le matériel. Pour lire un DVD, remplacez testfile.avi par N est le numéro du titre à jouer et DEVICE est le fichier spécial de périphérique correspondant au lecteur de DVD. Par exemple, pour jouer le titre 3 depuis /dev/dvd: &prompt.root; mplayer -vo xv dvd://3 -dvd-device /dev/dvd Le périphérique DVD par défaut peut être défini lors de la compilation du logiciel porté MPlayer par l'intermédiaire de l'option WITH_DVD_DEVICE. Par défaut, ce périphérique est /dev/acd0. Plus de détails peuvent être trouvés dans le Makefile du logiciel porté. Pour arrêter, avancer, etc..., consultez les combinaisons de touches, qui sont données en exécutant mplayer -h ou lisez la page de manuel. D'autres options importantes pour la lecture sont: qui active le mode plein écran et qui aide au niveau des performances. Pour que la ligne de commande à taper ne devienne pas trop longue, l'utilisateur peut créer un fichier .mplayer/config et y fixer les options par défaut: vo=xv fs=yes zoom=yes Enfin, mplayer peut être utilisé pour extraire une piste du DVD dans un fichier .vob. Pour récupérer la seconde piste vidéo d'un DVD, tapez ceci: &prompt.root; mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd Le fichier de sortie, out.vob, sera du MPEG et peut être manipulé par les autres logiciels décrits dans cette section. mencoder mencoder Avant d'utiliser mencoder c'est une bonne idée de vous familiariser avec les options données par la documentation HTML. Il existe une page de manuel, mais elle n'est pas très utile sans la documentation en HTML. Il y a d'innombrables façons d'améliorer la qualité, diminuer le débit binaire, et modifier les formats, et certaines de ces options peuvent faire la différence entre de bonnes et mauvaises performances. Voici quelques exemples pour y arriver. Tout d'abord une simple copie: &prompt.user; mencoder input.avi -oac copy -ovc copy -o output.avi De mauvaises combinaisons d'options peuvent conduire à des fichiers illisibles même par mplayer. Aussi, si vous voulez juste extraire un fichier, restez sur l'option de mplayer. Pour convertir input.avi au format MPEG4 avec un codage audio MPEG3 (audio/lame est nécessaire): &prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \ -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi Ceci a produit un fichier lisible par mplayer et xine. input.avi peut être remplacé par et exécuté en tant que root pour ré-encoder directement un titre DVD. Puisque vous êtes susceptible de ne pas être satisfait du résultat la première fois, il est recommandé d'extraire le titre vers un fichier et de travailler sur le fichier. Le lecteur xine Le lecteur xine est un projet de grande envergure visant non seulement à être une solution vidéo tout-en-un, mais également de produire une bibliothèque de base réutilisable et un exécutable modulaire qui peut être étendu grâce à des greffons. Il est fourni sous forme pré-compilée et de logiciel porté, multimedia/xine. Le lecteur xine est encore un peu brut, mais c'est clairement un bon début. Dans la pratique, xine demande soit un processeur rapide avec une carte vidéo rapide, soit l'extension XVideo. L'interface graphique est utilisable, mais peu pratique. Au moment de l'écriture de ces lignes, il n'y a pas de module d'entrée fourni avec xine qui lira les DVDs codés en CSS. Il existe des versions tiers qui ont des modules à cet effet intégrés, mais aucune de ces dernières ne se trouve dans le catalogue des logiciels portés de FreeBSD. Comparé à MPlayer, xine fait plus pour l'utilisateur, mais au même moment, rend inaccessible à l'utilisateur certains contrôles bien précis. Le lecteur xine se comporte le mieux sur les interfaces XVideo. Par défaut, le lecteur xine lancera une interface graphique. Les menus peuvent alors être utilisés pour ouvrir un fichier précis: &prompt.user; xine Alternativement, le lecteur peut être invoqué pour jouer directement un fichier sans l'interface graphique avec la commande: &prompt.user; xine -g -p mymovie.avi Les utilitaires transcode Le logiciel transcode n'est pas un lecteur, mais une suite d'outils pour ré-encoder les fichiers .avi et .mpg. Avec transcode, on a la capacité de fusionner des fichiers vidéos, réparer les fichiers endommagés, en utilisant les outils en ligne de commande avec des interfaces de flots stdin/stdout. Comme pour MPlayer, transcode est un logiciel très expérimental qui doit être compilé à partir du logiciel porté multimedia/transcode. Il utilise un grand nombre d'options avec la commande make. Nous recommandons: &prompt.root; make WITH_LIBMPEG2=yes Si vous projetez d'installer multimedia/avifile, alors ajoutez l'option WITH_AVIFILE à votre ligne de commande make, comme montré ici: &prompt.root; make WITH_AVIFILE=yes WITH_LIBMPEG2=yes Voici deux exemples d'utilisation de transcode pour la conversion vidéo qui produira une version redimensionnée. La première encode la sortie en un fichier openDIVX, alors que la seconde encode vers un format MPEG plus portable. &prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \ -y opendivx -N 0x55 -o output.avi &prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \ -y mpeg -N 0x55 -o output.tmp &prompt.user; tcmplex -o output.mpg -i output.tmp.m1v -p output.tmp.mpa -m 1 Il existe une page de manuel pour transcode, mais il y a une petite documentation pour les divers utilitaires tc* (comme tcmplex) qui sont également installés. Cependant, l'option sur la ligne de commande peut être toujours passée pour obtenir de courtes instructions sur l'utilisation d'une commande. En comparaison, transcode s'exécute bien plus lentement que mencoder, mais il a plus de chance de produire un fichier plus largement lisible. Les MPEGs produits par transcode sont connus pour être lisibles sur le &windows.media; Player et &quicktime; d'Apple, par exemple. Lectures supplémentaires - Les différents logigiels vidéo pour &os; se développent + Les différents logiciels vidéo pour &os; se développent rapidement. Il est fort possible que dans un futur proche plusieurs des problèmes abordés ici seront résolus. Entre temps ceux qui veulent tirer partie des possibilités audio/vidéo de FreeBSD devront se débrouiller avec des connaissances extraites de plusieurs FAQs et guides et utiliser différentes applications. Cette section existe pour fournir au lecteur des références sur ces documentations additionnelles. La documentation de MPlayer est techniquement très instructive. Ces documents devraient probablement être consultés par quiconque désirant obtenir un niveau élevé d'expertise sur la vidéo et &unix;. La liste de diffusion de MPlayer est hostile à toute personne qui n'a pas pris la peine de lire la documentation, aussi si vous projetez de leur envoyer des rapports de bogue, lisez la documentation! Le HOWTO de xine contient un chapitre sur l'amélioration des performances qui est général à tous les lecteurs de vidéo. Et enfin, il y a quelques autres applications prometteuses que le lecteur devrait essayer: Avifile qui est également un logiciel porté multimedia/avifile. Ogle qui est également un logiciel porté multimedia/ogle. Xtheater multimedia/dvdauthor, un logiciel libre pour la création de DVDs. Josef El-Rayes Contibution originale de Marc Fonvieille Augmentée et adaptée par Configuration des cartes TV cartes TV Introduction Les cartes TV vous permettent de regarder sur votre ordinateur la télévision par voie hertzienne ou par câble. La plupart d'entre elles acceptent de la vidéo composite par l'intermédiaire de connecteurs RCA ou S-video et certaines de ces cartes disposent d'un tuner radio FM. &os; founit le support pour les cartes TV PCI utilisant un circuit de capture video Brooktree Bt848/849/878/879 ou Conexant CN-878/Fusion 878a à l'aide du pilote &man.bktr.4;. Vous devez également vous assurer que la carte dispose d'un tuner supporté, consultez la page de manuel &man.bktr.4; pour une liste des tuners supportés. Ajout du pilote de périphérique Pour utiliser votre carte, vous devrez charger le pilote &man.bktr.4;, cela peut être effectué en ajoutant la ligne suivante au fichier /boot/loader.conf: bktr_load="YES" Alternativement, vous pouvez compiler en statique dans le noyau le support pour la carte TV, dans ce cas ajouter les lignes suivantes dans votre fichier de configuration du noyau: device bktr device iicbus device iicbb device smbus Ces pilotes de périphériques supplémentaires sont nécessaires étant donné que les composants de la carte sont interconnectés via un bus I2C. Compilez et installez, ensuite, un nouveau noyau. Une fois que le support a été ajouté au système, vous devez redémarrer votre machine. Durant le processus de démarrage, votre carte TV devrait apparaître de cette manière: bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0 iicbb0: <I2C bit-banging driver> on bti2c0 iicbus0: <Philips I2C bus> on iicbb0 master-only iicbus1: <Philips I2C bus> on iicbb0 master-only smbus0: <System Management Bus> on bti2c0 bktr0: Pinnacle/Miro TV, Philips SECAM tuner. Bien évidemment ces messages peuvent varier en fonction de votre matériel. Cependant assurez-vous que le tuner est correctement détecté; il est possible de forcer certains des paramètres détecté à l'aide du système &man.sysctl.8; et d'options de configuration du noyau. Par exemple, si vous désirez forcer le tuner pour un tuner Philips SECAM, vous devrez ajouter la ligne suivante au fichier de configuration du noyau: options OVERRIDE_TUNER=6 ou vous pouvez directement utiliser &man.sysctl.8;: &prompt.root; sysctl hw.bt848.tuner=6 Consultez la page de manuel &man.bktr.4; et le fichier /usr/src/sys/conf/NOTES pour plus de détails sur les options disponibles. (Si vous êtes sous &os; 4.X, /usr/src/sys/conf/NOTES est remplacée par /usr/src/sys/i386/conf/LINT.) Applications utiles Pour utiliser votre carte TV, vous devrez installer une des applications suivantes: multimedia/fxtv qui permet de regarder la télévision et d'enregistrer des images, du son et de la vidéo. multimedia/xawtv est également une application pour regarder la télévision avec les mêmes fonctionnalités que fxtv. misc/alevt décode et affiche les informations Vidéotexte/Télétexte. audio/xmradio, un programme pour utiliser le tuner FM fourni avec certaines cartes TV. audio/wmtune, une application intégrable dans votre environnement de travail pour gérer les tuners radio. Plus d'applications sont disponibles dans le catalogue des logiciels portés de &os;. En cas de problème Si vous rencontrez un quelconque problème avec votre carte TV, vous devriez contrôler tout d'abord que le circuit de capture video et le tuner sont vraiment supportés par le pilote &man.bktr.4; et si vous avez utilisé les bonnes options de configuration. Pour plus de support et pour les diverses questions que vous pouvez vous poser à propos de votre carte TV, vous pouvez contacter et utiliser les archives de la liste de diffusion &a.multimedia.name;. Marc Fonvieille Ecrit par Scanners scanners Introduction &os;, comme tout système d'exploitation moderne, permet l'utilisation de scanners. Un accès standardisé aux scanners est fourni par l'API SANE (Scanner Access Now Easy) disponible dans le catalogue des logiciels portés. SANE utilisera également certains pilotes de périphériques &os; pour accéder à la partie matérielle du scanner. &os; supporte les scanners SCSI et USB. Assurez-vous que votre scanner est supporté par SANE avant d'effectuer une quelconque configuration. SANE dispose d'une liste des périphériques supportés qui peut vous informer sur le support et son statut pour un scanner particulier. La page de manuel &man.uscanner.4; donne également une liste des scanners USB supportés. Configuration du noyau Comme mentionné plus haut les interfaces SCSI et USB sont supportées. En fonction de l'interface de votre scanner, différents pilotes de périphérique sont nécessaires. Interface USB Le noyau GENERIC inclu par défaut les pilotes nécessaires au support des scanners USB. Si vous décidez d'utiliser un noyau personnalisé, assurez-vous que les lignes suivantes sont présentes dans votre fichier de configuration du noyau: device usb device uhci device ohci device uscanner En fonction du contrôleur USB présent sur votre carte mère, vous n'avez besoin que d'une des deux lignes device uhci et device ohci, cependant avoir ces deux lignes simultanément dans la configuration du noyau est sans risque. Si vous ne désirez pas recompiler votre noyau et que votre noyau n'est pas le GENERIC, vous pouvez directement charger le module du pilote &man.uscanner.4; à l'aide de la commande &man.kldload.8;: &prompt.root; kldload uscanner Pour charger ce module à chaque démarrage du système, ajoutez la ligne suivante au fichier /boot/loader.conf: uscanner_load="YES" Après avoir redémarré avec le bon noyau, ou après avoir chargé le module nécessaire, branchez votre scanner USB. Le scanner devrait apparaître dans le tampon des messages du système (&man.dmesg.8;) de cette manière: uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2 Ceci nous indique que notre scanner utilise le fichier spécial de périphérique /dev/uscanner0. Sous &os; 4.X, le daemon USB (&man.usbd.8;) doit tourner pour être en mesure de voir certains périphériques USB. Pour l'activer, ajoutez usbd_enable="YES" à votre fichier /etc/rc.conf et redémarrez la machine. Interface SCSI Si votre scanner dispose d'une interface SCSI, il est important de connaître quelle carte contrôleur SCSI vous utiliserez. En fonction du contrôleur sur la carte, vous devrez adapter votre configuration du noyau. Le noyau GENERIC supporte les contrôleurs SCSI les plus courants. Assurez-vous d'avoir lu le fichier NOTES (LINT sous &os; 4.X) et ajoutez la ligne adéquate dans votre fichier de configuration du noyau. En plus du pilote de votre carte SCSI, vous avez besoin des lignes suivantes dans votre fichier de configuration du noyau: device scbus device pass Une fois que votre noyau a été compilé correctement, vous devriez être en mesure de voir les périphériques au démarrage: pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers Si votre scanner n'était pas alimenté au démarrage du système, il est encore possible de forcer sa détection, en en sondant le bus SCSI avec la commande &man.camcontrol.8;: &prompt.root; camcontrol rescan all Re-scan of bus 0 was successful Re-scan of bus 1 was successful Re-scan of bus 2 was successful Re-scan of bus 3 was successful Ensuite le scanner apparaîtra dans la liste des périphériques SCSI: &prompt.root; camcontrol devlist <IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) <IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1) <AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3) <PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0) Plus de détails sur les périphériques SCSI sont disponibles dans les pages de manuel &man.scsi.4; et &man.camcontrol.8;. Configuration de SANE Le système SANE a été divisé en deux parties: les backends (graphics/sane-backends) et les frontends (graphics/sane-frontends). Les backends fournissent l'accès au scanner. La liste des périphériques supportés par SANE indique quel backend supportera votre scanner. Il est indispensable de déterminer correctement le backend relatif à votre scanner si vous voulez être en mesure d'utiliser votre périphérique. La partie frontends fournie l'interface graphique de numérisation (xscanimage). La première chose à faire est d'installer le logiciel porté graphics/sane-backends ou sa version pré-compilée. Ensuite, utilisez la commande sane-find-scanner pour contrôler la détection du scanner par l'ensemble SANE: &prompt.root; sane-find-scanner -q found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3 Le résultat de la commande affichera le type d'interface utilisée par le scanner et le fichier spécial de périphérique utilisé pour attacher le scanner au système. Le fabricant et le modèle peuvent ne pas apparaître, cela n'est pas important. Certains scanners USB requièrent le chargement préalable d'un firmware, cela est expliqué dans la page de manuel du backend utilisé. Vous devriez également consulter les pages de manuel de &man.sane-find-scanner.1; et &man.sane.7;. Nous devons maintenant vérifier si le scanner sera identifié par un frontend de numérisation. Par défaut, les backends SANE sont fournies avec un outil en ligne de commande appelé &man.scanimage.1;. Cette commande vous permet de lister les périphériques et d'effectuer une acquisition d'image à partir de la ligne de commande. L'option est employée pour afficher le scanner présent sur le système: &prompt.root; scanimage -L device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner Aucun résultat, ou un message disant qu'aucun scanner n'a été identifié indiquent que &man.scanimage.1; est incapable d'identifier le scanner. Si cela se produit, vous devrez éditer le fichier de configuration du backend du scanner et définir le type de scanner utilisé. Le répertoire /usr/local/etc/sane.d/ contient tous les fichiers de configurations des backends. Ce problème d'identification apparaît essentiellement avec certains scanners USB. Par exemple, avec le scanner USB utilisé dans la , sane-find-scanner nous donne l'information suivante: &prompt.root; sane-find-scanner -q found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0 Le scanner est correctement détecté, il utilise l'interface USB et est attaché au fichier spécial de périphérique /dev/uscanner0. Nous pouvons maintenant vérifier si le scanner est correctement identifié: &prompt.root; scanimage -L No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages). Comme le scanner n'est pas identifié, nous devons éditer le fichier /usr/local/etc/sane.d/epson.conf. Le scanner utilisé était un &epson.perfection; 1650, nous en déduisons donc que ce scanner utilisera le backend epson. Assurez-vous de bien lire les commentaires d'aide présents dans les fichiers de configuration des backends. Les modifications à faire sont relativement simples: commentez toutes les lignes concernant une interface différente de celle utilisée par votre scanner (dans notre cas, nous commenterons toutes les lignes débutant par le mot scsi étant donné que notre scanner utilise une interface USB), ajoutez ensuite à la fin du fichier une ligne indiquant l'interface et le fichier spécial de périphérique utilisé. Dans ce cas, nous ajoutons la ligne suivante: usb /dev/uscanner0 Veuillez vous assurer de bien lire les commentaires fournis dans les fichiers de configurations des backends ainsi que les pages de manuel correspondantes pour plus de détails concernant la syntaxe correcte à utiliser. Nous pouvons maintenant vérifier si le scanner est identifié: &prompt.root; scanimage -L device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner Notre scanner a été identifié. Ce n'est pas important si la marque et le modèle ne correspondent pas. L'important est le champ `epson:/dev/uscanner0', qui nous donne le backend et le fichier spécial de périphérique corrects. Une fois que la commande scanimage -L est en mesure d'identifier le scanner, la configuration est terminée. Le périphérique est prêt à effectuer sa première numérisation. Bien que &man.scanimage.1; permette d'effectuer une numérisation à partir de la ligne de commande, il est préférable d'utiliser une interface graphique. SANE offre une interface graphique simple mais efficace: xscanimage (graphics/sane-frontends). Xsane (graphics/xsane) est une autre interface graphique de numérisation assez populaire. Ce programme offre des fonctions avancées comme différents mode de numérisation (photocopie, fax, etc.), la correction des couleurs, la numérisation par lots, etc. Ces deux applications sont utilisables comme greffon pour GIMP. Autoriser l'accès au scanner à d'autres utilisateurs Toutes les opérations précédentes ont été effectuées avec les privilèges root. Vous pourrez, cependant, avoir besoin que d'autres utilisateurs puissent accéder au scanner. L'utilisateur devra avoir les permissions de lecture et d'écriture sur le fichier spécial de périphérique /dev/uscanner0 dont le propriétaire est le groupe operator. L'ajout de l'utilisateur joe au groupe operator lui autorisera l'accès au scanner: &prompt.root; pw groupmod operator -m joe Pour plus de détails, consultez la page de manuel de &man.pw.8;. Vous devez également fixer les permissions d'écriture correctes (0660 or 0664) sur le fichier spécial de périphérique /dev/uscanner0, par défaut le groupe operator n'a qu'un accès en lecture. Cela se fait en ajoutant les lignes suivantes au fichier /etc/devfs.rules: [system=5] add path uscanner0 mode 660 Ajoutez ensuite ce qui suit au fichier /etc/rc.conf et redémarrez la machine: devfs_system_ruleset="system" Plus d'information concernant ces lignes peut être trouvée dans la page de manuel &man.devfs.8;. Sous &os; 4.X, le groupe operator dipose, par défaut, des droits de lecture et d'écriture sur /dev/uscanner0. Bien sûr, pour des raisons de sécurité, vous devriez réfléchir à deux fois avant d'ajouter un utilisateur à n'importe quel groupe, tout particulièrement au groupe operator. diff --git a/fr_FR.ISO8859-1/books/handbook/network-servers/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/network-servers/chapter.sgml index ae8768081b..f3aa0d82ae 100644 --- a/fr_FR.ISO8859-1/books/handbook/network-servers/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/network-servers/chapter.sgml @@ -1,5878 +1,5878 @@ Murray Stokely Réorganisé par Serveurs réseau &trans.a.fonvieille; Synopsis Ce chapitre abordera certains des services réseaux les plus fréquemment utilisés sur les systèmes &unix;. Nous verrons comment installer, configurer, tester et maintenir plusieurs types différents de services réseaux. De plus, des exemples de fichier de configuration ont été inclus tout au long de ce chapitre pour que vous puissiez en bénéficier. Après la lecture de ce chapitre, vous connaîtrez: Comment gérer le “daemon” inetd. Comment configurer un système de fichiers réseau. Comment mettre en place un serveur d'information sur le réseau pour partager les comptes utilisateurs. Comment configurer le paramétrage réseau automatique en utilisant DHCP. Comment configurer un serveur de noms de domaine. Comment configurer le serveur HTTP Apache. Comment configurer un serveur de transfert de fichier (FTP). Comment configurer un serveur de fichiers et d'impression pour des clients &windows; en utilisant Samba. Comment synchroniser l'heure et la date, et mettre en place en serveur de temps, avec le protocole NTP. Avant de lire ce chapitre, vous devrez: Comprendre les bases des procédures /etc/rc. Etre familier avec la terminologie réseau de base. Savoir comment installer des applications tierce-partie (). Chern Lee Contribution de Le “super-serveur” <application>inetd</application> Généralités On fait souvent référence à &man.inetd.8; comme étant le “super-serveur - Internet” parce qu'il gére les connexions pour + Internet” parce qu'il gère les connexions pour plusieurs services. Quand une connexion est reçue par inetd, ce dernier détermine à quel programme la connexion est destinée, invoque le processus en question et lui délègue la “socket” (le programme est invoqué avec la “socket” service comme entrée standard, sortie et descripteurs d'erreur). Exécuter une instance d'inetd réduit la charge système globale par rapport à l'exécution de chaque “daemon” individuellement en mode autonome. inetd est utilisé pour invoquer d'autres “daemon”s, mais plusieurs protocoles triviaux sont gérés directement, comme chargen, auth, et daytime. Cette section abordera la configuration de base d'inetd à travers ses options en ligne de commande et son fichier de configuration /etc/inetd.conf. Configuration inetd est initialisé par l'intermédiaire du système /etc/rc.conf. L'option inetd_enable est positionnée à la valeur NO par défaut, mais est activée par sysinstall avec le profil de sécurité modéré. Placer inetd_enable="YES" ou inetd_enable="NO" dans /etc/rc.conf peut activer ou désactiver le démarrage d'inetd à la mise en route du système. De plus, différentes options de ligne de commande peuvent être passées à inetd par l'intermédiaire de l'option inetd_flags. Options en ligne de commande Synopsis d'inetd: -d Active le débogage. -l Active le journal des connexions réussies. -w Active le “TCP Wrapping” pour les services externes (actif par défaut). -W Active le “TCP Wrapping” pour les services internes qui font partie d'inetd (actif par défaut). -c maximum Spécifie le nombre maximal par défaut d'invocations simultanées pour chaque service; il n'y a pas de limite par défaut. Cette option peut être surchargée pour chaque service à l'aide du paramètre . -C taux Précise le nombre maximal de fois qu'un service peut être invoqué à partir d'une unique adresse IP et cela sur une minute. Ce paramètre peut être configuré différemment pour chaque service avec le paramètre . -R taux Précise le nombre maximal de fois qu'un service peut être invoqué par minute; la valeur par défaut est 256. Un taux de 0 autorise un nombre illimité d'invocations. -a Indique l'adresse IP sur laquelle le trafic sera attendu. Alternativement, un nom de machine peut être utilisé, dans ce cas l'adresse IPv4 ou IPv6 correspondant à la machine sera utilisée. Généralement, un nom de machine est précisé quand inetd est exécuté à l'intérieur d'un environnement &man.jail.8;, dans quel cas le nom de machine correspond à l'environnement &man.jail.8;. Quand un nom de machine est utilisé et que l'on doit être à l'écoute sur une adresse IPv4 et IPv6, une entrée avec le protocole adapté pour chaque type d'adresse est nécessaire pour chaque service dans /etc/inetd.conf. Par exemple, un service de type TCP nécessitera deux entrées, une utilisant tcp4 pour le protocole et une autre utilisant tcp6. -p Spécifie un fichier différent dans lequel stocker l'indentifiant du processus. Ces options peuvent être passées à inetd en utilisant l'option inetd_flags de /etc/rc.conf. Par défaut, inetd_flags est positionné à -wW, ce qui active le “TCP wrapping” pour les services internes et externes d'inetd. Pour un utilisateur de base ces paramètres ne doivent généralement pas être modifiés ou même ajoutés au fichier /etc/rc.conf. Un service externe est un “daemon” indépendant d'inetd, qui est invoqué quand une connexion lui étant destinée est reçue. D'autre part, un service interne est un service qu'inetd peut offrir directement. <filename>inetd.conf</filename> La configuration d'inetd se fait par l'intermédiaire du fichier /etc/inetd.conf. Quand le fichier /etc/inetd.conf est modifié, inetd peut être forcé de relire son fichier de configuration en envoyant un signal “HangUP” au processus inetd comme suit: Envoyer un signal “HangUP” à <application>inetd</application> &prompt.root; kill -HUP `cat /var/run/inetd.pid` Chaque ligne du fichier de configuration ne mentionne qu'un seul “daemon”. Les commentaires dans le fichier sont précédés par un “#”. Le format du fichier /etc/inetd.conf est le suivant: nom-du-service type-de-socket protocole {wait|nowait}[/nb-max-enfants[/nb-connexions-max-par-minute]] utilisateur[:groupe][/classe-session] programme-serveur arguments-du-programme-serveur Un exemple d'entrée pour le “daemon” ftpd utilisant l'IPv4: ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l nom-du-service C'est le nom de service du “daemon” en question. Il doit correspondre à un des services listés dans le fichier /etc/services. Cela détermine quel port inetd doit écouter. Si un nouveau service est créé, il doit être ajouté en premier lieu dans /etc/services. type-de-socket Soit stream, soit dgram, soit raw, ou seqpacket. stream doit être utilisé pour les “daemon”s TCP, alors que dgram est utilisé pour les “daemon”s utilisant le protocole UDP. protocole Un des suivants: Protocole Explication tcp, tcp4 TCP IPv4 udp, udp4 UDP IPv4 tcp6 TCP IPv6 udp6 UDP IPv6 tcp46 TCP IPv4 et v6 udp46 UDP IPv4 et v6 {wait|nowait}[/nb-max-enfants[/nb-max-connexions-par-ip-par-minute]] indique si le “daemon” invoqué par inetd est capable ou non de gérer sa propre “socket”. Les “socket”s de type doivent utiliser l'option , alors que les “daemons à socket stream”, qui sont généralement multi-threadés, devraient utiliser . L'option a généralement pour conséquence de fournir plusieurs “socket”s à un “daemon”, tandis que l'option invoquera un “daemon” enfant pour chaque nouvelle “socket”. Le nombre maximal de “daemon”s qu'inetd peut invoquer peut être fixé en utilisant l'option . Si une limite de dix instances pour un “daemon” est nécessaire, /10 devra être placé après . En plus de , une autre option limitant le nombre maximal de connexions à partir d'un emplacement vers un “daemon” particulier peut être activée. L'option est l'option en question. Ici, une valeur de dix limiterait à dix le nombre de tentatives de connexions par minute pour une adresse IP particulière. C'est utile pour empêcher l'abus intentionnel ou par inadvertance des ressources et les attaques par déni de service (“Denial of Service—DOS”). Dans ce champ, ou est obligatoire. et sont optionnelles. Un “daemon” utilisant un flux de type multi-threadé sans limites ou sera tout simplement affecté de l'option nowait. Le même “daemon” avec une limite maximale de dix “daemon” serait: nowait/10. De plus, la même configuration avec une limite de vingt connexions par adresse IP par minute et une limite maximale de dix “daemon”s enfant serait: nowait/10/20. Ces options sont utilisées comme valeurs par défaut par le “daemon” fingerd, comme le montre ce qui suit: finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s utilisateur C'est l'utilisateur sous lequel le “daemon” en question est exécuté. En général les “daemon”s tournent sous l'utilisateur root. Pour des questions de sécurité, il est courant de rencontrer des serveurs tournant sous l'utilisateur daemon, ou sous l'utilisateur avec le moins de privilèges: nobody. programme-serveur Le chemin complet du “daemon” qui doit être exécuté quand une requête est reçue. Si le “daemon” est un service fourni en interne par inetd, alors l'option devrait être utilisée. arguments-programme-serveur Cette option va de pair avec en précisant les arguments, en commençant avec argv[0], passés au “daemon” lors de son invocation. Si mydaemon -d est la ligne de commande, mydaemon -d sera la valeur de l'option . Ici également, si le “daemon” est un service interne, utilisez . Sécurité En fonction du profil de sécurité choisi à l'installation, plusieurs “daemon”s peuvent être activés par défaut. S'il n'y a pas de raison particulière à l'utilisation d'un “daemon”, désactivez-le! Ajoutez un caractère “#” devant le “daemon” en question dans le fichier /etc/inetd.conf, et envoyez ensuite un signal hangup à inetd. Certains “daemon”s comme fingerd, devraient être évités parce qu'ils donnent trop d'informations aux personnes malveillantes. Certains “daemon”s n'ont aucune conscience des problèmes de sécurité, ou n'ont pas de délai limite d'expiration pour les tentatives de connexions. Cela permet à une personne malveillante d'envoyer régulièrement et de manière espacée des demandes de connexions à un “daemon” particulier, avec pour conséquence de saturer les ressources disponibles. Cela peut être une bonne idée de placer des limitations et sur certains “daemon”s. Par défaut, le “TCP wrapping” est activé. Consultez la page de manuel &man.hosts.access.5; pour plus d'information sur le placement de restrictions TCP pour divers “daemon”s invoqués par inetd. Divers daytime, time, echo, discard, chargen, et auth sont des services fournis en interne par inetd. Le service auth fournit les services réseau d'identification (ident, identd), et est configurable à un certain degré. Consultez la page de manuel de &man.inetd.8; pour plus d'informations. Tom Rhodes Réorganisé et augmenté par Bill Swingle Ecrit par Système de fichiers réseau (NFS) NFS Parmi les différents systèmes de fichiers que &os; supporte se trouve le système de fichiers réseau, connu sous le nom de NFS. NFS permet à un système de partager des répertoires et des fichiers avec d'autres systèmes par l'intermédiaire d'un réseau. En utilisant NFS, les utilisateurs et les programmes peuvent accéder aux fichiers sur des systèmes distants comme s'ils étaient des fichiers locaux. Certains des avantages les plus remarquables offerts par NFS sont: Les stations de travail utilisent moins d'espace disque en local parce que les données utilisées en commun peuvent être stockées sur une seule machine tout en restant accessibles aux autres machines sur le réseau. Les utilisateurs n'ont pas besoin d'avoir un répertoire personnel sur chaque machine du réseau. Les répertoires personnels pourront se trouver sur le serveur NFS et seront disponibles par l'intermédiaire du réseau. Les périphériques de stockage comme les lecteurs de disquettes, de CDROM, de disquettes &iomegazip; peuvent être utilisés par d'autres machines sur le réseau. Cela pourra réduire le nombre de lecteurs de medias amovibles sur le réseau. Comment <acronym>NFS</acronym> fonctionne NFS consiste en deux éléments principaux: un serveur et un ou plusieurs clients. Le client accède à distance aux données stockées sur la machine serveur. Afin que tout cela fonctionne correctement quelques processus doivent être configurés et en fonctionnement. Sous &os; 4.X, l'utilitaire portmap est utilisé à la place de rpcbind. Aussi sous &os; 4.X l'utilisateur doit remplacer chaque instance de rpcbind avec portmap dans les exemples qui suivent. Sur le serveur, les “daemons” suivants doivent tourner: NFS serveur rpcbind portmap mountd nfsd Daemon Description nfsd Le “daemon” NFS qui répond aux requêtes des clients NFS. mountd Le “daemon” de montage NFS qui traite les requêtes que lui passe &man.nfsd.8;. rpcbind Ce daemon permet aux clients NFS de trouver le port que le serveur NFS utilise. Le client peut également faire tourner un “daemon” connu sous le nom de nfsiod. Le “daemon” nfsiod traite les requêtes en provenance du serveur NFS. Ceci est optionnel, et améliore les performances, mais n'est pas indispensable pour une utilisation normale et correcte. Consultez la page de manuel &man.nfsiod.8; pour plus d'informations. Configurer <acronym>NFS</acronym> NFS configuration La configuration de NFS est une opération relativement directe. Les processus qui doivent tourner peuvent tous être lancés au démarrage en modifiant légèrement votre fichier /etc/rc.conf. Sur le serveur NFS, assurez-vous que les options suivantes sont configurées dans le fichier /etc/rc.conf: rpcbind_enable="YES" nfs_server_enable="YES" mountd_flags="-r" mountd est automatiquement exécuté dès que le serveur NFS est activé. Sur le client, assurez-vous que cette option est présente dans le fichier /etc/rc.conf: nfs_client_enable="YES" Le fichier /etc/exports indique quels systèmes de fichiers NFS devraient être exportés (parfois on utilise le terme de “partagés”). Chaque ligne dans /etc/exports précise un système de fichiers à exporter et quelles machines auront accès à ce système de fichiers. En plus des machines qui auront accès, des options d'accès peuvent également être présentes. Ces options sont nombreuses mais seules quelques unes seront abordées ici. Vous pouvez aisément découvrir d'autres options en lisant la page de manuel &man.exports.5;. Voici quelques exemples d'entrées du fichier /etc/exports: NFS exemples d'exportation Les exemples suivants donnent une idée de comment exporter des systèmes de fichiers bien que certains paramètres peuvent être différents en fonction de votre environnement et votre configuration réseau. Par exemple, pour exporter le répertoire /cdrom pour les trois machines d'exemple qui appartiennent au même domaine que le serveur (d'où l'absence du nom de domaine pour chacune d'entre elles) ou qui ont une entrée dans votre fichier /etc/hosts. Le paramètre limite l'accès en lecture seule au système de fichiers exporté. Avec ce paramètre, le système distant ne pourra pas écrire sur le système de fichiers exporté. /cdrom -ro host1 host2 host3 La ligne suivante exporte /home pour les trois machines en utilisant les adresses IP. C'est une configuration utile si vous disposez d'un réseau privé sans serveur DNS configuré. Le fichier /etc/hosts pourrait éventuellement être configuré pour les noms de machines internes, consultez la page de manuel &man.hosts.5; pour plus d'information. Le paramètre autorise l'utilisation des sous-répertoires en tant que point de montage. En d'autres termes, il ne montera pas les sous-répertoires mais autorisera le client à ne monter que les répertoires qui sont nécessaires ou désirés. /home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4 La ligne suivante exporte /a pour que deux clients d'un domaine différent puissent y accéder. Le paramètre autorise l'utilisateur root du système distant à écrire des données sur le système de fichiers exporté en tant que root. Si le paramètre -maproot=root n'est pas précisé, même si un utilisateur dispose d'un accès root sur le système distant, il ne pourra pas modifier de fichiers sur le système de fichiers exporté. /a -maproot=root host.example.com box.example.org Afin de pouvoir accéder à un système de fichiers exporté, le client doit avoir les permissions de le faire. Assurez-vous que le client est mentionné dans votre fichier /etc/exports. Dans /etc/exports, chaque ligne représente l'information d'exportation d'un système de fichiers vers une machine. Une machine distante ne peut être spécifiée qu'une fois par système de fichiers, et ne devrait avoir qu'une seule entrée par défaut. Par exemple, supposons que /usr soit un seul système de fichiers. Le fichier /etc/exports suivant serait invalide: # Invalide quand /usr est un système de fichiers /usr/src client /usr/ports client Un système de fichiers, /usr, a deux lignes précisant des exportations vers la même machine, client. Le format correct pour une telle situation est: /usr/src /usr/ports client - Les propriétes d'un système de fichiers + Les propriétés d'un système de fichiers exporté vers une machine donnée devraient apparaître sur une ligne. Les lignes sans client sont traitées comme destinée à une seule machine. Cela limite la manière dont vous pouvez exporter les systèmes de fichiers, mais pour la plupart des gens cela n'est pas un problème. Ce qui suit est un exemple de liste d'exportation valide, où les répertoires /usr et /exports sont des systèmes de fichiers locaux: # Exporte src et ports vers client01 et client02, mais seul # client01 dispose des privilèges root dessus /usr/src /usr/ports -maproot=root client01 /usr/src /usr/ports client02 # Les machines clientes ont les privilèges root et peuvent monter tout # de /exports. N'importe qui peut monter en lecture seule # /exports/obj /exports -alldirs -maproot=root client01 client02 /exports/obj -ro Vous devez relancer mountd à chaque fois que vous modifiez /etc/exports pour que les changements puissent prendre effet. Cela peut être effectué en envoyant le signal HUP au processus mountd: &prompt.root; kill -HUP `cat /var/run/mountd.pid` De plus, un redémarrage permettra à &os; de tout configurer proprement. Un redémarrage n'est cependant pas nécéssaire. Exécuter les commandes suivantes en tant que root devrait mettre en place ce qui est nécessaire. Sur le serveur NFS: &prompt.root; rpcbind &prompt.root; nfsd -u -t -n 4 &prompt.root; mountd -r Sur le client NFS: &prompt.root; nfsiod -n 4 Maintenant il devrait être possible de monter un système de fichiers distant. Dans nos exemples le nom du serveur sera serveur et le nom du client client. Si vous voulez monter temporairement un système de fichiers distant ou vous voulez simplement tester la configuration, exécutez juste une commande comme celle-ci en tant que root sur le client: NFS montage &prompt.root; mount serveur:/home /mnt Cela montera le répertoire /home situé sur le serveur au point /mnt sur le client. Si tout est correctement configuré vous devriez être en mesure d'entrer dans le répertoire /mnt sur le client et de voir tous les fichiers qui sont sur le serveur. Si vous désirez monter automatiquement un système de fichiers distant à chaque démarrage de l'ordinateur, ajoutez le système de fichiers au fichier /etc/fstab. Voici un exemple: server:/home /mnt nfs rw 0 0 La page de manuel &man.fstab.5; liste toutes les options disponibles. Exemples pratiques d'utilisation Il existe de nombreuses applications pratiques de NFS. Les plus communes sont présentés ci-dessous: NFS utilisations Configurer plusieurs machines pour partager un CDROM ou un autre médium. C'est moins cher et souvent une méthode plus pratique pour installer des logiciels sur de multiples machines. Sur les réseaux importants, il peut être plus pratique de configurer un serveur NFS central sur lequel tous les répertoires utilisateurs sont stockés. Ces répertoires utilisateurs peuvent alors être exportés vers le réseau, les utilisateurs devraient alors toujours avoir le même répertoire utilisateur indépendamment de la station de travail sur laquelle ils ouvrent une session. Plusieurs machines pourront avoir un répertoire /usr/ports/distfiles commun. De cette manière, quand vous avez besoin d'installer un logiciel porté sur plusieurs machines, vous pouvez accéder rapidement aux sources sans les télécharger sur chaque machine. Wylie Stilwell Contribution de Chern Lee Réécrit par Montages automatiques avec <application>amd</application> amd daemon de montage automatique &man.amd.8; (“automatic mounter daemon”—“daemon” de montage automatique) monte automatiquement un système de fichiers distant dès que l'on accède à un fichier ou un répertoire contenu par ce système de fichiers. Les systèmes de fichiers qui sont inactifs pendant une certaine période seront automatiquement démontés par amd. L'utilisation d'amd offre une alternative simple aux montages permanents qui sont généralement listés dans /etc/fstab. amd opère en s'attachant comme un serveur NFS aux répertoires /host et /net. Quand on accède à un fichier à l'intérieur de ces répertoires, amd recherche le montage distant correspondant et le monte automatiquement. /net est utilisé pour monter un système de fichiers exporté à partir d'une adresse IP, alors que /host est utilisé pour monter un système de fichiers exporté à partir d'un nom de machine distant. Un accès à un fichier dans /host/foobar/usr demandera à amd de tenter de monter l'export /usr sur la machine foobar. Monter un systèmes de fichiers exporté avec <application>amd</application> Vous pouvez voir les systèmes de fichiers exportés par une machine distante avec la commande showmount. Par exemple, pour voir les répertoires exportés par une machine appelée foobar, vous pouvez utiliser: &prompt.user; showmount -e foobar Exports list on foobar: /usr 10.10.10.0 /a 10.10.10.0 &prompt.user; cd /host/foobar/usr Comme on le voit dans l'exemple, showmount liste /usr comme une exportation. Quand on change de répertoire pour /host/foobar/usr, amd tente de résoudre le nom de machine foobar et de monter automatiquement le système exporté désiré. amd peut être lancé par les procédures de démarrage en ajoutant les lignes suivantes dans le fichier /etc/rc.conf: amd_enable="YES" De plus, des paramètres peuvent être passés à amd à l'aide de l'option amd_flags. Par défaut, l'option amd_flags est possitionnée à: amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map" Le fichier /etc/amd.map définit les options par défaut avec lesquelles les systèmes exportés sont montés. Le fichier /etc/amd.map définit certaines des fonctionnalités les plus avancées de amd. Consultez les pages de manuel de &man.amd.8; et &man.amd.conf.5; pour plus d'informations. John Lind Contribution de Problèmes d'intégration avec d'autres systèmes Certaines cartes Ethernet ISA présentent des limitations qui peuvent poser de sérieux problèmes sur un réseau, en particulier avec NFS. Ce n'est pas une particularité de &os;, mais &os; en est également affecté. Ce problème se produit pratiquement à chaque fois que des systèmes (&os;) PC sont sur le même réseau que des stations de travail très performantes, comme celles de Silicon Graphics, Inc. et Sun Microsystems, Inc. Les montages NFS se feront sans difficulté, et certaines opérations pourront réussir, puis soudain le serveur semblera ne plus répondre au client, bien que les requêtes vers ou en provenance d'autres systèmes continueront à - être traitées normalement. Cela se manisfeste + être traitées normalement. Cela se manifeste sur la machine cliente, que ce soit le système &os; ou la station de travail. Sur de nombreux systèmes, il n'est pas possible d'arrêter le client proprement une fois que ce problème apparaît. La seule solution est souvent de réinitialiser le client parce que le problème NFS ne peut être résolu. Bien que la solution “correcte” est d'installer une carte Ethernet plus performante et de plus grande capacité sur le système &os;, il existe une solution simple qui donnera satisfaction. Si le système &os; est le serveur, ajoutez l'option lors du montage sur le client. Si le système &os; est le client, alors montez le système de fichiers NFS avec l'option . Ces options peuvent être spécifiées dans le quatrième champ de l'entrée fstab sur le client pour les montages automatiques, ou en utilisant le paramètre de la commande &man.mount.8; pour les montages manuels. Il faut noter qu'il existe un problème différent, que l'on confond parfois avec le précédent, qui peut se produire lorsque les serveurs et les clients NFS sont sur des réseaux différents. Si c'est le cas, assurez-vous que vos routeurs transmettent bien les informations UDP nécessaires, ou vous n'irez nulle part, quoi que vous fassiez par ailleurs. Dans les exemples suivants, fastws est le nom de la station de travail (interface) performante, et freebox celui d'une machine (interface) &os; avec une carte Ethernet moins performante. /sharedfs est le système de fichiers NFS qui sera exporté (consulter la page de manuel &man.exports.5;), et /project sera le point de montage sur le client pour le système de fichiers exporté. Dans tous les cas, des options supplémentaires, telles que et seront peut-être nécessaires pour vos applications. Exemple d'extrait du fichier /etc/fstab sur freebox quand le système &os; (freebox) est le client: fastws:/sharedfs /project nfs rw,-r=1024 0 0 Commande de montage manuelle sur freebox: &prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /project Exemple d'extrait du fichier /etc/fstab sur fastws quand le système &os; est le serveur: freebox:/sharedfs /project nfs rw,-w=1024 0 0 Commande de montage manuelle sur fastws: &prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /project Presque n'importe quelle carte Ethernet 16 bits permettra d'opérer sans l'utilisation des paramètres restrictifs précédents sur les tailles des tampons de lecture et d'écriture. Pour ceux que cela intéresse, voici ce qui se passe quand le problème survient, ce qui explique également pourquoi ce n'est pas récupérable. NFS travaille généralement avec une taille de “bloc” de 8 k (bien qu'il arrive qu'il les fragmente en de plus petits morceaux). Comme la taille maximale d'un paquet Ethernet est de 1500 octets, le “bloc” NFS est divisé en plusieurs paquets Ethernet, bien qu'il soit toujours vu comme quelque chose d'unitaire par les couches supérieures du code, et doit être réceptionné, assemblé, et acquitté comme tel. Les stations de travail performantes peuvent traiter les paquets qui composent le bloc NFS les uns après les autres, pratiquement aussi rapidement que le standard le permet. Sur les cartes les plus petites, de moindre capacité, les derniers paquets d'un même bloc écrasent les - paquets précédents avant qu'ils aient pû + paquets précédents avant qu'ils aient pu être transmis à la machine et le bloc ne peut être réassemblé ou acquitté. Avec pour conséquence, le dépassement du délai d'attente sur la station de travail qui recommence alors la transmission, mais en renvoyant l'intégralité - des 8 K, et ce processus se repète à + des 8 K, et ce processus se répète à l'infini. En définissant la taille de bloc inférieure à la taille d'un paquet Ethernet, nous nous assurons que chaque paquet Ethernet complet sera acquitté individuellement, évitant ainsi la situation de blocage. Des écrasements peuvent toujours survenir quand des stations de travail performantes surchargent un système PC de données, mais avec de meilleures cartes, de tels écrasements ne sont pas systématiques pour les “blocs” NFS. Quand un écrasement apparaît, les blocs affectés sont retransmis, et ils y a de fortes chances pour qu'ils soient reçus, assemblés et acquittés. Bill Swingle Ecrit par Eric Ogren Augmenté par Udo Erdelhoff Services d'information réseau (NIS/YP) Qu'est-ce que c'est? NIS Solaris HP-UX AIX Linux NetBSD OpenBSD NIS, qui signifie “Network Information Services” (services d'information réseau), fut développé par Sun Microsystems pour centraliser l'administration de systèmes &unix; (à l'origine &sunos;). C'est devenu aujourd'hui un standard industriel; tous les systèmes importants de type &unix; (&solaris;, HP-UX, &aix;, Linux, NetBSD, OpenBSD, &os;, etc.) supportent NIS. yellow pagesNIS NIS était appelé au départ “Yellow Pages” (page jaunes), mais étant donné que c'était marque déposée, Sun changea le nom. L'ancienne appelation (et yp) est toujours rencontrée et utilisée. NIS domaines C'est un système client/serveur basé sur les RPCs qui permet à un groupe de machines d'un domaine NIS de partager un ensemble de fichiers de configuration communs. Cela permet à un administrateur système de mettre en place des clients NIS avec un minimum de configuration et d'ajouter, modifier ou supprimer les informations de configuration à partir d'un unique emplacement. Windows NT C'est similaire au système de domaine &windowsnt;; bien que l'implémentation interne des deux n'est pas du tout identique, les fonctionnalités de base sont comparables. Termes/processus à connaître Il existe plusieurs termes et processus utilisateurs que vous rencontrerez lors de la configuration de NIS sous &os;, que vous vouliez mettre en place un serveur NIS ou un client NIS: rpcbind portmap Terme Description Nom de domaine NIS Un serveur maître NIS et tous ses clients (y compris ses serveurs esclaves) ont un domaine NIS. Similaire au nom de domaine &windowsnt;, le nom de domaine NIS n'a rien à voir avec le système DNS. rpcbind Doit tourner afin d'activer les RPC (Remote Procedure Call, appel de procédures distantes, un protocole réseau utilisé par NIS). Si rpcbind ne tourne pas, il sera impossible de faire fonctionner un serveur NIS, ou jouer le rôle d'un client NIS (sous &os; 4.X portmap est utilisé à la place de rpcbind). ypbind Fait pointer un client NIS vers son serveur NIS. Il récupérera le nom de domaine NIS auprès du système, et en utilisant les RPC, se connectera au serveur. ypbind est le coeur de la communication client-serveur dans un environnement NIS; si ypbind meurt sur une machine cliente, elle ne sera pas en mesure d'accéder au serveur NIS. ypserv Ne devrait tourner que sur les serveurs NIS, c'est le processus serveur en lui-même. Si &man.ypserv.8; meurt, alors le serveur ne pourra plus répondre aux requêtes NIS (avec un peu de chance, un serveur esclave prendra la relève). Il existe des implémentations de NIS (mais ce n'est pas le cas de celle de &os;), qui n'essayent pas de se reconnecter à un autre serveur si le serveur utilisé précédement meurt. Souvent, la seule solution dans ce cas est de relancer le processus serveur (ou même redémarrer le serveur) ou le processus ypbind sur le client. rpc.yppasswdd Un autre processus qui ne devrait tourner que sur les serveurs maître NIS; c'est un “daemon” qui permettra aux clients de modifier leur mot de passe NIS. Si ce “daemon” ne tourne pas, les utilisateurs devront ouvrir une session sur le serveur maître NIS et y changer à cet endroit leur mot de passe. Comment cela fonctionne-t-il? Dans un environnement NIS il y a trois types de machines: les serveurs maîtres, les serveurs esclaves et les clients. Les serveurs centralisent les informations de configuration des machines. Les serveurs maîtres détiennent l'exemplaire de référence de ces informations, tandis que les serveurs esclaves en ont un double pour assurer la redondance. Les clients attendent des serveurs qu'ils leur fournissent ces informations. Le contenu de nombreux fichiers peut être partagé de cette manière. Les fichiers master.passwd, group, et hosts sont fréquemment partagés par l'intermédiaire de NIS. A chaque fois qu'un processus d'une machine cliente a besoin d'une information qu'il trouverait normalement localement dans un de ces fichiers, il émet une requête au serveur NIS auquel il est rattaché pour obtenir cette information. Type de machine NIS serveur maître Un serveur NIS maître. Ce serveur, analogue à un contrôleur de domaine &windowsnt; primaire, gère les fichiers utilisés par tous les clients NIS. Les fichiers passwd, group, et les autres fichiers utilisés par les clients NIS résident sur le serveur maître. Il est possible pour une machine d'être un serveur NIS maître pour plus qu'un domaine NIS. Cependant, ce cas ne sera pas abordé dans cette introduction, qui suppose un environnement NIS relativement petit. NIS serveur esclave Serveurs NIS esclaves. Similaire aux contrôleurs de domaine &windowsnt; de secours, les serveurs NIS esclaves possèdent une copie des fichiers du serveur NIS maître. Les serveurs NIS esclaves fournissent la redondance nécessaire dans les environnements importants. Ils aident également à à la répartition de la charge du serveur maître: les clients NIS s'attachent toujours au serveur NIS dont ils reçoivent la réponse en premier, y compris si c'est la réponse d'un serveur esclave. NIS client Clients NIS. Les clients NIS, comme la plupart des stations de travail &windowsnt;, s'identifient auprès du serveur NIS (ou le contrôleur de domaine &windowsnt; dans le cas de stations de travail &windowsnt;) pour l'ouverture de sessions. Utiliser NIS/YP Cette section traitera de la configuration d'un exemple d'environnement NIS. Dans cette section on suppose que vous utilisez &os; 3.3 ou une version suivante. Les instructions - fournies fonctionneront probabablement + fournies fonctionneront probablement avec n'importe quelle version de &os; supérieure à 3.0, mais il n'y a aucune garantie que cela soit le cas. Planification Supposons que vous êtes l'administrateur d'un petit laboratoire universitaire. Ce laboratoire dispose de 15 machines &os;, et ne possède pas actuellement de point central d'administration; chaque machine a ses propres fichiers /etc/passwd et /etc/master.passwd. Ces fichiers sont maintenus à jour entre eux grâce à des interventions manuelles; actuellement quand vous ajoutez un utilisateur pour le laboratoire, vous devez exécuter adduser sur les 15 machines. Cela doit changer, vous avez donc décidé de convertir le laboratoire à l'utilisation de NIS en utilisant deux machines comme serveurs. La configuration du laboratoire ressemble à quelque chose comme: Nom de machine Adresse IP Rôle de la machine ellington 10.0.0.2 Maître NIS coltrane 10.0.0.3 Esclave NIS basie 10.0.0.4 Station de travail bird 10.0.0.5 Machine cliente cli[1-11] 10.0.0.[6-17] Autres machines clientes Si vous mettez en place un système NIS pour la première fois, c'est une bonne idée de penser à ce que vous voulez en faire. Peu importe la taille de votre réseau, il y a quelques décisions à prendre. Choisir un nom de domaine NIS NIS nom de domaine Ce n'est pas le “nom de domaine” dont vous avez l'habitude. Il est plus exactement appelé “nom de domaine NIS”. Quand un client diffuse des requêtes pour obtenir des informations, il y inclut le nom de domaine NIS auquel il appartient. C'est ainsi que plusieurs serveurs d'un même réseau peuvent savoir lequel d'entre eux doit répondre aux différentes requêtes. Pensez au nom de domaine NIS comme le nom d'un groupe de machines qui sont reliées entre elles. - Certains choississent d'utiliser leur nom de domaine + Certains choisissent d'utiliser leur nom de domaine Internet pour nom de domaine NIS. Ce n'est pas conseillé parce que c'est une source de confusion quand il faut résoudre un problème réseau. Le nom de domaine NIS devrait être unique sur votre réseau et est utile s'il décrit le groupe de machines qu'il représente. Par exemple, le département artistique de Acme Inc. pourrait avoir “acme-art” comme nom de domaine NIS. Pour notre exemple, nous supposerons que vous avez choisi le nom test-domain. SunOS Cependant, certains systèmes d'exploitation (notamment &sunos;) utilisent leur nom de domaine NIS pour nom de domaine Internet. Si une ou plusieurs machines sur votre réseau présentent cette restriction, vous devez utiliser votre nom de domaine Internet pour nom de domaine NIS. Contraintes au niveau du serveur Il y a plusieurs choses à garder à l'esprit quand on choisit une machine destinée à être un serveur NIS. Un des problèmes du NIS est le degré de dépendance des clients vis à vis du serveur. Si un client ne peut contacter le serveur de son domaine NIS, la plupart du temps la machine n'est plus utilisable. L'absence d'information sur les utilisateurs et les groupes bloque la plupart des systèmes. Vous devez donc vous assurer de choisir une machine qui ne sera pas - redémarrée fréquement, ni + redémarré fréquemment, ni utilisée pour du développement. Idéalement, le serveur NIS devrait être une machine dont l'unique utilisation serait d'être un serveur NIS. Si vous avez un réseau qui n'est pas très chargé, il peut être envisagé de mettre le serveur NIS sur une machine fournissant d'autres services, gardez juste à l'esprit que si le serveur NIS n'est pas disponible à un instant donné, cela affectera tous vos clients NIS. Serveurs NIS La copie de référence de toutes les informations NIS est stockée sur une seule machine appelée serveur NIS maître. Les bases de données utilisées pour le stockage de ces informations sont appelées tables NIS (“NIS maps”). Sous &os; ces tables se trouvent dans /var/yp/[domainname][domainname] est le nom du domaine NIS concerné. Un seul serveur NIS peut gérer plusieurs domaines à la fois, il peut donc y avoir plusieurs de ces répertoires, un pour chaque domaine. Chaque domaine aura son propre jeu de tables. Les serveurs NIS maîtres et esclaves traitent toutes les requêtes NIS à l'aide du “daemon” ypserv. ypserv reçoit les requêtes des clients NIS, traduit le nom de domaine et le nom de table demandés en chemin d'accès à la base de données correspondante et transmet l'information de la base de données au client. Configurer un serveur NIS maître NIS configuration du serveur Selon vos besoins, la configuration d'un serveur NIS maître peut être relativement simple. &os; offre par défaut un support direct du NIS. Tout ce dont vous avez besoin est d'ajouter les lignes qui suivent au fichier /etc/rc.conf, et &os; s'occupera du reste pour vous. nisdomainname="test-domain" Cette ligne définie le nom de domaine NIS, test-domain, à la configuration du réseau (e.g. au démarrage). nis_server_enable="YES" Demandera à &os; de lancer les processus du serveur NIS dès que le réseau est en fonctionnement. nis_yppasswdd_enable="YES" Ceci activera le “daemon” rpc.yppasswdd, qui, comme mentionné précedement, permettra aux utilisateurs de modifier leur mot de passe à partir d'une machine cliente. Selon votre configuration NIS, vous aurez peut-être à ajouter des entrées supplémentaires. Consultez la section sur les serveurs NIS qui sont également des clients NIS, plus bas, pour plus de détails. Maintenant, tout ce que vous devez faire est d'exécuter la commande /etc/netstart en tant que super-utilisateur. Elle configurera tout en utilisant les valeurs que vous avez définies dans /etc/rc.conf. Initialisation des tables NIS NIS tables Les tables NIS sont des fichiers de base de données, qui sont conservés dans le répertoire /var/yp. Elles sont générées à partir des fichiers de configuration du répertoire /etc du serveur NIS maître, avec une exception: le fichier /etc/master.passwd. Et cela pour une bonne raison, vous ne voulez pas divulguer les mots de passe pour l'utilisateur root et autres comptes d'administration aux autres serveurs du domaine NIS. Par conséquent, avant d'initialiser les tables NIS, vous devrez faire: &prompt.root; cp /etc/master.passwd /var/yp/master.passwd &prompt.root; cd /var/yp &prompt.root; vi master.passwd Vous devrez effacer toutes les entrées concernant les comptes système (bin, tty, kmem, games, etc.), tout comme les comptes que vous ne désirez pas propager aux clients NIS (par exemple root et tout autre compte avec un UID 0 (super-utilisateur)). Assurez-vous que le fichier /var/yp/master.passwd n'est pas lisible par son groupe ou le reste du monde (mode 600)! Utilisez la commande chmod si nécessaire. Tru64 UNIX Cela achevé, il est temps d'initialiser les tables NIS! &os; dispose d'une procédure appelée ypinit pour le faire à votre place (consultez sa page de manuel pour plus d'informations). Notez que cette procédure est disponible sur la plupart des systèmes d'exploitation du type &unix;, mais pas tous. Sur Digital UNIX/Compaq Tru64 UNIX, elle est appelée ypsetup. Comme nous voulons générer les tables pour un maître NIS, nous passons l'option à ypinit. Pour générer les tables NIS, en supposant que vous avez effectué les étapes précédentes, lancez: ellington&prompt.root; ypinit -m test-domain Server Type: MASTER Domain: test-domain Creating an YP server will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. Do you want this procedure to quit on non-fatal errors? [y/n: n] n Ok, please remember to go back and redo manually whatever fails. If you don't, something might not work. At this point, we have to construct a list of this domains YP servers. rod.darktech.org is already known as master server. Please continue to add any slave servers, one per line. When you are done with the list, type a <control D>. master server : ellington next host to add: coltrane next host to add: ^D The current list of NIS servers looks like this: ellington coltrane Is this correct? [y/n: y] y [..output from map generation..] NIS Map update completed. ellington has been setup as an YP master server without any errors. ypinit devrait avoir créé /var/yp/Makefile à partir de /var/yp/Makefile.dist. Une fois créé, ce fichier suppose que vous être dans un environnement composé uniquement de machines &os; et avec un seul serveur. Comme test-domain dispose également d'un serveur esclave, vous devez éditer /var/yp/Makefile: ellington&prompt.root; vi /var/yp/Makefile Vous devez commenter la ligne NOPUSH = "True" (si elle n'est pas déjà commentée). Configurer un serveur NIS esclave NIS serveur esclave Configurer un serveur NIS esclave est encore plus simple que de configurer un serveur maître. Ouvrez une session sur le serveur esclave et éditez le fichier /etc/rc.conf comme précédemment. La seule différence est que nous devons maintenant utiliser l'option avec ypinit. L'option a besoin du nom du serveur NIS maître, donc notre ligne de commande ressemblera à: coltrane&prompt.root; ypinit -s ellington test-domain Server Type: SLAVE Domain: test-domain Master: ellington Creating an YP server will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. Do you want this procedure to quit on non-fatal errors? [y/n: n] n Ok, please remember to go back and redo manually whatever fails. If you don't, something might not work. There will be no further questions. The remainder of the procedure should take a few minutes, to copy the databases from ellington. Transferring netgroup... ypxfr: Exiting: Map successfully transferred Transferring netgroup.byuser... ypxfr: Exiting: Map successfully transferred Transferring netgroup.byhost... ypxfr: Exiting: Map successfully transferred Transferring master.passwd.byuid... ypxfr: Exiting: Map successfully transferred Transferring passwd.byuid... ypxfr: Exiting: Map successfully transferred Transferring passwd.byname... ypxfr: Exiting: Map successfully transferred Transferring group.bygid... ypxfr: Exiting: Map successfully transferred Transferring group.byname... ypxfr: Exiting: Map successfully transferred Transferring services.byname... ypxfr: Exiting: Map successfully transferred Transferring rpc.bynumber... ypxfr: Exiting: Map successfully transferred Transferring rpc.byname... ypxfr: Exiting: Map successfully transferred Transferring protocols.byname... ypxfr: Exiting: Map successfully transferred Transferring master.passwd.byname... ypxfr: Exiting: Map successfully transferred Transferring networks.byname... ypxfr: Exiting: Map successfully transferred Transferring networks.byaddr... ypxfr: Exiting: Map successfully transferred Transferring netid.byname... ypxfr: Exiting: Map successfully transferred Transferring hosts.byaddr... ypxfr: Exiting: Map successfully transferred Transferring protocols.bynumber... ypxfr: Exiting: Map successfully transferred Transferring ypservers... ypxfr: Exiting: Map successfully transferred Transferring hosts.byname... ypxfr: Exiting: Map successfully transferred coltrane has been setup as an YP slave server without any errors. Don't forget to update map ypservers on ellington. Vous devriez avoir un répertoire appelé /var/yp/test-domain. Des copies des tables du serveur NIS maître devraient se trouver dans ce répertoire. Vous devrez vous assurer que ces tables restent à jour. Les entrées suivantes dans /etc/crontab sur vos serveurs esclaves s'en chargeront: 20 * * * * root /usr/libexec/ypxfr passwd.byname 21 * * * * root /usr/libexec/ypxfr passwd.byuid Ces deux lignes obligent le serveur esclave à synchroniser ses tables avec celles du serveur maître. Bien que ces entrées ne soient pas indispensables puisque le serveur maître essaye de s'assurer que toute modification de ses tables NIS soit répercutée à ses serveurs esclaves et comme l'information sur les mots de passe est vitale pour les systèmes qui dépendent du serveur, il est bon de forcer les mises à jour. C'est d'autant plus important sur les réseaux chargés où il n'est pas certain que les mises à jour soient intégrales. Maintenant, exécutez la commande /etc/netstart sur le serveur esclave, ce qui lancera le serveur NIS. Clients NIS Un client NIS établit une connexion avec un serveur NIS donné par l'intermédiaire du “daemon” ypbind. ypbind consulte le nom de domaine par défaut du système (défini par la commande domainname), et commence à diffuser des requêtes RPC sur le réseau local. Ces requêtes précisent le nom de domaine auquel ypbind essaye de se rattacher. Si un serveur configuré pour ce domaine reçoit une des requêtes diffusées, il répond à ypbind, qui enregistrera l'adresse du serveur. S'il y a plusieurs serveurs disponibles (un maître et plusieurs esclaves par example), ypbind utilisera l'adresse du premier à répondre. Dès lors, le système client dirigera toutes ses requêtes NIS vers ce serveur. ypbind enverra de temps en temps des requêtes “ping” au serveur pour s'assurer qu'il fonctionne toujours. S'il ne reçoit pas de réponse dans un laps de temps raisonnable, ypbind considérera ne plus être attaché au domaine et recommencera à diffuser des requêtes dans l'espoir de trouver un autre seveur. Configurer un client NIS NIS configuration du client Configurer une machine &os; en client NIS est assez simple. Editez le fichier /etc/rc.conf et ajoutez les lignes suivantes afin de définir le nom de domaine NIS et lancez ypbind au démarrage du réseau: nisdomainname="test-domain" nis_client_enable="YES" Pour importer tous les mots de passe disponibles du serveur NIS, effacez tous les comptes utilisateur de votre fichier /etc/master.passwd et utilisez vipw pour ajouter la ligne suivante à la fin du fichier: +::::::::: Cette ligne permet à chaque utilisateur ayant un compte valide dans les tables de mots de passe du serveur d'avoir un compte sur le client. Il y a plusieurs façons de configurer votre client NIS en modifiant cette ligne. Consultez la section groupes réseau plus bas pour plus d'informations. Pour en savoir plus, reportez-vous à l'ouvrage Managing NFS and NIS de chez O'Reilly. Vous devriez conservez au moins un compte local (i.e. non-importé via NIS) dans votre fichier /etc/master.passwd et ce compte devrait également être membre du groupe wheel. Si quelque chose se passe mal avec NIS, ce compte peut être utilisé pour ouvrir une session à distance, devenir root, et effectuer les corrections nécessaires. Pour importer tous les groupes disponibles du serveur NIS, ajoutez cette ligne à votre fichier /etc/group: +:*:: Une fois que c'est fait, vous devriez être en mesure d'exécuter ypcat passwd et voir la table des mots de passe du serveur NIS. Sécurité du NIS De façon générale, n'importe quel utilisateur distant peut émettre une requête RPC à destination de &man.ypserv.8; et récupérer le contenu de vos tables NIS, en supposant que l'utilisateur distant connaisse votre nom de domaine. Pour éviter ces transactions non autorisées, &man.ypserv.8; dispose d'une fonctionnalité appelée “securenets” qui peut être utilisée pour restreindre l'accès à un ensemble donné de machines. Au démarrage, &man.ypserv.8; tentera de charger les informations sur les “securenets” à partir d'un fichier nommé /var/yp/securenets. Ce chemin d'accès peut varier en fonction du chemin d'accès défini par l'option . Ce fichier contient des entrées sous la forme de définitions de réseau et d'un masque de sous-réseau séparé par une espace. Les lignes commençant par un “#” sont considérées comme des commentaires. Un exemple de fichier securenets peut ressembler à ceci: # autorise les connexions depuis la machine locale -- obligatoire 127.0.0.1 255.255.255.255 # autorise les connexions de n'importe quelle machine # du réseau 192.168.128.0 192.168.128.0 255.255.255.0 # autorise les connexions de n'importe quelle machine # entre 10.0.0.0 et 10.0.15.255 # y compris les machines du laboratoire de test 10.0.0.0 255.255.240.0 Si &man.ypserv.8; reçoit une requête d'une adresse qui satisfait à ces règles, il la traite normalement. Si une adresse ne correspond pas aux règles, la requête sera ignorée et un message d'avertissement sera enregistré. Si le fichier /var/yp/securenets n'existe pas, ypserv autorisera les connexions à partir de n'importe quelle machine. Le programme ypserv supporte également l'outil tcpwrapper de Wietse Venema. Cela permet à l'administrateur d'utiliser les fichiers de configuration de tcpwrapper pour contrôler les accès à la place de /var/yp/securenets. Bien que ces deux mécanismes de contrôle d'accès offrent une certaine sécurité, il sont, de même que le test du port privilégié, vulnérables aux attaques par “usurpation” d'adresses. Tout le trafic relatif à NIS devrait être bloqué par votre coupe-feu. Les serveurs utilisant /var/yp/securenets pourront échouer à traiter les requêtes de clients NIS légitimes avec des implémentation TCP/IP archaïques. Certaines de ces implémentations positionnent à zéro les bits de la partie machine de l'adresse IP lors de diffusions et/ou sont incapables respecter le masque de sous-réseau lors du calcul de l'adresse de diffusion. Alors que certains de ces problèmes peuvent être corrigés en modifiant la configuration du client, d'autres problèmes peuvent forcer le retrait des systèmes clients fautifs ou l'abandon de /var/yp/securenets. Utiliser /var/yp/securenets sur un serveur avec une implémentation TCP/IP archaïque est une mauvaise idée et sera à l'origine de pertes de la fonctionnalité NIS pour une grande partie de votre réseau. tcpwrapper L'utilisation du système tcpwrapper augmente les temps de latence de votre serveur NIS. Le délai supplémentaire peut être suffisament long pour dépasser le délai d'attente des programmes clients, tout particulièrement sur des réseaux chargés ou avec des serveurs NIS lents. Si un ou plusieurs de vos systèmes clients souffrent de ces symptômes, vous devrez convertir les systèmes clients en question en serveurs esclaves NIS et les forcer à se rattacher à eux-mêmes. Interdire l'accès à certains utilisateurs Dans notre laboratoire, il y a une machine basie qui est supposée être une station de travail de la faculté. Nous ne voulons pas retirer cette machine du domaine NIS, le fichier passwd sur le serveur maître NIS contient les comptes pour la faculté et les étudiants. Que pouvons-nous faire? Il existe une méthode pour interdire à certains utilisateurs d'ouvrir une session sur une machine, même s'ils sont présents dans la base de données NIS. Pour cela, tout ce dont vous avez besoin de faire est d'ajouter -nom_utilisateur à la fin du fichier /etc/master.passwd sur la machine cliente, où nom_utilisateur est le nom de l'utilisateur auquel vous désirez refuser l'accès. Ceci doit être fait de préférence avec vipw, puisque vipw contrôlera vos changements au fichier /etc/master.passwd, et - regénérera automatiquement la base de + régénérera automatiquement la base de données à la fin de l'édition. Par exemple, si nous voulions interdire l'ouverture de session à l'utilisateur bill sur la machine basie nous ferions: basie&prompt.root; vipw [add -bill to the end, exit] vipw: rebuilding the database... vipw: done basie&prompt.root; cat /etc/master.passwd root:[password]:0:0::0:0:The super-user:/root:/bin/csh toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin operator:*:2:5::0:0:System &:/:/sbin/nologin bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin news:*:8:8::0:0:News Subsystem:/:/sbin/nologin man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin +::::::::: -bill basie&prompt.root; Udo Erdelhoff Contribution de Utiliser les groupes réseau (“netgroups”) groupes réseau La méthode présentée dans la section précédente fonctionne relativement bien si vous avez besoin de règles spécifiques pour un petit nombre d'utilisateurs et/ou de machines. Sur les réseaux plus important, vous oublierez d'interdire l'accès aux machines sensibles à certains utilisateurs, ou vous devrez même modifier chaque machine séparément, perdant par là même les avantages du NIS: l'administration centralisée. La solution des développeurs du NIS pour ce problème est appelé groupes réseau (“netgroups”). Leur objet et définition peuvent être comparés aux groupes utilisés par les systèmes &unix;. La principale différence étant l'absence d'identifiants (ID) numériques et la capacité de définir un groupe réseau à l'aide de comptes utilisateur et d'autres groupes réseau. Les groupes réseau furent développés pour gérer des réseaux importants et complexes avec des centaines de machines et d'utilisateurs. C'est une bonne option si vous êtes forcés de faire avec une telle situation. Cependant leur complexité rend impossible une explication avec des exemples simples. L'exemple utilisé dans le reste de cette section met en évidence ce problème. Supposons que l'introduction avec succès de NIS dans votre laboratoire a retenu l'attention de vos supérieurs. Votre mission suivante est d'étendre la couverture de votre domaine NIS à d'autres machines sur le campus. Les deux tables contiennent les noms des nouveaux utilisateurs et des nouvelles machines ainsi qu'une courte description de chacuns. Nom(s) d'utilisateurs Description alpha, beta Les employés du département IT (“Information Technology“) charlie, delta Les nouveaux apprentis du département IT echo, foxtrott, golf, ... Les employés ordinaires able, baker, ... Les internes actuels Nom(s) de machines Description war, death, famine, pollution Vos serveurs les plus importants. Seuls les employés du département IT sont autorisés à ouvrir des sessions sur ces machines. pride, greed, envy, wrath, lust, sloth Serveurs moins importants. Tous les membres du laboratoire IT sont autorisés à ouvrir des sessions sur ces machines. one, two, three, four, ... Stations de travail ordinaires. Seuls les employés réels sont autorisés à utiliser ces machines. trashcan Une très vielle machine sans données sensibles. Même les internes peuvent utiliser cette machine. Si vous avez essayé d'implémenter ces restrictions en bloquant séparément chaque utilisateur, vous avez dû ajouter une ligne -utilisateur à chaque fichier passwd de chaque système pour chaque utilisateur non-autorisé à ouvrir une session sur le système. Si vous - ometter ne serait-ce qu'une entrée, vous aurez des + omettez ne serait-ce qu'une entrée, vous aurez des problèmes. Il doit être possible de faire cela lors de la configuration initiale, cependant vous finirez par oublier d'ajouter les lignes pour de nouveaux utilisateurs lors d'opérations quotidiennes. Après tout, Murphy était quelqu'un d'optimiste. Traiter cette situation avec les groupes réseau présente plusieurs avantages. Chaque utilisateur n'a pas besoin d'être traité séparément; vous assignez un utilisateur à un ou plusieurs groupes réseau et autorisez ou refusez l'ouverture de session à tous les membres du groupe réseau. Si vous ajoutez une nouvelle machine, vous n'aurez à définir les restrictions d'ouverture de session que pour les groupes réseau. Ces modifications sont indépendantes les unes des autres, plus de “pour chaque combinaison d'utilisateur et de machine faire...” Si votre configuration NIS est réfléchie, vous n'aurez à modifier qu'une configuration centrale pour autoriser ou refuser l'accès aux machines. La première étape est l'initialisation de la table NIS du groupe réseau. La version &os; d'&man.ypinit.8; ne crée pas de table par défaut, mais son implémentation NIS la supportera une fois créée. Pour créer une table vide, tapez simplement ellington&prompt.root; vi /var/yp/netgroup et commencez à ajouter du contenu. Pour notre exemple, nous avons besoin de quatre groupes réseau: les employées du département IT, les apprentis du département IT, les employés normaux et les internes. IT_EMP (,alpha,test-domain) (,beta,test-domain) IT_APP (,charlie,test-domain) (,delta,test-domain) USERS (,echo,test-domain) (,foxtrott,test-domain) \ (,golf,test-domain) INTERNS (,able,test-domain) (,baker,test-domain) IT_EMP, IT_APP etc. sont les noms des groupes réseau. Chaque groupement entre parenthèses ajoute un ou plusieurs comptes utilisateurs aux groupes. Les trois champs dans un groupement sont: Le nom de la/les machine(s) où les éléments suivants sont valides. Si vous ne précisez pas un nom de machine, l'entrée est valide sur toutes les machines. Si vous précisez un nom de machine, vous pénétrerez dans un royaume obscure, d'horreur et de confusion totale. Le nom du compte qui appartient au groupe réseau. Le domaine NIS pour le compte. Vous pouvez importer les comptes d'autres domaines NIS dans votre groupe réseau si vous êtes une de ces personnes malchanceuses avec plus d'un domaine NIS. Chacun de ces champs peut contenir des jokers. Consultez la page de manuel &man.netgroup.5; pour plus de détails. groupes réseau Les noms de groupes réseau plus long que 8 caractères ne devraient pas être utilisés, tout particulièrement si vous avez des machines utilisant d'autres systèmes d'exploitation dans votre domaine NIS. Les noms sont sensibles à la casse des caractères; utiliser des majuscules pour vos noms de groupes réseau est une méthode simple pour distinguer les utilisateurs, les machines et les noms de groupes réseau. Certains clients NIS (autres que &os;) ne peuvent gérer les groupes réseau avec un grand nombre d'entrées. Par exemple, certaines anciennes versions de &sunos; commencent à causer des problèmes si un groupe réseau contient plus de 15 entrées. Vous pouvez contourner cette limite en créant plusieurs sous-groupes réseau avec 15 utilisateurs ou moins et un véritable groupe réseau constitué des sous-groupes réseau: BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...] BIGGRP2 (,joe16,domain) (,joe17,domain) [...] BIGGRP3 (,joe31,domain) (,joe32,domain) BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3 Vous pouvez répéter ce processus si vous avez besoin de plus de 255 utilisateurs dans un seul groupe réseau. Activer et propager votre nouvelle table NIS est simple: ellington&prompt.root; cd /var/yp ellington&prompt.root; make Ceci générera les trois tables NIS netgroup, netgroup.byhost et netgroup.byuser. Utilisez &man.ypcat.1; pour contrôler si vos nouvelles tables NIs sont disponibles: ellington&prompt.user; ypcat -k netgroup ellington&prompt.user; ypcat -k netgroup.byhost ellington&prompt.user; ypcat -k netgroup.byuser La sortie devrait être semblable au contenu de /var/yp/netgroup. La deuxième commande ne produira pas de sortie si vous n'avez pas précisé les groupes réseau spécifiques à une machine. La troisième commande peut être utilisée pour obtenir les listes des groupes réseau pour un utilisateur. La configuration du client est plutôt simple. Pour configurer le serveur war, vous devez lancer &man.vipw.8; et remplacer la ligne +::::::::: par +@IT_EMP::::::::: Maintenant, seules les données pour les utilisateurs définis dans le groupe réseau IT_EMP sont importées dans la base de données de mots de passe de war et seuls ces utilisateurs sont autorisés à ouvrir une session. Malheureusement, cette limitation s'applique également à la fonction ~ de l'interpréteur de commandes et toutes les routines de conversion entre nom d'utilisateur et identifiant numérique d'utilisateur. En d'autres termes, cd ~utilisateur ne fonctionnera pas, et ls -l affichera l'ID numérique à la place du nom d'utilisateur et find . -user joe -print échouera avec le message d'erreur No such user. Pour corriger cela, vous devrez importer toutes les entrées d'utilisateurs sans leur autoriser l'ouverture de session sur vos serveurs. Cela peut être fait en ajoutant une autre ligne au fichier /etc/master.passwd. Cette ligne devrait contenir: +:::::::::/sbin/nologin, signifiant “Importer toutes les entrées mais remplacer l'interpréteur de commandes avec /sbin/nologin dans les entrées importées”. Vous pouvez remplacer n'importe quel champ dans l'entrée passwd en plaçant une valeur par défaut dans votre fichier /etc/master.passwd. Assurez-vous que +:::::::::/sbin/nologin est placée après +@IT_EMP:::::::::. Sinon, tous les comptes utilisateur importés du NIS auront /sbin/nologin comme interpréteur de commandes. Après cette modification, vous ne devrez uniquement que modifier une des tables NIS si un nouvel employé rejoint le département IT. Vous pourrez utiliser une approche similaire pour les serveurs moins importants en remplaçant l'ancienne ligne +::::::::: dans leur version locale de /etc/master.passwd avec quelque chose de semblable à ceci: +@IT_EMP::::::::: +@IT_APP::::::::: +:::::::::/sbin/nologin Les lignes correspondantes pour les stations de travail normales seraient: +@IT_EMP::::::::: +@USERS::::::::: +:::::::::/sbin/nologin Tout était parfait jusqu'au changement de politique quelques semaines plus tard: le département IT commença à engager des internes. Les internes du département IT sont autorisés à utiliser les stations de travail normales et les serveurs les moins importants; les apprentis du département IT sont autorisés à ouvrir des sessions sur les serveurs principaux. Vous ajoutez alors un nouveau groupe réseau IT_INTERN, ajoutez les nouveaux internes IT à ce groupe réseau et commencez à modifier la configuration sur chaque machine... Comme disait l'ancien: “Erreurs dans la planification centralisée mènent à un désordre général”. La capacité de NIS à créer des groupes réseau à partir d'autres groupes réseau peut être utilisée pour éviter de telles situations. Une possibilité est la création de groupes réseau basés sur le rôle du groupe. Par exemple vous pourriez créer un groupe réseau appelé BIGSRV pour définir les restrictions d'ouverture de session pour les serveurs importants, un autre groupe réseau appelé SMALLSRV pour les serveurs moins importants et un troisième groupe réseau nommé USERBOX pour les stations de travail normales. Chacun de ces groupes réseau contient les groupes réseau autorisés à ouvrir des sessions sur ces machines. Les nouvelles entrées pour la table NIS de groupes réseau devrait ressembler à ceci: BIGSRV IT_EMP IT_APP SMALLSRV IT_EMP IT_APP ITINTERN USERBOX IT_EMP ITINTERN USERS Cette méthode qui consiste à définir des restrictions d'ouverture de session fonctionne relativement bien si vous pouvez définir des groupes de machines avec des restrictions identiques. Malheureusement, ceci est une exception et pas une généralité. La plupart du temps, vous aurez besoin de définir des restrictions d'ouverture de session par machine. La définition de groupes réseau spécifiques aux machines est une autre possibilité pour traiter la modification de politique soulignée précédement. Dans ce scénario, le fichier /etc/master.passwd de chaque machine contient deux lignes débutant par “+”. La première ajoute un groupe réseau avec les comptes autorisés à ouvrir une session sur cette machine, la seconde ajoute tous les comptes avec l'interpréteur de commandes /sbin/nologin. C'est une bonne idée d'utiliser des majuscules pour le nom de la machine ainsi que celui du groupe réseau. Dans d'autres termes, les lignes en question devraient être semblables à: +@NOMMACHINE::::::::: +:::::::::/sbin/nologin Une fois cette tâche achevée pour toutes vos machines, vous n'aurez plus jamais à modifier les versions locales du fichier /etc/master.passwd. Tous les changements futurs peuvent être gérés en modifiant la table NIS. Voici un exemple d'une table de groupes réseau possible pour ce scénario avec quelques petits plus: # Définir tout d'abord les groupes d'utilisateurs IT_EMP (,alpha,test-domain) (,beta,test-domain) IT_APP (,charlie,test-domain) (,delta,test-domain) DEPT1 (,echo,test-domain) (,foxtrott,test-domain) DEPT2 (,golf,test-domain) (,hotel,test-domain) DEPT3 (,india,test-domain) (,juliet,test-domain) ITINTERN (,kilo,test-domain) (,lima,test-domain) D_INTERNS (,able,test-domain) (,baker,test-domain) # # Définir, maintenant, des groupes basés sur les rôles USERS DEPT1 DEPT2 DEPT3 BIGSRV IT_EMP IT_APP SMALLSRV IT_EMP IT_APP ITINTERN USERBOX IT_EMP ITINTERN USERS # # Et un groupe pour les tâches spéciales # Permettre à echo et golf d'accéder à notre machine anti-virus SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain) # # les groupes réseau basés sur un ensemble de machines # Nos principaux serveurs WAR BIGSRV FAMINE BIGSRV # L'utilisateur india a besoin d'un accès à ce serveur POLLUTION BIGSRV (,india,test-domain) # # Celle-ci est très importante et nécessite plus de restrictions d'accès DEATH IT_EMP # # La machine anti-virus mentionnée précédemment ONE SECURITY # # Restreindre l'accès à une machine à un seul utilisateur TWO (,hotel,test-domain) # [...d'autres groupes suivent] Si vous utilisez une sorte de base de données pour gérer vos comptes utilisateur, vous devriez pouvoir créer la première partie de la table avec les outils de votre base de données. De cette façon, les nouveaux utilisateurs auront automatiquement accès aux machines. Dernier avertissement: il n'est pas toujours conseillé d'utiliser des groupes réseau basés sur les machines. Si vous déployez quelques douzaines ou même centaines de machines identiques pour des laboratoires pour étudiants, vous devriez utiliser des groupes basés sur les types d'utilisateurs plutôt que sur les machines pour conserver la taille de la table NIS dans des limites raisonables. Les choses importantes à ne pas oublier Il y a un certain nombre de choses que vous devrez effectuer différement maintenant que vous êtes dans un environnement NIS. A chaque fois que vous désirez ajouter un utilisateur au laboratoire, vous devez l'ajouter uniquement sur le serveur NIS et vous devez ne pas oublier de reconstruire les tables NIS. Si vous oubliez de le faire, le nouvel utilisateur ne pourra pas ouvrir de session en dehors du serveur maître NIS. Par exemple, si nous devons ajouter au laboratoire un nouvel utilisateur jsmith, nous ferions: &prompt.root; pw useradd jsmith &prompt.root; cd /var/yp &prompt.root; make test-domain Vous pouvez lancer adduser jsmith à la place de pw useradd jsmith. Conservez les comptes d'administration en dehors des tables NIS. Vous ne voulez pas propager les comptes et mots de passe d'administration sur les machines qui auront des utilisateurs qui ne devraient pas avoir accès à ces comptes. Sécurisez les serveurs maître - et esclave NIS, et reduisez leur temps + et esclave NIS, et réduisez leur temps d'arrêt. Si quelqu'un tente soit d'attaquer soit de simplement arrêter ces machines, de nombreuses personnes ne pourront plus ouvrir de session dans le laboratoire. C'est la principale faiblesse d'un système d'administration centralisée. Si vous ne protégez pas vos serveurs NIS, vous aurez à faire face à de nombreux utilisateurs mécontents! Compatibilité NIS version 1 ypserv sous &os; offre un support des clients NIS version 1. L'implémentation NIS de &os; utilise uniquement le protocole NIS version 2, cependant d'autres implémentations disposent du support pour le protocole version 1 pour des raisons de compatibilité avec d'anciens systèmes. Les “daemons” ypbind fournis avec ces systèmes tenteront de s'attacher à un serveur NIS version 1 même s'ils n'en ont pas besoin (et ils pourront continuer à diffuser des requêtes pour en trouver un même après avoir reçu une réponse d'un serveur NIS version 2). Notez que bien que les requêtes des clients normaux soient supportées, cette version d'ypserv ne supporte pas les - requêtes de tranfert de tables version 1; par + requêtes de transfert de tables version 1; par conséquent il n'est pas possible de l'utiliser comme serveur maître ou esclave avec des serveurs NIS plus anciens qui ne supportent que la version 1 du protocole. Heureusement, il n'y a, aujourd'hui, presque plus de serveurs de ce type actifs. Serveurs NIS qui sont aussi des clients NIS Il faut faire attention quand on utilise ypserv dans un domaine avec plusieurs serveurs NIS qui sont également des clients NIS. Il est en général préférable de forcer les serveurs de se rattacher à eux-mêmes plutôt que de les laisser diffuser des - requêtes de rattachement et eventuellement se rattacher + requêtes de rattachement et éventuellement se rattacher réciproquement les uns aux autres. Il peut en résulter de curieux problèmes si l'un des serveurs tombe et que d'autres en dépendent. Tous les clients finiront par dépasser leur délai d'attente et se tenteront de se rattacher à d'autres serveurs, mais ce délai peut être considérable et le problème persistera puisque les serveurs peuvent à nouveau se rattacher les uns aux autres. Vous pouvez obliger une machine à se rattacher à un serveur particulier en exécutant ypbind avec l'option . Si vous ne désirez pas faire cela à la main à chaque fois que vous redémarrez votre serveur - NIS, vous pouvez ajouter les lignes quivantes à votre + NIS, vous pouvez ajouter les lignes suivantes à votre fichier /etc/rc.conf: nis_client_enable="YES" # run client stuff as well nis_client_flags="-S NIS domain,server" Voir la page de manuel de &man.ypbind.8; pour plus d'informations. Formats des mots de passe NIS formats des mots de passe Un des problèmes les plus courants que l'on rencontre en mettant en oeuvre NIS est celui de la compatibilité des formats de mots de passe. Si votre serveur NIS utilise des mots de passe chiffrés avec l'algorithme DES, il ne supportera que les clients utilisant également DES. Par exemple, si vous avez des client NIS &solaris; sur votre réseau, alors vous aurez presque certainement besoin d'utiliser des mots de passe chiffrés avec le système DES. Pour déterminer quel format vos serveurs et clients utilisent, consultez le fichier /etc/login.conf. Si la machine est configurée pour utiliser des mots de passe chiffrés avec DES, alors la classe default contiendra une entrée comme celle-ci: default:\ :passwd_format=des:\ :copyright=/etc/COPYRIGHT:\ [Entrées suivantes omises] D'autres valeurs possibles pour la capacité passwd_format sont blf et md5 (respectivement pour les chiffrages de mots de passe Blowfish et MD5). Si vous avez modifié le fichier /etc/login.conf, vous devrez également regénérer la base de données des capacités de classes de session, ce qui est accompli en exécutant la commande suivante en tant que root: &prompt.root; cap_mkdb /etc/login.conf Le format des mots de passe utilisés dans /etc/master.passwd ne sera pas mis à jour avant qu'un utilisateur ne change son mot de passe pour la première fois après la - regénération de la base de données des + régénération de la base de données des capacités de classes de session. Ensuite, afin de s'assurer que les mots de passe sont chiffrés avec le format que vous avez choisi, vous devez vérifier que l'entrée crypt_default dans le fichier /etc/auth.conf donne la priorité au format de mots de passe choisi. Par exemple, quand les mots de passe DES sont utilisés, l'entrée serait: crypt_default = des blf md5 En suivant les points précédents sur chaque serveur et client NIS sous &os;, vous pouvez être sûr qu'ils seront tous d'accord sur le format de mot de passe utilisé dans le réseau. Si vous avez des problèmes d'authentification sur un client NIS, c'est probablement la première chose à vérifier. Rappelez-vous: si vous désirez mettre en place un serveur NIS pour un réseau hétérogène, vous devrez probablement utiliser DES sur tous les systèmes car c'est le standard le plus courant. Greg Sutter Ecrit par Configuration réseau automatique (DHCP) Qu'est-ce que DHCP? Dynamic Host Configuration Protocol DHCP Internet Software Consortium (ISC) DHCP, le protocole d'attribution dynamique des adresses (“Dynamic Host Configuration Protocol”), décrit les moyens par lesquels un système peut se connecter à un réseau et obtenir les informations nécessaires pour dialoguer sur ce - réseau. &os; utilise l'implémentaion DHCP de + réseau. &os; utilise l'implémentation DHCP de l'ISC (Internet Software Consortium), aussi toutes les informations spécifiques à l'implémentation, ici, concernent la version distribuée par l'ISC. Ce que traite cette section Cette section décrit les composants côté client et côté serveur du système DHCP ISC. Le programme client, dhclient, est intégré à &os;, la partie serveur est disponible à partir du logiciel porté net/isc-dhcp3-server. Les pages de manuel &man.dhclient.8;, &man.dhcp-options.5;, et &man.dhclient.conf.5;, en plus des références données plus bas, sont des ressources utiles. Comment cela fonctionne-t-il? UDP Quand dhclient, le client DHCP, est exécuté sur la machine cliente, il commence à diffuser des requêtes de demandes d'information de configuration. Par défaut, ces requêtes sont effectuées sur le port UDP 68. Le serveur répond sur le port UDP 67, fournissant au client une adresse IP et d'autres informations réseau importantes comme le masque de sous-réseau, les routeurs, et les serveurs DNS. Toutes ces informations viennent sous la forme d'un “bail” DHCP qui est uniquement valide pendant un certain temps (configuré par l'administrateur du serveur DHCP). De cette façon, les adresses IP expirées pour les clients qui ne sont plus connectés peuvent être automatiquement récupérées. Les clients DHCP peuvent obtenir une grande quantité d'informations à partir du serveur. - Une liste eshaustive est donnée dans la page de manuel + Une liste exhaustive est donnée dans la page de manuel &man.dhcp-options.5;. Intégration dans &os; Le client DHCP ISC, dhclient, est complètement intégré à &os;. Le support du client DHCP est fourni avec l'installeur et le système de base, rendant évident le besoin d'une connaissance détaillée des configurations réseaux pour n'importe quel réseau utilisant un serveur DHCP. dhclient fait partie de toutes les versions de &os; depuis la version 3.2. sysinstall DHCP est supporté par sysinstall. Quand on configure une interface réseau sous sysinstall, la deuxième question posée est: “Voulez-vous tenter la configuration DHCP de l'interface?”. Répondre par l'affirmative à cette question lancera dhclient, et en cas de - succès, complètera automatiquement les + succès, complétera automatiquement les informations de configuration réseau. Vous devez faire deux choses pour que votre système utilise DHCP au démarrage: DHCP prérequis Assurez-vous que le périphérique bpf est compilé dans votre noyau. Pour cela, vous devez ajouter la ligne device bpf (pseudo-device bpf sous &os; 4.X) à votre fichier de configuration du noyau, et recompiler le noyau. Pour plus d'informations sur la compilation de noyaux, consultez le . Le périphérique bpf est déjà présent dans le noyau GENERIC qui est fourni avec &os;, vous ne devez donc pas créer de noyau spécifique pour faire fonctionner DHCP. Ceux qui sont particulièrement conscients de l'aspect sécurité devraient noter que bpf est également le périphérique qui permet le fonctionnement de “renifleurs” de paquets (de tels programmes doivent être lancés sous l'utilisateur root). bpf est nécessaire pour utiliser DHCP, mais si vous êtes très sensible à la sécurité, vous ne devriez probablement pas ajouter bpf à votre noyau parce que vous projetez d'utiliser DHCP dans le futur. Editez votre fichier /etc/rc.conf pour y ajouter ce qui suit: ifconfig_fxp0="DHCP" Assurez-vous de bien remplacer fxp0 par l'interface que vous voulez configurer de façon dynamique comme décrit dans la . Si vous utilisez un emplacement différent pour dhclient, ou si vous désirez passer des arguments supplémentaires à dhclient, ajoutez ce qui suit (en effectuant des modifications si nécessaire): dhcp_program="/sbin/dhclient" dhcp_flags="" DHCP serveur Le serveur DHCP, dhcpd, fait partie du logiciel porté net/isc-dhcp3-server disponible dans le catalogue des logiciels portés. Ce logiciel porté contient le serveur DHCP ISC et sa documentation. Fichiers DHCP fichiers de configuration /etc/dhclient.conf dhclient nécessite un fichier de configuration, /etc/dhclient.conf. Généralement le fichier ne contient que des commentaires, les valeurs par défaut étant suffisantes. Ce fichier de configuration est décrit par la page de manuel &man.dhclient.conf.5;. /sbin/dhclient dhclient est lié statiquement et réside dans le répertoire /sbin. La page de manuel &man.dhclient.8; donne beaucoup plus d'informations au sujet de dhclient. /sbin/dhclient-script dhclient-script est la procédure de configuration du client DHCP spécifique à &os;. Elle est décrite dans la page de manuel &man.dhclient-script.8;, mais ne devrait pas demander de modification de la part de l'utilisateur pour fonctionner correctement. /var/db/dhclient.leases Le client DHCP conserve une base de données des baux valides, qui est écrite comme un fichier journal. La page de manuel &man.dhclient.leases.5; en donne une description légèrement plus longue. Lecture supplémentaire Le protocole DHCP est intégralement décrit dans la RFC 2131. Des informations sont également disponibles à l'adresse . Installer et configurer un serveur DHCP Ce que traite cette section Cette section fournit les informations nécessaires à la configuration d'un système &os; comme serveur DHCP en utilisant l'implémentation ISC (Internet Software Consortium) de l'ensemble DHCP. La partie serveur n'est pas fournie dans le système de base de &os;, et vous devrez installer le logiciel porté net/isc-dhcp3-relay pour bénéficier de ce service. Lisez le pour plus d'information sur l'utilisation du catalogue des logiciels portés. Installation d'un serveur DHCP DHCP installation Afin de configurer votre système &os; en serveur DHCP, vous devrez vous assurer que le support du périphérique &man.bpf.4; est compilé dans votre noyau. Pour cela ajouter la ligne device bpf (pseudo-device bpf sous &os; 4.X) dans votre fichier de configuration du noyau. Pour plus d'information sur la compilation de noyaux, consultez le . Le périphérique bpf est déjà présent dans le noyau GENERIC qui est fourni avec &os;, vous ne devez donc pas créer de noyau spécifique pour faire fonctionner DHCP. Ceux qui sont particulièrement conscients de l'aspect sécurité devraient noter que bpf est également le périphérique qui permet le fonctionnement de “renifleurs” de paquets (de tels programmes nécessitent également un accès avec privilèges). bpf est nécessaire pour utiliser DHCP, mais si vous êtes très sensible à la sécurité, vous ne devriez probablement pas ajouter bpf à votre noyau parce que vous projetez d'utiliser DHCP dans le futur. Il vous reste ensuite à éditer le fichier dhcpd.conf d'exemple qui a été installé par le logiciel porté net/isc-dhcp3-server. Par défaut, cela sera /usr/local/etc/dhcpd.conf.sample, et vous devriez le copier vers /usr/local/etc/dhcpd.conf avant de commencer vos modifications. Configuration du serveur DHCP DHCP dhcpd.conf dhcpd.conf est composé de déclarations concernant les masques de sous-réseaux et les machines, il est peut-être plus facile à expliquer à l'aide d'un exemple: option domain-name "example.com"; option domain-name-servers 192.168.4.100; option subnet-mask 255.255.255.0; default-lease-time 3600; max-lease-time 86400; ddns-update-style none; subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.129 192.168.4.254; option routers 192.168.4.1; } host mailhost { hardware ethernet 02:03:04:05:06:07; fixed-address mailhost.example.com; } Cette option spécifie le domaine qui sera donné aux clients comme domaine par défaut. Consultez la page de manuel de &man.resolv.conf.5; pour plus d'information sur sa signification. Cette option donne une liste, séparée par des virgules, de serveurs DNS que le client devrait utiliser. Le masque de sous-réseau qui sera fourni aux clients. Un client peut demander un bail d'une durée bien précise. Sinon par défaut le serveur alloue un bail avec cette durée avant expiration (en secondes). C'est la durée maximale d'allocation autorisée par le serveur. Si un client demande un bail plus long, le bail sera accordé mais il ne sera valide que durant max-lease-time secondes. Cette option indique si le serveur DHCP doit tenter de mettre à jour le DNS quand un bail est accepté ou révoqué. Dans l'implémentation ISC, cette option est obligatoire. Ceci indique quelles adresses IP devraient être utilisées dans l'ensemble des adresses réservées aux clients. Les adresses comprises dans l'intervalle spécifiée sont allouées aux clients. Définit la passerelle par défaut fournie aux clients. L'adresse matérielle MAC d'une machine (de manière à ce que le serveur DHCP puisse reconnaître une machine quand elle envoie une requête). Indique que la machine devrait se voir attribuer toujours la même adresse IP. Notez que l'utilisation d'un nom de machine ici est correct, puisque le serveur DHCP effectuera une résolution de nom sur le nom de la machine avant de renvoyer l'information sur le bail. Une fois l'écriture de votre fichier dhcpd.conf terminée, vous pouvez lancer le serveur en tapant la commande suivante: &prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh start Si vous devez, dans le futur, effectuer des changements dans la configuration de votre serveur, il est important de savoir que l'envoi d'un signal SIGHUP à dhcpd ne provoque pas le rechargement de la configuration, contrairement à la plupart des “daemons”. Vous devrez envoyer un signal SIGTERM pour arrêter le processus, puis le relancer en utilisant la commande ci-dessus. Fichiers DHCP fichier de configuration /usr/local/sbin/dhcpd dhcpd est lié statiquement et réside dans le répertoire /usr/local/sbin. La page de manuel &man.dhcpd.8; installée avec le logiciel porté donne beaucoup plus d'informations au sujet de dhcpd. /usr/local/etc/dhcpd.conf dhcpd nécessite un fichier de configuration, /usr/local/etc/dhcpd.conf avant de pouvoir commencer à offrir ses services aux client. Ce fichier doit contenir toutes les informations à fournir aux clients qui seront traités, en plus des informations concernant le fonctionnement du serveur. Ce fichier de configuration est décrit par la page de manuel &man.dhcpd.conf.5; installée par le logiciel porté. /var/db/dhcpd.leases Le serveur DHCP conserve une base de données des baux qu'il a délivré, qui est écrite comme un fichier journal. La page de manuel &man.dhcpd.leases.5; installée par le logiciel porté en donne une description légèrement plus longue. /usr/local/sbin/dhcrelay dhcrelay est - utilisé dans les environements avancés + utilisé dans les environnements avancés où un serveur DHCP fait suivre la requête d'un client vers un autre serveur DHCP sur un réseau séparé. Si vous avez besoin de cette fonctionnalité, installez alors le logiciel porté net/isc-dhcp3-server. La page de manuel &man.dhcrelay.8; fournie avec le logiciel porté contient plus de détails. Chern Lee Contribution de Serveurs de noms (DNS) Généralités BIND &os; utilise, par défaut, BIND (Berkeley Internet Name Domain), qui est l'implémentation la plus courante du protocole DNS. Le DNS est le protocole qui effectue la correspondance entre noms et adresses IP, et inversement. Par exemple une requête pour www.FreeBSD.org aura pour réponse l'adresse IP du serveur Web du projet &os;, et une requête pour ftp.FreeBSD.org renverra l'adresse IP de la machine FTP correspondante. De même, l'opposé est possible. Une requête pour une adresse IP retourne son nom de machine. Il n'est pas nécessaire de faire tourner un serveur DNS pour effectuer des requêtes DNS sur un système. DNS Le DNS est coordonné sur l'Internet à travers un système complexe de serveurs de noms racines faisant autorité, et d'autres serveurs de noms de plus petites tailles qui hébergent, directement ou font office de “cache”, l'information pour des domaines individuels. Ce document fait référence à BIND 8.x, comme c'est la version stable utilsée dand &os;. BIND 9.x peut être installée à l'aide du logiciel porté net/bind9. Les RFC1034 et RFC1035 régissent le protocole DNS. Actuellement, BIND est maintenu par l'Internet Software Consortium . Terminologie Pour comprendre ce document, certains termes relatifs au DNS doivent être maîtrisés. résolveur DNS inverse zone racine Terme Definition “Forward“ DNS Correspondance noms de machine vers adresses IP. Origine Fait référence au domaine couvert par un fichier de zone particulier. named, BIND, serveur de noms Noms courants pour le serveur de noms BIND de &os; Resolveur Un processus système par l'intermédiaire duquel une machine contacte un serveur de noms pour obtenir des informations sur une zone. DNS inverse C'est l'inverse du DNS “classique” (“Forward“ DNS). C'est la correspondance adresses IP vers noms de machine. Zone racine Début de la hiérarchie de la zone Internet. Toutes les zones sont rattachées à la zone racine, de la même manière qu'un système de fichier est rattaché au répertoire racine. Zone Un domaine individuel, un sous-domaine, ou une partie des noms administrés par un même serveur faisant autorité. zones exemples Exemples de zones: . est la zone racine org. est une zone sous la zone racine example.org. est une zone sous la zone org. foo.example.org. est un sous-domaine, une zone sous la zone example.org. 1.2.3.in-addr.arpa est une zone faisant référence à toutes les adresses IP qui appartiennent l'espace d'adresse 3.2.1.*. Comme on peut le remarquer, la partie la plus significative d'un nom de machine est à sa gauche. Par exemple, example.org. est plus spécifique que org., comme org. est à son tour plus spécifique que la zone racine. La constitution de chaque partie d'un nom de machine est proche de celle d'un système de fichiers: le répertoire /dev se trouve sous la racine, et ainsi de suite. Les raisons de faire tourner un serveur de noms Les serveurs de noms se présentent généralement sous deux formes: un serveur de noms faisant autorité, et un serveur de noms cache. Un serveur de noms faisant autorité est nécessaire quand: on désire fournir des informations DNS au reste du monde, être le serveur faisant autorité lors des réponses aux requêtes. un domaine, comme par exemple example.org, est enregistré et des adresses IP doivent être assignées à des noms de machine appartenant à ce domaine. un bloc d'adresses IP nécessite des entrées DNS inverses (IP vers nom de machine). un serveur de noms de secours, appelé esclave, doit répondre aux requêtes quand le serveur primaire est tombé ou inaccessible. Un serveur de noms cache est nécessaire quand: un serveur de noms local peut faire office de cache et répondre plus rapidement que l'interrogation d'un serveur de noms extérieur. une réduction du trafic réseau global est désirée (il a été mesuré que 5% ou plus du trafic Internet total concerne le trafic DNS). Quand on émet des requêtes pour www.FreeBSD.org, le résolveur interroge généralement le serveur de noms du fournisseur d'accès, et récupère la réponse. Avec un serveur DNS cache local, la requête doit être effectuée qu'une seule fois vers le monde extérieur par le serveur DNS cache. Chaque interrogation suivante n'aura pas à être transmise en dehors du réseau local, puisque l'information est désormais disponible localement dans le cache. Comment cela fonctionne-t-il? Sous &os; le “daemon” BIND est appelé named pour des raisons évidentes. Fichier Description named le “daemon” BIND ndc le programme de contrôle du “daemon” /etc/namedb répertoire où se trouvent les informations sur les zones de BIND /etc/namedb/named.conf le fichier de configuration du “daemon” Les fichiers de zone sont généralement stockés dans le répertoire /etc/namedb, et contiennent les informations concernant les zones DNS gérées par le serveur de noms. Lancer BIND BIND lancement Puisque BIND est installé par défaut, sa configuration est relativement simple. Pour s'assurer que le “daemon” named est lancé au démarrage, ajoutez la ligne suivante dans /etc/rc.conf: named_enable="YES" Pour démarrer le “daemon” manuellement (après l'avoir configuré): &prompt.root; ndc start Fichiers de configuration BIND fichiers de configuration Utilisation de <command>make-localhost</command> Assurez-vous d'effectuer: &prompt.root; cd /etc/namedb &prompt.root; sh make-localhost pour générer correctement le fichier de zone DNS inverse /etc/namedb/localhost.rev. <filename>/etc/namedb/named.conf</filename> // $FreeBSD$ // // Reportez-vous à la page de manuel named(8) pour plus de // détails. Si vous devez configurer un serveur primaire // assurez-vous d'avoir compris les détails épineux du // fonctionnement du DNS. Même avec de simples erreurs, vous // pouvez rompre la connexion entre les parties affectées, ou // causer un important trafic Internet inutile. options { directory "/etc/namedb"; // En plus de la clause "forwarders", vous pouvez forcer votre serveur // de noms à ne jamais être à l'origine de // requêtes, mais plutôt faire suivre les demandes en // activant la ligne suivante: // // forward only; // Si vous avez accès à un serveur de noms au niveau de // votre fournisseur d'accès, ajoutez ici son adresse IP, et // activez la ligne ci-dessous. Cela vous permettra de // bénéficier de son cache, réduisant ainsi le // trafic Internet. /* forwarders { 127.0.0.1; }; */ Comme les commentaires le précisent, pour bénéficier d'un cache en amont de votre connexion, le paramètre forwarders peut être activé. Dans des circonstances normales, un serveur de noms interrogera de façon récursive certains serveurs de noms jusqu'à obtenir la réponse à sa requête. Avec ce paramètre activé, votre serveur interrogera le serveur de noms en amont (ou le serveur de noms fourni) en premier, en bénéficiant alors de son cache. Si le serveur en question gère beaucoup de trafic, et est un serveur rapide, activer cette option peut en valoir la peine. 127.0.0.1 ne fonctionnera pas ici. Remplacez cette adresse IP par un serveur de noms en amont de votre connexion. /* * S'il y a un coupe-feu entre vous et les serveurs de noms * avec lesquels vous voulez communiquer, vous aurez * peut-être besoin de décommenter la directive * query-source ci-dessous. Les versions * précédentes de BIND lançaient des * requêtes à partir du port 53, mais depuis la * version 8.1, BIND utilise * par défaut un port quelconque non * réservé. */ // query-source address * port 53; /* * Si exécution dans un "sandbox", vous pourrez avoir * à indiquer un emplacement différent pour le * fichier de sortie de la base de données. */ // dump-file "s/named_dump.db"; }; // Note: ce qui suit sera supporté dans une future version. /* host { any; } { topology { 127.0.0.0/8; }; }; */ // Configurer des serveurs secondaires est plus simple et le principe // général est présenté plus bas. // // Si vous activez un serveur de noms local, n'oubliez pas d'entrer // 127.0.0.1 dans votre fichier /etc/resolv.conf de sorte que ce // serveur soit interrogé le premier. Assurez-vous // également de l'activer dans /etc/rc.conf. zone "." { type hint; file "named.root"; }; zone "0.0.127.IN-ADDR.ARPA" { type master; file "localhost.rev"; }; zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" { type master; file "localhost.rev"; }; // NB: N'utilisez pas les adresses IP ci-dessous, elles sont factices, // et ne servent que pour des besoins de // démonstration/documentation! // // Exemple d'entrées de configuration de serveur secondaire. // Il peut être pratique de devenir serveur secondaire pour la // zone à laquelle appartient votre domaine. Demandez à // votre administrateur réseau l'adresse IP du serveur primaire // responsable de la zone. // // N'oubliez jamais d'inclure la résolution de la zone inverse // (IN-ADDR.ARPA)! // (Ce sont les premiers octets de l'adresse IP, en ordre inverse, // auxquels ont a ajouté ".IN-ADDR.ARPA".) // // Avant de commencer à configurer une zone primaire, il faut // être sûr que vous avez parfaitement compris comment le -// DNS et BIND fonctionnent. Il apparait parfois des pièges +// DNS et BIND fonctionnent. Il apparaît parfois des pièges // peu évidents à saisir. En comparaison, configurer un // serveur secondaire est plus simple. // // NB: N'activez pas aveuglément les exemples ci-dessous. :-) // Utilisez des noms et des adresses réelles. // // NOTE!!! &os; exécute BIND dans un "sandbox" (voir l'option // named_flags dans rc.conf). Le répertoire contenant les // zones secondaires doit être accessible à BIND en // écriture. La séquence suivante est // suggérée: // // mkdir /etc/namedb/s // chown bind:bind /etc/namedb/s // chmod 750 /etc/namedb/s Pour plus d'informations sur l'exécution de BIND dans un “sandbox” (bac à sable), consultez la section Exécution de named dans un sandbox. /* zone "example.com" { type slave; file "s/example.com.bak"; masters { 192.168.1.1; }; }; zone "0.168.192.in-addr.arpa" { type slave; file "s/0.168.192.in-addr.arpa.bak"; masters { 192.168.1.1; }; }; */ Dans named.conf, ce sont des exemples d'entrées d'un serveur esclave. Pour chaque nouvelle zone gérée, une nouvelle entrée de zone doit être ajoutée au fichier named.conf. Par exemple, l'entrée de zone la plus simple possible pour example.org serait: zone "example.org" { type master; file "example.org"; }; Ce sera un serveur maître pour la zone, comme indiqué par l'option , concervant ses informations de zone dans le fichier /etc/namedb/example.org comme précisé par l'option . zone "example.org" { type slave; file "example.org"; }; Dans le cas d'un esclave, les informations concernant la zone seront transférées à partir du serveur maître pour la zone en question, et sauvegardées dans le fichier indiqué. Si ou lorsque le serveur maître tombe ou est inaccessible, le serveur esclave disposera des informations de la zone transférée et sera capable de les diffuser. Fichiers de zone Un exemple de fichier de zone maître pour example.org (défini dans /etc/namedb/example.org) suit: $TTL 3600 example.org. IN SOA ns1.example.org. admin.example.org. ( 5 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 86400 ) ; Minimum TTL ; Serveurs DNS @ IN NS ns1.example.org. @ IN NS ns2.example.org. ; Noms de machine localhost IN A 127.0.0.1 ns1 IN A 3.2.1.2 ns2 IN A 3.2.1.3 mail IN A 3.2.1.10 @ IN A 3.2.1.30 ; Alias www IN CNAME @ ; Enregistrement MX @ IN MX 10 mail.example.org. Notez que chaque nom de machine se terminant par un “.” est un nom de machine complet, alors que tout ce qui se termine pas par un “.” est référencé par rapport à une origine. Par exemple, www sera traduit en www.origine. Dans notre fichier de zone fictif, notre origine est example.org., donc www sera traduit en www.example.org. Le format d'un fichier de zone est le suivant: nom-enregistrement IN type-enregistrement valeur DNS enregistrements Les enregistrements DNS les plus couramment utilisés: SOA début des données de zone NS serveur de noms faisant autorité A adresse d'une machine CNAME alias d'un nom de machine MX serveur de messagerie recevant le courrier pour le domaine PTR un pointeur sur un nom de domaine (utilisé dans le DNS inverse) example.org. IN SOA ns1.example.org. admin.example.org. ( 5 ; Serial 10800 ; Refresh after 3 hours 3600 ; Retry after 1 hour 604800 ; Expire after 1 week 86400 ) ; Minimum TTL of 1 day example.org. le nom de domaine, également l'origine pour ce fichier de zone. ns1.example.org. le serveur de noms primaire/faisant autorité pour cette zone. admin.example.org. la personne responsable pour cette zone avec le caractère “@” remplacé. (admin@example.org devient admin.example.org) 5 le numéro de série de ce fichier. Celui-ci doit être incrémenté à chaque modification du fichier de zone. De nos jours, de nombreux administrateurs préfèrent un format du type aaaammjjrr pour le numéro de série. 2001041002 signifierait dernière modification le 10/04/2001, le 02 indiquant que c'est la seconde fois que ce fichier a été révisé ce jour. Le numéro de série est important puisqu'il indique aux serveurs de noms esclaves pour la zone une modification de celle-ci. @ IN NS ns1.example.org. C'est une entrée de type NS. Tous les serveurs de noms qui doivent faire autorité pour la zone devront inclure une de ces entrées. Le caractère @ aurait pu être remplacé par example.org.. Le caractère @ étant équivalent à l'origine. localhost IN A 127.0.0.1 ns1 IN A 3.2.1.2 ns2 IN A 3.2.1.3 mail IN A 3.2.1.10 @ IN A 3.2.1.30 Un enregistrement de type A indique des noms de machine. Comme présenté ci-dessus ns1.example.org sera résolu en 3.2.1.2. Ici encore, le symbôle d'origine, @, signifie que example.org donnera pour résolution d'adresse l'adresse 3.2.1.30. www IN CNAME @ L'enregistrement de type CNAME est généralement utilisé pour créer des alias à une machine. Dans l'exemple, www est un alias de la machine correspondant à l'origine, ou encore example.org (3.2.1.30). Les enregistrements CNAME peuvent être utilisés pour fournir des alias à des noms de machines, ou permettre la rotation (“round robin”) d'un nom de machine entre plusieurs machines. MX record @ IN MX 10 mail.example.org. L'enregistrement MX indique quels serveurs de messagerie sont responsables de la gestion du courrier entrant pour la zone. mail.example.org est le nom de machine du serveur de messagerie, et 10 étant la priorité du serveur de messagerie. On peut avoir plusieurs serveurs de messagerie, avec des priorités de 3, 2, 1. Un serveur de messagerie tentant de transmettre du courrier au domaine example.org essaiera en premier le MX avec la plus haute priorité, puis celui venant en second, etc, jusqu'à ce que le courrier puisse être correctement délivré. Pour les fichiers de zone in-addr.arpa (DNS inverse), le même format est utilisé, à l'exception du fait que des entrées PTR seront utilisées en place de A ou CNAME. $TTL 3600 1.2.3.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. ( 5 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 3600 ) ; Minimum @ IN NS ns1.example.org. @ IN NS ns2.example.org. 2 IN PTR ns1.example.org. 3 IN PTR ns2.example.org. 10 IN PTR mail.example.org. 30 IN PTR example.org. Ce fichier donne la correspondance entre adresses IP et noms de machines de notre domaine fictif. Serveur de noms cache BIND serveur de noms cache Un serveur de noms cache est un serveur de noms qui ne fait autorité pour aucune zone. Il émet simplement des requêtes, et se souvient du résultat pour une utilisation ultérieure. Pour mettre en place un tel serveur, configurez le serveur de noms comme à l'accoutumé, en prenant bien soin de n'inclure aucune zone. Exécution <application>named</application> dans un “sandbox” BIND exécution dans un sandbox chroot Pour plus de sécurité, il peut être préférable d'exécuter &man.named.8; sous un utilisateur sans privilèges, et le configurer pour modifier l'emplacement de la racine du système de fichiers (&man.chroot.8;) vers le répertoire du “sandbox” (bac à sable). Ceci rend inaccessible au “daemon” named tout ce qui est situé en dehors de l'environnement “sandbox”. Si named est compromis, cela réduira l'impact des dommages. Par défaut, &os; dispose d'un utilisateur et d'un groupe appelé bind, destiné à cet usage. De nombreuses personnes recommanderont qu'à la place de configurer named à “chrooter”, vous devriez exécuter named dans un environnement &man.jail.8;. Cette section ne traitera pas ce cas de figure. Puisque named ne sera pas en mesure d'avoir accès à des éléments extérieur au “sandbox” (comme aux bibliothèques partagées, aux “sockets” pour - l'enregistrements des journaux, etc.), il y a un certain + l'enregistrement des journaux, etc.), il y a un certain nombre d'étapes à suivre afin de permettre à named un fonctionnement correct. Dans la liste d'opérations qui suit, on suppose que l'emplacement du “sandbox” est /etc/namedb et que vous n'avez pas précédemment modifié le contenu de ce répertoire. Effectuez les étapes suivantes en tant que root: Créer tous les répertoires que named s'attend à trouver: &prompt.root; cd /etc/namedb &prompt.root; mkdir -p bin dev etc var/tmp var/run master slave &prompt.root; chown bind:bind slave var/* named n'a besoin uniquement que d'un accès en écriture à ces répertoires, c'est tout ce que nous lui donnerons. Réarranger les fichiers de configuration et créer la zone: &prompt.root; cp /etc/localtime etc &prompt.root; mv named.conf etc && ln -sf etc/named.conf &prompt.root; mv named.root master &prompt.root; sh make-localhost && mv localhost.rev localhost-v6.rev master &prompt.root; cat > master/named.localhost $ORIGIN localhost. $TTL 6h @ IN SOA localhost. postmaster.localhost. ( 1 ; serial 3600 ; refresh 1800 ; retry 604800 ; expiration 3600 ) ; minimum IN NS localhost. IN A 127.0.0.1 ^D Ceci permet à named d'utiliser des dates correctes lors de l'envoie des journaux à &man.syslogd.8;. syslog journaux DNS Si vous utilisez une version de &os; antérieure à 4.9-RELEASE, compilez une version liée en statique de named-xfer, et copiez-la dans le “sandbox”: &prompt.root; cd /usr/src/lib/libisc &prompt.root; make cleandir && make cleandir && make depend && make all &prompt.root; cd /usr/src/lib/libbind &prompt.root; make cleandir && make cleandir && make depend && make all &prompt.root; cd /usr/src/libexec/named-xfer &prompt.root; make cleandir && make cleandir && make depend && make NOSHARED=yes all &prompt.root; cp named-xfer /etc/namedb/bin && chmod 555 /etc/namedb/bin/named-xfer Après avoir installé votre version statique de named-xfer, un peu de nettoyage est nécessaire pour éviter de conserver des copies inutiles de bibliotèques ou de programmes dans votre arborescence des sources: &prompt.root; cd /usr/src/lib/libisc &prompt.root; make cleandir &prompt.root; cd /usr/src/lib/libbind &prompt.root; make cleandir &prompt.root; cd /usr/src/libexec/named-xfer &prompt.root; make cleandir Il a été signalé que cette étape peut parfois échouer. Si cela vous arrive, tapez alors la commande: &prompt.root; cd /usr/src && make cleandir && make cleandir et effacez votre arborescence /usr/obj: &prompt.root; rm -fr /usr/obj && mkdir /usr/obj Cela devrait supprimer les éventuels “scories” de votre arborescence des sources, puis en réessayant les opérations ci-dessus cela devrait enfin fonctionner. Si vous utilisez &os; 4.9-RELEASE ou une version suivante, alors la version de named-xfer se trouvant dans le répertoire /usr/libexec est liée en statique par défaut, et vous pouvez tout simplement utiliser la commande &man.cp.1; pour la copier dans l'environnement “sandbox”. Créer un fichier spécial de périphérique dev/null dans lequel named peut lire et écrire: &prompt.root; cd /etc/namedb/dev && mknod null c 2 2 &prompt.root; chmod 666 null Créer un lien symbolique de /var/run/ndc vers /etc/namedb/var/run/ndc: &prompt.root; ln -sf /etc/namedb/var/run/ndc /var/run/ndc Ceci évite tout simplement d'avoir à spécifier l'option à &man.ndc.8; à chaque fois que vous l'exécutez. Comme le contenu du répertoire /var/run est effacé au démarrage, il peut être utile d'ajouter cette commande dans le fichier &man.crontab.5; de l'utilisateur root en utilisant l'option . syslog journaux named Configurer &man.syslogd.8; pour qu'il créé une “socket” supplémentaire log sur laquelle named dispose d'un accès en écriture. Pour cela, ajoutez -l /etc/namedb/dev/log à la variable syslogd_flags du fichier /etc/rc.conf. chroot S'arranger à ce que named démarre et se “chroot” lui-même dans l'environnement “sandbox” en ajoutant ce qui suit au fichier /etc/rc.conf: named_enable="YES" named_flags="-u bind -g bind -t /etc/namedb /etc/named.conf" Notez que l'emplacement du fichier de configuration /etc/named.conf est référencé par rapport un chemin complet relatif au “sandbox”, i.e. dans la ligne au-dessus, le fichier auquel on fait référence est en fait /etc/namedb/etc/named.conf. L'étape suivante est d'éditer le fichier /etc/namedb/etc/named.conf pour que named puisse savoir quelles zones charger et où les trouver sur le disque. Un exemple commenté suit (tout ce qui n'est pas spécifiquement commenté ici n'est pas différent de la configuration d'un serveur DNS ne tournant pas dans un “sandbox”): options { directory "/"; named-xfer "/bin/named-xfer"; version ""; // Ne pas révéler la version de BIND query-source address * port 53; }; // socket de contrôle ndc controls { unix "/var/run/ndc" perm 0600 owner 0 group 0; }; // Les zones: zone "localhost" IN { type master; file "master/named.localhost"; allow-transfer { localhost; }; notify no; }; zone "0.0.127.in-addr.arpa" IN { type master; file "master/localhost.rev"; allow-transfer { localhost; }; notify no; }; zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.int" { type master; file "master/localhost-v6.rev"; allow-transfer { localhost; }; notify no; }; zone "." IN { type hint; file "master/named.root"; }; zone "private.example.net" in { type master; file "master/private.example.net.db"; allow-transfer { 192.168.10.0/24; }; }; zone "10.168.192.in-addr.arpa" in { type slave; masters { 192.168.10.2; }; file "slave/192.168.10.db"; }; L'option directory est définie par /, puisque tous les fichiers dont named a besoin sont dans ce répertoire (ceci est équivalent au fichier /etc/namedb d'un utilisateur “normal”). Indique le chemin d'accès complet du binaire named-xfer (à partir de l'arborescence utilisée pour named). Ceci est nécessaire puisque named est compilé pour chercher named-xfer par défaut dans le répertoire /usr/libexec. Indique le nom de fichier (relatif à la valeur de directory plus haut) où named le fichier de zone pour cette zone. Indique le nom de fichier (relatif à la valeur de directory plus haut) où named devrait trouver une copie du fichier de zone pour cette zone après l'avoir transféré avec succès à partir du serveur maître. C'est pourquoi nous avons eu besoin de changer le propriétaire du répertoire slave pour bind dans les étapes de configuration précédentes. Après avoir complétées les étapes précédentes, redémarrez votre serveur ou relancez &man.syslogd.8; et démarrez &man.named.8;, en s'assurant de bien utiliser les nouvelles options spécifiées dans les variables syslogd_flags et named_flags. Vous devriez disposez maintenant d'une version de named tournant dans un environnement “sandbox”! Sécurité Bien que BIND soit l'implémentation la plus courante du DNS, le problème de la sécurité subsiste toujours. De possibles problèmes de sécurité exploitables sont parfois découvert. C'est une bonne idée de lire les avis de sécurité du CERT et de s'inscrire à la &a.security-notifications; pour se maintenir au courant des problèmes de sécurité actuels de l'Internet et de &os;. Si un problème surgit, conserver les sources à jour et disposer d'une version compilée de named récente ne seront pas de trop. Lectures supplémentaires Les pages de manuel de BIND/named: &man.ndc.8; &man.named.8; &man.named.conf.5;. Page officielle ISC concernant BIND FAQ BIND DNS et BIND 4ème Edition de chez O'Reilly RFC1034 - Domain Names - Concepts and Facilities RFC1035 - Domain Names - Implementation and Specification Tom Rhodes Ecrit par <acronym>BIND</acronym>9 et &os; bind9 configuration L'arrivée de &os; 5.3 a apporté le serveur DNS BIND9 dans la distribution. De nouvelles fonctionnalités concernant la sécurité, une nouvelle organisation des fichiers, une configuration &man.chroot.8; automatisée, font partie des nouveautés. Cette section est divisée en deux parties, la première abordera les nouvelles fonctionnalités et leur configuration, la seconde traitera des mises à jours en vue d'aider la migration vers &os; 5.3. A partir de cet instant, il sera fait référence au serveur à l'aide du nom &man.named.8; à la place de BIND. Cette section fait l'impasse sur la terminologie présentée dans la section précédente tout comme sur une partie de la théorie, par conséquent il est recommandé de consulter la section précédente avant d'aller plus loin. Les fichiers de configuration pour named se trouvent dans le répertoire /var/named/etc/namedb/ et devront être adaptés avant toute utilisation. C'est là où la majeure partie de la configuration se fera. Configuration d'une zone maître Pour configurer une zone maître, il faut se rendre dans le répertoire /var/named/etc/namedb/ et exécuter la commande suivante: &prompt.root; sh make-localhost Si tout s'est bien passé, un nouveau fichier devrait apparaître dans le répertoire master. Le nom du fichier devrait être localhost.rev pour le nom de domaine local et localhost-v6.rev pour les configurations IPv6. Tout comme le fichier de configuration par défaut, une configuration pour son utilisation sera déjà présente dans le fichier named.conf. Configuration d'une zone esclave La configuration de domaines supplémentaires ou de sous-domaines peut être faite sous la forme d'une zone esclave. Dans la plupart des cas, le fichier master/localhost.rev peut être directement copié dans le répertoire slave et y être modifié. Une fois complétés, les fichiers doivent être ajoutés dans le fichier named.conf comme dans la configuration suivante pour example.com: zone "example.com" { type slave; file "slave/example.com"; masters { 10.0.0.1; }; }; zone "0.168.192.in-addr.arpa" { type slave; file "slave/0.168.192.in-addr.arpa"; masters { 10.0.0.1; }; }; Notez que dans cet exemple, l'adresse IP du maître est celle du serveur primaire du domaine à partir duquel les zones sont transférées; il ne joue pas nécessairement le rôle de serveur DNS en tant que tel. Configuration de l'initialisation du système Afin de lancer le daemon named au démarrage du système, l'option suivante doit être présente dans le fichier rc.conf: named_enable="YES" Alors que d'autres options existent, cela représente le minimum nécessaire. Consultez la page de manuel de &man.rc.conf.5; pour une liste des autres options disponibles. Si rien n'est présent dans le fichier rc.conf alors named peut être exécuté à partir de la ligne de commande en invoquant: &prompt.root; /etc/rc.d/named start La sécurité et <acronym>BIND</acronym>9 Bien que &os; enferme automatique named dans un environnement - &man.chroot.8;, il exite plusieurs autres mécanismes de + &man.chroot.8;, il existe plusieurs autres mécanismes de sécurité présents qui pourraient aider à se prémunir contre de possibles attaques DNS. Listes de contrôle d'accès des requêtes Une liste de contrôle d'accès des requêtes peut être employée pour restreindre les requêtes sur certaines zones. La configuration de cette liste fonctionne en définissant le réseau concerné à l'intérieur d'une directive acl puis en listant les adresses IP dans la configuration de zone. Pour autoriser des domaines à envoyer des requêtes à la machine utilisée en exemple, effectuez la définition suivante: acl "example.com" { 192.168.0.0/24; }; zone "example.com" { type slave; file "slave/example.com"; masters { 10.0.0.1; }; allow-query { example.com; }; }; zone "0.168.192.in-addr.arpa" { type slave; file "slave/0.168.192.in-addr.arpa"; masters { 10.0.0.1; }; allow-query { example.com; }; }; Restreindre l'accès au numéro de version Autoriser les requêtes sur le numéro de version du serveur DNS peut ouvrir les portes à un agresseur. Un utilisateur malveillant peut utiliser cette information pour rechercher les exploits connus ou les bogues à utiliser contre la machine. Une fausse chaîne de caractères de version peut être placée dans la section options du fichier named.conf: options { directory "/etc/namedb"; pid-file "/var/run/named/pid"; dump-file "/var/dump/named_dump.db"; statistics-file "/var/stats/named.stats"; version "None of your business"; Murray Stokely Contribution de Serveur HTTP Apache serveur web configuration Apache Généralités &os; est utilisé pour faire tourner certains des sites les plus chargés au monde. La majorité des serveurs web sur l'Internet utilisent le serveur HTTP Apache. Les versions pré-compilées d'Apache devraient se trouver sur le support d'installation de &os; que vous avez utilisé. Si vous n'avez pas installé Apache à l'installation de &os;, alors vous pouvez installer le serveur à partir du logiciel porté www/apache13 ou www/apache2. Une fois qu'Apache a été installé avec succès, il doit être configuré. Cette section traite de la version 1.3.X du serveur HTTP Apache étant donné que c'est la version la plus largement utilisée sous &os;. Apache 2.X introduit de nombreuses nouvelles technologies mais elles ne sont pas abordées ici. Pour plus d'informations concernant Apache 2.X veuillez consulter . Configuration Apache fichier de configuration Le fichier principal de configuration du serveur HTTP Apache est, sous &os;, le fichier /usr/local/etc/apache/httpd.conf. Ce fichier est un fichier texte de configuration &unix; typique avec des lignes de commentaires débutant par un caractère #. Une description complète de toutes les options de configuration possibles dépasse le cadre de cet ouvrage, aussi seules les directives les plus fréquemment modifiées seront décrites ici. ServerRoot "/usr/local" Indique le répertoire d'installation par défaut pour l'arborescence Apache. Les binaires sont stockés dans les sous-répertoires bin et sbin de la racine du serveur, et les fichiers de configuration dans etc/apache. ServerAdmin you@your.address L'adresse électronique à laquelle tous les problèmes concernant le serveur doivent être rapportés. Cette adresse apparaît sur certaines pages générées par le serveur, comme des pages d'erreur. ServerName www.example.com La directive ServerName vous permet de fixer un nom de machine qui est renvoyé aux clients de votre serveur si le nom est différent de celui de la machine (i.e, utilisez www à la place du véritable nom de la machine). DocumentRoot "/usr/local/www/data" DocumentRoot est le répertoire où se trouvent les documents que votre serveur diffusera. Par défaut, toutes les requêtes sont prises en compte par rapport à ce répertoire, mais des liens symboliques et des alias peuvent être utilisés pour pointer vers d'autres emplacements. C'est toujours une bonne idée de faire des copies de sauvegarde de votre fichier de configuration d'Apache avant de faire des modifications. Une fois que vous êtes satisfait avec votre configuration, vous êtes prêt à lancer Apache. Exécuter <application>Apache</application> Apache démarrage ou arrêt Apache n'est pas lancé à partir du “super-serveur” inetd comme pour beaucoup d'autres serveurs réseau. Il est configuré pour tourner de façon autonome pour de meilleures performances à la réception des requêtes HTTP des navigateurs web. Une procédure est fournie pour rendre le démarrage, l'arrêt, et le redémarrage du serveur aussi simple que possible. Pour démarrer Apache pour la première fois, exécutez: &prompt.root; /usr/local/sbin/apachectl start Vous pouvez arrêter le serveur à tout moment en tapant: &prompt.root; /usr/local/sbin/apachectl stop Après avoir effectué des modifications dans le fichier de configuration, vous devez redémarrer le serveur: &prompt.root; /usr/local/sbin/apachectl restart Pour redémarrer Apache sans faire échouer les connexions en cours, exécutez: &prompt.root; /usr/local/sbin/apachectl graceful Des informations supplémentaires sont disponibles dans la page de manuel d'&man.apachectl.8;. Pour lancer Apache au démarrage du système, ajoutez la ligne suivante au fichier /etc/rc.conf: apache_enable="YES" Si vous désirez passer des options en ligne de commande supplémentaires au programme httpd d'Apache lancé au démarrage du système, vous pouvez les spécifier à l'aide d'une ligne dans rc.conf: apache_flags="" Maintenant que le serveur web tourne, vous pouvez voir votre site web en pointant votre navigateur sur http://localhost/. La page web affichée par défaut est /usr/local/www/data/index.html. Serveurs virtuels Apache supporte deux types différents de serveurs virtuels. Le premier type est celui des serveurs virtuels basés sur les noms. Ce type de serveurs virtuels utilise les entêtes HTTP/1.1 pour déterminer le nom de la machine. Cela autorise le partage de la même adresse IP entre plusieurs domaines différents. Pour configurer Apache à l'utilisation de serveurs virtuels basés sur les noms, ajoutez une entrée comme la suivante à votre fichier httpd.conf: NameVirtualHost * Si votre serveur web est appelé www.domain.tld et que vous voulez mettre en place un domain virtuel pour www.someotherdomain.tld alors vous ajouterez les entrées suivantes au fichier httpd.conf: <VirtualHost *> ServerName www.domain.tld DocumentRoot /www/domain.tld <VirtualHost> <VirtualHost *> ServerName www.someotherdomain.tld DocumentRoot /www/someotherdomain.tld </VirtualHost> Remplacez les addresses avec celles que vous désirez utiliser et le chemin d'accès des documents avec celui que vous utilisez. Pour plus d'informations sur la mise en place de serveurs virtuels, veuillez consulter la documentation officielle d'Apache à l'adresse Modules Apache Apache modules Il existe de nombreux modules Apache disponibles en vue d'ajouter des fonctionnalités au serveur de base. Le catalogue des logiciels portés offre une méthode simple d'installation d'Apache avec certains des modules les plus populaires. mod_ssl serveur web sécurisé SSL chiffrement Le module mod_ssl utilise la bibliothèque OpenSSL pour offrir un chiffrement solide à l'aide des protocoles “Secure Sockets Layer” (SSL v2/v3) et “Transport Layer Security”. Ce module fourni tout ce qui est nécessaire à la demande de certificats signés auprès d'une autorité de certification connue de façon à pouvoir faire tourner un serveur web sécurisé sous &os;. Si vous n'avez pas déjà installé Apache, alors une version d'Apache 1.3.X comprenant mod_ssl peut être installée à l'aide du logiciel porté www/apache13-modssl. Le support SSL est également disponible pour Apache 2.X avec le logiciel porté www/apache2, où il est activé par défaut. mod_perl Perl Le projet d'intégration Apache/Perl réuni la puissance du langage de programmation Perl et le serveur HTTP Apache. Avec le module mod_perl il est alors possible d'écrire des modules Apache entièrement en Perl. De plus, la présence d'un interpréteur intégré au serveur évite la surcharge due au lancement d'un interpréteur externe et le délai pénalisant du démarrage de Perl. Si vous n'avez pas encore installé Apache, une version d'Apache comprenant le module mod_perl peut être installée avec le logiciel porté www/apache13-modperl. PHP PHP PHP, qui signifie “PHP: Hypertext Preprocessor” est un langage de script “Open Source” très utilisé qui est tout particulièrement adapté au développement Web et peut être intégré à du HTML. Sa syntaxe est dérivée du C, du &java; et du Perl, et est facile à apprendre. L'objectif principal de ce langage est de permettre aux développeurs Web d'écrire rapidement des pages au contenu généré dynamiquement, mais vous pouvez faire bien plus avec PHP. PHP peut être installé à partir du logiciel porté lang/php5. Murray Stokely Contribution de Protocole de transfert de fichiers (FTP) serveur FTP Généralités Le protocol de transfert de fichiers (FTP) offre aux utilisateurs une méthode simple pour transférer des fichiers vers ou à partir d'un serveur FTP. &os; comprend un serveur FTP, ftpd, dans le système de base. Cela rend la configuration et l'administration d'un serveur FTP sous &os; très simple. Configuration L'étape de configuration la plus important est de décider quels comptes seront autorisés à accéder au serveur FTP. Un système &os; classique possède de nombreux comptes système utilisés par divers “daemon”s, mais les utilisateurs inconnus ne devraient pas être autorisés à ouvrir de session sous ces comptes. Le fichier /etc/ftpusers est une liste - d'utilisateurs inderdit d'accès au serveur FTP. Par + d'utilisateurs interdits d'accès au serveur FTP. Par défaut, il inclut les comptes systèmes précédemment mentionnés, mais il est possible d'ajouter des utilisateurs précis qui ne devraient pas avoir accès au serveur FTP. Vous pouvez vouloir restreindre l'accès à certains utilisateurs sans leur refuser complètement l'utilisation du serveur FTP. Cela peut être réalisé à l'aide du fichier /etc/ftpchroot. Ce fichier liste les utilisateurs et les groupes sujet à des restrcitions d'accès FTP. La page de manuel &man.ftpchroot.5; fournit tous les détails, cela ne sera donc pas décrit ici. Si vous désirez activer l'accès FTP anonyme sur votre serveur, vous devez alors créer un utilisateur appelé ftp sur votre serveur &os;. Les utilisateurs seront donc en mesure d'ouvrir une session FTP sur votre serveur sous le nom d'utilisateur ftp ou anonymous et sans aucun mot de passe (par convention l'adresse électronique de l'utilisateur devrait être - utilisée comme mot de passe). Le serveur FTP appelera + utilisée comme mot de passe). Le serveur FTP appellera &man.chroot.2; quand un utilisateur anonyme ouvrira une session, pour restreindre l'accès juste au répertoire personnel de l'utilisateur ftp. Il existe deux fichiers texte qui spécifient les messages de bienvenue à afficher aux clients FTP. Le contenu du fichier /etc/ftpwelcome sera affiché aux utilisateurs avant qu'ils atteignent l'invite de session. Après une ouverture de session, le contenu du fichier /etc/ftpmotd sera affiché. Notez que le chemin d'accès à ce fichier est relatif à l'environnement de la session, aussi le fichier ~ftp/etc/ftpmotd sera affiché aux utilisateurs anonymes. Une fois que le serveur FTP a été configuré correctement, il doit être activé dans le fichier /etc/inetd.conf. Ici il faut juste retirer le symbole de commentaire “#” en face de la ligne ftpd: ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l Comme expliqué dans la , un signal “HangUP” doit être envoyé à inetd après que son fichier de configuration ait été modifié. Vous pouvez maintenant ouvrir une session FTP sur votre serveur en tapant: &prompt.user; ftp localhost Maintenance syslog journaux FTP Le “daemon” ftpd utilise &man.syslog.3; pour l'enregistement des messages. Par défaut, le “daemon” de gestion des journaux du système enverra les messages relatifs au FTP dans le fichier /var/log/xferlog. L'emplacement des journaux FTP peut être modifié en changeant la ligne suivante dans le fichier /etc/syslog.conf: ftp.info /var/log/xferlog Soyez conscient des éventuels problèmes impliqués par l'utilisation d'un serveur FTP acceptant les connexions anonymes. Vous devriez, tout particulièrement, penser à deux fois avant d'autoriser les utilisateurs anonyme à déposer des fichiers sur le serveur. Votre site FTP pourrait devenir un forum d'échange de logiciels commerciaux sans les licences ou pire. Si vous devez autoriser le dépôt de fichiers de façon anonyme sur le serveur FTP, alors vous devriez fixer les permissions sur ces fichiers de telle sorte qu'ils ne puissent être lus par d'autres utilisateurs anonymes avant qu'ils n'aient pu être contrôlés. Murray Stokely Contribution de Serveur de fichiers et d'impression pour clients µsoft.windows; (Samba) serveur Samba Microsoft Windows serveur de fichiers clients Windows serveur d'impression clients Windows Généralités Samba est un logiciel libre très populaire qui offre des services de partage de fichiers et d'imprimantes pour les clients µsoft.windows;. De tels clients peuvent se connecter et utiliser l'espace de fichiers d'une machine &os; comme si c'était un disque local, ou utiliser des imprimantes &os; comme si elles étaient des imprimantes locales. Samba devrait se trouver sur votre support d'installation. Si vous n'avez pas installé Samba à l'installation de &os;, vous pouvez alors l'installer à partir de la version pré-compilée ou portée net/samba3. Configuration Le fichier de configuration par défaut de Samba est installé sous le nom /usr/local/etc/smb.conf.default. Ce fichier doit être copié vers /usr/local/etc/smb.conf et personnalisé avant que Samba ne puisse être utilisé. Le fichier smb.conf contient la configuration nécessaire à l'exécution de Samba, comme la définition des imprimantes et des “systèmes de fichiers partagés” que vous désirez partager avec les clients &windows;. Le logiciel Samba comprend une interface Web appelé swat qui offre une méthode simple de configuration du fichier smb.conf. Utilisation de l'interface web d'administration de Samba (SWAT) L'interface web d'administration de Samba (SWAT) est exécutée sous la forme d'un “daemon” à partir d'inetd. Par conséquent, la ligne suivante dans le fichier /etc/inetd.conf doit être décommentée avant que swat ne puisse être utilisé pour configurer Samba: swat stream tcp nowait/400 root /usr/local/sbin/swat Comme expliqué dans la , un signal “HangUP” doit être envoyé à inetd après modification de son fichier de configuration. Une fois que swat a été activé dans inetd.conf, vous pouvez utiliser un navigateur pour vous connecter à l'adresse . Vous devez ouvrir tout d'abord une session sous le compte système root. Une fois que vous avez ouvert une session sur la page principale de configuration de Samba, vous pouvez naviguer dans la documentation du système, ou commencer par cliquer sur l'onglet Globals. Le menu Globals correspond aux variables situées dans la section [global] du fichier /usr/local/etc/smb.conf. Paramétrages généraux Que vous utilisiez swat ou éditiez directement le fichier /usr/local/etc/smb.conf, les premières directives que vous allez sûrement rencontrer en configurant Samba seront: workgroup Le nom de domaine NT ou le groupe de travail pour - les ordinateurs qui accèderont à ce + les ordinateurs qui accéderont à ce serveur. netbios name NetBIOS Fixe le nom NetBIOS sous lequel est connu le serveur Samba. Par défaut c'est le même que la première composante du nom de la machine pour le DNS. server string Cette directive définie la chaîne de caractères qui sera affichée lors de l'utilisation de la commande net view et par d'autres outils réseau recherchant à afficher une description du serveur. Paramètres de sécurité Deux des plus importants paramétrages de /usr/local/etc/smb.conf sont le mode de sécurité choisi, et le format de mot de passe pour les utilisateurs. Les directives suivantes contrôlent ces options: security Les deux options les plus courantes sont security = share et security = user. Si vos clients utilisent des noms d'utilisateur identiques à ceux sur votre machine &os;, alors vous voudrez utiliser un niveau de sécurité utilisateur. C'est le mode de sécurité par défaut et qui demande aux clients de d'ouvrir une session avant de pouvoir accéder aux ressources partagées. Dans le niveau de sécurité partage (“share”), le client n'a pas besoin d'ouvrir de session avant de pouvoir se connecter à une ressource partagée. C'était le mode de sécurité par défaut d'anciennes versions de Samba. passdb backend NIS+ LDAP base de données SQL Samba possède plusieurs modèles de support d'authentification. Vous pouvez authentifier des clients avec LDAP, NIS+, une base de données SQL ou un fichier de mot de passe modifié. La méthode d'authentification par défaut est appelée smbpasswd, et c'est celle qui sera présentée ici. En supposant que le modèle smbpasswd par défaut est utilisé, le fichier /usr/local/private/smbpasswd doit être créé pour permettre à Samba d'identifier les clients. Si vous désirez donner accès à tous vos comptes utilisateur &unix; à partir de clients &windows;, utilisez la commande suivante: &prompt.root; grep -v "^#" /etc/passwd | make_smbpasswd > /usr/local/private/smbpasswd &prompt.root; chmod 600 /usr/local/private/smbpasswd Veuillez consulter la documentation de Samba pour des informations supplémentaires sur les options de configuration. Avec les bases présentées ici, vous devriez disposer de tous les éléments - nécéssaires au démarrage de + nécessaires au démarrage de Samba. Démarrage de <application>Samba</application> Pour activer Samba au démarrage du système, ajoutez la ligne suivante au fichier /etc/rc.conf: samba_enable="YES" Vous pouvez alors démarrer Samba en tapant: &prompt.root; /usr/local/etc/rc.d/samba.sh start Starting SAMBA: removing stale tdbs : Starting nmbd. Starting smbd. Samba consiste essentiellement en trois “daemon”s séparés. Vous devriez vous rendre compte que les “daemon”s nmbd et smbd sont lancés par la procédure samba.sh. Si vous avez activé la résolution de noms winbind dans le fichier smb.conf, alors le “daemon” winbindd sera également lancé. Vous pouvez arrêter Samba à tout moment en tapant: &prompt.root; /usr/local/etc/rc.d/samba.sh stop Samba est une suite logiciels complexes avec des fonctionnalités permettant une large intégration avec les réseaux µsoft.windows;. Pour plus d'information sur les fonctionnalités non-abordées dans ce document, veuillez consulter . Tom Hukins Contribution de Synchronisation de l'horloge avec NTP NTP Généralités Avec le temps, l'horloge d'un ordinateur tend à dériver. Le protocole NTP (“Network Time Protocol”) est une des manières pour s'assurer que votre horloge reste précise. De nombreux services Internet ont besoin, ou tirent partie, de la précision des horloges des ordinateurs. Par exemple, un serveur web, peut recevoir des requêtes pour n'envoyer un fichier que s'il a été modifié depuis un certain temps. Sur un réseau local, il est essentiel que les ordinateurs partageant des fichiers à partir du même serveur de fichiers aient des horloges synchronisées de manière à ce que les dates de création ou de dernière modification d'un fichier (“timestamp”) soient cohérentes. Des services comme &man.cron.8; reposent sur une horloge système précise pour exécuter des commandes à des moments précis. NTP ntpd &os; est fourni avec le serveur NTP &man.ntpd.8; qui peut être utilisé pour contacter d'autres serveurs NTP pour régler l'horloge de votre machine ou pour jouer le rôle de serveur de temps pour d'autres. Choisir les serveurs NTP appropriés NTP choisir les serveurs Afin de synchroniser votre horloge, vous devrez trouver un ou plusieurs serveurs NTP. Votre administrateur réseau ou votre FAI peuvent avoir mis en place un serveur NTP dans cet objectif—consultez leur documentation pour voir si c'est le cas. Il existe une liste en ligne de serveurs NTP accessibles par le public que vous pouvez utiliser pour trouver un serveur NTP proche de vous. Assurez-vous d'avoir pris connaissance de la politique d'utilisation des serveurs que vous choisissez, et demandez la permission si nécessaire. Choisir plusieurs serveurs NTP non-connectés entre eux est une bonne idée au cas où un des serveurs que vous utilisez devient inaccessible ou que son horloge n'est plus fiable. &man.ntpd.8; utilise intelligemment les réponses qu'il reçoit d'autres serveurs—il favorisera les plus fiables par rapport aux moins fiables. Configuration de votre machine NTP configuration Configuration de base ntpdate Si vous désirez synchroniser votre horloge uniquement lors du démarrage de la machine, vous pouvez alors employer &man.ntpdate.8;. Cela peut être approprié pour certaines machines de bureau qui sont fréquemment rédémarrées et qui ne nécessites qu'une synchronisation épisodique, cependant la plupart des machines devraient utiliser &man.ntpd.8;. Utiliser &man.ntpdate.8; au moment du démarrage est également une bonne idée pour les machines qui exécutent &man.ntpd.8;. Le programme &man.ntpd.8; modifie l'horloge graduellement, alors que &man.ntpdate.8; change directement l'horloge, peu importe la différence entre l'heure actuelle de la machine et l'heure correcte. Pour activer &man.ntpdate.8; au démarrage, ajoutez la ligne ntpdate_enable="YES" au fichier /etc/rc.conf. Vous devrez également préciser tous les serveurs avec lesquels vous désirez vous synchroniser et tous les indicateurs devant être passés à &man.ntpdate.8; avec ntpdate_flags. NTP ntp.conf Configuration générale NTP est configuré par l'intermédiaire du fichier /etc/ntp.conf suivant le format décrit dans la page de manuel &man.ntp.conf.5;. Voici un exemple simple: server ntplocal.example.com prefer server timeserver.example.org server ntp2a.example.net driftfile /var/db/ntp.drift L'option server précise quels serveurs doivent être utilisés, avec un serveur listé par ligne. Si un serveur est spécifié avec l'argument prefer, comme c'est le cas pour ntplocal.example.com, ce serveur est préféré par rapport aux autres serveurs. Une réponse en provenance d'un serveur préféré sera ignorée si elle diffère de façon significative des réponses des autres serveurs, sinon elle sera utilisée sans considérer les autres réponses. L'argument prefer est normalement employé pour les serveurs NTP qui sont connus pour leur grande précision, comme ceux avec des systèmes spéciaux de contrôle du matériel. L'option driftfile précise quel fichier est utilisé pour stocker le décalage de fréquence de l'horloge. Le - programmme &man.ntpd.8; l'utilise pour compenser + programme &man.ntpd.8; l'utilise pour compenser automatiquement la dérive naturelle de l'horloge, permettant de maintenir un réglage raisonnablement correct même s'il est coupé d'autres sources extérieures de temps pendant une certaine période. L'option driftfile précise également quel fichier est utilisé pour stocker l'information concernant les réponses précédentes des serveurs NTP que vous utilisez. Il ne devrait pas être modifié par un autre processus. Contrôler l'accès à votre serveur Par défaut, votre serveur NTP sera accessible par toutes les machines sur l'Internet. L'option restrict du fichier /etc/ntp.conf vous permet de contrôler quelles machines peuvent accéder à votre serveur. Si vous voulez refuser à tout le monde l'accès à votre serveur NTP, ajoutez la ligne suivante au fichier /etc/ntp.conf: restrict default ignore Si vous désirez autoriser uniquement l'accès aux machines de votre réseau pour qu'elles puissent synchroniser leur horloge, tout en vous assurant qu'elles ne peuvent configurer le serveur ou être utilisées comme point de de synchronisation, ajoutez: restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap à la place, où 192.168.1.0 est une adresse IP de votre réseau et 255.255.255.0 est votre masque de sous-réseau. Le fichier /etc/ntp.conf peut contenir plusieurs options restrict. Pour plus de détails, lisez la section Access Control Support de la page de manuel &man.ntp.conf.5;. Exécuter le serveur NTP Pour s'assurer que le serveur NTP est lancé au démarrage, ajoutez la ligne ntpd_enable="YES" dans le fichier /etc/rc.conf. Si vous désirez passer des indicateurs supplémentaires à &man.ntpd.8;, éditez les paramètres de l'option ntpd_flags dans /etc/rc.conf. Pour lancer le serveur sans redémarrer votre machine, exécutez ntpd en étant sûr de préciser tout paramètre supplémentaire de ntpd_flags dans /etc/rc.conf. Par exemple: &prompt.root; ntpd -p /var/run/ntpd.pid Sous &os; 4.X, vous devez remplacer chaque ntpd par xntpd dans les options ci-dessus. Utiliser ntpd avec une connexion Internet temporaire Le programme &man.ntpd.8; n'a pas besoin d'une connexion permanente à l'Internet pour fonctionner correctement. - Cependant, si vous disposez d'une connextion temporaire qui + Cependant, si vous disposez d'une connexion temporaire qui est configurée de telle sorte qu'il y ait établissement de la connexion à la demande, c'est une bonne idée d'empêcher le trafic NTP de déclencher la numérotation ou de maintenir constamment établie la connexion. Si vous utilisez PPP en mode utilisateur, vous pouvez employer les directives filter dans le fichier /etc/ppp/ppp.conf. Par exemple: set filter dial 0 deny udp src eq 123 # Empêche le trafic NTP de lancer une connexion set filter dial 1 permit 0 0 set filter alive 0 deny udp src eq 123 # Empêche le trafic NTP entrant de garder la connexion établie set filter alive 1 deny udp dst eq 123 # Empêche le trafic NTP sortant de garder la connexion établie set filter alive 2 permit 0/0 0/0 Pour plus de détails lisez la section PACKET FILTERING de la page de manuel &man.ppp.8; et les exemples du répertoire /usr/share/examples/ppp/. Certains fournisseurs d'accès Internet bloquent les ports dont le numéro est faible, empêchant NTP de fonctionner puisque les réponses n'atteingnent jamais votre machine. Information supplémentaire La documentation pour le serveur NTP peut être trouvé dans le répertoire /usr/share/doc/ntp/ sous le format HTML.