Guide de référence pour Debian ------------------------------ Osamu Aoki Traduction en Français : Guillaume Erbs Section A.1, `Auteurs' CVS, sam 26 jan 2008 10:28:14 UTC ------------------------------------------------------------------------------- Résumé ------ Ce Guide de référence pour Debian (http://qref.sourceforge.net/) se propose de donner une vue générale du système Debian comme _guide de l'utilisateur après installation_. Cela couvre beaucoup d'aspects de l'administration système à l'aide d'exemples de _commandes shell_. Des didacticiels sur les bases, des astuces, et d'autres informations sont fournies sur des sujets comme les concepts fondamentaux du système Debian, des astuces d'installation, la gestion des paquets Debian, le noyau Linux sous Debian, la configuration du système, la configuration d'une passerelle, les éditeurs de texte, CVS, la programmation, et GnuPG pour des _non-développeurs_. Copyright --------- Copyright (C) 2001--2005 by Osamu Aoki . Copyright (Chapter 2) (C) 1996--2001 by Software in the Public Interest. Ce document peut être utilisé selon les termes de la Licence Publique Générale de GNU version 2 ou suivante. (http://www.gnu.org/copyleft/gpl.html) Il est permis de produire et distribuer des copies conformes de ce document à condition que la présente notice de copyright et la présente notice de permission soient préservées sur toutes les copies. Il est permis de copier et distribuer des versions modifiées de ce document selon les conditions d'une copie conforme, à condition que le travail dérivé résultant soit entièrement distribué selon les termes d'une notice de permission identique à celle-ci. Il est permis de copier et distribuer des traductions de ce document dans d'autres langues, selon les conditions pour versions modifiées ci-dessus, sauf que cette notice de permission peut être incluse sous forme d'une traduction approuvée par la Free Software Foundation à la place de l'Anglais original. ------------------------------------------------------------------------------- Table des matières ------------------ 1. Préface 1.1. Document officiel 1.2. Conventions du document 1.3. Scripts d'exemple 1.4. Configuration de base 1.5. Fondements de la distribution Debian 2. Notions fondamentales sur Debian 2.1. Les archives Debian 2.1.1. Structure de répertoires 2.1.2. Distributions Debian 2.1.3. La distribution `stable' 2.1.4. La distribution `testing' 2.1.5. La distribution `unstable' 2.1.6. La distribution `frozen' 2.1.7. Les noms de code de la distribution Debian 2.1.8. Noms de code utilisés par le passé 2.1.9. Source d'inspiration pour les noms de code 2.1.10. Le répertoire `pool' 2.1.11. Notes historiques sur `sid' 2.1.12. Paquets téléchargés dans `incoming' 2.1.13. Récupérer un paquet ancien 2.1.14. Sections architectures 2.1.15. Le code source 2.2. Système de gestion des paquets Debian 2.2.1. Vue générale des paquets Debian 2.2.2. Format des paquets Debian 2.2.3. Conventions de nommage pour les fichiers de paquets Debian 2.2.4. Préservation de la configuration locale 2.2.5. Scripts de maintenance Debian 2.2.6. Priorité des paquets 2.2.7. Paquets virtuels 2.2.8. Dépendances des paquets 2.2.9. Signification de « pre-depends » 2.2.10. Etat d'un paquet 2.2.11. Garder des paquets lors d'une mise à jour 2.2.12. Paquets sources 2.2.13. Construire des paquets binaires à partir d'un paquet source 2.2.14. Créer de nouveaux paquets Debian 2.3. Mettre à jour un système Debian 2.3.1. Méthodes de mise à jour d'un système Debian 2.3.2. Vue générale des outils de gestion de paquets 2.3.3. `dpkg' 2.3.4. APT 2.3.5. `dselect' 2.3.6. Mise à jour d'un système en marche 2.3.7. Fichiers d'archive `.deb' téléchargés et sauvegardés 2.3.8. Garder une trace des mises à jour 2.4. Le processus de démarrage de Debian 2.4.1. Le programme `init' 2.4.2. Niveaux de fonctionnement 2.4.3. Personnaliser les niveaux de fonctionnement 2.5. Support de la diversité 2.6. Internationalisation 2.7. Debian et le noyau 2.7.1. Compiler un noyau avec des sources non Debian 2.7.2. Outils pour compiler un noyau personnalisé 2.7.3. Dispositions spéciales pour manipuler les modules 2.7.4. Désinstaller le paquet d'un vieux noyau 3. Installation du système Debian 3.1. Astuces générales sur l'installation du système Linux 3.1.1. Compatibilité matérielle 3.1.2. Déterminer le matériel et les puces du PC 3.1.3. Trouver le matériel du PC avec Debian 3.1.4. Trouver le matériel du PC avec d'autres systèmes d'exploitation (SE) 3.1.5. Le Mythe Lilo 3.1.6. GRUB 3.1.7. Choix des disquettes de boot 3.1.8. Installation 3.1.9. Nom d'hôte et IP à utiliser pour le réseau local 3.1.10. Comptes utilisateurs 3.1.11. Création des systèmes de fichiers 3.1.12. Lignes directrices pour la mémoire DRAM 3.1.13. Espace de Swap 3.2. Configuration de Bash 3.3. Configuration de la souris 3.3.1. Souris PS/2 3.3.2. Souris USB 3.3.3. Touchpad 3.4. Configuration NFS 3.5. Configuration Samba 3.6. Configuration de l'imprimante 3.6.1. `lpr'/`lpd' 3.6.2. CUPS(TM) 3.7. Autres conseils de configuration de l'hôte 3.7.1. Installer quelques paquets supplémentaires après l'installation 3.7.2. Modules 3.7.3. Configuration de base d'un graveur de CD 3.7.4. Grande capacité mémoire et arrêt automatique 3.7.5. Étranges problèmes d'accès à certains sites web 3.7.6. Configuration d'une connexion RTC avec PPP 3.7.7. Autre configuration à vérifier dans `/etc/' 4. Didacticiels Debian 4.1. Débuter 4.1.1. Se connecter à un shell en tant que root 4.1.2. Configurer un système minimal pour débutant 4.1.3. Ajouter un compte utilisateur 4.1.4. Changer de console virtuelle 4.1.5. Comment arrêter le système 4.1.6. À vous de jouer 4.2. Midnight Commander (MC) 4.2.1. Améliorer MC 4.2.2. Démarrer MC 4.2.3. Gestionnaire de fichiers de MC 4.2.4. Astuces en ligne de commande avec MC 4.2.5. Éditeur de MC 4.2.6. Visionneur de MC 4.2.7. Possibilités de démarrage automatique de MC 4.2.8. Système de fichiers FTP virtuel de MC 4.3. Environnement de travail de type Unix 4.3.1. Combinaisons de touches spéciales 4.3.2. Commandes Unix de base 4.3.3. L'exécution de commandes 4.3.4. Commande simple 4.3.5. Exécution de commande et variables d'environnement 4.3.6. Chemin de recherche des commandes 4.3.7. Options de ligne de commande 4.3.8. Expressions de remplacement du shell 4.3.9. Valeur de retour d'une commande 4.3.10. Suites de commandes typiques 4.3.11. Alias de commande 4.4. Traitement de texte à la Unix 4.4.1. Expressions rationnelles 4.4.2. Expressions de remplacement 4.5. Système de fichiers Unix 4.5.1. Bases sur les fichiers Unix 4.5.2. Concepts du système de fichiers de Debian 4.5.3. Permissions d'accès des fichiers et répertoires 4.5.4. Horodatage 4.5.5. Liens 4.5.6. Tubes nommés 4.5.7. Sockets 4.5.8. Fichiers de périphériques 4.5.9. Système de fichiers `/proc' 4.6. Le système X Window 4.6.1. Démarrer le système X Window 4.6.2. Menu du système X Window 4.6.3. Suites de commandes au clavier pour le système X Window 4.7. Étude approfondie 5. Mise à jour d'une distribution vers `testing' 5.1. Transition de APT vers la version de Woody 5.2. Préparation de la transition (« stable » vers « testing ») 5.3. Mise à jour du système Debian 5.3.1. Meilleure méthode de mise à jour avec `dselect' 5.3.2. Méthode obsolète de mise à jour avec `apt-get' 6. Gestion des paquets Debian 6.1. Introduction 6.1.1. Outils de gestion des paquets principaux 6.1.2. Outils pratiques 6.2. Bases de la gestion de paquets Debian 6.2.1. Configurer APT 6.2.2. Installation de tâches 6.2.3. `aptitude' 6.2.4. `dselect' 6.2.5. Suivre une distribution avec APT 6.2.6. Commandes `aptitude', `apt-get' et `apt-cache' 6.3. Commandes de survie Debian 6.3.1. Rechercher les bogues de Debian et demander de l'aide 6.3.2. Résolution de problèmes de mise à jour avec APT 6.3.3. Sauvetage avec `dpkg' 6.3.4. Récupérer les données de sélection des paquets 6.3.5. Sauver un système après avoir perdu `/var' 6.3.6. Installer un paquet sur un système qui ne démarre plus 6.3.7. Que faire si `dpkg' est cassé 6.4. Commandes « nirvana » de Debian 6.4.1. Informations sur un fichier 6.4.2. Informations sur un paquet 6.4.3. Installation automatique avec APT 6.4.4. Reconfigurer les paquets installés 6.4.5. Enlever et purger des paquets 6.4.6. Garder de vieux paquets 6.4.7. Système mixte `stable'/`testing'/`unstable' 6.4.8. Supprimer les paquets du cache 6.4.9. Enregistrer/copier la configuration du système 6.4.10. Porter un paquet vers le système `stable' 6.4.11. Archive locale de paquets 6.4.12. Convertir ou installer un paquet non Debian 6.4.13. Installation automatique 6.4.14. Vérifier les fichiers de paquets installés 6.4.15. Améliorer le fichier `sources.list' 6.5. Autres particularités de Debian 6.5.1. La commande `dpkg-divert' 6.5.2. Le paquet `equivs' 6.5.3. Commandes de rechange 6.5.4. Utilisation des niveaux de fonctionnement 6.5.5. Services désactivés 7. Le noyau Linux et Debian 7.1. Recompilation du noyau 7.1.1. Méthode Debian standard 7.1.2. Méthode classique 7.1.3. En-têtes du noyau 7.2. Le noyau 2.4 modulaire 7.2.1. PCMCIA 7.2.2. SCSI 7.2.3. Fonctions réseau 7.2.4. Système de fichiers EXT3 ( > 2.4.17) 7.2.5. Support Realtek RTL-8139 dans le noyau 2.4 7.2.6. Support du port parallèle 7.2.7. Trop de fichiers ouverts 8. Astuces Debian 8.1. Démarrer le système 8.1.1. « J'ai oublié le mot de passe de root ! » (1) 8.1.2. « J'ai oublié le mot de passe de root ! » (2) 8.1.3. Je ne peux pas lancer le système 8.1.4. « Je veux désactiver X au démarrage ! » 8.1.5. Autres astuces avec l'invite de démarrage 8.1.6. Comment configurer les paramètres de démarrage de GRUB 8.2. Enregistrer les activités 8.2.1. Enregistrer les activités du shell 8.2.2. Enregistrer les activités sous X 8.3. Copier et archiver un sous-répertoire entier 8.3.1. Commandes de base pour copier un sous-répertoire entier 8.3.2. `cp' 8.3.3. `tar' 8.3.4. `pax' 8.3.5. `cpio' 8.3.6. `afio' 8.4. Sauvegarde différentielle et synchronisation de données 8.4.1. Sauvegarde différentielle avec rdiff 8.4.2. Sauvegarde quotidienne avec `pdumpfs' 8.4.3. Sauvegarde différentielle régulière avec RCS 8.5. Récupération d'un système bloqué 8.5.1. Tuer un processus 8.5.2. Alt-SysRq 8.6. Petites commandes utiles à se rappeler 8.6.1. Pager 8.6.2. Mémoire libre 8.6.3. Régler l'heure (BIOS) 8.6.4. Régler l'heure (NTP) 8.6.5. Comment contrôler des possibilités de la console comme l'écran de veille 8.6.6. Chercher dans la base de données administrative 8.6.7. Désactiver le son (beep) 8.6.8. Messages d'erreur sur l'écran de la console 8.6.9. Régler la console 8.6.10. Remettre la console dans un état sain 8.6.11. Convertir des fichiers texte DOS vers Unix 8.6.12. Convertir un fichier texte avec `recode' 8.6.13. Substitutions à l'aide des expressions rationnelles 8.6.14. Editer un fichier avec un script 8.6.15. Extraire des différences et introduire des mises à jour dans un fichier source 8.6.16. Convertir un gros fichier en plusieurs petits 8.6.17. Extraire des données d'un tableau contenu dans un fichier texte 8.6.18. Bouts de scripts pour les tubes 8.6.19. Bouts de scripts pour boucler sur chaque fichier 8.6.20. Série de courts scripts en Perl 8.6.21. Récupérer du texte ou une archive de liste de diffusion à partir d'une page web 8.6.22. Imprimer joliment une page web 8.6.23. Imprimer joliment une page de manuel 8.6.24. Joindre deux fichiers PostScript ou PDF 8.6.25. Mesurer la durée d'une commande 8.6.26. Commande `nice' 8.6.27. Programmer des activités (`cron', `at') 8.6.28. Changement de console avec `screen' 8.6.29. Bases pour tester un réseau 8.6.30. Vider les courriers électroniques de la file locale 8.6.31. Supprimer les courriers électroniques gelés de la file locale 8.6.32. Redélivrer le contenu de `mbox' 8.6.33. Supprimer le contenu d'un fichier 8.6.34. Fichiers fantômes 8.6.35. `chroot' 8.6.36. Comment vérifier les liens durs 8.6.37. Monter une image de disque dur 8.6.38. Samba 8.6.39. Utilitaires pour les systèmes de fichiers étrangers 8.7. Fautes courantes à éviter 8.7.1. `rm -rf .*' 8.7.2. `rm /etc/passwd' 9. Configurer un système Debian 9.1. Initialisation du système 9.1.1. Personnaliser les scripts d'initialisation 9.1.2. Personnaliser le journal du système 9.1.3. Optimisation de l'accès au matériel 9.2. Contrôle d'accès 9.2.1. Contrôle des connexions avec PAM 9.2.2. Pourquoi `GNU su' ne supporte pas le groupe `wheel' 9.2.3. Objet des groupes par défaut 9.2.4. Travailler de façon sûre -- `sudo' 9.2.5. Contrôle d'accès aux services 9.2.6. Centraliser l'identification -- LDAP 9.3. Graveurs de CD 9.3.1. Introduction 9.3.2. Première approche : modules + `lilo' 9.3.3. Seconde approche : recompiler le noyau 9.3.4. Étapes post-configuration 9.3.5. Image de CD (bootable) 9.3.6. Graver un CD (R, RW) 9.3.7. Créer l'image d'un CD 9.3.8. Images de CD Debian 9.3.9. Système de sauvegarde sur CD-R 9.3.10. Copier un CD audio sur un CD-R 9.3.11. Graver des DVD-R, DVD-RW et DVD+RW 9.4. X 9.4.1. Paquets X 9.4.2. Détection de matériel pour X 9.4.3. Le serveur X 9.4.4. Clients X 9.4.5. Sessions X 9.4.6. Utiliser X sur TCP/IP 9.4.7. Connexion à un serveur X distant -- `xhost' 9.4.8. Connexion à un serveur X distante -- `ssh' 9.4.9. L'émulateur de terminal X -- `xterm' 9.4.10. Ressources X 9.4.11. Clavier et souris sous X 9.4.12. Devenir root sous X 9.4.13. Polices TrueType dans X 9.4.14. Navigateurs Web pour X 9.5. SSH 9.5.1. Bases de SSH 9.5.2. Redirection de port pour un tunnel SMTP/POP3 9.5.3. Se connecter avec moins de mots de passe -- RSA 9.5.4. Clients SSH étrangers 9.5.5. Configurer `ssh-agent' 9.5.6. Résoudre les problèmes avec SSH 9.6. Logiciels de courrier électronique 9.6.1. Agent de transport de courrier électronique 9.6.2. Récupérer le courrier électronique -- Fetchmail 9.6.3. Traiter le courrier électronique -- Procmail 9.6.4. Filtrer le spam avec `crm114' 9.6.5. Lire le courrier électronique -- Mutt 9.7. Localisation (l10n) 9.7.1. Bases de la localisation 9.7.2. Locales 9.7.3. Introduction aux locales 9.7.4. Activer le support des locales 9.7.5. Activer une locale particulière 9.7.6. Format de date local ISO 8601 9.7.7. Exemple pour les États-Unis (ISO-8859-1) 9.7.8. Exemple pour la France avec le caractère Euro (ISO-8859-15) 9.7.9. Exemple de système X bilingue 9.7.10. Méthodes d'entrée alternatives pour X 9.7.11. Émulateurs de terminal X 9.7.12. Support UTF-8 pour l'émulateur de terminal X 9.7.13. Exemple pour UTF-8 avec la console framebuffer 9.7.14. Après locale 9.8. Multilingualisation (m17n) 10. Configuration réseau 10.1. Bases des réseaux IP 10.2. Configuration réseau bas niveau 10.2.1. Configuration réseau bas niveau -- `ifconfig' et `route' 10.2.2. Configuration réseau bas niveau -- `ip' 10.2.3. Configurer une interface Wi-Fi 10.2.4. Configurer une interface PPP 10.3. Nommer l'ordinateur 10.3.1. Nom de machine 10.3.2. Nom de courriel 10.4. Domain Name Service (DNS) 10.4.1. Le résolveur 10.4.2. Gérer l'information sur les serveurs de noms -- `resolvconf' 10.4.3. Garder en mémoire les noms résolus -- `dnsmasq' 10.4.4. Fournir le Domain Name Service -- `bind' 10.5. Configurer les interfaces réseau par DHCP 10.6. Configuration réseau haut niveau avec Debian 10.6.1. Configurer une interface avec une adresse IP fixe 10.6.2. Configurer une interface par DHCP 10.6.3. Configurer une interface Wi-Fi 10.6.4. Configurer une interface PPP 10.6.5. Configurer une interface PPPoE 10.6.6. Configurer plusieurs interfaces Ethernet pour une passerelle 10.6.7. Configurer des interfaces virtuelles 10.7. _Re_configuration du réseau 10.8. Reconfiguration magique du réseau 10.8.1. guessnet 10.8.2. laptop-net 10.9. Activer la reconfiguration du réseau 10.9.1. Activer la configuration réseau au démarrage 10.9.2. Activer la configuration réseau -- `hotplug' 10.9.3. Activer la configuration réseau -- `ifplugd' 10.9.4. Activer la configuration réseau -- `waproamd' 10.9.5. Configuration réseau et PCMCIA 10.10. Configuration des services réseau 10.11. Résolution des problèmes réseau 10.12. Configurer une passerelle 10.12.1. Configuration de Netfilter 10.12.2. Gérer plusieurs connexions à l'Internet 11. Editeurs 11.1. Editeurs populaires 11.2. Editeurs de sauvetage 11.3. Emacs et Vim 11.3.1. Conseils pour Vim 11.3.2. Conseils pour Emacs 11.3.3. Démarrer l'éditeur 11.3.4. Résumé des commandes de l'éditeur (Emacs, Vim) 11.3.5. Configuration de Vim 11.3.6. Ctags 11.3.7. Convertir un écran avec syntaxe en surbrillance en un source HTML 11.3.8. Ecran scindé avec `vim' 12. Systèmes de contrôle de version 12.1. Concurrent Versions System (CVS) 12.1.1. Installation d'un serveur CVS 12.1.2. Exemples de sessions CVS 12.1.3. Résoudre les problèmes de CVS 12.1.4. Commandes CVS 12.2. Subversion 12.2.1. Installation d'un serveur Subversion 12.2.2. Déplacer un dépôt CVS vers Subversion 12.2.3. Exemples d'utilisation de Subversion 13. Programmation 13.1. Où commencer 13.2. Shell 13.2.1. Bash -- le shell intéractif standard de _GNU_ 13.2.2. Shells POSIX 13.2.3. Paramètres du shell 13.2.4. Redirection du shell 13.2.5. Opérateurs conditionnels du shell 13.2.6. Traitement de la ligne de commande 13.3. Awk 13.4. Perl 13.5. Python 13.6. Make 13.7. C 13.7.1. Programme simple en C (`gcc') 13.7.2. Déboguer 13.7.3. Flex -- un meilleur Lex 13.7.4. Bison -- un meilleur Yacc 13.7.5. Autoconf 13.8. Préparation de documents 13.8.1. Traitement de texte `roff' 13.8.2. SGML 13.9. Paquetage 13.9.1. Paqueter un binaire seul 13.9.2. Paqueter avec des outils 14. GnuPG 14.1. Installer GnuPG 14.2. Utiliser GnuPG 14.3. Gérer GnuPG 14.4. Utiliser GnuPG avec des applications 14.4.1. Utiliser GnuPG avec Mutt 14.4.2. Utiliser GnuPG avec Vim 15. Support Debian 15.1. Références 15.2. Trouver le sens d'un mot 15.3. Trouver la popularité d'un paquet Debian 15.4. Système de suivi des bogues Debian 15.5. Listes de diffusion 15.6. Internet Relay Chat (IRC) 15.7. Moteurs de recherche 15.8. Sites internet A. Annexe A.1. Auteurs A.2. Garanties A.3. Retour A.4. Format du document A.5. Le labyrinthe de Debian A.6. Les citations Debian ------------------------------------------------------------------------------- 1. Préface ---------- Ce Guide de référence pour Debian (http://qref.sourceforge.net/) se propose de donner une vue générale du système Debian comme _guide de l'utilisateur après installation_. Le lecteur visé est quelqu'un qui veut lire des scripts shell. Je suppose que le lecteur a des bases sur les systèmes de type Unix pour lire ce document. J'ai pris la décision de _ne pas_ expliquer tout en détail si cela peut être trouvé dans une _page de manuel_, une _page info_, ou un _HOWTO_. Plutôt que de tout expliquer, j'essaie de donner des informations pratiques plus directement en fournissant des _séquences de commandes exactes_ ou des _scripts d'exemple_ dans http://www.debian.org/doc/manuals/debian-reference/examples/ comme référence. Vous devez comprendre le contenu des exemples avant de lancer les commandes. Votre système peut nécessiter des commandes légèrement différentes. La plupart des informations données consistent en rappels ou en pointeurs vers les références officielles listées dans Section 15.1, `Références'. Ceci partiellement parce que ce document a été démarré en tant que « _Référence Rapide_ ». Mon principe est de _le garder court et simple_. Pour une aide en vue de la maintenance urgente d'un système, rendez-vous à Section 6.3, `Commandes de survie Debian' immédiatement. 1.1. Document officiel ---------------------- La dernière version du document officiel est dans l'archive Debian dans le paquet `debian-reference-fr' et est aussi disponible à http://www.debian.org/doc/manuals/debian-reference/. La dernière version de développement est à http://qref.sourceforge.net/Debian/. Le projet est hébergé à http://qref.sourceforge.net/ où ce document est disponible au téléchargement dans les formats texte, HTML, PDF, SGML et PostScript. 1.2. Conventions du document ---------------------------- Le « Guide de référence pour Debian » procure de l'information par le biais de commandes simples en shell BASH. Voici les conventions utilisées : # commande en compte « root » $ commande en compte utilisateur ... description de l'action Voir Section 13.2.1, `Bash -- le shell intéractif standard de _GNU_' pour plus d'information sur Bash. Références : * une page de _manuel Unix_ est donnée dans la forme bash(1). * une page _GNU TEXINFO_ est donnée dans la forme `info libc'. * un _livre_ est donné dans la forme _Le langage C_. * une _URL_ est donnée dans la forme http://www.debian.org/doc/manuals/debian-reference/. * un _fichier_ est donné dans la forme `/usr/share/doc/Debian/reference/'. Les abréviations suivantes sont utilisées : * _LDP_ : Linux Documentation Project (http://www.tldp.org/) * _DDP_ : Debian Documentation Project (http://www.debian.org/doc/) Dans ce document, seules des URL sont fournies pour les documents du LDP, mais ils peuvent aussi être obtenus dans des paquets et installés dans `/usr/share/doc/HOWTO/'. Voir Section 15.1, `Références'. 1.3. Scripts d'exemple ---------------------- Des scripts d'exemple sont fournis dans le répertoire des exemples (http://www.debian.org/doc/manuals/debian-reference/examples/) ; pour les fichiers cachés, le préfixe « . » est remplacé par un « _ ». Un suffixe a été ajouté lorsqu'il y a plusieurs scripts d'exemple pour un même sujet. 1.4. Configuration de base -------------------------- Si le système est installé avec le strict minimum comme paquets, assurez-vous d'exécuter les commandes suivantes pour installer quelques paquets essentiels et quelques documents importants : # aptitude install mc less ssh vim kernel-package \ manpages-dev doc-debian doc-linux-text \ debian-policy developers-reference maint-guide \ apt-howto harden-doc debian-reference \ libpam-doc glibc-doc samba-doc exim4-doc-html 1.5. Fondements de la distribution Debian ----------------------------------------- Debian se présente sous la forme simultanée de 3 éditions : * stable : Convient pour un serveur de production. Ennuyeux pour une station de travail (ST). Voir Section 2.1.3, `La distribution `stable''. * testing : Convient pour une ST. Voir Section 2.1.4, `La distribution `testing''. * unstable : Ne pas charger cette édition aveuglément. Voir Section 2.1.5, `La distribution `unstable''. Lisez au moins la liste de discussion centrale `debian-devel-announce@lists.debian.org' pour des mises à jour sur l'état de Debian. (NdT : Pour les francophones, vous trouverez de l'aide en vous abonnant à la liste de discussion francophone `debian-user-french-request@lists.debian.org'.) Au mois de mars 2002, ces trois versions correspondent à `Potato' (qualité de production), `Woody' (en beta-test, très stable maintenant), et `Sid' (en alpha-test). En août 2002, juste après la sortie de `Woody', cela correspond à `Woody' (qualité de production), `Sarge' (en beta-test, elle sera assez difficile pendant quelque temps), et `Sid' (toujours en alpha-test). Lorsque les paquets dans `unstable' n'ont plus de bogues critiques (Release Critical, RC) répertoriés pendant environ une semaine de test, ils sont automatiquement inclus dans `testing'. Voir Section 2.1, `Les archives Debian'. En théorie, il y a deux choses que vous pouvez faire pour disposer des dernières versions des applications. * Chapitre 5, `Mise à jour d'une distribution vers `testing'' (principalement pour des stations de travail) * Section 6.4.10, `Porter un paquet vers le système `stable'' (principalement pour des serveurs) Suivre la version `testing' de Debian a l'effet de bord de recevoir très lentement les correctifs de sécurité. Vous êtes prévenus. Si vous mélangez les versions de Debian, `testing' dans `stable' ou `unstable' dans `stable', vous aurez certainement à récupérer beaucoup de paquets importants de `testing' ou `unstable' qui peuvent être bogués. Vous êtes prévenus. Utiliser les versions `testing' ou `unstable' de Debian impliquent l'augmentation du risque de tomber sur des bogues sérieux. Ce risque peut-être géré en utilisant un schéma de multi-boot avec une version plus stable de Debian ou en utilisant l'astuce de `chroot' avec la version stabe décrite dans Section 8.6.35, ``chroot''. Cette dernière permet d'utiliser différentes versions de Debian simultanément sur différentes consoles. Après avoir expliqué quelques éléments fondamentaux de la distribution Debian dans Chapitre 2, `Notions fondamentales sur Debian', je vais présenter quelques informations de base pour vous aider à vivre tranquillement avec les dernières applications, en tirant parti de la distribution `testing' et de la distribution `unstable' de Debian. Les impatients devront aller immédiatement à Section 6.3, `Commandes de survie Debian'. Bonne et heureuse mise à jour! ------------------------------------------------------------------------------- 2. Notions fondamentales sur Debian ----------------------------------- Ce chapitre donne des notions fondamentales sur le système Debian pour des non-développeurs. Pour des informations officielles, voir : * Charte Debian * Référence du développeur Debian * Guide des nouveaux responsables Debian listés dans Section 15.1, `Références'. Si l'on recherche des explications basées sur des solutions et sans les détails, se référer directement à Chapitre 6, `Gestion des paquets Debian' ou aux chapitres appropriés. Ce chapitre consiste en une réorganisation de documents pris dans la « FAQ Debian », afin qu'un administrateur système Debian puisse débuter. 2.1. Les archives Debian ------------------------ 2.1.1. Structure de répertoires ------------------------------- Les logiciels paquetés pour Debian sont disponibles dans un des nombreux arbres de répertoires sur chaque site miroir Debian (http://www.debian.org/mirror/) accessible par FTP ou HTTP. Les répertoires suivants sont sur chaque miroir Debian sous le répertoire `debian' : `/dists/' : Ce répertoire contient les « distributions », et est utilisé pour accéder aux paquets actuellement disponibles dans les versions et pré-versions de Debian. Certains vieux paquets, fichiers `Contents-*.gz', et fichiers `Packages.gz' sont toujours là. `/pool/' : Nouvelle place de tous les paquets des versions et pré-versions de Debian. `/tools/' : Utilitaires DOS pour créer des disquettes de démarrage, partitionner un disque dur, compresser/décompresser des fichiers, et démarrer Linux. `/doc/' : La documentation de base de Debian, telle que la FAQ, les instructions pour faire un rapport de bogues, etc. `/indices/' : Le fichier `Maintainers' et les fichiers `override'. `/project/' : Principalement des ressources pour les développeurs, comme : `project/experimental/' : Ce répertoire contient des paquets et des outils qui sont en développement, et sont encore en état de test alpha. Les utilisateurs ne devraient pas utiliser des paquets de ce répertoire parce qu'ils peuvent être dangereux même pour des utilisateurs expérimentés. `project/orphaned/' : Paquets qui ont été abandonnés par leur ancien responsable et ont été retirés de la distribution. 2.1.2. Distributions Debian --------------------------- Normalement il y a trois distributions Debian dans le répertoire `dists'. Leurs noms sont la distribution « stable », la distribution « testing » et la distribution « unstable ». Quelquefois il y a aussi la distribution « frozen ». Chaque distribution est définie par un lien symbolique vers le répertoire réel, utilisant un nom de code et situé dans le répertoire `dists'. 2.1.3. La distribution `stable' ------------------------------- Les paquets de la distribution `stable', Debian Sarge (3.1r0), sont enregistrés dans le répertoire `stable' (lien symbolique vers `Sarge') : * `stable/main/' : Ce répertoire contient les paquets constituant la version la plus récente du système Debian. Ces paquets sont aussi conformes aux Principes du logiciel libre selon Debian (http://www.debian.org/social_contract#guidelines) (aussi disponible dans le fichier `/usr/share/doc/debian/social-contract.txt' installé par le paquet `debian-doc'), et sont tous utilisables et redistribuables librement. * `stable/non-free/' : Ce répertoire contient des paquets dont la distribution est restreinte et nécessite que les distributeurs prennent soigneusement en compte les exigences spécifiées par la licence. Par exemple, certains paquets ont une licence qui interdit la distribution commerciale. D'autres peuvent être redistribués mais sont en fait des partagiciels et non des logiciels libres. Les licences de chacun de ces paquets doivent être étudiées, et dans certains cas négociées, avant que les paquets soient inclus dans une redistribution (par exemple, sur un CD-ROM). * `stable/contrib/' : Ce répertoire contient des paquets qui sont conformes aux principes du logiciel libre selon Debian et _distribuables librement_, mais dépendent d'un paquet qui _n'est pas_ distribuable librement et n'est ainsi disponible que dans la section non-free. En plus des emplacements ci-dessus, les paquets sont physiquement situés dans le répertoire `pool' (Section 2.1.10, `Le répertoire `pool''). L'état courant de la distribution `stable' est accessible sur la page web Les problèmes de 'stable' (http://ftp-master.debian.org/testing/stable_probs.html). 2.1.4. La distribution `testing' -------------------------------- Les paquets de la distribution `testing', Debian Etch, sont enregistrés dans le répertoire `testing' (lien symbolique vers `Etch') après avoir subi une certaine quantité de tests dans `unstable'. En plus de ces emplacements, les nouveaux paquets sont situés dans le répertoire `pool' (Section 2.1.10, `Le répertoire `pool''). Les sous-répertoires `main', `contrib' et `non-free' sont aussi présents dans `testing', séparés par les mêmes critères que pour `stable'. Les paquets doivent être synchronisés pour toutes les architectures où ils sont compilés et ne doivent pas avoir de dépendances qui les rendent ininstallables ; ils doivent aussi avoir moins de bogues critiques pour une sortie de version que ceux de `unstable'. De cette façon, on espère que `testing' est toujours prête à être candidate à une sortie. Plus de détails sur le mécanisme sont disponibles à http://www.debian.org/devel/testing. L'état courant de la distribution `testing' est accessible sur les sites suivants (en Anglais) : * update excuses (http://ftp-master.debian.org/testing/update_excuses.html) * testing problems (http://ftp-master.debian.org/testing/testing_probs.html) * release-critical bugs (http://bugs.debian.org/release-critical/) * base system bugs (http://bugs.qa.debian.org/cgi-bin/base.cgi) * bugs in standard and task packages (http://bugs.qa.debian.org/cgi-bin/standard.cgi) * other bugs and bug-squashing party notes (http://bugs.qa.debian.org/) 2.1.5. La distribution `unstable' --------------------------------- Les paquets de la distribution `unstable', `sid', sont enregistrés dans le répertoire `unstable' après avoir été téléchargés dans l'archive Debian et y restent jusqu'à ce qu'ils soient déplacés dans `testing' après quelque temps. Les nouveaux paquets sont situés dans le répertoire `pool' Section 2.1.10, `Le répertoire `pool''. Les sous-répertoires `main', `contrib' et `non-free' sont aussi présents dans `unstable', et ont les mêmes fonctions que dans `stable'. La distribution `unstable' contient une image du système en développement le plus récent. Les utilisateurs sont encouragés à utiliser et tester ces paquets, mais sont prévenus de leur état. L'avantage à utiliser `unstable' est que vous êtes toujours à jour avec la dernière version du projet Debian---mais si ça casse, vous en découvrez les désavantages :-) L'état courant de la distribution `unstable' est accessible à la page web : Problèmes de unstable (http://ftp-master.debian.org/testing/unstable_probs.html). 2.1.6. La distribution `frozen' ------------------------------- Lorsque la distribution `testing' est mûre, elle est gelée (NdT : _frozen_ en Anglais), c'est-à-dire que l'on n'accepte plus de nouveau code, seulement des corrections de bogues, si nécessaire. De plus, un nouvel arbre testing est créé dans le répertoire `dists', avec un nouveau nom de code. La distribution frozen subit quelques mois de test, avec par intermittence des mises à jour et des gelées complètes, ce qu'on appelle des `cycles de test'. On garde une trace des bogues de la distribution frozen qui peuvent retarder la sortie d'un paquet ou qui peuvent retarder la sortie de la distribution complète. Lorsque le nombre de bogues descend en dessous des valeurs maximum acceptables, la distribution frozen devient stable, est sortie, et la distribution stable précédente devient obsolète (et est déplacée dans les archives). 2.1.7. Les noms de code de la distribution Debian ------------------------------------------------- Les noms des répertoires physiques dans le répertoire `dists', comme `Sarge' et `Etch', sont juste des noms de code. Lorsqu'une distribution Debian est en développement, elle n'a pas de numéro de version mais un nom de code. Le but de ces noms de code est de faciliter le travail des miroirs de la distribution Debian (si un répertoire réel comme `unstable' changeait soudainement son nom en `stable', beaucoup de données seraient à télécharger de nouveau). Actuellement, `stable' est un lien symbolique vers `Sarge' et `testing' est un lien symbolique vers `Etch'. Cela signifie que `Sarge' est l'actuelle distribution stable et `Etch' l'actuelle distribution testing. `unstable' est un lien symbolique permanent vers `sid', car `sid' est toujours la distribution unstable. 2.1.8. Noms de code utilisés par le passé ----------------------------------------- Les noms de code qui ont déjà été utilisés sont : `buzz' pour la version 1.1, `rex' pour la version 1.2, `bo' pour les versions 1.3.x, `hamm' pour la version 2.0, `slink' pour la version 2.1, `potato' pour la version 2.2, `woody' pour la version 3.0 et `sarge' pour la version 3.1. 2.1.9. Source d'inspiration pour les noms de code ------------------------------------------------- Jusqu'ici, les noms de code viennent des personnages du film _Toy Story_ par Pixar. * _buzz_ (Buzz Lightyear) est le cosmonaute, * _rex_ est le tyranosaure, * _bo_ (Bo Peep) est la fille qui s'occupe du mouton, * _hamm_ est la tirelire en forme de cochon, * _slink_ (Slinky Dog) est le chien, * _potato_ est, bien sûr, Mr. Potato * _woody_ est le cowboy, * _sarge_ est un chef des Hommes de l'Armée de Plastique Vert, * _etch_ (Etch-a-Sketch) est le tableau, * _sid_ est le garçon d'à côté qui détruit les jouets. 2.1.10. Le répertoire `pool' ---------------------------- Historiquement, les paquets étaient gardés dans le sous-répertoire `dists' correspondant à la distribution qui les contenait. Il apparut que cela posait certains problèmes, tels que la grande consommation de bande passante sur les miroirs lorsque des changements majeurs étaient effectués. Les paquets sont maintenant gardés dans un large `bassin' (NdT : pool en Anglais), structuré selon le nom du paquet source. Pour rendre cela gérable, le bassin est subdivisé par section (`main', `contrib' et `non-free') et par la première lettre du nom du paquet source. Ces répertoires contiennent plusieurs fichiers : les paquets binaires pour chaque architecture, et les paquets source à partir desquels les paquets binaires ont été générés. Vous pouvez trouver où se trouve chaque paquet en lançant une commande comme `apt-cache showsrc ' et en lisant la ligne `Directory:'. Par exemple, les paquets `apache' sont dans `pool/main/a/apache/'. Il y a tellement de paquets `lib*' qu'ils sont traités différemment : par exemple, les paquets `libpaper' sont dans `pool/main/libp/libpaper/'. Les répertoires `dists' sont toujours utilisés pour les fichiers d'index utilisés par des logiciels comme `apt'. De plus, les anciennes distributions n'ont pas été converties pour utiliser les bassins donc vous verrez des chemins contenant des distributions comme `Potato' ou `Woody' dans le champ d'en-tête « Filename ». Normalement, vous n'avez pas à vous occuper de cela, puisque le nouvel `apt' et probalement l'ancien `dpkg-ftp' (voir Section 2.3.1, `Méthodes de mise à jour d'un système Debian') vont gérer cela de façon transparente. Si vous souhaitez plus d'information, consultez RFC: implementation of package pools (http://lists.debian.org/debian-devel-announce/2000/debian-devel-announce-200010/msg00007.html) (en Anglais). 2.1.11. Notes historiques sur `sid' ----------------------------------- Lorsque la `sid' d'aujourd'hui n'existait pas, l'organisation de l'archive Debian avait un défaut majeur : on supposait que lorsqu'une architecture était créée dans la distribution `unstable' courante, elle sortirait lorsque cette distribution deviendrait la nouvelle `stable'. Ce n'était pas le cas pour beaucoup d'architectures, ce qui entrainait que ces répertoires devaient être déplacés lors d'une sortie. Cela n'était pas pratique parce que cela consommerait beaucoup de bande passante. Les administrateurs de l'archive contournèrent le problème pendant plusieurs années en plaçant les binaires des architectures non sorties dans un répertoire spécial nommé `Sid'. Lors de la sortie de ces architectures, un lien était créé entre la `stable' courante et `Sid', et à partir de là elles étaient créées dans l'arbre `unstable' de façon normale. Cette disposition était quelque peu troublante pour les utilisateurs. Avec l'arrivée des bassins de paquets (voir Section 2.1.10, `Le répertoire `pool'') pendant le développement de la distribution `Woody', les paquets binaires ont commencé à être stockés à un emplacement standard dans le bassin, quelle que soit la distribution, de façon à ce que sortir une distribution ne cause plus de grande consommation de bande passante sur les miroirs (il y a, cependant, beaucoup de consommation de bande passante, mais graduellement, pendant le développement). 2.1.12. Paquets téléchargés dans `incoming' ------------------------------------------- Les paquets téléchargés sont d'abord placés dans http://incoming.debian.org/ avant que l'on ne vérifie s'ils viennent bien d'un développeur Debian (et sont placés dans le sous-répertoire `DELAYED' dans le cas d'un téléchargement par un non responsable (Non-Maintainer Upload, NMU)). Une fois par jour, ils sont déplacés de `incoming' vers `unstable'. En cas d'urgence, vous pouvez vouloir installer des paquets de `incoming' avant qu'ils n'atteignent `unstable'. 2.1.13. Récupérer un paquet ancien ---------------------------------- Alors que les distributions Debian récentes sont gardées dans le répertoire `debian' de chaque miroir Debian (http://www.debian.org/mirror/), les archives des anciennes distribution comme `Slink' sont gardées sur http://archive.debian.org/ ou dans le répertoire `debian-archive' de chaque miroir Debian. Les anciens paquets de `testing' et `unstable' sont situés à http://snapshot.debian.net/. 2.1.14. Sections architectures ------------------------------ Dans chacun des arbres de répertoires majeurs (`dists/stable/main', `dists/stable/non-free', `dists/unstable/main/', etc.), les paquets binaires résident dans des sous-répertoires dont le nom indique l'architecture pour laquelle ils ont été compilés. * `binary-all/', pour les paquets indépendants de l'architecture. Cela inclut, par exemple, des scripts Perl, ou de la documentation pure. * `binary-/', pour les paquets qui s'exécutent sur une plateforme particulière. Veuillez noter que les paquets binaires pour `testing' et `unstable' ne résident plus dans ces répertoires, mais dans le répertoire de haut niveau `pool'. Les fichiers d'index (`Packages' et `Packages.gz') ont été gardés, cependant, pour une compatibilité arrière. Pour les architectures binaires supportées, consultez les Notes de version de chaque distribution. Elles sont disponibles sur les sites des notes de version pour stable (http://www.debian.org/releases/stable/releasenotes) et testing (http://www.debian.org/releases/testing/releasenotes). 2.1.15. Le code source ---------------------- Le code source est inclut pour tout le système Debian. De plus, les termes de la licence de la plupart des logiciels du système _requièrent_ que le code source soit distribué avec le programme, ou qu'une offre permettant d'obtenir le code source accompagne le programme. Normalement, le code source est distribué dans les répertoires `source', qui sont parallèles aux répertoires contenant les binaires spécifiques à une architecture, ou plus récemment dans le répertoire `pool' (voir Section 2.1.10, `Le répertoire `pool''). Pour récupérer le code source sans avoir à être familier avec la structure de l'archive Debian, essayez une commande comme `apt-get source '. Certains paquets, notamment `pine', sont seulement disponibles sous forme de paquet source, à cause de limitations de leur licence. (Récemment, le paquet `pine-tracker' a été fourni pour faciliter l'installation de Pine.) Les procédures décrites dans Section 6.4.10, `Porter un paquet vers le système `stable'' et Section 13.9, `Paquetage' permettent de construire un paquet manuellement. Le code source peut être ou ne pas être disponible pour les paquets dans les répertoires `contrib' et `non-free', qui ne font pas formellement partie du système Debian. 2.2. Système de gestion des paquets Debian ------------------------------------------ 2.2.1. Vue générale des paquets Debian -------------------------------------- Les paquets contiennent généralement tous les fichiers nécessaires pour implémenter un ensemble de commandes ou caractéristiques. Il existe deux types de paquets Debian : * Les _paquets binaires_, qui contiennent des exécutables, des fichiers de configuration, des pages de man/info, la licence, et d'autres documentations. Ces paquets sont distribués dans un format d'archive spécifique à Debian (voir Section 2.2.2, `Format des paquets Debian') ; on les reconnaît habituellement à leur extension `.deb'. Les paquets binaires peuvent être dépaquetés en utilisant l'utilitaire Debian `dpkg' ; les détails sont fournis dans sa page de manuel. * Les _paquets sources_, qui consistent en un fichier `.dsc' décrivant le paquet source (y compris le nom des fichiers suivants), un fichier `.orig.tar.gz' qui contient le source original non-modifié compressé par tar et gzip, et habituellement un fichier `.diff.gz' qui contient les modifications du source original spécifiques à Debian. L'utilitaire `dpkg-source' empaquète et dépaquète les archives source Debian ; les détails sont fournis dans sa page de manuel. L'installation de logiciels par le système de paquets utilise des « dépendances » qui sont soigneusement conçues par les responsables du paquet. Ces dépendances sont documentées dans le fichier `control' associé à chaque paquet. Par exemple, le paquet contenant le compilateur GNU C (`gcc') « dépend » du paquet `binutils' qui inclut l'éditeur de liens et l'assembleur. Si un utilisateur tente d'installer `gcc' sans avoir d'abord installé `binutils', le système de gestion de paquets (dpkg) renverra un message d'erreur disant qu'il a besoin de `binutils', et cessera l'installation de `gcc'. (Cependant, un utilisateur insistant pourra passer outre ; voir dpkg(8).) Pour plus de détails, voir Section 2.2.8, `Dépendances des paquets' ci-dessous. Les outils de paquetage de Debian peuvent être utilisés pour : * manipuler et gérer des paquets ou des parties de paquets, * aider l'utilisateur à découper des paquets qui doivent être transmis à travers un média de taille limitée comme une disquette, * aider les développeurs à construire des archives de paquets, et * aider les utilisateurs à installer des paquets qui se trouvent sur un site d'archive Debian. 2.2.2. Format des paquets Debian -------------------------------- Un « paquet » Debian, ou un fichier d'archive Debian, contient les fichiers exécutables, les bibliothèques, et la documentation associés à un programme particulier ou un ensemble de programmes liés. Normalement, une archive Debian possède un nom de fichier se terminant par `.deb'. Les données internes de ce format de paquets binaires Debian sont décrites dans la page de manuel deb(5). Parce que ce format interne est sujet à des changements (entre les sorties majeures de Debian), utilisez toujours dpkg-deb(1) pour manipuler des fichiers `.deb'. Au moins jusqu'à la distribution Woody, tous les fichiers d'archive Debian étaient manipulés par les commandes Unix standard `ar' et `tar', même lorsque les commandes dpkg n'étaient pas disponibles. 2.2.3. Conventions de nommage pour les fichiers de paquets Debian ----------------------------------------------------------------- Les noms de fichiers des paquets Debian se conforment à la convention suivante : _-.deb où représente le nom du paquet. Pour vérification, on peut déterminer le nom du paquet associé à un fichier d'archive Debian particulier (fichier `.deb') de l'une des façons suivantes : * inspecter le fichier `Packages' dans le répertoire où il était stocké sur un site d'archive Debian. Ce fichier contient une description de chaque paquet ; le premier champ de chaque paragraphe est le nom de paquet formel. * utiliser la commande `dpkg --info .deb' (où et sont les numéros de version et de révision du paquet en question, respectivement). Cela affiche, entre autres, le nom du paquet correspondant au fichier d'archive dépaqueté. La composante `VVV' est le numéro de version spécifié par le développeur original. Il n'y a aucune norme spécifiant la numérotation des versions, donc elle peut avoir des formats aussi différents que « 19990513 » et « 1.3.8pre1 ». La composante `RRR' est le numéro de révision Debian spécifié par le développeur Debian (ou un utilisateur s'il choisit de construire le paquet lui-même). Ce numéro correspond au niveau de révision du paquet Debian ; ainsi, un nouveau niveau de révision correspond habituellement à un changement dans le Makefile Debian (`debian/rules'), le fichier de contrôle Debian (`debian/control'), les scripts d'installation ou de suppression (`debian/p*'), ou les fichiers de configuration utilisés avec le paquet. 2.2.4. Préservation de la configuration locale ---------------------------------------------- La préservation des fichiers configurables par l'utilisateur est activée par le mécanisme « conffiles » de Debian. Les fichiers de configuration de l'utilisateur (habituellement placés dans `/etc') sont spécifiés dans le fichier `conffiles' du système de paquets Debian. Le système de gestion des paquets garantie que ces fichiers ne seront pas recouverts lors de la mise à jour d'un paquet. Lorsqu'il est possible de configurer le système sans modifier les fichiers qui appartiennent aux différents paquets Debian, il est conseillé de ne pas les modifier même si ce sont des « conffiles ». Cela permet des opérations de mise à jour plus rapides et en douceur. Pour déterminer exactement quels sont les fichiers préservés lors d'une mise à jour, lancez la commande : dpkg --status et regardez la ligne « Conffiles: ». Les détails du contenu d'un fichier Debian `conffiles' sont fournis dans la Charte Debian, section 11.7 (voir Section 15.1, `Références'). 2.2.5. Scripts de maintenance Debian ------------------------------------ Les scripts de maintenance Debian sont des scripts exécutables qui sont automatiquement exécutés avant ou après l'installation d'un paquet. Avec un fichier nommé `control', tous ces fichiers font partie de la section « control » d'un fichier d'archive Debian. Les fichiers individuels sont : preinst Ce script est exécuté avant que son paquet soit dépaqueté de son archive Debian (`.deb'). Beaucoup de scripts « preinst » arrêtent les services fournis par les paquets mis à jour jusqu'à ce que leur installation ou mise à jour soit complète (après l'exécution avec succès du script « postinst »). postinst Ce script complète la configuration requise par un paquet après son dépaquetage à partir de son archive Debian (`.deb'). Souvent, les scripts « postinst » demandent à l'utilisateur d'entrer des informations et/ou l'avertissent que s'il accepte les valeurs par défaut, il devrait se rappeler de revenir en arrière et reconfigurer le paquet lorsque la situation le requiert. Beaucoup de scripts « postinst » exécutent ensuite les commandes nécessaires au redémarrage d'un service une fois que le nouveau paquet a été installé ou mis à jour. prerm Ce script arrête les daemons qui sont associés à un paquet. Il est exécuté avant la suppression de fichiers associés au paquet. postrm Ce script modifie les liens ou les autres fichiers associés à un paquet, et/ou supprime les fichiers créés. (Voir aussi Section 2.2.7, `Paquets virtuels'.) Actuellement, tous les fichiers de contrôle peuvent être trouvés dans le répertoire `/var/lib/dpkg/info'. Les fichiers associés au paquet `foo' commencent avec le nom « foo » et ont des extensions « preinst », « postinst », etc., tel qu'approprié. Le fichier `foo.list' dans ce répertoire liste tous les fichiers qui ont été installés avec le paquet `foo'. (Notez que l'emplacement de ces fichiers est interne à dpkg, et peut changer.) 2.2.6. Priorité des paquets --------------------------- Chaque paquet Debian se voit assigner une _priorité_ par les responsables de la distribution, comme aide au système de gestion des paquets. Les priorités sont : * Les paquets _Required_ (requis) sont nécessaires au bon fonctionnement du système. Ceci inclut tous les outils nécessaires pour réparer les défauts du système. Vous ne devez pas supprimer ces paquets, sinon le système peut devenir complètement planté et vous ne pourrez probablement plus utiliser dpkg pour remettre les choses en place. Un système avec seulement les paquets requis ne sera probablement pas utilisable, mais il sera suffisament fonctionnel pour que l'administrateur le démarre et installe plus de logiciels. * Les paquets _Important_ devraient se trouver sur n'importe quel système de type Unix. D'autres paquets sans lesquel le système ne fonctionnera pas bien ou ne sera pas utilisable se trouveront ici. Cela n'inclut _PAS_ Emacs ou X11 ou TeX ou n'importe quelle autre grosse application. Ces paquets constituent seulement une infrastructure de base. * Les paquets _Standard_ sont standard sur n'importe quel système Linux, et comprennent un système en mode texte raisonnablement petit mais pas trop limité. C'est ce qui sera installé par défaut si les utilisateurs ne sélectionnent rien d'autre. Cela n'inclut pas beaucoup de grosses applications, mais cela inclut Emacs (qui est plus une partie d'infrastructure qu'une application) et un sous-ensemble raisonnable de TeX et LaTeX (si cela est possible sans X). * Les paquets _Optional_ (optionnel) incluent tous ceux que vous pourriez raisonnablement vouloir installer même s'ils ne vous sont pas familiers, et si vous n'avez pas de besoins spécifiques. Cela inclut X11, une distribution complète de TeX, et beaucoup d'applications. * Les paquets _Extra_ (en plus) sont des paquets qui soit entrent en conflit avec des paquets ayant une priorité plus haute, soit ne seront utiles que si vous les connaissez, soit ont besoin de prérequis spécifiques qui les rendent peu convenables pour « Optional ». 2.2.7. Paquets virtuels ----------------------- Un paquet virtuel est un nom générique qui s'applique à n'importe quel paquet d'un groupe de paquets, qui tous fournissent une fonctionalité de base similaire. Par exemple, les logiciels `tin' et `trn' sont des lecteurs de groupes de discussion, et doivent donc satisfaire la dépendance d'un programme ayant besoin d'une tel lecteur sur le système pour fonctionner ou être utile. On dit qu'ils fournissent tous les deux le « paquet virtuel » appelé `news-reader'. De façon similaire, `exim' et `sendmail' fournissent tous les deux la fonctionalité d'un agent de transport de courrier électronique. On dit donc qu'ils fournissent le paquet virtuel « mail transport agent ». Si l'un des deux est installé, un programme dépendant de l'installation d'un `mail-transport-agent' sera satisfait par la présence de ce paquet virtuel. Debian fournit un mécanisme pour que, si plus d'un paquet qui fournit le même paquet virtuel est installé sur un système, l'administrateur puisse configurer l'un des deux comme paquet préféré. La commande utilisée est `update-alternatives', et est décrite dans Section 6.5.3, `Commandes de rechange'. 2.2.8. Dépendances des paquets ------------------------------ Le système de paquets Debian possède une série de « dépendances » de paquets qui sont conçues pour indiquer (avec un simple drapeau) le niveau auquel Programme A peut fonctionner indépendamment de la présence de Programme B sur le système : * Paquet A _depends_ (dépend) de Paquet B si B doit absolument être installé pour exécuter A. Dans certains cas, A dépend non seulement de B, mais d'une certaine version de B. Dans ce cas, la dépendance sur la version est habituellement une limite basse, dans le sens où A dépend de n'importe quelle version de B plus récente que la version spécifiée. * Paquet A _recommends_ (recommande) Paquet B si le responsable du paquet juge que la plupart des utilisateurs ne voudront pas de A sans avoir la fonctionnalité fournie par B. * Paquet A _suggests_ (suggère) Paquet B si B contient des fichiers qui sont liés à (et habituellement améliorent) la fonctionnalité de A. * Paquet A _conflicts_ (est en conflit) avec Paquet B lorsque A ne fonctionnera pas si B est installé sur le système. Souvent, les conflits sont dans des cas où A contient des fichiers qui fournissent une amélioration par rapport à ceux de B. « conflicts » est souvent associé avec « replaces ». * Paquet A _replaces_ (remplace) Paquet B lorsque les fichiers installés par B sont supprimés et (dans certains cas) recouverts par des fichiers de A. * Paquet A _provides_ (fournit) Paquet B lorsque tous les fichiers et fonctionnalités de B sont incorporés dans A. Ce mécanisme fournit un moyen aux utilisateurs ayant des limitations en espace disque de ne sélectionner que la partie de A dont ils ont réellement besoin. Plus de détails sur l'utilisation de ces termes sont fournis dans le Manuel de Paquetage et dans la Charte Debian. Notez que `dselect' permet un contrôle plus précis sur les paquets marqués _recommends_ et _suggests_ que `apt-get', qui récupère simplement tous les paquets spécifiés par _depends_ et laisse les paquets spécifiés par _recommends_ et _suggests_. Les deux programmes utilisent APT comme dorsale dans leurs versions modernes. 2.2.9. Signification de « pre-depends » --------------------------------------- « Pre-depends » est une dépendance spéciale. Dans le cas d'un paquet ordinaire, `dpkg' dépaquètera le fichier archive (càd. le fichier `.deb') indépendamment de la présence ou non des fichiers dont il dépend sur le système. En simplifiant, dépaqueter signifie que `dpkg' extrait les fichiers de l'archive qui sont censés être installés sur votre système et les met à leur place. Si ces paquets _dépendent_ de la présence d'autres paquets sur votre système, `dpkg' refusera de compléter l'installation (en exécutant son action « configure ») tant que les autres paquets ne seront pas installés. Cependant, pour certains paquets, `dpkg' refusera même de les dépaqueter tant que certaines dépendances ne seront pas satisfaites. On dit que ces paquets « pré-dépendent » de la présence d'autres paquets. Le projet Debian fournissait ce mécanisme pour supporter la mise à jour sûre des systèmes du format `a.out' au format ELF, pendant laquelle _l'ordre_ dans lequel les paquets étaient dépaquetés était critique. Il y a d'autres situations de mise à jour pour lesquelles cette méthode est utile, par exemple pour les paquets avec la priorité « required » et leur dépendance à la libc. Une fois de plus, de plus amples informations peuvent être trouvées dans le Manuel de Paquetage. 2.2.10. Etat d'un paquet ------------------------ L'état d'un paquet peut être « unknown » (inconnu), « install » (installe), « remove » (supprime), « purge » (purge), ou « hold » (garde). Ces drapeaux « want » (volonté) indiquent ce que l'utilisateur souhaite faire avec un paquet (comme indiqué soit par les actions de l'utilisateur dans la section « Select » de `dselect', soit par l'invocation directe de `dpkg'). Leur signification est : * _unknown_ - (inconnu) l'utilisateur n'a jamais indiqué s'il souhaite le paquet. * _install_ - (installe) l'utilisateur veut que le paquet soit installé ou mis à jour. * _remove_ - (supprime) l'utilisateur veut que le paquet soit supprimé, mais ne veut pas supprimer les fichiers de configuration existants. * _purge_ - l'utilisateur veut que le paquet soit supprimé complètement, y compris ses fichiers de configuration. * _hold_ - (garde) l'utilisateur veut que le paquet ne soit pas traité, càd. qu'il veut garder la version actuelle dans l'état actuel. 2.2.11. Garder des paquets lors d'une mise à jour ------------------------------------------------- Il y a deux mécanismes pour garder des paquets lors de la mise à jour, à l'aide de `dpkg', ou, dans Woody, à l'aide d'APT. Avec `dpkg', exportez d'abord la liste des sélections de paquets : dpkg --get-selections \* > Ensuite, éditez le fichier résultant `', en changeant la ligne contenant le paquet que vous souhaitez garder, e.g. `libc6', de : libc6 install en : libc6 hold Sauvegardez le fichier, et rechargez-le dans la base de données de `dpkg' avec la commande : dpkg --set-selections < Ou, si vous connaissez le nom du paquet à garder, exécutez simplement : echo libc6 hold | dpkg --set-selections Ce procédé garde les paquets pendant la procédure d'installation de chaque paquet. Le même résultat peut être obtenu avec `dselect'. Entrez simplement dans l'écran [S]elect, trouvez le paquet que vous souhaitez garder en l'état et appuyez sur la touche `=' (ou `H'). Les changements prendront effet immédiatement après que vous êtes sortis de l'écran [S]elect. Le système APT dans la distribution Woody possède un nouveau mécanisme pour garder les paquets pendant la procédure de récupération des archives en utilisant `Pin-Priority'. Voir la page de manuel apt_preferences(5), ainsi que http://www.debian.org/doc/manuals/apt-howto/ ou le paquet `apt-howto'. 2.2.12. Paquets sources ----------------------- Les paquets sources sont distribués dans un répertoire appelé `source', et vous pouvez soit les télécharger manuellement, soit utiliser apt-get source pour les récupérer (voir la page de manuel apt-get(8) pour configurer APT pour faire cela). 2.2.13. Construire des paquets binaires à partir d'un paquet source ------------------------------------------------------------------- Pour un paquet `', vous aurez besoin de tous les fichiers `.dsc', `.tar.gz' et `.gz' pour compiler les sources (note : il n'y a pas de fichier `.diff.gz' pour les paquets Debian natifs). Une fois que vous les avez, si vous avez le paquet `dpkg-dev' installé, la commande $ dpkg-source -x .dsc va extraire le paquet dans un répertoire appelé `'. Lancez la commande suivante pour compiler le paquet binaire : $ cd foo-version $ su -c "apt-get update ; apt-get install fakeroot" $ dpkg-buildpackage -rfakeroot -us -uc Puis, $ su -c "dpkg -i ../.deb" pour installer le paquet nouvellement construit. Voir Section 6.4.10, `Porter un paquet vers le système `stable''. 2.2.14. Créer de nouveaux paquets Debian ---------------------------------------- Pour une description plus détaillée de la création de nouveaux paquets, lisez le Guide des nouveaux responsables Debian, disponible dans le paquet `maint-guide', ou à l'adresse http://www.debian.org/doc/manuals/maint-guide/. 2.3. Mettre à jour un système Debian ------------------------------------ L'un des buts de Debian est de fournir un chemin de mise à jour consistant et un processus de mise à jour sûr, et nous faisons de notre mieux pour que la mise à jour lors de la sortie d'une nouvelle version depuis une précédente soit la plus douce possible. Les paquets vont alerter l'utilisateur lorsqu'il y a des avertissements importants pendant le processus de mise à jour, et vont souvent fournir une solution à un problème possible. Vous devriez aussi lire les Notes de version, le document qui décrit les détails des mises à jour spécifiques, livré sur tous les CDs Debian, et disponible sur le WWW aux adresses http://www.debian.org/releases/stable/releasenotes et http://www.debian.org/releases/testing/releasenotes. Un guide pratique pour les mises à jour est fourni dans la Chapitre 6, `Gestion des paquets Debian'. Cette section décrit les détails fondamentaux. 2.3.1. Méthodes de mise à jour d'un système Debian -------------------------------------------------- On pourrait simplement exécuter une session FTP anonyme ou un appel à `wget' vers une archive Debian, parcourir les répertoires jusqu'à ce qu'on trouve le fichier désiré, le récupérer, et enfin l'installer en utilisant `dpkg'. (Notez que `dpkg' installera les fichiers de la mise à jour à leur place, même sur un système en marche.) Parfois, un paquet révisé aura besoin de l'installation d'une version révisée d'un autre paquet, auquel cas l'installation échouera si l'autre paquet n'est pas installé. Beaucoup de gens trouvent cette approche trop gourmande en temps, car Debian évolue très rapidement --- typiquement, une douzaine ou plus de nouveaux paquets sont téléchargés chaque semaine. Ce nombre est encore plus grand avant la sortie d'une version majeure. Pour gérer cette avalanche, beaucoup de gens préfèrent utiliser une méthode automatique. Plusieurs outils de gestion des paquets sont disponibles dans ce but. 2.3.2. Vue générale des outils de gestion de paquets ---------------------------------------------------- Le système de gestion de paquets Debian a deux objectifs : la manipulation des fichiers de paquets eux-mêmes et la récupération de fichiers de paquets depuis une archive Debian. `dpkg' réalise la première fonction, APT et `dselect' la seconde. 2.3.3. `dpkg' ------------- C'est le programme principal pour manipuler les fichiers de paquets ; consultez dpkg(8) pour une description complète. `dpkg' vient avec plusieurs programmes primitifs supplémentaires. * dpkg-deb : Manipule les fichiers `.deb'. dpkg-deb(1) * dpkg-ftp : Une ancienne commande de récupération de fichiers de paquets. dpkg-ftp(1) * dpkg-mountable : Une ancienne commande de récupération de fichiers de paquets. dpkg-mountable(1) * dpkg-split : Scinde un gros paquet en fichiers plus petits. dpkg-split(1) `dpkg-ftp' et `dpkg-mountable' ont été rendus obsolètes par l'introduction du système APT. 2.3.4. APT ---------- APT (_Advanced Packaging Tool_, outil avancé de paquetage) est une interface avancée pour le système de gestion des paquets Debian, qui consiste en plusieurs programmes dont les noms commencent par « apt- ». `apt-get', `apt-cache' et `apt-cdrom' sont les outils en ligne de commande pour gérer les paquets. Ils fonctionnent aussi en tant que dorsale pour d'autres outils, comme `dselect' et `aptitude'. Pour plus d'information, installez le paquet `apt' et lisez apt-get(8), apt-cache(8), apt-cdrom(8), apt.conf(5), sources.list(5), apt_preferences(5) (woody), et `/usr/share/doc/apt/guide.html/index.html'. Une autre source d'information est le APT HOWTO (http://www.debian.org/doc/manuals/apt-howto/). Il peut être installé par le paquet `apt-howto' à l'emplacement `/usr/share/doc/Debian/apt-howto/'. `apt-get upgrade' et `apt-get dist-upgrade' récupèrent seulement les paquets marqués « Depends: » et passe outre tous les paquets marqués « Recommends: » et « Suggests: ». Pour éviter cela, utilisez `dselect'. 2.3.5. `dselect' ---------------- Ce programme est une interface utilisateur avec un menu pour le système de gestion de paquets Debian. Il est particulièrement utile pour les premières installations et les grosses mises à jour. Pour plus d'information, installez le paquet `install-doc' et lisez `/usr/share/doc/install-doc/dselect-beginner.en.html' ou Documentation dselect pour débutants (http://www.debian.org/releases/woody/i386/dselect-beginner). 2.3.6. Mise à jour d'un système en marche ----------------------------------------- Le noyau (système de fichiers) des systèmes Debian supporte le recouvrement de fichiers même lorsqu'ils sont en utilisation. Nous fournissons aussi un programme appelé `start-stop-daemon' qui est utilisé pour démarrer les daemon lors du démarrage du système ou pour les arrêter lorsque le niveau de fonctionnement du noyau est changé (par exemple de multi-utilisateur vers mono-utilisateur ou vers arrêt). Le même programme est utilisé par les scripts d'installation lorsqu'un nouveau paquet contenant un daemon est installé, pour arrêter les daemons en exécution, et les redémarrer lorsque cela est nécessaire. Notez que le système Debian ne requiert pas l'utilisation du mode mono-utilisateur pour mettre à jour un système en marche. 2.3.7. Fichiers d'archive `.deb' téléchargés et sauvegardés ----------------------------------------------------------- Si vous avez téléchargé manuellement des fichiers de paquets sur votre disque (ce qui n'est pas forcément nécessaire, voir ci-dessus pour la description de `dpkg-ftp' ou APT), vous pouvez supprimer les fichiers `.deb' de votre système lorsque les paquets ont été installés. Si APT est utilisé, ces fichiers sont mis en cache dans le répertoire `/var/cache/apt/archives/'. Vous pouvez les effacer après l'installation (`apt-get clean') ou les copier sur une autre machine dans le répertoire `/var/cache/apt/archives/' pour économiser du temps de téléchargement pendant les installations suivantes. 2.3.8. Garder une trace des mises à jour ---------------------------------------- `dpkg' garde un enregistrement des paquets qui ont été dépaquetés, configurés, supprimés, et/ou purgés, mais il ne garde pas (pour le moment) de journal de l'activité du terminal qui a eu lieu lorsqu'un paquet a été manipulé. Le moyen le plus simple de contourner cela est de lancer vos sessions `dpkg', `dselect', `apt-get', etc. avec le programme script(1). 2.4. Le processus de démarrage de Debian ---------------------------------------- 2.4.1. Le programme `init' -------------------------- Comme tous les Unices, Debian démarre en exécutant le programme `init'. Le fichier de configuration de `init' (qui est `/etc/inittab') spécifie que le premier script à exécuter doit être `/etc/init.d/rcS'. Ce script lance tous les scripts de `/etc/rcS.d/' en incluant le source ou en forkant un sous-processus, selon leur extension, pour exécuter des initialisations, comme la vérification et le montage des systèmes de fichiers, le chargement des modules, le démarrage des services réseau, le réglage de l'horloge, et l'exécution d'autres initialisations. Ensuite, pour compatibilité, il lance aussi les fichiers (sauf ceux ayant un « . » dans leur nom) de `/etc/rc.boot/'. Les scripts de ce dernier répertoire sont habituellement réservés à l'administrateur système, et leur utilisation dans des paquets est obsolète. Voir Section 9.1, `Initialisation du système' pour plus d'information. 2.4.2. Niveaux de fonctionnement -------------------------------- Après le processus de démarrage, `init' exécute les scripts de démarrage situés dans le répertoire correspondant au niveau de fonctionnement par défaut (ce niveau de fonctionnement est donné par l'entrée `id' dans `/etc/inittab'). Comme la plupart des Unices compatibles System V, Linux a 7 niveaux de fonctionnement : * 0 (arrête le système), * 1 (mode mono-utilisateur), * 2 à 5 (différents modes multi-utilisateur), et * 6 (redémarre le système). Les systèmes Debian sont livrés avec `id=2', ce qui indique que le niveau de fonctionnement par défaut sera 2 lorsqu'on entrera dans l'état multi-utilisateur, et les scripts de `/etc/rc2.d/' seront exécutés. En fait, les scripts des répertoires `/etc/rcN.d/' sont des liens symboliques vers les scripts de `/etc/init.d'. Cependant, les _noms_ des fichiers dans chacun des répertoires `/etc/rcN.d/' sont sélectionnés pour indiquer la _façon_ dont les scripts de `/etc/init.d/' seront exécutés. Spécifiquement, avant d'entrer dans un niveau de fonctionnement, tous les scripts commençant par `K' sont lancés ; ils permettent d'arrêter des services. Ensuite, tous les scripts commençant par `S' sont lancés ; ces scripts permettent de démarrer des services. Le nombre à deux chiffres suivant le `K' ou le `S' indique l'ordre dans lequel le script est lancé. Les scripts possédant les nombres les plus petits sont exécutés en premier. Cette approche fonctionne parce que les scripts dans `/etc/init.d/' prennent tous un argument qui peut être "start", "stop", "reload", "restart" ou "force-reload" et exécuteront la tâche indiquée par cet argument. Ces scripts peuvent être utilisés même après que le système a été démarré, pour contrôler divers processus. Par exemple, avec l'argument « reload », la commande # /etc/init.d/exim4 reload envoie au daemon exim4 un signal pour qu'il relise son fichier de configuration. 2.4.3. Personnaliser les niveaux de fonctionnement -------------------------------------------------- Personnaliser les niveaux de fonctionnement est une tâche d'administration avancée. Les conseils suivants fonctionnent pour la plupart des services. Pour activer le service dans le niveau de fonctionnement , créez le lien symbolique `/etc/rc.d/S' avec comme cible `../init.d/'. Le numéro doit être le numéro assigné au service lors de l'installation du paquet. Pour désactiver le service, renommez le lien symbolique en le faisant commencer par `K' à la place de `S' et en lui donnant le numéro 100 moins . Il est plus facile d'utiliser un éditeur de niveaux de fonctionnement, comme `sysv-rc-conf' ou `ksysv' pour effectuer ces modifications. Il est possible de supprimer le lien symbolique `S' d'un service dans le répertoire d'un niveau de fonctionnement au lieu de le renommer. Cela ne désactive pas le service, mais le laisse dans un état « flottant » du point de vue du système d'initialisation `sysv-rc' : lors d'un changement de niveau de fonctionnement, le service ne sera ni démarré ni arrêté mais sera laissé tel quel, qu'il soit en fonctionnement ou pas. Notez cependant qu'un service laissé dans un tel état sera démarré si son paquet est mis à jour, qu'il soit en fonctionnement ou pas lors de la mise à jour. C'est un défaut du système Debian actuel. Notez aussi que vous devriez laisser le lien symbolique `K' d'un service dans les niveaux de fonctionnement 0 et 6. Si vous supprimez tous les liens symboliques d'un service, le paquet les restaurera lors d'une mise à jour. Il n'est _pas_ conseillé de faire des changements sur les liens symboliques de `/etc/rcS.d/'. 2.5. Support de la diversité ---------------------------- Debian offre plusieurs facilités pour exaucer les voeux des administrateurs du système sans casser ce dernier. * `dpkg-divert', voir Section 6.5.1, `La commande `dpkg-divert''. * `equivs', voir Section 6.5.2, `Le paquet `equivs''. * `update-alternative', voir Section 6.5.3, `Commandes de rechange'. * `make-kpkg' peut s'accomoder de beaucoup de chargeurs . Voir make-kpkg(1). Les fichiers situés sous `/usr/local/' appartiennent à l'administrateur du système et Debian n'y touchera pas. La plupart (ou tous) les fichiers sous `/etc' sont des `conffiles' (fichiers de configuration) et Debian n'écrira pas dessus lors d'une mise à jour sauf si l'administrateur le spécifie explicitement. 2.6. Internationalisation ------------------------- Le système Debian est internationalisé et fournit le support pour l'affichage et l'entrée des caractères de beaucoup de langues, à la fois avec la console ou sous X. Beaucoup de documents, de pages de manuel, et de messages système ont été traduits dans un nombre toujours plus élevé de langues. Lors de l'installation, Debian demande à l'utilisateur de choisir une langue pour l'installation (et parfois une variante locale de cette langue). Si votre système installé ne supporte pas toutes les possibilités de la langue dont vous avez besoin, si vous avez besoin de changer de langue ou d'installer un clavier différent pour supporter votre langue, voyez Section 9.7, `Localisation (l10n)'. 2.7. Debian et le noyau ----------------------- Voir Chapitre 7, `Le noyau Linux et Debian'. 2.7.1. Compiler un noyau avec des sources non Debian ---------------------------------------------------- Il faut comprendre la politique Debian sur les en-têtes. Les bibliothèques C de Debian sont compilées avec les en-têtes du _noyau_ _stable_ le plus récent. Par exemple, la version Debian-1.2 utilisait la version 5.4.13 des en-têtes. Cette pratique contraste avec les paquets source du noyau Linux distribués dans toutes les archives FTP Linux, qui utilisent des versions encore plus récentes des en-têtes. Les en-têtes du noyau distribuées avec le source du noyau sont situées dans `/usr/include/linux/include/'. Si vous avez besoin de compiler un programme avec des en-têtes du noyau plus récentes que celles fournies par `libc6-dev', alors vous devez ajouter `-I/usr/src/linux/include/' à la ligne de commande lorsque vous compilez. Cela est arrivé, par exemple, avec l'empaquetage du daemon automounter (`amd'). Lorsque de nouveaux noyaux ont changé les commandes internes ayant trait à NFS, `amd' a dû en prendre connaissance. Cela a requis d'inclure les dernières en-têtes du noyau. 2.7.2. Outils pour compiler un noyau personnalisé ------------------------------------------------- Les utilisateurs qui souhaitent (ou doivent) compiler un noyau personnalisé sont encouragés à télécharger le paquet `kernel-package'. Ce paquet contient le script pour construire le paquet du noyau, et fournit la possibilité de créer un paquet kernel-image Debian en exécutant la commande # make-kpkg kernel_image dans le répertoire le plus haut des sources du noyau. De l'aide est disponible en exécutant la commande # make-kpkg --help et dans la page de manuel make-kpkg(1) et Chapitre 7, `Le noyau Linux et Debian'. Les utilisateurs doivent télécharger séparément le code source du dernier noyau (ou le noyau de leur choix) depuis leur archive FTP Linux favorite, à moins qu'un paquet kernel-source- soit disponible (où indique la version du noyau). Le script de démarrage `initrd' de Debian nécessite un patch spécial pour le noyau appelé `initrd' ; voir http://bugs.debian.org/149236. Des instructions détaillées pour utiliser le paquet `kernel-package' sont fournies dans le fichier `/usr/doc/kernel-package/README'. 2.7.3. Dispositions spéciales pour manipuler les modules -------------------------------------------------------- Le paquet Debian `modconf' fournit un script shell (`/usr/sbin/modconf') qui peut être utilisé pour personnaliser la configuration des modules. Ce script présente une interface à base de menus, demandant à l'utilisateur les pilotes de périphériques présents sous forme de modules chargeables qu'ils souhaite utiliser sur son système. Les réponses sont utilisées pour personnaliser le fichier de configuration `/etc/modules.conf' (qui liste les alias, et autres arguments qui doivent être utilisés par les différents modules) grâce aux fichiers `/etc/modutils/', et `/etc/modules' (qui liste les modules qui doivent être chargés lors du démarrage). Comme les (nouveaux) fichiers Configure.help qui sont maintenant disponibles pour supporter la compilation de noyaux personnalisés, le paquet `modconf' est livré avec une série de fichiers d'aide (dans `/usr/share/modconf/') qui fournissent des informations détaillées sur les arguments possibles pour chacun des modules. Voir Section 7.2, `Le noyau 2.4 modulaire' pour des exemples. 2.7.4. Désinstaller le paquet d'un vieux noyau ---------------------------------------------- Le script `kernel-image-NNN.prerm' vérifie que le noyau que vous exécutez actuellement n'est pas le noyau à désinstaller. Ainsi, vous pouvez supprimer de façon sûre les noyaux dont vous ne voulez plus avec cette commande : # dpkg --purge --force-remove-essential kernel-image- (Remplacez par la version et la révision de votre noyau, bien sûr.) ------------------------------------------------------------------------------- 3. Installation du système Debian --------------------------------- La documentation officielle pour installer Debian est située à http://www.debian.org/releases/stable/, et http://www.debian.org/releases/stable/installmanual. Sa version de développement est située à http://www.debian.org/releases/testing/, et http://www.debian.org/releases/testing/installmanual (en développement, parfois elle n'existe pas). Bien que « Guide de référence pour Debian » ait été commencé à l'époque de l'installateur de Potato, la majeure partie de son contenu a été mis à jour pour l'installateur de Woody qui est similaire. Comme Sarge utilisera un installateur complètement différent, utilisez ceci comme une référence de départ pour l'installateur de Sarge. 3.1. Astuces générales sur l'installation du système Linux ---------------------------------------------------------- N'oubliez pas de consulter http://www.debian.org/CD/netinst/ si vous recherchez une image CD de petite taille de l'installateur Debian. Exécuter les versions `testing' ou `unstable' de Debian accroît le risque de tomber sur un bogue sérieux. Ce risque peut être géré en utilisant un schéma de multi-démarrage avec une version plus stable de Debian, ou en utilisant l'astuce fournie par `chroot' à l'intérieur de la version stable, comme décrite dans Section 8.6.35, ``chroot''. Ce dernier permet d'exécuter plusieurs versions de Debian simultanément sur différentes consoles. 3.1.1. Compatibilité matérielle ------------------------------- Linux est compatible avec la plupart des matériels PC. Linux peut être installé sur presque tout système. Pour moi il a été aussi facile à installer que Windows 95/98/Me. Il semble que la liste des compatibilités matérielles s'allonge encore. Si vous possédez un PC portable, consultez : Linux on Laptops (http://www.linux-laptop.net/) pour identifier sa situation. Ma recommandation pour le matériel type PC de bureau est « soyez conservateur » : * SCSI plutôt qu'IDE pour le travail, disque dur IDE/ATAPI pour une utilisation personnelle. * CD-ROM (ou CD-RW) IDE/ATAPI. * PCI plutôt qu'ISA, surtout pour la carte réseau. * Utilisez une carte réseau de base. Des cartes Tulip sur bus PCI, NE2000 sur bus ISA conviennent bien. * Évitez PCMCIA (portables) lors de la première tentative d'installation de Linux. * Pas de clavier ou de souris USB,... à moins de vouloir faire face à un défi. Pour une machine lente, extraire son disque dur et le connecter dans une autre machine plus rapide pour accélérer l'installation est une bonne idée. 3.1.2. Déterminer le matériel et les puces du PC ------------------------------------------------ Durant l'installation, on sera interrogé sur le matériel ou les puces. Parfois, ces informations ne sont pas toujours faciles à trouver. Voici une méthode : 1. Ouvrez le PC et inspectez l'intérieur. 2. Notez les codes produit qui sont sur les grandes puces de la carte graphique, de la carte réseau, sur la puce à côté des ports série et la puce à côté des ports IDE. 3. Notez les noms des cartes imprimés au dos des cartes PCI et ISA. 3.1.3. Trouver le matériel du PC avec Debian -------------------------------------------- Les commandes suivantes sur un système Linux devraients donner quelqu'idée sur le matériel présent et la configuration. $ lspci -v |less $ pager /proc/pci $ pager /proc/interrupts $ pager /proc/ioports $ pager /proc/bus/usb/devices Ces commandes peuvent être lancées pendant le processus d'installation à partir de la console en appuyant sur ALT-F2. Utilisations classiques des interruptions : * IRQ0 : sortie du timer (8254) * IRQ1 : contrôleur clavier * IRQ2 : cascade vers IRQ8--IRQ15 sur PC-AT * IRQ3 : port série secondaire (io-port=0x2F8) (`/dev/ttyS1') * IRQ4 : port série primaire (io-port=0x3F8) (`/dev/ttyS0') * IRQ5 : libre (anciennement interruption disque dur sur XT) * IRQ6 : contrôleur disquette (io-port=0x3F0) (`/dev/fd0', `/dev/fd1') * IRQ7 : port parallèle (io-port=0x378) (`/dev/lp0') * IRQ8 : RTC * IRQ9 : interruption logicielle (int 0x0A), redirige vers IRQ2 * IRQ10 : libre * IRQ11 : libre * IRQ12 : souris PS/2 * IRQ13 : libre (anciennement coprocesseur mathématique 80287) * IRQ14 : contrôleur IDE primaire (`/dev/hda', `/dev/hdb') * IRQ15 : contrôleur IDE secondaire (`/dev/hdc', `/dev/hdd') Pour les périphériques USB, les classes de périphériques sont listées dans `/proc/bus/usb/devices' par `Cls=' : * Cls=00 : Inutilisé * Cls=01 : Audio (haut-parleur, ...) * Cls=02 : Communication (modem, carte réseau, ...) * Cls=03 : HID (Human Interface Device : clavier, souris, joystick) * Cls=07 : Imprimante * Cls=08 : Stockage de masse (Lecteur de disquette, de CD/DVD, disque dur, Flash, ...) * Cls=09 : Hub (hub USB) * Cls=255 : Spécifique au fabricant Si la classe d'un périphérique n'est pas 255, alors Linux supporte ce périphérique. 3.1.4. Trouver le matériel du PC avec d'autres systèmes d'exploitation (SE) --------------------------------------------------------------------------- D'autres sources d'information concernant le matériel peuvent être obtenues avec d'autres SE. Installez une autre distribution Linux commerciale. La détection du matériel tend à être meilleure que celle de Debian, pour l'instant. (Cette situation devrait changer lorsque `debian-installer' sera introduit dans Sarge). Installez Windows. La configuration matérielle peut être obtenue en faisant un clic droit sur « Poste de travail » pour aller sur Propriétés / Gestionnaire de périphériques. Enregistrez toutes les ressources d'information comme IRQ, I/O port address, DMA. Quelques vieilles cartes ISA doivent être configurées sous DOS et utilisées en conséquence. 3.1.5. Le Mythe Lilo -------------------- « Lilo est limité à 1024 cylindres. » FAUX ! Les versions récentes de `lilo' utilisées depuis Debian Potato supportent lba32. Si le BIOS de la carte mère est assez récent pour supporter lba32, `lilo' devrait être capable de charger au-delà de la vieille limite des 1024 cylindres. Assurez-vous simplement d'ajouter la ligne « lba32 » vers le début de votre fichier `lilo.conf' si vous avez gardé un vieux `lilo.conf'. 3.1.6. GRUB ----------- Le nouveau gestionnaire de démarrage `grub' du projet GNU Hurd peut être installé sur un système Debian Woody : # apt-get update # apt-get install grub-doc # mc /usr/share/doc/grub-doc/html/ ... lisez le contenu # apt-get install grub # pager /usr/share/doc/grub/README.Debian.gz ... à lire :) Pour modifier le menu de GRUB, éditez `/boot/grub/menu.lst'. Voir Section 8.1.6, `Comment configurer les paramètres de démarrage de GRUB' pour la configuration des paramètres de démarrage car la syntaxe est différente de celle de `lilo'. 3.1.7. Choix des disquettes de boot ----------------------------------- Pour Potato, j'aimais bien les disquettes IDEPCI pour installer une machine de bureau. Pour Woody, j'aime bien les disquettes bf2.4. Elles utilisent une version de `boot-floppies' pour créer les disquettes de démarrage. Si vous avez une carte réseau PCMCIA, vous devez utiliser les disquettes de démarrage standard (plus grand nombre de disquettes, mais tous les pilotes de périphériques sont disponibles) et configurer la carte réseau dans le dialogue PCMCIA ; n'essayez pas de la configurer dans le dialogue de configuration réseau standard. Pour des systèmes spéciaux, vous pouvez avoir besoin de créer une disquette de secours personnalisée. Cela peut être fait en remplaçant l'image du noyau appelée « linux » sur la disquette de secours Debian par une autre image compressée du noyau compilée ailleurs pour la machine. Les détails sont documentés dans le fichier `readme.txt' de la disquette de secours. La disquette est formattée au format MSDOS, aussi vous pouvez utiliser n'importe quel système pour lire et éditer ce fichier. Ceci peut rendre la vie plus facile à ceux qui possèdent une carte réseau spéciale, etc. Pour Sarge, le paquet `debian-installer' et/ou `pgi' est à utiliser pour créer les disquettes de démarrage. 3.1.8. Installation ------------------- Suivez les instructions officielles à http://www.debian.org/releases/stable/installmanual ou http://www.debian.org/releases/testing/installmanual (en développement, parfois elles n'existent pas). Si vous installez un système avec `boot-floppies' de la distribution `testing', il vous faudra peut-être ouvrir une console en appuyant sur `ALT-F2' et remplacer manuellement les entrées « stable » par « testing » pour ajuster les sources APT. J'ai l'habitude d'installer `lilo' à un endroit comme `/dev/hda3', en installant `mbr' sur `/dev/hda'. Cela minimise les risques de recouvrir l'information de démarrage. Voici ce que je choisis lors du processus d'installation. * MD5 passwords « yes » * shadow passwords « yes » * Installation « advanced » (dselect **) et sélection de * exclure emacs (si sélectionné), nvi, tex, telnet, talk(d) ; * inclure mc, vim, nano-tiny ou elvis-tiny. Voir Section 6.2.4, ``dselect''. Même si vous êtes un fan d'Emacs, laissez-le pour le moment et utilisez nano pendant l'installation. De même, évitez d'installer de gros paquets comme TeX (Potato le faisait) à ce point-là. Voir Section 11.2, `Editeurs de sauvetage' pour la raison de l'installation de nano-tiny ou elvis-tiny ici. * Pour toutes les questions de configuration pendant l'installation de chaque paquet : « y » (remplace version courante). * `exim' : sélectionner 2 pour envoyer le courrier électronique par le serveur SMTP du FAI. Pour plus d'informations sur dselect, voir Section 6.2.4, ``dselect''. 3.1.9. Nom d'hôte et IP à utiliser pour le réseau local ------------------------------------------------------- J'utilise un sous-réseau de classe C à la maison, Internet | +--- FAI externe fournit le service POP (accédé par fetchmail) | le FAI fournit les services DHCP et relai SMTP | : Modem Cable (Téléphone) | : Port externe de la passerelle : eth0 (IP donnée par le DHCP du FAI) utilise un vieux PC portable (IBM Thinkpad, 486 DX2 50 MHz, 20 MB RAM) tourne avec le noyau Linux 2.4 et le système de fichiers ext3 tourne avec le paquet « ipmasq » (avec fortification, NAT et pare-feu) tourne avec le paquet « dhcp-client » configuré pour eth0 (remplace les paramètres DNS) tourne avec le paquet « dhcp » configuré pour eth1 tourne avec « exim » comme smarthost (mode 2) tourne avec « fetchmail » avec un long intervalle (fallback) tourne avec « bind » comme serveur de nom en cache pour l'Internet depuis le réseau local comme serveur de nom officiel pour le domaine du réseau local tourne avec « ssh » sur les ports 22 et 8080 (connexions depuis n'importe où) tourne avec « squid » comme serveur de cache pour l'archive Debian (pour APT) Port interne de la passerelle : eth1 (IP = 192.168.1.1, fixe) | +--- LAN Switch (100 base T) ---+ | | Quelques clients avec IP fixe Quelques clients DHCP (IP = 192.168.1.2-127, fixe) (IP = 192.168.1.128-200, dynamique) Voir Chapitre 10, `Configuration réseau' pour les détails de la configuration du réseau. Voir Section 10.12, `Configurer une passerelle' pour les détails de la configuration d'une passerelle pour le réseau local. 3.1.10. Comptes utilisateurs ---------------------------- Afin d'avoir une organisation cohérente entre toutes les machines, quelques premiers comptes sont toujours les mêmes sur mon système. Je crée toujours un premier compte utilisateur avec un nom comme "admin" (uid=1000). Tous les messages de root sont redirigés dessus. Ce compte est membre du groupe `adm' (voir Section 9.2.2, `Pourquoi `GNU su' ne supporte pas le groupe `wheel''), à qui l'on peut donner beaucoup des privilèges de root au travers des programmes `su' en utilisant PAM ou `sudo'. Voir Section 4.1.3, `Ajouter un compte utilisateur' pour les détails. 3.1.11. Création des systèmes de fichiers ----------------------------------------- 3.1.11.1. Partition du disque dur --------------------------------- Je préfère avoir différentes partitions pour différentes arborescences de répertoires, afin de limiter les dommages en cas de plantage du système. Par exemple : / == (/ + /boot + /bin + /sbin) == 50Mo+ /tmp == 100Mo+ /var == 100Mo+ /home == 100Mo+ /usr == 700Mo+ avec X /usr/local == 100Mo La taille du répertoire `/usr' dépend beaucoup des applications X Window et de la documentation. `/usr' peut être de 300Mo si l'on n'utilise que le terminal, tandis que 2Go--3Go n'est pas inhabituel si l'on installe un certain nombre d'applications Gnome. Lorsque `/usr' devient trop gros, déplacer `/usr/share/' vers une autre partition est le meilleur remède. Avec un noyau 2.4 récent, `/' peut avoir besoin de plus de 200Mo. Par exemple, le statut actuel de la machine qui sert de passerelle Internet est le suivant (sortie de la commande `df -h') : Filesystem Size Used Avail Use% Mounted on /dev/hda3 300M 106M 179M 38% / /dev/hda7 100M 12M 82M 13% /home /dev/hda8 596M 53M 513M 10% /var /dev/hda6 100M 834k 94M 1% /var/lib/cvs /dev/hda9 596M 222M 343M 40% /usr /dev/hda10 596M 130M 436M 23% /var/cache/apt/archives /dev/hda11 1.5G 204M 1.2G 14% /var/spool/squid (La grande taille de `/var/spool/squid' est pour le proxy en vue du téléchargement des paquets.) Ci-dessous la sortie de `fdisk -l' pour donner une idée. # fdisk -l /dev/hda # comment /dev/hda1 1 41 309928+ 6 FAT16 # DOS /dev/hda2 42 84 325080 83 Linux # (pas utilisé) /dev/hda3 * 85 126 317520 83 Linux # Principal /dev/hda4 127 629 3802680 5 Extended /dev/hda5 127 143 128488+ 82 Linux swap /dev/hda6 144 157 105808+ 83 Linux /dev/hda7 158 171 105808+ 83 Linux /dev/hda8 172 253 619888+ 83 Linux /dev/hda9 254 335 619888+ 83 Linux /dev/hda10 336 417 619888+ 83 Linux /dev/hda11 418 629 1602688+ 83 Linux Quelques partitions inutilisées existent. Elles sont réservées pour installer une seconde distribution Linux ou une réserve d'espace pour une arborescence de répertoires en expansion. 3.1.11.2. Monter les systèmes de fichiers ----------------------------------------- Montez les systèmes de fichiers ci-dessus proprement avec le fichier `fstab' suivant : # /etc/fstab: information statique sur les systèmes de fichiers # # file system mount point type options dump pass /dev/hda3 / ext2 defaults,errors=remount-ro 0 1 /dev/hda5 none swap sw 0 0 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto defaults,user,noauto 0 0 /dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0 # # garde les partitions séparées /dev/hda7 /home ext2 defaults 0 2 /dev/hda8 /var ext2 defaults 0 2 /dev/hda6 /var/lib/cvs ext2 defaults 0 2 /dev/hda9 /usr ext2 defaults 0 2 /dev/hda10 /var/cache/apt/archives ext2 default 0 2 # une très grande partition pour le cache proxy /dev/hda11 /var/spool/squid ext2 rw 0 2 # backup bootable sous DOS /dev/hda1 /mnt/dos vfat rw,noauto 0 0 # système Linux bootable de sauvegarde (pas fait) /dev/hda2 /mnt/linux ext2 rw,noauto 0 0 # # montages nfs mickey:/ /mnt/mickey nfs ro,noauto,intr 0 0 goofy:/ /mnt/goofy nfs ro,noauto,intr 0 0 # minnie:/ /mnt/minnie smbfs ro,soft,intr,credentials={filename} 0 2 Pour NFS, j'utilise `noauto,intr' avec l'option par défaut `hard'. De cette façon, il est possible d'arrêter un processus bloqué par une déconnexion en utilisant Ctrl-C. Pour une machine sous Windows connectée avec Samba (smbfs), `rw,auto,soft,intr' peut être une bonne idée. Voir Section 3.5, `Configuration Samba'. Pour un lecteur de disquettes, utiliser `noauto,rw,sync,user,exec' prévient les corruptions de données après une éjection accidentelle du disque sans le démonter, mais cela ralentit l'écriture. 3.1.11.3. Montage autofs ------------------------ Points clés pour le montage automatique : * Charger le module `vfat' pour autoriser `/etc/auto.misc' à contenir `fstype=auto' : # modprobe vfat # avant d'essayer d'accéder à la disquette ... ou pour automatiser cela, # echo "vfat" >> /etc/modules ... et redémarrer le système * Editer le fichier `/etc/auto.misc' comme suit : floppy -fstype=auto,sync,nodev,nosuid,gid=100,umask=000 :/dev/fd0 ... où gid=100 est « users ». * Créer des liens `cdrom' et `floppy' dans `/home/', qui pointent respectivement vers `/var/autofs/misc/cdrom' et `/var/autofs/misc/floppy'. * Ajoutez au groupe « users ». 3.1.11.4. Montage NFS --------------------- Le serveur Linux nfs externe (goofy) se trouve derrière un pare-feu (passerelle). J'ai une politique de sécurité très relâchée sur LAN puisque je suis le seul à l'utiliser. Pour obtenir un accès nfs, le côté du serveur nfs a besoin qu'on ajoute `/etc/exports' comme suit : # /etc/exports: la liste des contrôle d'accès pour les systèmes de fichier # qui peuvent être exportés vers les clients NFS. Voir exports(5). / (rw,no_root_squash) Ceci est utile pour activer le serveur nfs en plus de l'installation et de l'activation d'un client/serveur nfs. Je crée généralement une seule partition de 2Go pour une installation expérimentale et/ou secondaire et paresseuse de Linux, pour plus de simplicité. Je partage optionnellement les partitions swap et `/tmp' pour ces installations. Le schéma de multi-partitionnement est trop complexe pour ces usages. Si on a besoin d'un système simple utilisé en console, 500Mo peuvent être largement suffisants. 3.1.12. Lignes directrices pour la mémoire DRAM ----------------------------------------------- Ce qui suit sont des indications grossières pour la DRAM. 4 Mo : Minimum suffisant pour faire fonctionner le noyau Linux. 16 Mo : Minimum pour un usage du système en mode console. 32 Mo : Minimum pour un système X simple. 64 Mo : Minimum pour un système X avec GNOME/KDE. 128 Mo : Confortable pour le système X avec GNOME/KDE. 256+Mo : Pourquoi pas si vous le pouvez. La DRAM est bon marché. L'option de boot `mem=4m' (ou lilo `append="mem=4m"') montrera comment le système se comporterait en ayant 4Mo de mémoire installée. Un paramètre de démarrage pour `lilo' est requis pour un système ayant plus de 64Mo de mémoire avec un vieux BIOS. 3.1.13. Espace de Swap ---------------------- J'utilise la ligne directrice suivante : * Chaque partition de swap est < 128 Mo (avec un vieux noyau 2.0), < 2 Go (avec les noyaux récents) * Total = soit (1 à 2 fois la taille de la RAM) soit (128 Mo à 2 Go) * Installation sur des disques différents et montage avec les options `sw,pri=1' dans `/etc/fstab'. Cela permet de s'assurer que le noyau fait du RAID par bandes sur les partitions de swap et offre des performances maximum. * Utilisation de la partie centrale du disque, si possible. Même si vous n'en avez pas besoin, l'espace de swap (128 Mo) est requis, sinon le système ralentit avant de planter avec un programme qui manque de mémoire. 3.2. Configuration de Bash -------------------------- Je modifie les scripts de démarrage à mon goût sur tout le système : /etc/bash.bashrc Remplacez par un script personnalisé /etc/profile Gardez la version de la distribution ( \w -> \W) /etc/skel/.bashrc Remplacez par une copie privée /etc/skel/.profile Remplacez par une copie privée /etc/skel/.bash_profile Remplacez par une copie privée ~/.bashrc Remplacez par une copie privée pour tous les comptes ~/.profile Remplacez par une copie privée pour tous les comptes ~/.bash_profile Remplacez par une copie privée pour tous les comptes Voir détails dans mon exemple. (http://www.debian.org/doc/manuals/debian-reference/examples/) J'aime les systèmes transparents, j'ai donc paramétré umask à 002 ou 022. `PATH' est paramétré par les fichiers de configuration suivants, dans cet ordre. /etc/login.defs - avant que le shell paramètre PATH /etc/profile (peut appeler /etc/bash.bashrc) ~/.bash_profile (peut appeler ~/.bashrc) 3.3. Configuration de la souris ------------------------------- 3.3.1. Souris PS/2 ------------------ Dans le cas d'un connecteur de souris de type PS/2 sur une carte mère ATX, la succession de signaux sera : mouse -> /dev/psaux -> gpm -> /dev/gpmdata = /dev/mouse -> X Ici, un lien symbolique `/dev/mouse' est créé et pointe vers `/dev/gpmdata' pour accomoder certains utilitaires de configuration et faciliter la reconfiguration. (Par exemple, si vous décidez de ne pas utiliser `gpm', pointez `/dev/mouse' vers `/dev/psaux' après avoir supprimé le démon `gpm'.) Cette succession de signaux permet au clavier ou à la souris d'être déconnecté et réinitialisé en redémarrant `gpm' après reconnexion. X restera activé ! Le protocole du signal entre la sortie de `gpm' et l'entrée de X peut être implémenté de deux façons, soit "ms3" (protocole des souris séries Microsoft à 3 boutons) soit "brut" (protocole de la souris connectée), et ce choix impose le choix du protocol utilisé pour configurer X. Voici des exemples de configuration pour les souris Logitech 3 boutons PS/2,(souris Unix traditionnelle). Si vous faites partie de ceux dont la carte vidéo n'est pas supportée par le nouveau X4 et devez utiliser X3 (cartes ATI 64 bit par exemple), configurez `/etc/X11/XF86Config' au lieu de `/etc/X11/XF86Config-4' dans les exemples suivants. 3.3.1.1. Le protocole ms3 ------------------------- /etc/gpm.conf | /etc/X11/XF86Config-4 =========================+====================================== device=/dev/psaux | Section "InputDevice" responsiveness= | Identifier "Configured Mouse" repeat_type=ms3 | Driver "mouse" type=autops2 | Option "CorePointer" append="" | Option "Device" "/dev/mouse" sample_rate= | Option "Protocol" "IntelliMouse" | EndSection Si cette approche est utilisée, l'ajustement du type de souris est fait simplement en éditant le fichier `gpm.conf' et la configuration de X reste la même. Voir mes scripts d'exemple (http://www.debian.org/doc/manuals/debian-reference/examples/). 3.3.1.2. Le protocole brut -------------------------- /etc/gpm.conf | /etc/X11/XF86Config-4 =========================+====================================== device=/dev/psaux | Section "InputDevice" responsiveness= | Identifier "Configured Mouse" repeat_type=raw | Driver "mouse" type=autops2 | Option "CorePointer" append="" | Option "Device" "/dev/mouse" sample_rate= | Option "Protocol" "MouseManPlusPS/2" | EndSection Si vous utilisez cette approche, l'ajustement du type de souris est fait en éditant le fichier `gpm.conf' et en ajustant la configuration de X. 3.3.1.3. Comment adapter différentes souris ------------------------------------------- Le type de périphérique `autops2' est supposé détecter la plupart des souris PS/2 du marché. Malheureusement, cela ne marche pas toujours et il n'est pas disponibles dans les versions antérieures à Woody. Essayez d'utiliser `ps2', ou `imps2', dans le fichier `gpm.conf' à la place de `autops2' dans ces cas-là. Pour trouver les types de souris disponibles, tapez `gpm -t help'. Voir gpm(8). Si une souris PS/2 à 2 boutons est utilisée, activez `Emulate3Buttons' dans la configuration du protocole X. La différence de protocole entre les souris 2 boutons et 3 boutons est détectée automatiquement et ajustée par `gpm' après avoir cliqué sur le bouton du milieu. Pour le protocole X avec Section 3.3.1.2, `Le protocole brut' ou sans `gpm', utilisez : * `IntelliMouse' : souris sur port série (répéteur `gpm' avec « ms3 ») * `PS/2' : souris sur port PS/2 (à tester en premier) * `IMPS/2' : n'importe quelle souris PS/2 (2, 3, ou à roulette) * `MouseManPlusPS/2' : souris PS/2 Logitech * `...' Pour plus de détails, consultez Mouse Support in XFree86 (http://www.xfree86.org/current/mouse.html). Pour une souris à roulette Microsoft typique, la meilleure configuration est : /etc/gpm.conf | /etc/X11/XF86Config-4 =========================+====================================== device=/dev/psaux | Section "InputDevice" responsiveness= | Identifier "Configured Mouse" repeat_type=raw | Driver "mouse" type=autops2 | Option "CorePointer" append="" | Option "Device" "/dev/mouse" sample_rate= | Option "Protocol" "IMPS/2" | Option "Buttons" "5" | Option "ZAxisMapping" "4 5" | EndSection Pour certains portables Toshiba récents : activez `gpm' avant PCMCIA dans le script d'initialisation System-V. Ceci évite à `gpm' de planter. Étrange, mais vrai. 3.3.2. Souris USB ----------------- Assurez vous d'avoir toutes les fonctions du noyaux activées à la compilation : * Sous « Input core support » : * « Input Core Support » (CONFIG_INPUT, `input.o'), * « Mouse Support » (CONFIG_INPUT_MOUSEDEV, `mousedev.o'), * Sous « : USB support » : * « Support for USB » (CONFIG_USB, `usbcore.o'), * « Preliminary USB device filesystem » (CONFIG_USB_DEVICEFS), * « UHCI » ou « OHCI » (CONFIG_USB_UHCI || CONFIG_USB_UHCI_ALT || CONFIG_USB_OHCI, `usb-uhci.o' || `uhci.o' || `usb-ohci.o'), * « USB Human Interface Device (full HID) support » (CONFIG_USB_HID, `hid.o'), et * « HID input layer support » (CONFIG_USB_HIDINPUT) Les noms de fichiers sont les noms des modules. Si vous n'utilisez pas devfs, créez une node de périphérique `/dev/input/mice' avec comme major 13 et minor 63, comme suit : # cd /dev # mkdir input # mknod input/mice c 13 63 Pour les souris _USB_ à roulette typiques, la configuration doit être : /etc/gpm.conf | /etc/X11/XF86Config-4 =========================+====================================== device=/dev/input/mice | Section "InputDevice" responsiveness= | Identifier "Generic Mouse" repeat_type=raw | Driver "mouse" type=autops2 | Option "SendCoreEvents" "true" append="" | Option "Device" "/dev/input/mice" sample_rate= | Option "Protocol" "IMPS/2" | Option "Buttons" "5" | Option "ZAxisMapping" "4 5" | EndSection Voir Linux USB Project (http://www.linux-usb.org/) pour plus d'information. 3.3.3. Touchpad --------------- Bien que le touchpad d'un portable émule une souris PS/2 à 2 boutons par défaut, le paquet `tpconfig' permet le contrôle complet du périphérique. Par exemple, en mettant `OPTIONS="--tapmode=0"' dans `/etc/default/tpconfig' on peut désactiver le « clic en tapant ». Configurez `/etc/gpm.conf' comme suit pour utiliser à la fois le touchpad et une souris USB externe sur la console : device=/dev/psaux responsiveness= repeat_type=ms3 type=autops2 append="-M -m /dev/input/mice -t autops2" sample_rate= 3.4. Configuration NFS ---------------------- Configurer NFS dans `/etc/exports'. # apt-get install nfs-kernel-server # echo "/ *.domainname-for-lan-hosts(rw,no_root_squash,nohide)" \ >> /etc/exports Voir détails dans mon exemple. (http://www.debian.org/doc/manuals/debian-reference/examples/). 3.5. Configuration Samba ------------------------ Références : * http://www.samba.org/ * paquet `samba-doc' Configurer Samba en mode « partage » est plus facile pour créer un partage du disque de type WfW. Mais il est mieux de le configurer en mode « utilisateur ». Samba peut être configuré à l'aide de `debconf' ou `vi' : # dpkg-reconfigure --priority= samba # dans Woody # vi /etc/samba/smb.conf Voir détails dans mon script d'exemple. (http://www.debian.org/doc/manuals/debian-reference/examples/) Ajouter un nouvel utilisateur au fichier `smbpasswd' peut être fait par `smbpasswd' : $su -c "smbpasswd -a username" Assurez-vous de l'utilisation des mots de passe cryptés pour une meilleure compatibilité. La signification du rang de l'OS est donnée ci-dessous. Plus il est grand, plus la priorité du serveur est haute. 0: Samba avec des comportements relâchés 1: Wfw 3.1, Win95, Win98, Win/me? 16: Win NT WS 3.51 17: Win NT WS 4.0 32: Win NT SVR 3.51 33: Win NT SVR 4.0 255: Samba avec beaucoup de puissance Assurez-vous que les utilisateurs sont membres du groupe possédant le répertoire qui est partagé et que le bit d'exécution du répertoire est positionné à accès. 3.6. Configuration de l'imprimante ---------------------------------- La méthode traditionnelle est d'utiliser `lpr'/`lpd'. Il existe un nouveau système, CUPS(TM) (Common UNIX Printing System). PDQ est une autre approche. Voir le Linux Printing HOWTO (http://www.tldp.org/HOWTO/Printing-HOWTO.html) pour plus d'information. 3.6.1. `lpr'/`lpd' ------------------ Pour les _spoolers_ comme `lpr'/`lpd' (paquets `lpr', `lprng', et `gnulpr'), configurez `/etc/printcap' comme suit s'ils sont connectés à une imprimante PostScript ou texte : |:\ :sd=/var/spool/lpd/:\ :mx#0:\ :sh:\ :lp=/dev/lp0: Signification des lignes ci-dessus : * En-tête : -- nom de la queue, = alias * mx#0 -- taille de fichier maximum illimitée * sh -- suppression de l'impression de la première page d'en-tête * lp=/dev/lp0 -- périphérique local, ou port@host pour une machine distante C'est une bonne configuration si vous utilisez une imprimante PostScript. De plus, lors de l'impression depuis une machine Windows avec Samba, c'est une bonne configuration pour n'importe quelle imprimante supportée par Windows (communication bi-directionnelle non supportée). Il faut sélectionner l'imprimante correspondante sous Windows. Si vous n'avez pas d'imprimante PostScript, il faut configurer un système de filtre avec `gs'. Il existe beaucoup d'outils d'auto-configuration pour configurer `/etc/printcap'. Voici quelques options : * `gnulpr', (`lpr-ppd') et `printtool' --- j'utilise celle-là. * `lpr' et `apsfilter' * `lpr' et `magicfilter' * `lprng' et `lprngtool' * `lprng' et `apsfilter' * `lprng' et `magicfilter' Pour exécuter des outils de configuration graphiques comme `printtool', voir Section 9.4.12, `Devenir root sous X' pour obtenir les privilèges de root. Les queues d'imprimante créées avec `printtool' utilisent `gs' et agissent comme des imprimantes PostScript. Donc, lorsque vous y accédez, utilisez des pilotes PostScript. Du côté de Windows, « Apple LaserWriter » est le standard. 3.6.2. CUPS(TM) --------------- Installez le Système d'Impression Commun pour UNIX (Common UNIX Printing System, ou CUPS(TM)) : # apt-get install cupsys cupsys-bsd cupsys-client cupsys-driver-gimpprint # apt-get install foomatic-db-engine foomatic-db-hpijs # apt-get install foomatic-filters-ppds foomatic-gui Ensuite, configurez le système avec n'importe quel navigateur Web : $ http://localhost:631 Par exemple, pour ajouter votre imprimante sur un port de la liste des imprimantes accessibles : * cliquez sur « Printers » sur la page principale, puis « Add Printer », * entrez « root » comme nom d'utilisateur et son mot de passe, * ajoutez l'imprimante en suivant les instructions, * retournez sur la page « Printers » et cliquez sur « Configure Printers », et * configurez la taille du papier, la résolution et les autres paramètres. Pour plus d'informations, consultez http://localhost:631/documentation.html et http://www.cups.org/cups-help.html. 3.7. Autres conseils de configuration de l'hôte ----------------------------------------------- 3.7.1. Installer quelques paquets supplémentaires après l'installation ---------------------------------------------------------------------- Une fois rendu à ce point, vous avez un système Debian petit mais fonctionnel. Il est temps d'installer des paquets plus gros. * Lancez `tasksel'. Voir Section 6.2.2, `Installation de tâches'. Vous pouvez choisir ces options si vous en avez besoin : * Utilisateur -- X window system * Développement -- C et C++ * Développement -- Python * Développement -- Tcl/Tk * Divers -- environnement TeX/LaTeX * Pour les autres, je préfère utiliser `tasksel' comme guide en regardant les composants listés dans « Task Info » et en les installant manuellement avec `dselect'. * Lancez `dselect'. Là, la première chose à faire est de sélectionner votre éditeur de texte favori, et tout programme dont vous avez besoin. Vous pouvez installer plusieurs variantes d'Emacs en même temps. Voir Section 6.2.4, ``dselect'' et Section 11.1, `Editeurs populaires'. De plus, vous pouvez remplacer des paquets par défaut avec d'autres ayant plus d'options. * ... * ... J'édite habituellement `/etc/inittab' pour éteindre plus facilement ma machine. ... # Que faire lorsque CTRL-ALT-DEL est pressé. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now ... 3.7.2. Modules -------------- Les modules pour les pilotes de périphériques sont configurés lors de l'installation initiale. `modconf' permet de configurer les modules ensuite au travers d'une interface utilisant des menus. Ce programme est utile lorsque des modules ont été oubliés lors de l'installation ou lorsqu'un nouveau noyau est installé. Le nom des modules à précharger est listé dans `/etc/modules'. J'utilise `lsmod' et `depmod' pour les contrôler manuellement. De plus, assurez-vous d'ajouter quelques lignes dans `/etc/modules' pour gérer l'IP masquerading (FTP, etc.) sur les noyaux 2.4. Voir Section 7.2, `Le noyau 2.4 modulaire', et notamment Section 7.2.3, `Fonctions réseau'. 3.7.3. Configuration de base d'un graveur de CD ----------------------------------------------- Éditer les fichiers suivants : /etc/lilo.conf (ajouter append="hdc=ide-scsi", lancer lilo pour activer) /dev/cdrom (lien symbolique # cd /dev; ln -sf scd0 cdrom) /etc/modules (ajouter "ide-scsi" et "sg". "sr" ensuite si besoin) Voir Section 9.3, `Graveurs de CD' pour les détails. 3.7.4. Grande capacité mémoire et arrêt automatique --------------------------------------------------- Éditer `/etc/lilo.conf' comme suit pour configurer les paramètres de démarrage pour une grande capacité mémoire (pour les noyaux 2.2) et l'arrêt automatique (pour APM) : append="mem=128M apm=on apm=power-off" Lancer `lilo' pour installer cette configuration. `apm=power-off' est requis pour un noyau multiprocesseur (SMP) et `noapic' est nécessaire pour éviter les problèmes sur mon matériel bogué. La même chose peut être faite directement à l'invite de démarrage. Voir Section 8.1.5, `Autres astuces avec l'invite de démarrage'. Si APM est compilé comme module comme c'est le cas par défaut dans les noyaux 2.4 de Debian, lancez `insmod apm power_off=1' après le boot ou configurez `/etc/modules' par : # echo "apm power_off=1" >>/etc/modules Autrement, compiler le support ACPI permet d'atteindre le même but avec les nouveaux noyaux et semble plus compatible avec SMP (requiert une carte mère récente). Le noyau 2.4 avec une carte mère récente devrait correctement détecter les grandes capacité mémoire. CONFIG_PM=y CONFIG_ACPI=y ... CONFIG_ACPI_BUSMGR=m CONFIG_ACPI_SYS=m et ajouter les lignes suivantes dans `/etc/modules' selon cet ordre : ospm_busmgr ospm_system ou recompiler le noyau avec toutes les options ci-dessus en cochant « y ». Dans tous les cas, avec ACPI, aucun des paramètres de l'invite de démarrage n'est requis. 3.7.5. Étranges problèmes d'accès à certains sites web ------------------------------------------------------ Les noyaux Linux récents activent ECN par défaut, ce qui peut causer des problèmes d'accès à certains sites web situés derrière de mauvais routeurs. Pour vérifier l'état d'ECN # cat /proc/sys/net/ipv4/tcp_ecn ... ou # sysctl net.ipv4.tcp_ecn Pour le désactiver, utilisez # echo "0" > /proc/sys/net/ipv4/tcp_ecn ... ou # sysctl -w net.ipv4.tcp_ecn=0 Pour désactiver TCP ECN à chaque démarrage, éditer `/etc/sysctl.conf' et ajouter : net.ipv4.tcp_ecn = 0 3.7.6. Configuration d'une connexion RTC avec PPP ------------------------------------------------- Installer le paquet `pppconfig' pour configurer l'accès par PPP. # apt-get install pppconfig # pppconfig ... suivez les indications pour configurer PPP # adduser dip ... autorise à appeler avec PPP Un accès PPP peut être initié par l'utilisateur () : $ pon # démarre l'accès PPP au FAI ... amusez-vous bien sur l'Internet $ poff # arrête l'accès PPP, est