Guide de référence pour Debian ------------------------------ Osamu Aoki Coordinateur de traduction en Français : Guillaume Erbs Section A.1, `Auteurs' CVS, Sun, 13 Oct 2002 22:40:13 -0600 ------------------------------------------------------------------------------- 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-2002 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. Configuration de base 1.4. 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 le processus de démarrage 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. Chargeurs de remplacement 2.7.4. Disquettes de démarrage personnalisées 2.7.5. Dispositions spéciales pour manipuler les modules 2.7.6. 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. Choix des disquettes de boot 3.1.7. Installation 3.1.8. Nom d'hôte et IP à utiliser pour le réseau local 3.1.9. Comptes utilisateurs 3.1.10. Création des systèmes de fichiers 3.1.11. Lignes directrices pour la mémoire DRAM 3.1.12. 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.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 de CD-RW 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. Sources d'information 4.2. La console Linux 4.2.1. Se connecter 4.2.2. Ajouter un compte utilisateur 4.2.3. Comment éteindre 4.2.4. Édition en ligne de commande 4.2.5. Commandes de base à retenir 4.2.6. Le système X Window 4.2.7. Commandes importantes au clavier 4.3. Midnight Commander (MC) 4.3.1. Installer MC 4.3.2. Démarrer MC 4.3.3. Gestionnaire de fichiers 4.3.4. Astuces en ligne de commande 4.3.5. Éditeur 4.3.6. Visionneur 4.3.7. Possibilités de démarrage automatique 4.3.8. Système de fichiers FTP virtuel 4.4. Étude approfondie 5. Mise à jour d'une distribution 5.1. Préparation de la transition (potato vers woody) 5.2. Mise à jour vers Woody 5.3. Configuration de Woody 5.4. Améliorer le fichier `sources.list' 6. Gestion des paquets Debian 6.1. Introduction 6.1.1. Outils principaux 6.1.2. Outils pratiques 6.2. Commandes de survie Debian 6.2.1. Installation de avec `tasksel' 6.2.2. Système d'installation avec APT 6.2.3. Système de mise à jour avec APT 6.2.4. Rechercher les bogues de Debian et demander de l'aide 6.2.5. Résolution de problèmes de mise à jour avec APT 6.2.6. Sauvetage avec `dpkg' 6.2.7. Sauver un système après avoir effacé `/var' 6.2.8. Installer un paquet sur un système qui ne démarre plus 6.2.9. Que faire si `dpkg' est cassé 6.3. Commandes « nirvana » de Debian 6.3.1. Informations sur un fichier 6.3.2. Informations sur un paquet 6.3.3. Reconfigurer les paquets installés 6.3.4. Enlever et purger des paquets 6.3.5. Garder de vieux paquets 6.3.6. `dselect' -- configuration générale 6.3.7. Supprimer les paquets du cache 6.3.8. Enregistrer/copier la configuration du système 6.3.9. Porter un paquet vers le système `stable' 6.3.10. Archive locale de paquets 6.3.11. Convertir ou installer un paquet non Debian 6.3.12. Vérifier les fichiers de paquets installés 6.4. Autres particularités de Debian 6.4.1. La commande `dpkg-divert' 6.4.2. Le paquet `equivs' 6.4.3. Commandes de rechange 6.4.4. `init' System-V et niveaux de fonctionnement 6.4.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.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 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. Autres astuces avec l'invite de démarrage. 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.2.3. Enregistrer les changements aux fichiers de configuration 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. Récupération d'un système bloqué 8.4.1. Tuer un processus 8.4.2. ALT-SysRQ 8.5. Petites commandes utiles à se rappeler 8.5.1. Pager 8.5.2. Mémoire libre 8.5.3. Régler l'heure (BIOS) 8.5.4. Régler l'heure (NTP) 8.5.5. Comment désactiver l'écran de veille 8.5.6. Chercher dans la base de données administrative 8.5.7. Désactiver le son (beep) 8.5.8. Messages d'erreur sur l'écran de la console 8.5.9. Régler la console 8.5.10. Remettre la console dans un état sain 8.5.11. Convertir des fichiers texte DOS vers Unix 8.5.12. Modifier des fichiers grâce aux expressions rationnelles 8.5.13. Convertir un gros fichier en plusieurs petits 8.5.14. Bouts de scripts pour les tubes 8.5.15. Récupérer du texte ou une archive de liste de diffusion à partir d'une page Web 8.5.16. Imprimer joliement une page Web 8.5.17. Mesurer la durée d'une commande 8.5.18. Commande `nice' 8.5.19. Programmer des activités (`cron', `at') 8.5.20. Changement de console avec `screen' 8.5.21. Bases pour tester un réseau 8.5.22. Vider les courriers électroniques de la file locale 8.5.23. Supprimer les courriers électroniques gelés de la file locale 8.5.24. Supprimer le contenu d'un fichier 8.5.25. Fichiers fantômes 8.5.26. `chroot' 8.5.27. Monter une image de disque dur 8.5.28. Samba 9. Configurer un système Debian 9.1. Astuces sur l'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 d'accès avec PAM et login 9.2.2. Pourquoi `GNU su' ne supporte pas le groupe `wheel' 9.2.3. Signification des groupes 9.2.4. `sudo' -- un environnement de travail plus sûr 9.2.5. Contrôle d'accès aux démons 9.2.6. Lightweight Directory Access Protocol 9.3. Graveur 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 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.4. Le programme X 9.4.1. Serveur X 9.4.2. Client X 9.4.3. Connexion TCP/IP à X 9.4.4. Connexion X distante : `xhost' 9.4.5. Connexion X distante : `ssh' 9.4.6. `xterm' 9.4.7. Devenir root sous X 9.4.8. Polices TrueType dans X 9.4.9. Navigateur Web (graphique) 9.4.10. CJK et X 9.5. SSH 9.5.1. Bases 9.5.2. Redirection de port -- tunnel SMTP/POP3 9.5.3. Se connecter avec moins de mots de passe 9.5.4. Clients SSH étrangers 9.5.5. SSH agent 9.5.6. Problèmes 9.6. Logiciels de courrier électronique 9.6.1. Agent de transport de courrier électronique (Exim) 9.6.2. Tout récupérer pour les adresses e-mail non existantes (Exim) 9.6.3. Utilitaire de courrier électronique (fetchmail) 9.6.4. Utilitaire de courrier électronique (procmail) 9.6.5. Agent pour utilisateur de courrier électronique (Mutt) 9.7. Localisation et support des langues nationales 9.7.1. Support des langues 9.7.2. Locales 9.7.3. Activer le support des locales 9.7.4. Activer une locale particulière 9.7.5. Après `locale' 10. Construire une passerelle avec Debian 10.1. Configuration réseau 10.1.1. Configuration de la passerelle 10.1.2. IP-masquerade 10.1.3. Points principaux de la configuration réseau pour une passerelle 10.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. CVS 12.1. Installation d'un serveur CVS 12.2. Exemples de sessions CVS 12.2.1. CVS anonyme (téléchargement seulement) 12.2.2. Utilisation d'un serveur CVS local 12.2.3. Utilisation d'un pserver CVS distant 12.2.4. Utilisation d'un CVS distant avec `ssh' 12.2.5. Créer une nouvelle archive CVS 12.2.6. Travailler avec CVS 12.2.7. Exportation de fichiers à partir de CVS 12.2.8. Administrer CVS 12.3. Résoudre les problèmes de CVS 12.3.1. Permissions de fichiers dans le dépôt 12.3.2. Bit d'exécution 12.4. Commandes CVS 13. Programmation 13.1. Où commencer 13.2. BASH 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 (`gdb') 13.7.3. Flex -- un meilleur Lex 13.7.4. Bison -- un meilleur Yacc 13.7.5. Autoconf -- uninstall 13.8. SGML 13.9. Paquetage 14. GnuPG 14.1. Installer GnuPG 14.2. Utiliser GnuPG 14.3. Gérer GnuPG 14.4. Utilisation avec Mutt 15. Support Debian 15.1. Références 15.2. Trouver le sens d'un mot 15.3. Système de suivi des bogues Debian 15.4. Listes de diffusion 15.5. Internet Relay Chat 15.6. Moteurs de recherche 15.7. Sites internet A. Annexe A.1. Auteurs A.2. Garanties A.3. Retour A.4. Format du document A.5. 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_. Beaucoup 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 d'une maintenance urgente d'un système, rendez-vous à Section 6.2, `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' 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, `BASH' 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'. Des exemples de scripts sont fournis dans le répertoire des exemples (examples/) ; pour les fichiers cachés, le préfixe « . » est remplacé par un « _ ». 1.3. Configuration de base -------------------------- Si le système est installé avec le strict minimum comme paquets, asssurez-vous d'exécuter les commandes suivantes pour installer quelques paquets essentiels et quelques documents importants : # apt-get install info man-db boc-base dhelp apt apt-utils auto-apt \ dpkg less mc ssh nano-tiny elvis-tiny vim sash \ kernel-package \ manpages manpages-dev doc-debian doc-linux-text \ debian-policy developers-reference maint-guide \ apt-howto harden-doc install-doc \ libpam-doc glibc-doc samba-doc exim-doc cvsbook \ gnupg-doc # apt-get install debian-reference # pour Sarge, faites cela aussi :) 1.4. 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. * Section 6.2.2, `Système d'installation avec APT' (principalement pour des stations de travail) * Section 6.3.9, `Porter un paquet vers le système `stable'' (principalement pour des serveurs) 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.2, `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 * Manuel du paquetage Debian (Potato) * 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 mirroir Debian (http://www.debian.org/misc/README.mirrors) accessible par FTP ou HTTP. Les répertoires suivants sont sur chaque mirroir 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 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 Woody (3.0r0), sont enregistrés dans le répertoire `stable' (lien symbolique vers `Woody') : * `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 Sarge, sont enregistrés dans le répertoire `testing' (lien symbolique vers `Sarge') 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échanisme sont disponibles à http://ftp-master.debian.org/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://base.debian.net/) * bugs in standard and task packages (http://standard.debian.net/) * other bugs and bug-squashing party notes (http://bugs.debian.net/) 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'. (Le récent processus de sortie de `woody' n'a pas vu la création d'un lien symbolique `frozen', ainsi `frozen' n'était pas une distribution, juste une étape de développement de `testing'). 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 `Woody' et `Sarge', 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 mirroirs 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 `Woody' et `testing' est un lien symbolique vers `Sarge'. Cela signifie que `Woody' est l'actuelle distribution stable et `Sarge' 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 autres 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 et `potato' pour la version 2.2. 2.1.9. Source d'inspiration pour les noms de code ------------------------------------------------- Jusqu'ici, les noms de code viennent des caractères 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, * _sarge_ est un chef des Hommes de l'Armée de Plastique Vert * _potato_ est, bien sûr, Mr. Potato * _woody_ est le cowboy, * _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 mirroirs 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 Debian Package Pools FAQ (http://people.debian.org/~joeyh/poolfaq) (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 mirroirs (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 mirroir Debian (http://www.debian.org/misc/README.mirrors), les archives des anciennes distribution comme `Slink' sont gardées sur http://archive.debian.org/ ou dans le répertoire `debian-archive' de chaque mirroir 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.3.9, `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(8) 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.4.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 dorsal 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é `'. Si vous souhaitez juste compiler le paquet, vous pouvez entrer dans le répertoire `foo-version' et lancer la commande $ fakeroot debian/rules build pour compiler le programme (vous aurez peut-être besoin d'installer le paquet `fakeroot' d'abord), puis $ fakeroot debian/rules binary en tant que root, pour construire le paquet, et enfin $ su -c "dpkg -i ../.deb" pour installer le paquet nouvellement construit. Voir Section 6.3.9, `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 dorsal 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/apt-howto/en/apt-howto-en.html/index.html'. `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 fichier) 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, `Astuces sur l'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/sendmail reload envoie au daemon sendmail un signal pour qu'il relise son fichier de configuration. 2.4.3. Personnaliser le processus de démarrage ---------------------------------------------- Debian n'utilise pas de répertoire `rc.local' comme BSD pour personnaliser le processus de démarrage ; à la place, il fournit les mécanismes suivants. Supposons qu'un système ait besoin d'exécuter le script `foo' au démarrage, ou à l'entrée dans un niveau de fonctionnement (System V) particulier. Alors, l'administrateur du système doit : 1. Placer le script `foo' dans le répertoire `/etc/init.d/'. 2. Exécuter la commande Debian `update-rc.d' avec les arguments appropriés, pour effectuer les liens entre les répertoires (spécifiés sur la ligne de commande) `rc.d' et `/etc/init.d/foo'. Ici, est un nombre entre 0 et 6 qui correspond à l'un des niveaux de fonctionnement System V. 3. Redémarrer le système. La commande `update-rc.d' effectue les liens entre les fichiers des répertoires `rc.d' et le script de `/etc/init.d/'. Chaque lien commencera par un `S' ou un `K', suivi par un nombre, suivi par le nom du script. Les scripts commençant par `S' dans `/etc/rcN.d/' sont exécutés lorsqu'on entre dans le niveau de fonctionnement `N'. Les scripts commençant par `K' sont exécutés lorsqu'on quitte le niveau de fonctionnement `N'. On peut par exemple faire exécuter le script `foo' au démarrage, en le plaçant dans `/etc/init.d/' et en installant les liens par la commande `update-rc.d foo defaults 19'. L'argument `defaults' correspond aux niveaux de fonctionnement par défaut, qui sont 2 à 5. L'argument `19' assure que `foo' sera appelé avant les scripts contenant les nombres supérieurs à 20. 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.4.1, `La commande `dpkg-divert''. * `equivs', voir Section 6.4.2, `Le paquet `equivs''. * `update-alternative', voir Section 6.4.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 et support des langues nationales'. 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(8) 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. Chargeurs de remplacement -------------------------------- Pour utiliser un autre chargeur, comme `grub' ou `loadlin', copier l'image du noyau Linux compilée `bzimage' vers un autre emplacement (par exemple, vers `/boot/grub' ou une partition MS-DOS). 2.7.4. Disquettes de démarrage personnalisées --------------------------------------------- La création d'une disquette de démarrage personnalisée est aidée par le paquet Debian `boot-floppies', qui se trouve normalement dans la section `admin' de l'archive FTP Debian. Les scripts shell de ce paquet produisent des disquettes de démarrage au format `syslinux'. Ce sont des disquettes formatées au format MS-DOS dont le « Master Boot Record » a été modifié pour qu'elles démarrent Linux directement (ou n'importe quel système d'exploitation défini dans la fichier `syslinux.cfg' sur la disquette). D'autres scripts dans ce paquet produisent des disquettes racines d'urgence et peuvent même reproduire les disquettes de base. Vous trouverez plus d'information à ce propos dans le fichier `/usr/doc/boot-floppies/README' après avoir installé le paquet `boot-floppies'. 2.7.5. 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/lib/modules_help/') 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.6. 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 Potato, la majeure partie de son contenu a été mis à jour pour Debian Woody (3.0r0) et Debian Sarge. 3.1. Astuces générales sur l'installation du système Linux ---------------------------------------------------------- En vue de minimiser les risques associés aux paquets de « testing » et « unstable », c'est une bonne habitude de configurer votre système Linux principal en dual boot avec un autre système Linux plus petit et stable. 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 juste conservateur » : * SCSI plutôt qu'IDE pour le travail, disque dur IDE/ATAPI pour l'utilisation privée. * 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 chiffres qui sont sur la grande puce 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. $ /usr/sbin/lspci -v |less $ pager /proc/pci $ pager /proc/interrupts $ pager /proc/ioports Ces commandes peuvent être lancées pendant le processus d'installation à partir de la console en appuyant sur ALT-F2. 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. Ceci peut changer avec la nouvelle Woody. 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. 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.7. 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 les disquettes de démarrage de la distribution de 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.3.6, ``dselect' -- configuration générale'. 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.3.6, ``dselect' -- configuration générale'. 3.1.8. 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 hôte intelligent (mode 2) tourne avec « fetchmail » avec un long intervalle (fall back) tourne avec « bind » comme serveur de nom en cache pour l'Internet depuis le réseau local 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 (10 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, `Construire une passerelle avec Debian' pour les détails de la configuration d'une passerelle pour le réseau local. 3.1.9. 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.2.2, `Ajouter un compte utilisateur' pour les détails. 3.1.10. Création des systèmes de fichiers ----------------------------------------- 3.1.10.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 paquetages.) 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.10.2. Monter les systèmes de fichiers ----------------------------------------- Montez les systèmes de fichiers ci-dessus proprement avec le fichier `fstab' suivant : # /etc/fstab: information du fichier système statique. # # 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 # # conserve les partitions séparées /dev/hda7 /home ext2 rw 0 2 /dev/hda8 /var ext2 rw 0 2 /dev/hda6 /var/lib/cvs ext2 rw 0 2 /dev/hda9 /usr ext2 rw 0 2 /dev/hda10 /var/cache/apt/archives ext2 rw 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 # backup bootable sous système Linux (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 Control-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.10.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, # cat >>/etc/modules vfat ^D ... 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 dans `/home/', `cdrom' et `floppy', qui pointent respectivement vers `/var/autofs/misc/cdrom' et `/var/autofs/misc/floppy'. * Ajoutez au groupe « users ». 3.1.10.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.11. 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 ça vous chante. 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.12. 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, de 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 Remplace avec un script personnalisé /etc/profile Garde copie de la distribution ( \w -> \W) /etc/skel/.bashrc Remplace avec une copie privée /etc/skel/.profile Remplace avec une copie privée /etc/skel/.bash_profile Remplace avec une copie privée ~/.bashrc Remplace avec une copie privée pour tous les comptes ~/.profile Remplace avec une copie privée pour tous les comptes ~/.bash_profile Remplace avec une copie privée pour tous les comptes Voir détails dans mon exemple. (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 Ceci permet au clavier ou à la souris d'être déconnecté et réinitialisé en redémarrant gpm après reconnexion. X restera activé ! Pour les souris Logitech 3 boutons PS/2, la configuration sera : /etc/gpm.conf /etc/X11/X86Config ou X86Config4 ============================================================= device=/dev/psaux Section "Pointer" responsiveness= Protocol "IntelliMouse" repeat_type=ms3 Device "/dev/gpmdata" type=ps2auto (Woody) append="" -------------------------------------------------------------- device=/dev/psaux Section "Pointer" responsiveness= Protocol "IntelliMouse" repeat_type=raw Device "/dev/gpmdata" type=ps2auto (Woody) append="" Si une souris normale à 2 boutons PS/2 est utilisée, paramétrez le protocole X à `Microsoft' et validez `Emulate3Buttons'. Pour les souris à roulette, vous pouvez configurer X avec le protocole réel, comme `IMPS/2'. Créez un lien symbolique `/dev/gpmdata' --> `/dev/mouse' pour réussir la configuration de certains utilitaires. Voir les détails dans mon script d'exemple. (examples/) 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 : * « Input Core Support » et « Input Core Support/Mouse Support » activés dans le noyau ou en modules. * « Support for USB », « Preliminary USB device filesystem », « UHCI » ou « OHCI » et « USB HID Support » activés dans le noyau ou en 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 à 3 boutons Logitech, la configuration devrait être : /etc/gpm.conf /etc/X11/X86Config or X86Config-4 =============================================================== device=/dev/input/mice Section "InputDevice" responsiveness= Option "Protocol" "ImPS/2" repeat_type=ms3 Option "Device" "/dev/input/mice" type=ps2 Option "ZAxisMapping" "4 5" append="" EndSection [Cette section sur les souris USB a été écrite par Jan Michael C Alonzo .] Voir Linux USB Project (http://www.linux-usb.org/) pour plus d'information. 3.4. Configuration NFS ---------------------- Configurer NFS dans `/etc/exports'. # echo "/ *.domainname-for-lan-hosts(rw,no_root_squash,nohide)" \ >> /etc/exports Voir détails dans mon exemple. (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. (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é. Le rang de l'OS signifie ce qui suit et plus grand est le nombre, plus haute est la priorité du serveur. 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.7, `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 cupsomatic-ppd # apt-get install cupsys-bsd cupsys-driver-gimpprint Ensuite, configurez le système avec n'importe quel navigateur Web : $ http://localhost:631 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.1, `Installation de avec `tasksel''. 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.3.6, ``dselect' -- configuration générale' et Section 11.1, `Editeurs populaires'. De plus, vous pouvez remplacer des paquets par défaut avec d'autres ayant plus d'options. * lynx-ssh (à la place de lynx) * ... * ... 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 mettre en route ip-masquerading (ftp etc.) pour 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 de CD-RW ------------------------------------- Éditer les fichiers suivants : /etc/lilo.conf (ajouter append="hdc=ide-scsi", lancer lilo pour activer) /dev/cdrom (lien relatif # cd /dev; ln -sf scd0 cdrom) /etc/modules (ajouter "ide-scsi" et "sg". Si besoin est "sr" après cela.) Voir Section 9.3, `Graveur 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). La même chose peut être faite directement à l'invite de démarrage. Voir Section 8.1.4, `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 optionnel Voir `/usr/share/doc/ppp/README.Debian.gz' pour plus de détails. D'une autre façon, le paquet `wvdial' peut être utilisé pour configurer l'accès PPP. 3.7.7. Autre configuration à vérifier dans `/etc' ------------------------------------------------- Vous pouvez avoir envie d'ajouter un fichier `/etc/cron.deny', qui manque dans l'installation standard de Debian (vous pouvez copier `/etc/at.deny'). ------------------------------------------------------------------------------- 4. Didacticiels Debian ---------------------- Cette section propose une orientation basique dans le monde Linux pour les débutants. Si vous utilisez Linux depuis un certain temps déjà, utilisez-la comme un inventaire. 4.1. Sources d'information -------------------------- Jetez un oeil au Debian Documentation Project (DDP) (http://www.debian.org/doc/ddp) qui fait référence pour Debian. La plupart de ces documents sont généralement installés dans `/usr/share/doc/'. Regardez aussi dans `/usr/share/doc-base/', qui offre des liens vers des documents sur votre système. Ajoutez `export CDPATH=.:/usr/share/doc:/usr/src/local' à votre `~/.bash_profile' pour accéder facilement aux répertoires de documentation. Le Linux Documentation Project (LDP) (http://www.linuxdoc.org/) est une référence sur Linux en général. En principe le contenu du LDP est installé dans `/usr/share/doc/HOWTO/'. La navigation a travers les documents locaux ou sur des sites ftp distants se fait en utilisant la touche `F9' dans Midnight Commander (voir Section 4.3, `Midnight Commander (MC)'). 4.2. La console Linux --------------------- 4.2.1. Se connecter ------------------- Dans un système Linux ordinaire, il y a 6 pseudo-terminals indépendants. Le passage de l'un a l'autre se fait avec la combinaison de touches `Left-Alt' et `F1' à `F6' simultanément. Chaque pseudo-terminal permet de se connecter de manière indépendante à vos différents comptes. L'environnement multi-utilisateurs est une des grandes fonctionnalités d'Unix à laquelle on devient vite accro. Sous Unix, une bonne habitude à prendre est de se connecter en tant qu'utilisateur ordinaire pour une utilisation normale. Je dois admettre que je continue a utiliser le compte du super utilisateur (root) plus qu'il ne se doit juste à cause de son aisance et de ma négligence. Désormais j'utilise un compte ordinaire avec les commandes `sudo', `super' ou `su -c' pour acquérir des accès root limités. 4.2.2. Ajouter un compte utilisateur ------------------------------------ Après l'installation du système, j'ajoute généralement un compte utilisateur ordinaire. Si le nom d'utilisateur est "pingouin", # adduser pingouin le créera. J'utilise la commande `vigr' pour éditer `/etc/group' comme cela : src:x:40:admin, debian, ... staff:x:50:admin ... J'utilise le groupe `staff' pour les utilisateurs qui effectuent des tâches administratives et ont le privilège exclusif de `su' (voir Section 9.2.2, `Pourquoi `GNU su' ne supporte pas le groupe `wheel'') et le groupe `src' pour CVS (voir Chapitre 12, `CVS'). Dans le système installé par défaut, le groupe `staff' possède `/home', donc ses membres peuvent maintenir les comptes utilisateurs. Le groupe `src' possède `/usr/src', utilisé pour compiler un noyau, etc. Utilisez `adduser', `addgroup', `vipw', `vipw -s', `vigr', et `vigr -s' pour configurer proprement les utilisateurs et les groupes. 4.2.3. Comment éteindre ----------------------- Comme tout autre système d'exploitation moderne où les fichiers sont mis en cache en mémoire, Linux a besoin d'être éteint proprement avant que le courant ne soit coupé sans danger. Voici la commande en mode multi-utilisateur : # shutdown -h now Voici la commande en mode mono-utilisateur (single-user mode) : # poweroff -i -f Attendez jusqu'à ce que le système vous affiche "System halted" (NdT : système arrêté), puis coupez le courant. Si apm est activé dans le BIOS et sous Linux, le système s'éteindra puis coupera l'alimentation par lui même. Voir Section 3.7.4, `Grande capacité mémoire et arrêt automatique' pour plus de détails. 4.2.4. Édition en ligne de commande ----------------------------------- L'interpréteur de commande (shell), `bash', est doté d'une possibilité d'édition de commandes. Utilisez simplement la flèche vers le haut pour entrer dans l'historique, ensuite utilisez les flèches comme vous l'entendriez. Autres combinaisons de touches importantes à se rappeler : Ctrl-C : Interrompre un programme Ctrl-D : Interrompre une entrée Ctrl-S : Interrompre la sortie à l'écran Ctrl-Q : Réactiver la sortie à l'écran Ctrl-Alt-Del : Redémarrer/arrêter le système (voir /etc/inittab) Click-gauche-et-déplace-souris : Sélectionner et copier dans le presse-papier (gpm) Ctrl-click-souris : Coller le contenu du presse-papier au niveau du curseur (gpm) Sur une console Linux normale, seules les touches `Ctrl' gauche et `Alt' fonctionnent comme on le pense. 4.2.5. Commandes de base à retenir ---------------------------------- Ce qui suit sont les commandes de base Unix : ls, ls -al, ls -d, pwd, cd, cd ~user, cd -, cat /etc/passwd, less, bg, fg, kill, killall, uname -a, type commandname, sync, netstat, ping, traceroute, top, vi, ps aux, tar, zcat, grep, ifconfig, ... Cherchez leur signification en les entrant à une invite de commande ou en tapant `man' ou `info' suivi de leur nom (NdT : si votre système est localisé correctement, vous obtiendrez de l'aide en français). Beaucoup de commandes Linux afficheront une aide brève si vous les invoquez de l'une des manières suivantes : $ nomdelacommande --help $ nomdelacommande -h `whatis _nomdelacommande_' donne un résumé d'une ligne de n'importe quelle commande ayant une entrée dans les pages de manuel. 4.2.6. Le système X Window -------------------------- Pour démarrer le système X Window depuis la console : # exec startx Un clic droit sur la fenêtre principale (root window) affichera un menu de sélections. 4.2.7. Commandes importantes au clavier --------------------------------------- Quelques combinaisons importantes pour la console Linux à retenir : Alt-F1 à F6 : Passer à d'autres pseudo-terminaux Ctrl-Alt-F1 à F6 : Passer à d'autres pseudo-terminaux (depuis un X-window, DOSEMU, etc.) Alt-F7 : Retourner à X-window Ctrl-Alt-moins : Changer la résolution de l'écran dans X-window Ctrl-Alt-plus : Changer la résolution dans l'autre sens dans X-window Ctrl-Alt-Backspace : Arrêter X-window Alt-X, Alt-C, Alt-V : Combinaisons de touches usuelles Windows/Mac pour Couper, Copier, Coller avec la touche Ctrl- qui est remplacée par ces Alt- dans certain programmes comme Netscape Composer. 4.3. Midnight Commander (MC) ---------------------------- Midnight Commander (MC) est le "couteau suisse" GNU pour la console Linux et autres environnements de terminaux. 4.3.1. Installer MC ------------------- # apt-get install mc Ensuite, ajoutez la fonction suivante à votre `~/.bashrc' (ou dans `/etc/bash.bashrc', appelé depuis le `.bashrc'). mc () { mkdir -p ~/.mc/tmp 2> /dev/null chmod 700 ~/.mc/tmp MC=~/.mc/tmp/mc-$$ /usr/bin/mc -P "$@" > "$MC" cd "$(cat $MC)" rm -f "$MC" unset MC; } Ceci autorise MC à changer de répertoire de travail avant de sortir. Si vous utilisez un terminal, comme `kon' et `Kterm' pour le japonais, qui utilise certains caractères graphiques, ajouter `-a' à la ligne de commande de mc peut aider à prévenir quelques problèmes. 4.3.2. Démarrer MC ------------------ $ mc Toutes les opérations sur fichiers peuvent être effectuées depuis les menus de MC, moyennant un effort minimal de la part de l'utilisateur. 4.3.3. Gestionnaire de fichiers ------------------------------- Par défaut on a deux panneaux contenant la liste des fichiers de répertoires. Un autre mode utile est de configurer la fenêtre de droite sur "information" pour voir l'information sur le type de privilèges, etc. Ci-dessous, quelques raccourcis clavier essentiels. Avec le démon `gpm', on peut aussi utiliser une souris. (Vérifiez d'avoir appuyé sur la touche Majuscule pour obtenir le comportement normal concernant le "couper/coller" dans MC.) * `F1' : Menu d'aide * `F3' : Afficheur de fichier interne * `F4' : Éditeur interne * `F9' : Active le menu déroulant * `F10' : Quitte Midnight Commander * `Tab' : Passe d'une fenêtre à l'autre * `Insert' : Marque le fichier pour des opérations multiples telles que copier * `Del' : Efface le fichier (Soyez prudent --- réglez MC pour qu'il soit en mode de sauvegarde.) * Touches du curseur : Auto-explicatif 4.3.4. Astuces en ligne de commande ----------------------------------- * Toute commande `cd' changera le répertoire affiché à l'écran. * `Contrôle-Entrée' ou `Alt-Entrée' copiera un nom de fichier sur la ligne de commande. Utilisez ceci avec les commandes `cp' ou `mv' associées avec l'édition en ligne de commande. * `Alt-Tab' affichera les différentes applications à ouvrir (dans un terminal) ou ouvertes, si la commande est utilisée hors d'un terminal (NdT : et avec un clavier configuré en français). * On peut spécifier le répertoire de départ pour les deux fenêtres comme arguments à MC ; par exemple, `mc /etc /root'. * `Esc' + == `Fn' (càd., `Esc' + `1' = `F1', etc. ; `Esc' + `0' = `F10') * `Esc' key == `Alt' key (= `Meta', `M-') ; càd., tapez `Esc' + `c' pour `Alt-c' 4.3.5. Éditeur -------------- L'éditeur interne possède une manière intéressante de procéder à un copier-coller. Presser la touche `F3' marque le début de la sélection, une seconde fois `F3' marque la fin de la sélection et met celle-ci en surbrillance. Ensuite vous pouvez bouger votre curseur. Si vous appuyez sur `F6', la zone sélectionnée sera déplacée jusqu'à l'endroit où se trouve le curseur. Si vous pressez sur `F5', la zone sélectionnée sera copiée et insérée à l'endroit où se trouve le curseur. `F2' sauvera le fichier. `F10' vous fera quitter l'éditeur. La plupart des raccourcis clavier fonctionnent à l'intuition. Cet éditeur peut être démarré directement avec un fichier chargé : $ mc -e fichier_à_éditer $ mcedit fichier_à_éditer Il ne s'agit pas d'un éditeur multi-fenêtres mais on peut faire usage de plusieurs consoles Linux pour atteindre le même effet. Pour copier d'une fenêtre sur l'autre, utilisez les touches `Alt-Fn' pour basculer d'une console virtuelle à l'autre et utilisez "File->Insert file" ou "File->Copy to file" pour déplacer une portion d'un fichier dans un autre fichier. Cet éditeur interne peut être remplacé par n'importe quel autre éditeur externe de votre choix. De plus, de nombreux programmes utilisent les variables d'environnement `EDITOR' ou `VISUAL' pour décider quel éditeur utiliser. Si vous n'êtes pas à l'aise avec `vim', configurez ces variables sur `mcedit' en ajoutant ces lignes dans le fichier `~/.bashrc' : ... export EDITOR=mcedit export VISUAL=mcedit ... Je recommande vraiment de positionner ces variables à `vim', si c'est possible. Utiliser fréquemment les commandes de vi(m) est une bonne chose à faire, puisqu'elles sont toujours présentes dans le monde Linux/Unix. 4.3.6. Visionneur ----------------- MC possède un visionneur intelligent. C'est un très bon outil pour chercher des mots dans des documents. Je l'utilise toujours pour lire les fichiers qui sont dans le répertoire `/usr/share/doc'. C'est la manière la plus rapide de surfer dans la masse d'informations sous Linux. Ce visionneur peut être chargé directement ainsi : $ mc -v fichier _à_voir (Notez que certains paquets violent la Charte Debian et continuent à stocker leurs documents dans `/usr/doc'.) 4.3.7. Possibilités de démarrage automatique -------------------------------------------- Faites `Entrée' sur un fichier, et le programme approprié vous montrera le contenu du fichier. Il s'agit là d'une possibilité très utile de MC. exécutable : Exécute la commande fichiers man, html : Envoie le contenu à un visionneur fichiers tar, gz, rpm : Affiche le contenu comme sous-répertoire Afin de permettre à ces possibilités de visualisation de fonctionner, les fichiers visionnables ne doivent pas être exécutables. Changez leur statut en utilisant la commande `chmod' ou via le menu de MC. 4.3.8. Système de fichiers FTP virtuel -------------------------------------- MC peut être utilisé pour accéder à des fichiers sur l'Internet via FTP. Accédez au menu avec la touche `F9', puis tapez `p' pour activer le système de fichiers FTP. Entrez une URL sous la forme `username:passwd@hostname.domainname', ce qui permettra d'être dans un répertoire distant comme s'il était local. 4.4. Étude approfondie ---------------------- Il existe beaucoup de bonnes références pour débutants sur UNIX ailleurs que sur ce site. Les livres de l'éditeur O'Reilly sont très souvent de bons guides dans n'importe quel domaine de l'informatique. Le document Tips-HOWTO (http://www.tldp.org/HOWTO/Tips-HOWTO.html) du LDP est une autre source d'information à consulter. Voir Chapitre 15, `Support Debian' pour plus de ressources. ------------------------------------------------------------------------------- 5. Mise à jour d'une distribution --------------------------------- Les notes de version officielles pour mettre à jour sont situées à http://www.debian.org/releases/stable/releasenotes et http://www.debian.org/releases/testing/releasenotes (en développement). 5.1. Préparation de la transition (potato vers woody)