Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Debian Reference

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 182

Guide de rfrence pour Debian

Osamu Aoki <debian@aokiconsulting.com> Coordinateur de traduction en Franais : Guillaume Erbs <gerbs@free.fr> Auteurs page 163

CVS, Sun, 13 Oct 2002 22 :40 :13 -0600

Rsum
Ce Guide de rfrence pour Debian (http://qref.sourceforge.net/) se propose de donner une vue gnrale du systme Debian comme guide de lutilisateur aprs installation. Cela couvre beaucoup daspects de ladministration systme laide dexemples de commandes shell. Des didacticiels sur les bases, des astuces, et dautres informations sont fournies sur des sujets comme les concepts fondamentaux du systme Debian, des astuces dinstallation, la gestion des paquets Debian, le noyau Linux sous Debian, la conguration du systme, la conguration dune passerelle, les diteurs de texte, CVS, la programmation, et GnuPG pour des non-dveloppeurs.

Copyright
Copyright 2001-2002 by Osamu Aoki <debian@aokiconsulting.com> Copyright (Chapter 2) 1996-2001 by Software in the Public Interest Ce document peut tre utilis selon les termes de la Licence Publique Gnrale 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 prsente notice de copyright et la prsente notice de permission soient prserves sur toutes les copies. Il est permis de copier et distribuer des versions modies de ce document selon les conditions dune copie conforme, condition que le travail driv rsultant soit entirement distribu selon les termes dune notice de permission identique celle-ci. Il est permis de copier et distribuer des traductions de ce document dans dautres langues, selon les conditions pour versions modies ci-dessus, sauf que cette notice de permission peut tre incluse sous forme dune traduction approuve par la Free Software Foundation la place de lAnglais original.

Table des matires


1 Prface 1.1 1.2 1.3 1.4 2 Document ofciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conventions du document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conguration de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fondements de la distribution Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 2 3 5 5 5 6 6 7 7 8 8 8 9 9

Notions fondamentales sur Debian 2.1 Les archives Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 Structure de rpertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distributions Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La distribution stable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La distribution testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La distribution unstable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La distribution frozen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les noms de code de la distribution Debian . . . . . . . . . . . . . . . . . . . . Noms de code utiliss par le pass . . . . . . . . . . . . . . . . . . . . . . . . . Source dinspiration pour les noms de code . . . . . . . . . . . . . . . . . . . .

2.1.10 Le rpertoire pool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.11 Notes historiques sur sid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.12 Paquets tlchargs dans incoming . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.13 Rcuprer un paquet ancien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

TABLE DES MATIRES

ii

2.1.14 Sections architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.15 Le code source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Systme de gestion des paquets Debian . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 Vue gnrale des paquets Debian . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Format des paquets Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Conventions de nommage pour les chiers de paquets Debian . . . . . . . . . 13 Prservation de la conguration locale . . . . . . . . . . . . . . . . . . . . . . . 13 Scripts de maintenance Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Priorit des paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Paquets virtuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Dpendances des paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Signication de pre-depends . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.2.10 Etat dun paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2.11 Garder des paquets lors dune mise jour . . . . . . . . . . . . . . . . . . . . . 17 2.2.12 Paquets sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.13 Construire des paquets binaires partir dun paquet source . . . . . . . . . . 18 2.2.14 Crer de nouveaux paquets Debian . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3 Mettre jour un systme Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.4 Mthodes de mise jour dun systme Debian . . . . . . . . . . . . . . . . . . 20 Vue gnrale des outils de gestion de paquets . . . . . . . . . . . . . . . . . . 20 dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 APT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 dselect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Mise jour dun systme en marche . . . . . . . . . . . . . . . . . . . . . . . . 21 Fichiers darchive .deb tlchargs et sauvegards . . . . . . . . . . . . . . . 21 Garder une trace des mises jour . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Le processus de dmarrage de Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4.1 2.4.2 Le programme init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Niveaux de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

TABLE DES MATIRES

iii

2.4.3 2.5 2.6 2.7

Personnaliser le processus de dmarrage . . . . . . . . . . . . . . . . . . . . . 23

Support de la diversit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Internationalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Debian et le noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 Compiler un noyau avec des sources non Debian . . . . . . . . . . . . . . . . 25 Outils pour compiler un noyau personnalis . . . . . . . . . . . . . . . . . . . 25 Chargeurs de remplacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Disquettes de dmarrage personnalises . . . . . . . . . . . . . . . . . . . . . 26 Dispositions spciales pour manipuler les modules . . . . . . . . . . . . . . . 26 Dsinstaller le paquet dun vieux noyau . . . . . . . . . . . . . . . . . . . . . . 26 29

Installation du systme Debian 3.1

Astuces gnrales sur linstallation du systme Linux . . . . . . . . . . . . . . . . . . 29 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 Compatibilit matrielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Dterminer le matriel et les puces du PC . . . . . . . . . . . . . . . . . . . . . 30 Trouver le matriel du PC avec Debian . . . . . . . . . . . . . . . . . . . . . . 30 Trouver le matriel du PC avec dautres systmes dexploitation (SE) . . . . . 30 Le Mythe Lilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Choix des disquettes de boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Nom dhte et IP utiliser pour le rseau local . . . . . . . . . . . . . . . . . . 32 Comptes utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.1.10 Cration des systmes de chiers . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.1.11 Lignes directrices pour la mmoire DRAM . . . . . . . . . . . . . . . . . . . . 36 3.1.12 Espace de Swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.2 3.3 Conguration de Bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Conguration de la souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.3.1 3.3.2 Souris PS/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Souris USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

TABLE DES MATIRES

iv

3.4 3.5 3.6

Conguration NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Conguration Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Conguration de limprimante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.6.1 3.6.2 lpr/lpd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 CUPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.7

Autres conseils de conguration de lhte . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.7.1 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 Installer quelques paquets supplmentaires aprs linstallation . . . . . . . . 42 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Conguration de base de CD-RW . . . . . . . . . . . . . . . . . . . . . . . . . 43 Grande capacit mmoire et arrt automatique . . . . . . . . . . . . . . . . . . 43 tranges problmes daccs certains sites web . . . . . . . . . . . . . . . . . 44 Conguration dune connexion RTC avec PPP . . . . . . . . . . . . . . . . . . 44 Autre conguration vrier dans /etc . . . . . . . . . . . . . . . . . . . . . 45 47

Didacticiels Debian 4.1 4.2

Sources dinformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 La console Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 Se connecter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Ajouter un compte utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Comment teindre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 dition en ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Commandes de base retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Le systme X Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Commandes importantes au clavier . . . . . . . . . . . . . . . . . . . . . . . . 50

4.3

Midnight Commander (MC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.3.1 4.3.2 4.3.3 4.3.4 Installer MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Dmarrer MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Gestionnaire de chiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Astuces en ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

TABLE DES MATIRES

4.3.5 4.3.6 4.3.7 4.3.8 4.4 5

diteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Visionneur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Possibilits de dmarrage automatique . . . . . . . . . . . . . . . . . . . . . . 53 Systme de chiers FTP virtuel . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

tude approfondie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 55

Mise jour dune distribution 5.1 5.2 5.3 5.4

Prparation de la transition (potato vers woody) . . . . . . . . . . . . . . . . . . . . . 55 Mise jour vers Woody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Conguration de Woody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Amliorer le chier sources.list . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 59

Gestion des paquets Debian 6.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.1.1 6.1.2 Outils principaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Outils pratiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

6.2

Commandes de survie Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7 6.2.8 6.2.9 Installation de tches avec tasksel . . . . . . . . . . . . . . . . . . . . . . . . 60 Systme dinstallation avec APT . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Systme de mise jour avec APT . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Rechercher les bogues de Debian et demander de laide . . . . . . . . . . . . . 62 Rsolution de problmes de mise jour avec APT . . . . . . . . . . . . . . . . 63 Sauvetage avec dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Sauver un systme aprs avoir effac /var . . . . . . . . . . . . . . . . . . . . 64 Installer un paquet sur un systme qui ne dmarre plus . . . . . . . . . . . . . 65 Que faire si dpkg est cass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.3

Commandes nirvana de Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.3.1 6.3.2 Informations sur un chier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Informations sur un paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

TABLE DES MATIRES

vi

6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.3.8 6.3.9

Recongurer les paquets installs . . . . . . . . . . . . . . . . . . . . . . . . . 67 Enlever et purger des paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Garder de vieux paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 dselect conguration gnrale . . . . . . . . . . . . . . . . . . . . . . . . . 68 Supprimer les paquets du cache . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Enregistrer/copier la conguration du systme . . . . . . . . . . . . . . . . . 69 Porter un paquet vers le systme stable . . . . . . . . . . . . . . . . . . . . . 69

6.3.10 Archive locale de paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.3.11 Convertir ou installer un paquet non Debian . . . . . . . . . . . . . . . . . . . 71 6.3.12 Vrier les chiers de paquets installs . . . . . . . . . . . . . . . . . . . . . . 71 6.4 Autres particularits de Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 7 La commande dpkg-divert . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Le paquet equivs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Commandes de rechange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 init System-V et niveaux de fonctionnement . . . . . . . . . . . . . . . . . . 73 Services dsactivs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 75

Le noyau Linux et Debian 7.1

Recompilation du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 7.1.1 7.1.2 Mthode Debian standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Mthode classique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

7.2

Le noyau 2.4 modulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 7.2.1 7.2.2 7.2.3 7.2.4 7.2.5 PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 SCSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Fonctions rseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Systme de chiers EXT3 ( > 2.4.17) . . . . . . . . . . . . . . . . . . . . . . . . 79 Support Realtek RTL-8139 dans le noyau 2.4 . . . . . . . . . . . . . . . . . . . 80

TABLE DES MATIRES

vii

Astuces Debian 8.1

81

Dmarrer le systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 8.1.1 8.1.2 8.1.3 8.1.4 Jai oubli le mot de passe de root ! (1) . . . . . . . . . . . . . . . . . . . . . . 81 Jai oubli le mot de passe de root ! (2) . . . . . . . . . . . . . . . . . . . . . . 82 Je ne peux pas lancer le systme . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Autres astuces avec linvite de dmarrage. . . . . . . . . . . . . . . . . . . . . 83

8.2

Enregistrer les activits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 8.2.1 8.2.2 8.2.3 Enregistrer les activits du shell . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Enregistrer les activits sous X . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Enregistrer les changements aux chiers de conguration . . . . . . . . . . . 84

8.3

Copier et archiver un sous-rpertoire entier . . . . . . . . . . . . . . . . . . . . . . . . 85 8.3.1 8.3.2 8.3.3 8.3.4 8.3.5 8.3.6 Commandes de base pour copier un sous-rpertoire entier . . . . . . . . . . . 85 cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 pax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 cpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 afio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

8.4

Rcupration dun systme bloqu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 8.4.1 8.4.2 Tuer un processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 ALT-SysRQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

8.5

Petites commandes utiles se rappeler . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 8.5.1 8.5.2 8.5.3 8.5.4 8.5.5 8.5.6 8.5.7 8.5.8 Pager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Mmoire libre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Rgler lheure (BIOS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Rgler lheure (NTP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Comment dsactiver lcran de veille . . . . . . . . . . . . . . . . . . . . . . . 89 Chercher dans la base de donnes administrative . . . . . . . . . . . . . . . . 89 Dsactiver le son (beep) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Messages derreur sur lcran de la console . . . . . . . . . . . . . . . . . . . . 90

TABLE DES MATIRES

viii

8.5.9

Rgler la console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

8.5.10 Remettre la console dans un tat sain . . . . . . . . . . . . . . . . . . . . . . . 91 8.5.11 Convertir des chiers texte DOS vers Unix . . . . . . . . . . . . . . . . . . . . 91 8.5.12 Modier des chiers grce aux expressions rationnelles . . . . . . . . . . . . . 91 8.5.13 Convertir un gros chier en plusieurs petits . . . . . . . . . . . . . . . . . . . 91 8.5.14 Bouts de scripts pour les tubes . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 8.5.15 Rcuprer du texte ou une archive de liste de diffusion partir dune page Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 8.5.16 Imprimer joliement une page Web . . . . . . . . . . . . . . . . . . . . . . . . . 92 8.5.17 Mesurer la dure dune commande . . . . . . . . . . . . . . . . . . . . . . . . 93 8.5.18 Commande nice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 8.5.19 Programmer des activits (cron, at) . . . . . . . . . . . . . . . . . . . . . . . 93 8.5.20 Changement de console avec screen . . . . . . . . . . . . . . . . . . . . . . . 94 8.5.21 Bases pour tester un rseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 8.5.22 Vider les courriers lectroniques de la le locale . . . . . . . . . . . . . . . . . 96 8.5.23 Supprimer les courriers lectroniques gels de la le locale . . . . . . . . . . . 96 8.5.24 Supprimer le contenu dun chier . . . . . . . . . . . . . . . . . . . . . . . . . 97 8.5.25 Fichiers fantmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 8.5.26 chroot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 8.5.27 Monter une image de disque dur . . . . . . . . . . . . . . . . . . . . . . . . . . 98 8.5.28 Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 9 Congurer un systme Debian 9.1 99

Astuces sur linitialisation du systme . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 9.1.1 9.1.2 9.1.3 Personnaliser les scripts dinitialisation . . . . . . . . . . . . . . . . . . . . . . 99 Personnaliser le journal du systme . . . . . . . . . . . . . . . . . . . . . . . . 99 Optimisation de laccs au matriel . . . . . . . . . . . . . . . . . . . . . . . . 100

9.2

Contrle daccs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 9.2.1 Contrle daccs avec PAM et login . . . . . . . . . . . . . . . . . . . . . . . . 100

TABLE DES MATIRES

ix

9.2.2 9.2.3 9.2.4 9.2.5 9.2.6 9.3

Pourquoi GNU su ne supporte pas le groupe wheel . . . . . . . . . . . . . . . 101 Signication des groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 sudo un environnement de travail plus sr . . . . . . . . . . . . . . . . . . . 102 Contrle daccs aux dmons . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Lightweight Directory Access Protocol . . . . . . . . . . . . . . . . . . . . . . 103

Graveur de CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.3.6 9.3.7 9.3.8 9.3.9 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Premire approche : modules + lilo . . . . . . . . . . . . . . . . . . . . . . . 104 Seconde approche : recompiler le noyau . . . . . . . . . . . . . . . . . . . . . . 105 tapes post-conguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Image de CD (bootable) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Graver un CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Crer limage dun CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Images de CD Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Systme de sauvegarde sur CD-R . . . . . . . . . . . . . . . . . . . . . . . . . 108

9.3.10 Copier un CD audio sur un CD-R . . . . . . . . . . . . . . . . . . . . . . . . . 108 9.4 Le programme X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 9.4.1 9.4.2 9.4.3 9.4.4 9.4.5 9.4.6 9.4.7 9.4.8 9.4.9 Serveur X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Client X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Connexion TCP/IP X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Connexion X distante : xhost . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Connexion X distante : ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 xterm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Devenir root sous X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Polices TrueType dans X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Navigateur Web (graphique) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

9.4.10 CJK et X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 9.5 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 9.5.1 Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

TABLE DES MATIRES

9.5.2 9.5.3 9.5.4 9.5.5 9.5.6 9.6

Redirection de port tunnel SMTP/POP3 . . . . . . . . . . . . . . . . . . . . . 117 Se connecter avec moins de mots de passe . . . . . . . . . . . . . . . . . . . . 117 Clients SSH trangers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 SSH agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Problmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Logiciels de courrier lectronique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 9.6.1 9.6.2 9.6.3 9.6.4 9.6.5 Agent de transport de courrier lectronique (Exim) . . . . . . . . . . . . . . . 119 Tout rcuprer pour les adresses e-mail non existantes (Exim) . . . . . . . . . 119 Utilitaire de courrier lectronique (fetchmail) . . . . . . . . . . . . . . . . . . . 120 Utilitaire de courrier lectronique (procmail) . . . . . . . . . . . . . . . . . . . 120 Agent pour utilisateur de courrier lectronique (Mutt) . . . . . . . . . . . . . 121

9.7

Localisation et support des langues nationales . . . . . . . . . . . . . . . . . . . . . . 121 9.7.1 9.7.2 9.7.3 9.7.4 9.7.5 Support des langues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Activer le support des locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Activer une locale particulire . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Aprs locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 125

10 Construire une passerelle avec Debian

10.1 Conguration rseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 10.1.1 Conguration de la passerelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 10.1.2 IP-masquerade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 10.1.3 Points principaux de la conguration rseau pour une passerelle . . . . . . . 127 10.2 Grer plusieurs connexions lInternet . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 11 Editeurs 129

11.1 Editeurs populaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 11.2 Editeurs de sauvetage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 11.3 Emacs et Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

TABLE DES MATIRES

xi

11.3.1 Conseils pour Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 11.3.2 Conseils pour Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 11.3.3 Dmarrer lditeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 11.3.4 Rsum des commandes de lditeur (Emacs, Vim) . . . . . . . . . . . . . . . 131 11.3.5 Conguration de Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 11.3.6 Ctags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 11.3.7 Convertir un cran avec syntaxe en surbrillance en un source HTML . . . . . 134 11.3.8 Ecran scind avec vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 12 CVS 137

12.1 Installation dun serveur CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 12.2 Exemples de sessions CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 12.2.1 CVS anonyme (tlchargement seulement) . . . . . . . . . . . . . . . . . . . . 138 12.2.2 Utilisation dun serveur CVS local . . . . . . . . . . . . . . . . . . . . . . . . . 138 12.2.3 Utilisation dun pserver CVS distant . . . . . . . . . . . . . . . . . . . . . . . . 138 12.2.4 Utilisation dun CVS distant avec ssh . . . . . . . . . . . . . . . . . . . . . . . 138 12.2.5 Crer une nouvelle archive CVS . . . . . . . . . . . . . . . . . . . . . . . . . . 138 12.2.6 Travailler avec CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 12.2.7 Exportation de chiers partir de CVS . . . . . . . . . . . . . . . . . . . . . . 140 12.2.8 Administrer CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 12.3 Rsoudre les problmes de CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 12.3.1 Permissions de chiers dans le dpt . . . . . . . . . . . . . . . . . . . . . . . 140 12.3.2 Bit dexcution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 12.4 Commandes CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 13 Programmation 143

13.1 O commencer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 13.2 BASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 13.3 AWK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

TABLE DES MATIRES

xii

13.4 PERL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 13.5 PYTHON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 13.6 MAKE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 13.7 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 13.7.1 Programme simple en C (gcc) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 13.7.2 Dboguer (gdb) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 13.7.3 Flex un meilleur Lex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 13.7.4 Bison un meilleur Yacc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 13.7.5 Autoconf uninstall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 13.8 SGML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 13.9 Paquetage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 14 GnuPG 153

14.1 Installer GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 14.2 Utiliser GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 14.3 Grer GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 14.4 Utilisation avec Mutt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 15 Support Debian 157

15.1 Rfrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 15.2 Trouver le sens dun mot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 15.3 Systme de suivi des bogues Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 15.4 Listes de diffusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 15.5 Internet Relay Chat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 15.6 Moteurs de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 15.7 Sites internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 A Annexe 163

A.1 Auteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 A.2 Garanties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

TABLE DES MATIRES

xiii

A.3 Retour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 A.4 Format du document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 A.5 Labyrinthe de Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 A.6 Les citations Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

TABLE DES MATIRES

xiv

Chapitre 1

Prface
Ce Guide de rfrence pour Debian (http://qref.sourceforge.net/) se propose de donner une vue gnrale du systme Debian comme guide de lutilisateur aprs installation. Le lecteur vis est quelquun qui veut lire des scripts shell. Je suppose que le lecteur a des bases sur les systmes de type Unix pour lire ce document. Jai pris la dcision de ne pas expliquer tout en dtail si cela peut tre trouv dans une page de manuel, une page info, ou un HOWTO. Plutt que de tout expliquer, jessaie de donner des informations pratiques plus directement en fournissant des squences de commandes exactes ou des scripts dexemple. Beaucoup des informations donnes consistent en rappels ou en pointeurs vers les rfrences ofcielles listes dans Rfrences page 157. Ceci partiellement parce que ce document a t dmarr en tant que Rfrence Rapide . Mon principe est de le garder court et simple. Pour une aide en vue dune maintenance urgente dun systme, rendez-vous Commandes de survie Debian page 60 immdiatement.

1.1

Document ofciel

La dernire version du document ofciel est dans larchive Debian dans le paquet debian-reference et est aussi disponible http://www.debian.org/doc/manuals/debian-reference/. La dernire version de dveloppement est http://qref.sourceforge.net/Debian/. Le projet est hberg http://qref.sourceforge.net/ o ce document est disponible au tlchargement dans les formats texte, HTML, PDF, SGML et PostScript.

Chapitre 1. Prface

1.2 Conventions du document


Le Guide de rfrence pour Debian procure de linformation par le biais de commandes simples en shell BASH. Voici les conventions utilises : # commande en compte ~root~ $ commande en compte utilisateur ... description de laction Voir BASH page 143 pour plus dinformation sur Bash. Rfrences : une page de manuel Unix est donne dans la forme bash(1). une page GNU TEXINFO est donne dans la forme info libc. un livre est donn dans la forme Le langage C. une URL est donne dans la forme http://www.debian.org/doc/manuals/debian-reference/. un chier est donn dans la forme /usr/share/doc/Debian/reference/. Les abrviations suivantes sont utilises : 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 installs dans /usr/share/doc/HOWTO/. Voir Rfrences page 157. Des exemples de scripts sont fournis dans le rpertoire des exemples (examples/) ; pour les chiers cachs, le prxe . est remplac par un _ .

1.3

Conguration de base

Si le systme est install avec le strict minimum comme paquets, asssurez-vous dexcuter 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 :)

Chapitre 1. Prface

1.4 Fondements de la distribution Debian


Debian se prsente sous la forme simultane de 3 ditions : stable : Convient pour un serveur de production. Ennuyeux pour une station de travail (ST). Voir La distribution stable page 6. testing : Convient pour une ST. Voir La distribution testing page 7. unstable : Ne pas charger cette dition aveuglment. Voir La distribution unstable page 7.

Lisez au moins la liste de discussion centrale debian-devel-announce@lists.debian.org pour des mises jour sur ltat de Debian. (NdT : Pour les francophones, vous trouverez de laide 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, trs stable maintenant), et Sid (en alpha-test). En aot 2002, juste aprs la sortie de Woody, cela correspond Woody (qualit de production), Sarge (en beta-test, elle sera assez difcile pendant quelque temps), et Sid (toujours en alpha-test). Lorsque les paquets dans unstable nont plus de bogues critiques (Release Critical, RC) rpertoris pendant environ une semaine de test, ils sont automatiquement inclus dans testing. Voir Les archives Debian page 5. En thorie, il y a deux choses que vous pouvez faire pour disposer des dernires versions des applications. Systme dinstallation avec APT page 60 (principalement pour des stations de travail) Porter un paquet vers le systme stable page 69 (principalement pour des serveurs) Aprs avoir expliqu quelques lments fondamentaux de la distribution Debian dans Notions fondamentales sur Debian page 5, je vais prsenter quelques informations de base pour vous aider vivre tranquillement avec les dernires applications, en tirant parti de la distribution testing et de la distribution unstable de Debian. Les impatients devront aller immdiatement Commandes de survie Debian page 60. Bonne et heureuse mise jour !

Chapitre 1. Prface

Chapitre 2

Notions fondamentales sur Debian


Ce chapitre donne des notions fondamentales sur le systme Debian pour des non-dveloppeurs. Pour des informations ofcielles, voir : Charte Debian Manuel du paquetage Debian (Potato) Rfrence du dveloppeur Debian Guide des nouveaux responsables Debian lists dans Rfrences page 157. Si lon recherche des explications bases sur des solutions et sans les dtails, se rfrer directement Gestion des paquets Debian page 59 ou aux chapitres appropris. Ce chapitre consiste en une rorganisation de documents pris dans la FAQ Debian , an quun administrateur systme Debian puisse dbuter.

2.1
2.1.1

Les archives Debian


Structure de rpertoires

Les logiciels paquets pour Debian sont disponibles dans un des nombreux arbres de rpertoires sur chaque site mirroir Debian (http://www.debian.org/misc/README.mirrors) accessible par FTP ou HTTP. Les rpertoires suivants sont sur chaque mirroir Debian sous le rpertoire debian : /dists/ : Ce rpertoire contient les distributions , et est utilis pour accder aux paquets actuellement disponibles dans les versions et pr-versions de Debian. Certains vieux paquets et chiers Packages.gz sont toujours l.

Chapitre 2. Notions fondamentales sur Debian

/pool/ : Nouvelle place de tous les paquets des versions et pr-versions de Debian. /tools/ : Utilitaires DOS pour crer des disquettes de dmarrage, partitionner un disque dur, compresser/dcompresser des chiers, et dmarrer Linux. /doc/ : La documentation de base de Debian, telle que la FAQ, les instructions pour faire un rapport de bogues, etc. /indices/ : Le chier Maintainers et les chiers override. /project/ : Principalement des ressources pour les dveloppeurs, comme : project/experimental/ : Ce rpertoire contient des paquets et des outils qui sont en dveloppement, et sont encore en tat de test alpha. Les utilisateurs ne devraient pas utiliser des paquets de ce rpertoire parce quils peuvent tre dangereux mme pour des utilisateurs expriments. project/orphaned/ : Paquets qui ont t abandonns par leur ancien responsable et ont t retirs de la distribution.

2.1.2

Distributions Debian

Normalement il y a trois distributions Debian dans le rpertoire 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 dnie par un lien symbolique vers le rpertoire rel, utilisant un nom de code et situ dans le rpertoire dists.

2.1.3

La distribution stable

Les paquets de la distribution stable, Debian Woody (3.0r0), sont enregistrs dans le rpertoire stable (lien symbolique vers Woody) : stable/main/ : Ce rpertoire contient les paquets constituant la version la plus rcente du systme Debian. Ces paquets sont aussi conformes aux Principes du logiciel libre selon Debian (http://www. debian.org/social_contract#guidelines) (aussi disponible dans le chier /usr/share /doc/debian/social-contract.txt install par le paquet debian-doc), et sont tous utilisables et redistribuables librement. stable/non-free/ : Ce rpertoire contient des paquets dont la distribution est restreinte et ncessite que les distributeurs prennent soigneusement en compte les exigences spcies par la licence. Par exemple, certains paquets ont une licence qui interdit la distribution commerciale. Dautres peuvent tre redistribus mais sont en fait des partagiciels et non des logiciels libres. Les licences de chacun de ces paquets doivent tre tudies, et dans certains cas ngocies, avant que les paquets soient inclus dans une redistribution (par exemple, sur un CD-ROM).

Chapitre 2. Notions fondamentales sur Debian

stable/contrib/ : Ce rpertoire contient des paquets qui sont conformes aux principes du logiciel libre selon Debian et distribuables librement, mais dpendent dun paquet qui nest pas distribuable librement et nest ainsi disponible que dans la section non-free. En plus des emplacements ci-dessus, les paquets sont physiquement situs dans le rpertoire pool (Le rpertoire pool page 9). Ltat courant de la distribution stable est accessible sur la page web Les problmes 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 enregistrs dans le rpertoire testing (lien symbolique vers Sarge) aprs avoir subi une certaine quantit de tests dans unstable. En plus de ces emplacements, les nouveaux paquets sont situs dans le rpertoire pool (Le rpertoire pool page 9). Les sous-rpertoires main, contrib et non-free sont aussi prsents dans testing, spars par les mmes critres que pour stable. Les paquets doivent tre synchroniss pour toutes les architectures o ils sont compils et ne doivent pas avoir de dpendances qui les rendent ininstallables ; ils doivent aussi avoir moins de bogues critiques pour une sortie de version que ceux de unstable. De cette faon, on espre que testing est toujours prte tre candidate une sortie. Plus de dtails sur le mchanisme sont disponibles http://ftp-master.debian.org/testing/. Ltat 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 enregistrs dans le rpertoire unstable aprs avoir t tlchargs dans larchive Debian et y restent jusqu ce quils soient dplacs dans testing aprs quelque temps. Les nouveaux paquets sont situs dans le rpertoire pool Le rpertoire pool page 9. Les sous-rpertoires main, contrib et non-free sont aussi prsents dans unstable, et ont les mmes fonctions que dans stable. La distribution unstable contient une image du systme en dveloppement le plus rcent. Les utilisateurs sont encourags utiliser et tester ces paquets, mais sont prvenus de leur tat. Lavantage utiliser unstable est que vous tes toujours jour avec la dernire version du projet Debianmais si a casse, vous en dcouvrez les dsavantages :-)

Chapitre 2. Notions fondamentales sur Debian

Ltat courant de la distribution unstable est accessible la page web : Problmes de unstable (http://ftp-master.debian.org/testing/unstable_probs.html).

2.1.6

La distribution frozen

Lorsque la distribution testing est mre, elle est gele (NdT : frozen en Anglais), cest--dire que lon naccepte plus de nouveau code, seulement des corrections de bogues, si ncessaire. De plus, un nouvel arbre testing est cr dans le rpertoire dists, avec un nouveau nom de code. La distribution frozen subit quelques mois de test, avec par intermittence des mises jour et des geles compltes, ce quon appelle des cycles de test. (Le rcent processus de sortie de woody na pas vu la cration dun lien symbolique frozen, ainsi frozen ntait pas une distribution, juste une tape de dveloppement de testing). On garde une trace des bogues de la distribution frozen qui peuvent retarder la sortie dun paquet ou qui peuvent retarder la sortie de la distribution complte. Lorsque le nombre de bogues descend en dessous des valeurs maximum acceptables, la distribution frozen devient stable, est sortie, et la distribution stable prcdente devient obsolte (et est dplace dans les archives).

2.1.7

Les noms de code de la distribution Debian

Les noms des rpertoires physiques dans le rpertoire dists, comme Woody et Sarge, sont juste des noms de code. Lorsquune distribution Debian est en dveloppement, elle na pas de numro 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 rpertoire rel comme unstable changeait soudainement son nom en stable, beaucoup de donnes seraient tlcharger de nouveau). Actuellement, stable est un lien symbolique vers Woody et testing est un lien symbolique vers Sarge. Cela signie que Woody est lactuelle distribution stable et Sarge lactuelle distribution testing. unstable est un lien symbolique permanent vers sid, car sid est toujours la distribution unstable.

2.1.8

Noms de code utiliss par le pass

Les autres noms de code qui ont dj t utiliss 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.

Chapitre 2. Notions fondamentales sur Debian

2.1.9

Source dinspiration pour les noms de code

Jusquici, les noms de code viennent des caractres du lm Toy Story par Pixar. buzz (Buzz Lightyear) est le cosmonaute, rex est le tyranosaure, bo (Bo Peep) est la lle qui soccupe du mouton, hamm est la tirelire en forme de cochon, slink (Slinky Dog) est le chien, sarge est un chef des Hommes de lArme de Plastique Vert potato est, bien sr, Mr. Potato woody est le cowboy, sid est le garon d ct qui dtruit les jouets.

2.1.10

Le rpertoire pool

Historiquement, les paquets taient gards dans le sous-rpertoire dists correspondant la distribution qui les contenait. Il apparut que cela posait certains problmes, tels que la grande consommation de bande passante sur les mirroirs lorsque des changements majeurs taient effectus. Les paquets sont maintenant gards dans un large bassin (NdT : pool en Anglais), structur selon le nom du paquet source. Pour rendre cela grable, le bassin est subdivis par section (main, contrib et non-free) et par la premire lettre du nom du paquet source. Ces rpertoires contiennent plusieurs chiers : les paquets binaires pour chaque architecture, et les paquets source partir desquels les paquets binaires ont t gnrs. Vous pouvez trouver o se trouve chaque paquet en lanant une commande comme apt-cache showsrc mypackagename et en lisant la ligne Directory :. Par exemple, les paquets apache sont dans pool/main/a/apache/. Il y a tellement de paquets lib* quils sont traits diffremment : par exemple, les paquets libpaper sont dans pool/main/libp/libpaper/. Les rpertoires dists sont toujours utiliss pour les chiers dindex utiliss par des logiciels comme apt. De plus, les anciennes distributions nont pas t converties pour utiliser les bassins donc vous verrez des chemins contenant des distributions comme Potato ou Woody dans le champ den-tte Filename . Normalement, vous navez pas vous occuper de cela, puisque le nouvel apt et probalement lancien dpkg-ftp (voir Mthodes de mise jour dun systme Debian page 20) vont grer cela de faon transparente. Si vous souhaitez plus dinformation, consultez Debian Package Pools FAQ (http://people.debian.org/~joeyh/poolfaq) (en Anglais).

Chapitre 2. Notions fondamentales sur Debian

10

2.1.11

Notes historiques sur sid

Lorsque la sid daujourdhui nexistait pas, lorganisation de larchive Debian avait un dfaut majeur : on supposait que lorsquune architecture tait cre dans la distribution unstable courante, elle sortirait lorsque cette distribution deviendrait la nouvelle stable. Ce ntait pas le cas pour beaucoup darchitectures, ce qui entrainait que ces rpertoires devaient tre dplacs lors dune sortie. Cela ntait pas pratique parce que cela consommerait beaucoup de bande passante. Les administrateurs de larchive contournrent le problme pendant plusieurs annes en plaant les binaires des architectures non sorties dans un rpertoire spcial 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 cres dans larbre unstable de faon normale. Cette disposition tait quelque peu troublante pour les utilisateurs. Avec larrive des bassins de paquets (voir Le rpertoire pool page prcdente) pendant le dveloppement de la distribution Woody, les paquets binaires ont commenc tre stocks un emplacement standard dans le bassin, quelle que soit la distribution, de faon 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 dveloppement).

2.1.12

Paquets tlchargs dans incoming

Les paquets tlchargs sont dabord placs dans http://incoming.debian.org/ avant que lon ne vrie sils viennent bien dun dveloppeur Debian (et sont placs dans le sous-rpertoire DELAYED dans le cas dun tlchargement par un non responsable (Non-Maintainer Upload, NMU)). Une fois par jour, ils sont dplacs de incoming vers unstable. En cas durgence, vous pouvez vouloir installer des paquets de incoming avant quils natteignent unstable.

2.1.13

Rcuprer un paquet ancien

Alors que les distributions Debian rcentes sont gardes dans le rpertoire debian de chaque mirroir Debian (http://www.debian.org/misc/README.mirrors), les archives des anciennes distribution comme Slink sont gardes sur http://archive.debian.org/ ou dans le rpertoire debian-archive de chaque mirroir Debian. Les anciens paquets de testing et unstable sont situs http://snapshot.debian.net/.

Chapitre 2. Notions fondamentales sur Debian

11

2.1.14

Sections architectures

Dans chacun des arbres de rpertoires majeurs (dists/stable/main, dists/stable/non-free, dists/unstable/main/, etc.), les paquets binaires rsident dans des sous-rpertoires dont le nom indique larchitecture pour laquelle ils ont t compils. binary-all/, pour les paquets indpendants de larchitecture Cela inclut, par exemple, des scripts Perl, ou de la documentation pure. binary-platform/, pour les paquets qui sexcutent sur une plateforme particulire. Veuillez noter que les paquets binaires pour testing et unstable ne rsident plus dans ces rpertoires, mais dans le rpertoire de haut niveau pool. Les chiers dindex (Packages et Packages.gz) ont t gards, cependant, pour une compatibilit arrire. Pour les architectures binaires supportes, 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 systme Debian. De plus, les termes de la licence de la plupart des logiciels du systme requirent que le code source soit distribu avec le programme, ou quune offre permettant dobtenir le code source accompagne le programme. Normalement, le code source est distribu dans les rpertoires source, qui sont parallles aux rpertoires contenant les binaires spciques une architecture, ou plus rcemment dans le rpertoire pool (voir Le rpertoire pool page 9). Pour rcuprer le code source sans avoir tre familier avec la structure de larchive Debian, essayez une commande comme apt-get source mypackagename. Certains paquets, notamment pine, sont seulement disponibles sous forme de paquet source, cause de limitations de leur licence. (Rcemment, le paquet pine-tracker a t fourni pour faciliter linstallation de Pine.) Les procdures dcrites dans Porter un paquet vers le systme stable page 69 et Paquetage page 152 permettent de construire un paquet manuellement. Le code source peut tre ou ne pas tre disponible pour les paquets dans les rpertoires contrib et non-free, qui ne font pas formellement partie du systme Debian.

Chapitre 2. Notions fondamentales sur Debian

12

2.2 Systme de gestion des paquets Debian


2.2.1 Vue gnrale des paquets Debian

Les paquets contiennent gnralement tous les chiers ncessaires pour implmenter un ensemble de commandes ou caractristiques. Il existe deux types de paquets Debian : Les paquets binaires, qui contiennent des excutables, des chiers de conguration, des pages de man/info, la licence, et dautres documentations. Ces paquets sont distribus dans un format darchive spcique Debian (voir Format des paquets Debian de la prsente page) ; on les reconnat habituellement leur extension .deb. Les paquets binaires peuvent tre dpaquets en utilisant lutilitaire Debian dpkg ; les dtails sont fournis dans sa page de manuel. Les paquets sources, qui consistent en un chier .dsc dcrivant le paquet source (y compris le nom des chiers suivants), un chier .orig.tar.gz qui contient le source original nonmodi compress par tar et gzip, et habituellement un chier .diff.gz qui contient les modications du source original spciques Debian. Lutilitaire dpkg-source empaqute et dpaqute les archives source Debian ; les dtails sont fournis dans sa page de manuel. Linstallation de logiciels par le systme de paquets utilise des dpendances qui sont soigneusement conues par les responsables du paquet. Ces dpendances sont documentes dans le chier control associ chaque paquet. Par exemple, le paquet contenant le compilateur GNU C (gcc) dpend du paquet binutils qui inclut lditeur de liens et lassembleur. Si un utilisateur tente dinstaller gcc sans avoir dabord install binutils, le systme de gestion de paquets (dpkg) renverra un message derreur disant quil a besoin de binutils, et cessera linstallation de gcc. (Cependant, un utilisateur insistant pourra passer outre ; voir dpkg(8).) Pour plus de dtails, voir Dpendances des paquets page 16 ci-dessous. Les outils de paquetage de Debian peuvent tre utiliss pour : manipuler et grer des paquets ou des parties de paquets, aider lutilisateur dcouper des paquets qui doivent tre transmis travers un mdia de taille limite comme une disquette, aider les dveloppeurs construire des archives de paquets, et aider les utilisateurs installer des paquets qui se trouvent sur un site darchive Debian.

2.2.2

Format des paquets Debian

Un paquet Debian, ou un chier darchive Debian, contient les chiers excutables, les bibliothques, et la documentation associs un programme particulier ou un ensemble de programmes lis. Normalement, une archive Debian possde un nom de chier se terminant par .deb. Les donnes internes de ce format de paquets binaires Debian sont dcrites 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 chiers .deb.

Chapitre 2. Notions fondamentales sur Debian

13

Au moins jusqu la distribution Woody, tous les chiers darchive Debian taient manipuls par les commandes Unix standard ar et tar, mme lorsque les commandes dpkg ntaient pas disponibles.

2.2.3

Conventions de nommage pour les chiers de paquets Debian

Les noms de chiers des paquets Debian se conforment la convention suivante : foo_VersionNumber-DebianRevisionNumber.deb o foo reprsente le nom du paquet. Pour vrication, on peut dterminer le nom du paquet associ un chier darchive Debian particulier (chier .deb) de lune des faons suivantes : inspecter le chier Packages dans le rpertoire o il tait stock sur un site darchive Debian. Ce chier contient une description de chaque paquet ; le premier champ de chaque paragraphe est le nom de paquet formel. utiliser la commande dpkg --info foo_VVV-RRR.deb (o VVV et RRR sont les numros de version et de rvision du paquet en question, respectivement). Cela afche, entre autres, le nom du paquet correspondant au chier darchive dpaquet. La composante VVV est le numro de version spci par le dveloppeur original. Il ny a aucune norme spciant la numrotation des versions, donc elle peut avoir des formats aussi diffrents que 19990513 et 1.3.8pre1 . La composante RRR est le numro de rvision Debian spci par le dveloppeur Debian (ou un utilisateur sil choisit de construire le paquet lui-mme). Ce numro correspond au niveau de rvision du paquet Debian ; ainsi, un nouveau niveau de rvision correspond habituellement un changement dans le Makele Debian (debian/rules), le chier de contrle Debian (debian/control), les scripts dinstallation ou de suppression (debian/p*), ou les chiers de conguration utiliss avec le paquet.

2.2.4

Prservation de la conguration locale

La prservation des chiers congurables par lutilisateur est active par le mcanisme confles de Debian. Les chiers de conguration de lutilisateur (habituellement placs dans /etc) sont spcis dans le chier conffiles du systme de paquets Debian. Le systme de gestion des paquets garantie que ces chiers ne seront pas recouverts lors de la mise jour dun paquet. Lorsquil est possible de congurer le systme sans modier les chiers qui appartiennent aux diffrents paquets Debian, il est conseill de ne pas les modier mme si ce sont des confles . Cela permet des oprations de mise jour plus rapides et en douceur. Pour dterminer exactement quels sont les chiers prservs lors dune mise jour, lancez la commande :

Chapitre 2. Notions fondamentales sur Debian

14

dpkg --status package et regardez la ligne Confles : . Les dtails du contenu dun chier Debian conffiles sont fournis dans la Charte Debian, section 11.7 (voir Rfrences page 157).

2.2.5

Scripts de maintenance Debian

Les scripts de maintenance Debian sont des scripts excutables qui sont automatiquement excuts avant ou aprs linstallation dun paquet. Avec un chier nomm control, tous ces chiers font partie de la section control dun chier darchive Debian. Les chiers individuels sont : preinst Ce script est excut avant que son paquet soit dpaquet de son archive Debian (.deb). Beaucoup de scripts preinst arrtent les services fournis par les paquets mis jour jusqu ce que leur installation ou mise jour soit complte (aprs lexcution avec succs du script postinst ). postinst Ce script complte la conguration requise par un paquet aprs son dpaquetage partir de son archive Debian (.deb). Souvent, les scripts postinst demandent lutilisateur dentrer des informations et/ou lavertissent que sil accepte les valeurs par dfaut, il devrait se rappeler de revenir en arrire et recongurer le paquet lorsque la situation le requiert. Beaucoup de scripts postinst excutent ensuite les commandes ncessaires au redmarrage dun service une fois que le nouveau paquet a t install ou mis jour. prerm Ce script arrte les daemons qui sont associs un paquet. Il est excut avant la suppression de chiers associs au paquet. postrm Ce script modie les liens ou les autres chiers associs un paquet, et/ou supprime les chiers crs. (Voir aussi Paquets virtuels page ci-contre.) Actuellement, tous les chiers de contrle peuvent tre trouvs dans le rpertoire /var/lib /dpkg/info. Les chiers associs au paquet foo commencent avec le nom foo et ont des extensions preinst , postinst , etc., tel quappropri. Le chier foo.list dans ce rpertoire liste tous les chiers qui ont t installs avec le paquet foo. (Notez que lemplacement de ces chiers 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 systme de gestion des paquets. Les priorits sont :

Chapitre 2. Notions fondamentales sur Debian

15

Les paquets Required (requis) sont ncessaires au bon fonctionnement du systme. Ceci inclut tous les outils ncessaires pour rparer les dfauts du systme. Vous ne devez pas supprimer ces paquets, sinon le systme peut devenir compltement plant et vous ne pourrez probablement plus utiliser dpkg pour remettre les choses en place. Un systme avec seulement les paquets requis ne sera probablement pas utilisable, mais il sera sufsament fonctionnel pour que ladministrateur le dmarre et installe plus de logiciels. Les paquets Important devraient se trouver sur nimporte quel systme de type Unix. Dautres paquets sans lesquel le systme ne fonctionnera pas bien ou ne sera pas utilisable se trouveront ici. Cela ninclut PAS Emacs ou X11 ou TeX ou nimporte quelle autre grosse application. Ces paquets constituent seulement une infrastructure de base. Les paquets Standard sont standard sur nimporte quel systme Linux, et comprennent un systme en mode texte raisonnablement petit mais pas trop limit. Cest ce qui sera install par dfaut si les utilisateurs ne slectionnent rien dautre. Cela ninclut pas beaucoup de grosses applications, mais cela inclut Emacs (qui est plus une partie dinfrastructure quune 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 mme sils ne vous sont pas familiers, et si vous navez pas de besoins spciques. Cela inclut X11, une distribution complte de TeX, et beaucoup dapplications. Les paquets Extra (en plus) sont des paquets qui soit entrent en conit avec des paquets ayant une priorit plus haute, soit ne seront utiles que si vous les connaissez, soit ont besoin de prrequis spciques qui les rendent peu convenables pour Optional .

2.2.7

Paquets virtuels

Un paquet virtuel est un nom gnrique qui sapplique nimporte quel paquet dun 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 dpendance dun programme ayant besoin dune tel lecteur sur le systme pour fonctionner ou tre utile. On dit quils fournissent tous les deux le paquet virtuel appel news-reader. De faon similaire, exim et sendmail fournissent tous les deux la fonctionalit dun agent de transport de courrier lectronique. On dit donc quils fournissent le paquet virtuel mail transport agent . Si lun des deux est install, un programme dpendant de linstallation dun mail-transport-agent sera satisfait par la prsence de ce paquet virtuel. Debian fournit un mcanisme pour que, si plus dun paquet qui fournit le mme paquet virtuel est install sur un systme, ladministrateur puisse congurer lun des deux comme paquet prfr. La commande utilise est update-alternatives, et est dcrite dans Commandes de rechange page 72.

Chapitre 2. Notions fondamentales sur Debian

16

2.2.8

Dpendances des paquets

Le systme de paquets Debian possde une srie de dpendances de paquets qui sont conues pour indiquer (avec un simple drapeau) le niveau auquel Programme A peut fonctionner indpendamment de la prsence de Programme B sur le systme : Paquet A depends (dpend) de Paquet B si B doit absolument tre install pour excuter A. Dans certains cas, A dpend non seulement de B, mais dune certaine version de B. Dans ce cas, la dpendance sur la version est habituellement une limite basse, dans le sens o A dpend de nimporte quelle version de B plus rcente que la version spcie. 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 (suggre) Paquet B si B contient des chiers qui sont lis (et habituellement amliorent) la fonctionnalit de A. Paquet A conicts (est en conit) avec Paquet B lorsque A ne fonctionnera pas si B est install sur le systme. Souvent, les conits sont dans des cas o A contient des chiers qui fournissent une amlioration par rapport ceux de B. conicts est souvent associ avec replaces . Paquet A replaces (remplace) Paquet B lorsque les chiers installs par B sont supprims et (dans certains cas) recouverts par des chiers de A. Paquet A provides (fournit) Paquet B lorsque tous les chiers et fonctionnalits de B sont incorpors dans A. Ce mcanisme fournit un moyen aux utilisateurs ayant des limitations en espace disque de ne slectionner que la partie de A dont ils ont rellement besoin. Plus de dtails sur lutilisation de ces termes sont fournis dans le Manuel de Paquetage et dans la Charte Debian. Notez que dselect permet un contrle plus prcis sur les paquets marqus recommends et suggests que apt-get, qui rcupre simplement tous les paquets spcis par depends et laisse les paquets spcis par recommends et suggests. Les deux programmes utilisent APT comme dorsal dans leurs versions modernes.

2.2.9

Signication de pre-depends

Pre-depends est une dpendance spciale. Dans le cas dun paquet ordinaire, dpkg dpaqutera le chier archive (cd. le chier .deb) indpendamment de la prsence ou non des chiers dont il dpend sur le systme. En simpliant, dpaqueter signie que dpkg extrait les chiers de larchive qui sont censs tre installs sur votre systme et les met leur place. Si ces paquets dpendent de la prsence dautres paquets sur votre systme, dpkg refusera de complter linstallation (en excutant son action congure ) tant que les autres paquets ne seront pas installs. Cependant, pour certains paquets, dpkg refusera mme de les dpaqueter tant que certaines dpendances ne seront pas satisfaites. On dit que ces paquets pr-dpendent de la prsence dautres paquets. Le projet Debian fournissait ce mcanisme pour supporter la mise jour sre

Chapitre 2. Notions fondamentales sur Debian

17

des systmes du format a.out au format ELF, pendant laquelle lordre dans lequel les paquets taient dpaquets tait critique. Il y a dautres situations de mise jour pour lesquelles cette mthode est utile, par exemple pour les paquets avec la priorit required et leur dpendance la libc. Une fois de plus, de plus amples informations peuvent tre trouves dans le Manuel de Paquetage.

2.2.10

Etat dun paquet

Ltat dun paquet peut tre unknown (inconnu), install (installe), remove (supprime), purge (purge), ou hold (garde). Ces drapeaux want (volont) indiquent ce que lutilisateur souhaite faire avec un paquet (comme indiqu soit par les actions de lutilisateur dans la section Select de dselect, soit par linvocation directe de dpkg). Leur signication est : unknown - (inconnu) lutilisateur na jamais indiqu sil souhaite le paquet. install - (installe) lutilisateur veut que le paquet soit install ou mis jour. remove - (supprime) lutilisateur veut que le paquet soit supprim, mais ne veut pas supprimer les chiers de conguration existants. purge - lutilisateur veut que le paquet soit supprim compltement, y compris ses chiers de conguration. hold - (garde) lutilisateur veut que le paquet ne soit pas trait, cd. quil veut garder la version actuelle dans ltat actuel.

2.2.11

Garder des paquets lors dune mise jour

Il y a deux mcanismes pour garder des paquets lors de la mise jour, laide de dpkg, ou, dans Woody, laide dAPT. Avec dpkg, exportez dabord la liste des slections de paquets : dpkg --get-selections \* > selections.txt Ensuite, ditez le chier rsultant selections.txt, en changeant la ligne contenant le paquet que vous souhaitez garder, e.g. libc6, de : libc6 en : libc6 hold install

Chapitre 2. Notions fondamentales sur Debian

18

Sauvegardez le chier, et rechargez-le dans la base de donnes de dpkg avec la commande : dpkg --set-selections < selections.txt Ou, si vous connaissez le nom du paquet garder, excutez simplement : echo libc6 hold | dpkg --set-selections Ce procd garde les paquets pendant la procdure dinstallation de chaque paquet. Le mme rsultat peut tre obtenu avec dselect. Entrez simplement dans lcran [S]elect, trouvez le paquet que vous souhaitez garder en ltat et appuyez sur la touche = (ou H). Les changements prendront effet immdiatement aprs que vous tes sortis de lcran [S]elect. Le systme APT dans la distribution Woody possde un nouveau mcanisme pour garder les paquets pendant la procdure de rcupration 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 distribus dans un rpertoire appel source, et vous pouvez soit les tlcharger manuellement, soit utiliser apt-get source foo pour les rcuprer (voir la page de manuel apt-get(8) pour congurer APT pour faire cela).

2.2.13 Construire des paquets binaires partir dun paquet source


Pour un paquet foo, vous aurez besoin de tous les chiers foo_*.dsc, foo_*.tar.gz et foo_*.diff.gz pour compiler les sources (note : il ny a pas de chier .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 foo_version-revision.dsc va extraire le paquet dans un rpertoire appel foo-version. Si vous souhaitez juste compiler le paquet, vous pouvez entrer dans le rpertoire foo-version et lancer la commande

Chapitre 2. Notions fondamentales sur Debian

19

$ fakeroot debian/rules build

pour compiler le programme (vous aurez peut-tre besoin dinstaller le paquet fakeroot dabord), puis

$ fakeroot debian/rules binary

en tant que root, pour construire le paquet, et enn

$ su -c "dpkg -i ../foo_version-revision_arch.deb"

pour installer le paquet nouvellement construit. Voir Porter un paquet vers le systme stable page 69.

2.2.14

Crer de nouveaux paquets Debian

Pour une description plus dtaille de la cration de nouveaux paquets, lisez le Guide des nouveaux responsables Debian, disponible dans le paquet maint-guide, ou ladresse http:// www.debian.org/doc/manuals/maint-guide/.

2.3

Mettre jour un systme Debian

Lun des buts de Debian est de fournir un chemin de mise jour consistant et un processus de mise jour sr, et nous faisons de notre mieux pour que la mise jour lors de la sortie dune nouvelle version depuis une prcdente soit la plus douce possible. Les paquets vont alerter lutilisateur lorsquil y a des avertissements importants pendant le processus de mise jour, et vont souvent fournir une solution un problme possible. Vous devriez aussi lire les Notes de version, le document qui dcrit les dtails des mises jour spciques, 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 Gestion des paquets Debian page 59. Cette section dcrit les dtails fondamentaux.

Chapitre 2. Notions fondamentales sur Debian

20

2.3.1

Mthodes de mise jour dun systme Debian

On pourrait simplement excuter une session FTP anonyme ou un appel wget vers une archive Debian, parcourir les rpertoires jusqu ce quon trouve le chier dsir, le rcuprer, et enn linstaller en utilisant dpkg. (Notez que dpkg installera les chiers de la mise jour leur place, mme sur un systme en marche.) Parfois, un paquet rvis aura besoin de linstallation dune version rvise dun autre paquet, auquel cas linstallation chouera si lautre paquet nest pas install. Beaucoup de gens trouvent cette approche trop gourmande en temps, car Debian volue trs rapidement typiquement, une douzaine ou plus de nouveaux paquets sont tlchargs chaque semaine. Ce nombre est encore plus grand avant la sortie dune version majeure. Pour grer cette avalanche, beaucoup de gens prfrent utiliser une mthode automatique. Plusieurs outils de gestion des paquets sont disponibles dans ce but.

2.3.2

Vue gnrale des outils de gestion de paquets

Le systme de gestion de paquets Debian a deux objectifs : la manipulation des chiers de paquets eux-mmes et la rcupration de chiers de paquets depuis une archive Debian. dpkg ralise la premire fonction, APT et dselect la seconde.

2.3.3

dpkg

Cest le programme principal pour manipuler les chiers de paquets ; consultez dpkg(8) pour une description complte. dpkg vient avec plusieurs programmes primitifs supplmentaires. dpkg-deb : Manipule les chiers .deb. dpkg-deb(1) dpkg-ftp : Une ancienne commande de rcupration de chiers de paquets. dpkg-ftp(1) dpkg-mountable : Une ancienne commande de rcupration de chiers de paquets. dpkg-mountable(1) dpkg-split : Scinde un gros paquet en chiers plus petits. dpkg-split(1)

dpkg-ftp et dpkg-mountable ont t rendus obsoltes par lintroduction du systme APT.

2.3.4

APT

APT (Advanced Packaging Tool, outil avanc de paquetage) est une interface avance pour le systme 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 grer les paquets. Ils fonctionnent aussi en tant que dorsal pour dautres outils, comme dselect et aptitude.

Chapitre 2. Notions fondamentales sur Debian

21

Pour plus dinformation, 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 dinformation est le APT HOWTO (http://www.debian.org/doc/manuals/ apt-howto/). Il peut tre install par le paquet apt-howto lemplacement /usr/share/doc /apt-howto/en/apt-howto-en.html/index.html. apt-get upgrade et apt-get dist-upgrade rcuprent seulement les paquets marqus Depends : et passe outre tous les paquets marqus Recommends : et Suggests : . Pour viter cela, utilisez dselect.

2.3.5

dselect

Ce programme est une interface utilisateur avec un menu pour le systme de gestion de paquets Debian. Il est particulirement utile pour les premires installations et les grosses mises jour. Pour plus dinformation, installez le paquet install-doc et lisez /usr/share/doc/install-doc /dselect-beginner.en.html ou Documentation dselect pour dbutants (http://www.debian. org/releases/woody/i386/dselect-beginner).

2.3.6

Mise jour dun systme en marche

Le noyau (systme de chier) des systmes Debian supporte le recouvrement de chiers mme lorsquils sont en utilisation. Nous fournissons aussi un programme appel start-stop-daemon qui est utilis pour dmarrer les daemon lors du dmarrage du systme ou pour les arrter lorsque le niveau de fonctionnement du noyau est chang (par exemple de multi-utilisateur vers mono-utilisateur ou vers arrt). Le mme programme est utilis par les scripts dinstallation lorsquun nouveau paquet contenant un daemon est install, pour arrter les daemons en excution, et les redmarrer lorsque cela est ncessaire. Notez que le systme Debian ne requiert pas lutilisation du mode mono-utilisateur pour mettre jour un systme en marche.

2.3.7

Fichiers darchive .deb tlchargs et sauvegards

Si vous avez tlcharg manuellement des chiers de paquets sur votre disque (ce qui nest pas forcment ncessaire, voir ci-dessus pour la description de dpkg-ftp ou APT), vous pouvez supprimer les chiers .deb de votre systme lorsque les paquets ont t installs.

Chapitre 2. Notions fondamentales sur Debian

22

Si APT est utilis, ces chiers sont mis en cache dans le rpertoire /var/cache/apt/archives /. Vous pouvez les effacer aprs linstallation (apt-get clean) ou les copier sur une autre machine dans le rpertoire /var/cache/apt/archives/ pour conomiser du temps de tlchargement pendant les installations suivantes.

2.3.8

Garder une trace des mises jour

dpkg garde un enregistrement des paquets qui ont t dpaquets, congurs, supprims, et/ou purgs, mais il ne garde pas (pour le moment) de journal de lactivit du terminal qui a eu lieu lorsquun 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 dmarrage de Debian


2.4.1 Le programme init

Comme tous les Unices, Debian dmarre en excutant le programme init. Le chier de conguration de init (qui est /etc/inittab) spcie que le premier script excuter 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 excuter des initialisations, comme la vrication et le montage des systmes de chiers, le chargement des modules, le dmarrage des services rseau, le rglage de lhorloge, et lexcution dautres initialisations. Ensuite, pour compatibilit, il lance aussi les chiers (sauf ceux ayant un . dans leur nom) de /etc/rc.boot/. Les scripts de ce dernier rpertoire sont habituellement rservs ladministrateur systme, et leur utilisation dans des paquets est obsolte. Voir Astuces sur linitialisation du systme page 99 pour plus dinformation.

2.4.2

Niveaux de fonctionnement

Aprs le processus de dmarrage, init excute les scripts de dmarrage situs dans le rpertoire correspondant au niveau de fonctionnement par dfaut (ce niveau de fonctionnement est donn par lentre id dans /etc/inittab). Comme la plupart des Unices compatibles System V, Linux a 7 niveaux de fonctionnement : 0 (arrte le systme), 1 (mode mono-utilisateur), 2 5 (diffrents modes multi-utilisateur), et 6 (redmarre le systme).

Chapitre 2. Notions fondamentales sur Debian

23

Les systmes Debian sont livrs avec id=2, ce qui indique que le niveau de fonctionnement par dfaut sera 2 lorsquon entrera dans ltat multi-utilisateur, et les scripts de /etc/rc2.d/ seront excuts. En fait, les scripts des rpertoires /etc/rcN.d/ sont des liens symboliques vers les scripts de /etc/init.d. Cependant, les noms des chiers dans chacun des rpertoires /etc/rcN.d/ sont slectionns pour indiquer la faon dont les scripts de /etc/init.d/ seront excuts. Spciquement, avant dentrer dans un niveau de fonctionnement, tous les scripts commenant par K sont lancs ; ils permettent darrter des services. Ensuite, tous les scripts commenant par S sont lancs ; ces scripts permettent de dmarrer des services. Le nombre deux chiffres suivant le K ou le S indique lordre dans lequel le script est lanc. Les scripts possdant les nombres les plus petits sont excuts 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 excuteront la tche indique par cet argument. Ces scripts peuvent tre utiliss mme aprs que le systme a t dmarr, pour contrler divers processus. Par exemple, avec largument reload , la commande # /etc/init.d/sendmail reload envoie au daemon sendmail un signal pour quil relise son chier de conguration.

2.4.3

Personnaliser le processus de dmarrage

Debian nutilise pas de rpertoire rc.local comme BSD pour personnaliser le processus de dmarrage ; la place, il fournit les mcanismes suivants. Supposons quun systme ait besoin dexcuter le script foo au dmarrage, ou lentre dans un niveau de fonctionnement (System V) particulier. Alors, ladministrateur du systme doit : 1. Placer le script foo dans le rpertoire /etc/init.d/. 2. Excuter la commande Debian update-rc.d avec les arguments appropris, pour effectuer les liens entre les rpertoires (spcis sur la ligne de commande) rc ?.d et /etc/init.d /foo. Ici, ? est un nombre entre 0 et 6 qui correspond lun des niveaux de fonctionnement System V. 3. Redmarrer le systme. La commande update-rc.d effectue les liens entre les chiers des rpertoires 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 commenant par S dans /etc/rcN.d/ sont excuts lorsquon

Chapitre 2. Notions fondamentales sur Debian

24

entre dans le niveau de fonctionnement N. Les scripts commenant par K sont excuts lorsquon quitte le niveau de fonctionnement N. On peut par exemple faire excuter le script foo au dmarrage, en le plaant dans /etc/init.d / et en installant les liens par la commande update-rc.d foo defaults 19. Largument defaults correspond aux niveaux de fonctionnement par dfaut, qui sont 2 5. Largument 19 assure que foo sera appel avant les scripts contenant les nombres suprieurs 20.

2.5 Support de la diversit


Debian offre plusieurs facilits pour exaucer les voeux des administrateurs du systme sans casser ce dernier. dpkg-divert, voir La commande dpkg-divert page 72. equivs, voir Le paquet equivs page 72. update-alternative, voir Commandes de rechange page 72. make-kpkg peut saccomoder de beaucoup de chargeurs . Voir make-kpkg(1).

Les chiers situs sous /usr/local/ appartiennent ladministrateur du systme et Debian ny touchera pas. La plupart (ou tous) les chiers sous /etc sont des conffiles (chiers de conguration) et Debian ncrira pas dessus lors dune mise jour sauf si ladministrateur le spcie explicitement.

2.6

Internationalisation

Le systme Debian est internationalis et fournit le support pour lafchage et lentre des caractres de beaucoup de langues, la fois avec la console ou sous X. Beaucoup de documents, de pages de manuel, et de messages systme ont t traduits dans un nombre toujours plus lev de langues. Lors de linstallation, Debian demande lutilisateur de choisir une langue pour linstallation (et parfois une variante locale de cette langue). Si votre systme install ne supporte pas toutes les possibilits de la langue dont vous avez besoin, si vous avez besoin de changer de langue ou dinstaller un clavier diffrent pour supporter votre langue, voyez Localisation et support des langues nationales page 121.

2.7

Debian et le noyau

Voir Le noyau Linux et Debian page 75.

Chapitre 2. Notions fondamentales sur Debian

25

2.7.1

Compiler un noyau avec des sources non Debian

Il faut comprendre la politique Debian sur les en-ttes. Les bibliothques C de Debian sont compiles avec les en-ttes du noyau stable le plus rcent. Par exemple, la version Debian-1.2 utilisait la version 5.4.13 des en-ttes. Cette pratique contraste avec les paquets source du noyau Linux distribus dans toutes les archives FTP Linux, qui utilisent des versions encore plus rcentes des en-ttes. Les en-ttes du noyau distribues avec le source du noyau sont situes dans /usr/include/linux/include/. Si vous avez besoin de compiler un programme avec des en-ttes du noyau plus rcentes 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 lempaquetage 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 dinclure les dernires en-ttes du noyau.

2.7.2

Outils pour compiler un noyau personnalis

Les utilisateurs qui souhaitent (ou doivent) compiler un noyau personnalis sont encourags tlcharger le paquet kernel-package. Ce paquet contient le script pour construire le paquet du noyau, et fournit la possibilit de crer un paquet kernel-image Debian en excutant la commande # make-kpkg kernel_image dans le rpertoire le plus haut des sources du noyau. De laide est disponible en excutant la commande # make-kpkg --help et dans la page de manuel make-kpkg(8) et Le noyau Linux et Debian page 75. Les utilisateurs doivent tlcharger sparment le code source du dernier noyau (ou le noyau de leur choix) depuis leur archive FTP Linux favorite, moins quun paquet kernel-source-version soit disponible (o version indique la version du noyau). Le script de dmarrage initrd de Debian ncessite un patch spcial pour le noyau appel initrd ; voir http://bugs.debian.org/ 149236. Des instructions dtailles pour utiliser le paquet kernel-package sont fournies dans le chier /usr/doc/kernel-package/README.

Chapitre 2. Notions fondamentales sur Debian

26

2.7.3

Chargeurs de remplacement

Pour utiliser un autre chargeur, comme grub ou loadlin, copier limage du noyau Linux compile bzimage vers un autre emplacement (par exemple, vers /boot/grub ou une partition MSDOS).

2.7.4

Disquettes de dmarrage personnalises

La cration dune disquette de dmarrage personnalise est aide par le paquet Debian boot-floppies, qui se trouve normalement dans la section admin de larchive FTP Debian. Les scripts shell de ce paquet produisent des disquettes de dmarrage au format syslinux. Ce sont des disquettes formates au format MS-DOS dont le Master Boot Record a t modi pour quelles dmarrent Linux directement (ou nimporte quel systme dexploitation dni dans la chier syslinux.cfg sur la disquette). Dautres scripts dans ce paquet produisent des disquettes racines durgence et peuvent mme reproduire les disquettes de base. Vous trouverez plus dinformation ce propos dans le chier /usr/doc/boot-floppies/README aprs avoir install le paquet boot-floppies.

2.7.5

Dispositions spciales pour manipuler les modules

Le paquet Debian modconf fournit un script shell (/usr/sbin/modconf) qui peut tre utilis pour personnaliser la conguration des modules. Ce script prsente une interface base de menus, demandant lutilisateur les pilotes de priphriques prsents sous forme de modules chargeables quils souhaite utiliser sur son systme. Les rponses sont utilises pour personnaliser le chier de conguration /etc/modules.conf (qui liste les alias, et autres arguments qui doivent tre utiliss par les diffrents modules) grce aux chiers /etc/modutils/, et /etc/modules (qui liste les modules qui doivent tre chargs lors du dmarrage). Comme les (nouveaux) chiers Congure.help qui sont maintenant disponibles pour supporter la compilation de noyaux personnaliss, le paquet modconf est livr avec une srie de chiers daide (dans /usr/lib/modules_help/) qui fournissent des informations dtailles sur les arguments possibles pour chacun des modules. Voir Le noyau 2.4 modulaire page 77 pour des exemples.

2.7.6

Dsinstaller le paquet dun vieux noyau

Le script kernel-image-NNN.prerm vrie que le noyau que vous excutez actuellement nest pas le noyau dsinstaller. Ainsi, vous pouvez supprimer de faon sre les noyaux dont vous ne voulez plus avec cette commande : dpkg --purge --force-remove-essential kernel-image-NNN

Chapitre 2. Notions fondamentales sur Debian

27

(Remplacez NNN par la version et la rvision de votre noyau, bien sr.)

Chapitre 2. Notions fondamentales sur Debian

28

29

Chapitre 3

Installation du systme Debian


La documentation ofcielle pour installer Debian est situe http://www.debian.org/releases/ stable/, et http://www.debian.org/releases/stable/installmanual. Sa version de dveloppement est situe http://www.debian.org/releases/testing/, et http://www.debian.org/releases/testing/installmanual (en dveloppement, parfois elle nexiste pas). Bien que Guide de rfrence pour Debian ait t commenc lpoque de Potato, la majeure partie de son contenu a t mis jour pour Debian Woody (3.0r0) et Debian Sarge.

3.1

Astuces gnrales sur linstallation du systme Linux

En vue de minimiser les risques associs aux paquets de testing et unstable , cest une bonne habitude de congurer votre systme Linux principal en dual boot avec un autre systme Linux plus petit et stable.

3.1.1

Compatibilit matrielle

Linux est compatible avec la plupart des matriels PC. Linux peut tre install sur presque tout systme. Pour moi il a t aussi facile installer que Windows 95/98/Me. Il semble que la liste des compatibilits matrielles sallonge encore. Si vous possdez un PC portable, consultez : Linux on Laptops (http://www.linux-laptop. net/) pour identier sa situation. Ma recommandation pour le matriel type PC de bureau est soyez juste conservateur : SCSI plutt quIDE pour le travail, disque dur IDE/ATAPI pour lutilisation prive.

Chapitre 3. Installation du systme Debian

30

CD-ROM (ou CD-RW) IDE/ATAPI. PCI plutt quISA, surtout pour la carte rseau. Utilisez une carte rseau de base. Des cartes Tulip sur bus PCI, NE2000 sur bus ISA conviennent bien. vitez PCMCIA (portables) lors de la premire tentative dinstallation de Linux. Pas de clavier ou de souris USB, . . . moins de vouloir faire face un d. Pour une machine lente, extraire son disque dur et le connecter dans une autre machine plus rapide pour acclrer linstallation est une bonne ide.

3.1.2

Dterminer le matriel et les puces du PC

Durant linstallation, on sera interrog sur le matriel ou les puces. Parfois, ces informations ne sont pas toujours faciles trouver. Voici une mthode : 1. Ouvrez le PC et inspectez lintrieur. 2. Notez les chiffres qui sont sur la grande puce de la carte graphique, de la carte rseau, sur la puce ct des ports srie et la puce ct des ports IDE. 3. Notez les noms des cartes imprims au dos des cartes PCI et ISA.

3.1.3

Trouver le matriel du PC avec Debian

Les commandes suivantes sur un systme Linux devraients donner quelquide sur le matriel prsent et la conguration. $ $ $ $ /usr/sbin/lspci -v |less pager /proc/pci pager /proc/interrupts pager /proc/ioports

Ces commandes peuvent tre lances pendant le processus dinstallation partir de la console en appuyant sur ALT-F2.

3.1.4

Trouver le matriel du PC avec dautres systmes dexploitation (SE)

Dautres sources dinformation concernant le matriel peuvent tre obtenues avec dautres SE. Installez une autre distribution Linux commerciale. La dtection du matriel tend tre meilleure que celle de Debian, pour linstant. Ceci peut changer avec la nouvelle Woody. Installez Windows. La conguration matrielle peut tre obtenue en faisant un clic droit sur Poste de travail pour aller sur Proprits / Gestionnaire de priphriques. Enregistrez toutes

Chapitre 3. Installation du systme Debian

31

les ressources dinformation comme IRQ, I/O port address, DMA. Quelques vieilles cartes ISA doivent tre congures sous DOS et utilises en consquence.

3.1.5

Le Mythe Lilo

Lilo est limit 1024 cylindres. FAUX ! Les versions rcentes de lilo utilises depuis Debian Potato supportent lba32. Si le BIOS de la carte mre est assez rcent pour supporter lba32, lilo devrait tre capable de charger au-del de la vieille limite des 1024 cylindres. Assurez-vous simplement dajouter la ligne lba32 vers le dbut de votre chier lilo.conf si vous avez gard un vieux lilo.conf.

3.1.6

Choix des disquettes de boot

Pour Potato, jaimais bien les disquettes IDEPCI pour installer une machine de bureau. Pour Woody, jaime bien les disquettes bf2.4. Elles utilisent une version de boot-floppies pour crer les disquettes de dmarrage. Si vous avez une carte rseau PCMCIA, vous devez utiliser les disquettes de dmarrage standard (plus grand nombre de disquettes, mais tous les pilotes de priphriques sont disponibles) et congurer la carte rseau dans le dialogue PCMCIA ; nessayez pas de la congurer dans le dialogue de conguration rseau standard. Pour des systmes spciaux, vous pouvez avoir besoin de crer une disquette de secours personnalise. Cela peut tre fait en remplaant limage du noyau appele linux sur la disquette de secours Debian par une autre image compresse du noyau compile ailleurs pour la machine. Les dtails sont documents dans le chier readme.txt de la disquette de secours. La disquette est formatte au format MSDOS, aussi vous pouvez utiliser nimporte quel systme pour lire et diter ce chier. Ceci peut rendre la vie plus facile ceux qui possdent une carte rseau spciale, etc. Pour Sarge, le paquet debian-installer et/ou pgi est utiliser pour crer les disquettes de dmarrage.

3.1.7

Installation

Suivez les instructions ofcielles http://www.debian.org/releases/stable/installmanual ou http://www.debian.org/releases/testing/installmanual (en dveloppement, parfois elles nexistent pas). Si vous installez un systme avec les disquettes de dmarrage de la distribution de testing, il vous faudra peut-tre ouvrir une console en appuyant sur ALT-F2 et remplacer manuellement les entres stable par testing pour ajuster les sources APT.

Chapitre 3. Installation du systme Debian

32

Jai lhabitude dinstaller lilo un endroit comme /dev/hda3, en installant mbr sur /dev/hda. Cela minimise les risques de recouvrir linformation de dmarrage. Voici ce que je choisis lors du processus dinstallation. MD5 passwords yes shadow passwords yes Installation advanced (dselect **) et slection de exclure emacs (si slectionn), nvi, tex, telnet, talk(d) ; inclure mc, vim, nano-tiny ou elvis-tiny. Voir dselect conguration gnrale page 68. Mme si vous tes un fan dEmacs, laissez-le pour le moment et utilisez nano pendant linstallation. De mme, vitez dinstaller de gros paquets comme TeX (Potato le faisait) ce point-l. Voir Editeurs de sauvetage page 129 pour la raison de linstallation de nano-tiny ou elvis-tiny ici. Pour toutes les questions de conguration pendant linstallation de chaque paquet : y (remplace version courante). exim : slectionner 2 pour envoyer le courrier lectronique par le serveur SMTP du FAI. Pour plus dinformations sur dselect, voir dselect conguration gnrale page 68.

3.1.8

Nom dhte et IP utiliser pour le rseau local

Jutilise un sous-rseau de classe C la maison,

Internet | +--- FAI externe fournit le service POP (accd par fetchmail) | le FAI fournit les services DHCP et relai SMTP | : Modem Cable (Tlphone) | : Port externe de la passerelle~: eth0 (IP donne 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 systme 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 paramt tourne avec le paquet ~dhcp~ configur pour eth1 tourne avec ~exim~ comme hte intelligent (mode 2) tourne avec ~fetchmail~ avec un long intervalle (fall back) tourne avec ~bind~ comme serveur de nom en cache pour lInternet depuis le r serveur de nom officiel pour le domaine du rseau local tourne avec ~ssh~ sur les ports 22 et 8080 (connexions depuis nimporte o)

Chapitre 3. Installation du systme Debian

33

tourne avec ~squid~ comme serveur de cache pour larchive 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 Construire une passerelle avec Debian page 125 pour les dtails de la conguration dune passerelle pour le rseau local.

3.1.9

Comptes utilisateurs

An davoir une organisation cohrente entre toutes les machines, quelques premiers comptes sont toujours les mmes sur mon systme. Je cre toujours un premier compte utilisateur avec un nom comme admin (uid=1000). Tous les messages de root sont redirigs dessus. Ce compte est membre du groupe adm (voir Pourquoi GNU su ne supporte pas le groupe wheel page 101), qui lon peut donner beaucoup des privilges de root au travers des programmes su en utilisant PAM ou sudo. Voir Ajouter un compte utilisateur page 48 pour les dtails.

3.1.10

Cration des systmes de chiers

Partition du disque dur Je prfre avoir diffrentes partitions pour diffrentes arborescences de rpertoires, an de limiter les dommages en cas de plantage du systme. Par exemple : / == == /tmp == /var == /home == /usr == /usr/local == (/ + /boot + /bin + /sbin) 50Mo+ 100Mo+ 100Mo+ 100Mo+ 700Mo+ avec X 100Mo

La taille du rpertoire /usr dpend beaucoup des applications X-Window et de la documentation. /usr peut tre de 300Mo si lon nutilise que le terminal, tandis que 2Go3Go nest pas inhabituel si lon installe un certain nombre dapplications Gnome. Lorsque /usr devient trop gros, dplacer

Chapitre 3. Installation du systme Debian

34

/usr/share/ vers une autre partition est le meilleur remde. Avec un noyau 2.4 rcent, / 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 /dev/hda3 /dev/hda7 /dev/hda8 /dev/hda6 /dev/hda9 /dev/hda10 /dev/hda11 Size 300M 100M 596M 100M 596M 596M 1.5G Used Avail Use% Mounted on 106M 179M 38% / 12M 82M 13% /home 53M 513M 10% /var 834k 94M 1% /var/lib/cvs 222M 343M 40% /usr 130M 436M 23% /var/cache/apt/archives 204M 1.2G 14% /var/spool/squid

(La grande taille de /var/spool/squid est pour le proxy en vue du tlchargement des paquetages.) Ci-dessous la sortie de fdisk -l pour donner une ide. # fdisk -l /dev/hda # comment /dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4 /dev/hda5 /dev/hda6 /dev/hda7 /dev/hda8 /dev/hda9 /dev/hda10 /dev/hda11 1 42 85 127 127 144 158 172 254 336 418 41 84 126 629 143 157 171 253 335 417 629 309928+ 325080 317520 3802680 128488+ 105808+ 105808+ 619888+ 619888+ 619888+ 1602688+ 6 83 83 5 82 83 83 83 83 83 83 FAT16 # DOS Linux # (pas utilis) Linux # Principal Extended Linux swap Linux Linux Linux Linux Linux Linux

Quelques partitions inutilises existent. Elles sont rserves pour installer une seconde distribution Linux ou une rserve despace pour une arborescence de rpertoires en expansion.

Monter les systmes de chiers Montez les systmes de chiers ci-dessus proprement avec le chier fstab suivant :

Chapitre 3. Installation du systme Debian

35

# /etc/fstab: information du fichier systme 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 spares /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 trs 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 systme 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, jutilise noauto,intr avec loption par dfaut hard. De cette faon, il est possible darrter un processus bloqu par une dconnexion en utilisant Control-C. Pour une machine sous Windows connecte avec Samba (smbfs), rw,auto,soft,intr peut tre une bonne ide. Voir Conguration Samba page 39. Pour un lecteur de disquettes, utiliser noauto,rw,sync,user,exec prvient les corruptions de donnes aprs une jection accidentelle du disque sans le dmonter, mais cela ralentit lcriture. Montage autofs Points cls pour le montage automatique : Charger le module vfat pour autoriser /etc/auto.misc contenir fstype=auto :

Chapitre 3. Installation du systme Debian

36

# modprobe vfat # avant dessayer daccder la disquette ... ou pour automatiser cela, # cat >>/etc/modules vfat ^D ... et redmarrer le systme Editer le chier /etc/auto.misc comme suit : floppy -fstype=auto,sync,nodev,nosuid,gid=100,umask=000 :/dev/fd0 ... o gid=100 est ~users~. Crer des liens dans /home/user, cdrom et floppy, qui pointent respectivement vers /var/autofs/misc/cdrom et /var/autofs/misc/floppy. Ajoutez user au groupe users . Montage NFS Le serveur Linux nfs externe (goofy) se trouve derrire un pare-feu (passerelle). Jai une politique de scurit trs relche sur LAN puisque je suis le seul lutiliser. Pour obtenir un accs nfs, le ct du serveur nfs a besoin quon ajoute /etc/exports comme suit : # /etc/exports: la liste des contrle daccs pour les systmes de fichier # qui peuvent tre exports vers les clients NFS. Voir exports(5). / (rw,no_root_squash) Ceci est utile pour activer le serveur nfs en plus de linstallation et de lactivation dun client/serveur nfs. Je cre gnralement une seule partition de 2Go pour une installation exprimentale et/ou secondaire et paresseuse de Linux, pour plus de simplicit. Je partage optionnellement les partitions swap et /tmp pour ces installations. Le schma de multi-partitionnement est trop complexe pour ces usages. Si on a besoin dun systme simple utilis en console, 500Mo peuvent tre largement sufsants.

3.1.11 Lignes directrices pour la mmoire DRAM


Ce qui suit sont des indications grossires pour la DRAM. 4 16 32 64 Mo Mo Mo Mo : : : : Minimum Minimum Minimum Minimum suffisant pour faire fonctionner le noyau Linux. pour un usage du systme en mode console. pour un systme X simple. pour un systme X avec GNOME/KDE.

Chapitre 3. Installation du systme Debian

37

128 Mo : 256+Mo :

Confortable pour le systme X avec GNOME/KDE. Pourquoi pas si a vous chante. La DRAM est bon march.

Loption de boot mem=4m (ou lilo append=mem=4m) montrera comment le systme se comporterait en ayant 4Mo de mmoire installe. Un paramtre de dmarrage pour lilo est requis pour un systme ayant plus de 64Mo de mmoire avec un vieux BIOS.

3.1.12 Espace de Swap


Jutilise la ligne directrice suivante : Chaque partition de swap est < 128 Mo (avec un vieux noyau 2.0), < 2 Go (avec les noyaux rcents) Total = soit (1 2 fois la taille de la RAM) soit (128 Mo 2 Go) Installation sur des disques diffrents et montage avec les options sw,pri=1 dans /etc /fstab. Cela permet de sassurer 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. Mme si vous nen avez pas besoin, de lespace de swap (128 Mo) est requis, sinon le systme ralentit avant de planter avec un programme qui manque de mmoire.

3.2 Conguration de Bash


Je modie les scripts de dmarrage mon got sur tout le systme : /etc/bash.bashrc Remplace avec un script personnalis /etc/profile Garde copie de la distribution ( \w -> \W) /etc/skel/.bashrc Remplace avec une copie prive /etc/skel/.profile Remplace avec une copie prive /etc/skel/.bash_profile Remplace avec une copie prive ~/.bashrc Remplace avec une copie prive pour tous les comptes ~/.profile Remplace avec une copie prive pour tous les comptes ~/.bash_profile Remplace avec une copie prive pour tous les comptes Voir dtails dans mon exemple. (examples/) Jaime les systmes transparents, jai donc paramtr umask 002 ou 022. PATH est paramtr par les chiers de conguration suivants, dans cet ordre. /etc/login.defs /etc/profile ~/.bash_profile - avant que le shell paramtre PATH (peut appeler /etc/bash.bashrc) (peut appeler ~/.bashrc)

Chapitre 3. Installation du systme Debian

38

3.3 Conguration de la souris


3.3.1 Souris PS/2

Dans le cas dun connecteur de souris de type PS/2 sur une carte mre ATX, la succession de signaux sera : mouse -> /dev/psaux -> gpm -> /dev/gpmdata = /dev/mouse -> X Ceci permet au clavier ou la souris dtre dconnect et rinitialis en redmarrant gpm aprs reconnexion. X restera activ ! Pour les souris Logitech 3 boutons PS/2, la conguration 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 utilise, paramtrez le protocole X Microsoft et validez Emulate3Buttons. Pour les souris roulette, vous pouvez congurer X avec le protocole rel, comme IMPS/2. Crez un lien symbolique /dev/gpmdata > /dev/mouse pour russir la conguration de certains utilitaires. Voir les dtails dans mon script dexemple. (examples/) Pour certains portables Toshiba rcents : activez gpm avant PCMCIA dans le script dinitialisation System-V. Ceci vite gpm de planter. trange, mais vrai.

3.3.2

Souris USB

Assurez vous davoir : Input Core Support et Input Core Support/Mouse Support activs dans le noyau ou en modules.

Chapitre 3. Installation du systme Debian

39

Support for USB , Preliminary USB device lesystem , UHCI ou OHCI et USB HID Support activs dans le noyau ou en modules. Si vous nutilisez pas devfs, crez une node de priphrique /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 conguration 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 <jmalonzo@softhome. net>.] Voir Linux USB Project (http://www.linux-usb.org/) pour plus dinformation.

3.4

Conguration NFS

Congurer NFS dans /etc/exports. # echo "/ *.domainname-for-lan-hosts(rw,no_root_squash,nohide)" \ >> /etc/exports Voir dtails dans mon exemple. (examples/).

3.5

Conguration Samba

Rfrences : http://www.samba.org/

Chapitre 3. Installation du systme Debian

40

paquet samba-doc Congurer Samba en mode partage est plus facile pour crer un partage du disque de type WfW. Mais il est mieux de le congurer en mode utilisateur . Samba peut tre congur laide de debconf ou vi :

# dpkg-reconfigure --priority=low samba # dans Woody # vi /etc/samba/smb.conf

Voir dtails dans mon script dexemple. (examples/) Ajouter un nouvel utilisateur au chier smbpasswd peut tre fait par smbpasswd :

$su -c "smbpasswd -a username"

Assurez-vous de lutilisation des mots de passe crypts pour une meilleure compatibilit. Le rang de lOS signie ce qui suit et plus grand est le nombre, plus haute est la priorit du serveur.

0: 1: 16: 17: 32: 33: 255:

Samba avec des comportements relchs Wfw 3.1, Win95, Win98, Win/me? Win NT WS 3.51 Win NT WS 4.0 Win NT SVR 3.51 Win NT SVR 4.0 Samba avec beaucoup de puissance

Assurez-vous que les utilisateurs sont membres du groupe possdant le rpertoire qui est partag et que le bit dexcution du rpertoire est positionn accs.

3.6

Conguration de limprimante

La mthode traditionnelle est dutiliser lpr/lpd. Il existe un nouveau systme, CUPS (Common UNIX Printing System). PDQ est une autre approche. Voir le Linux Printing HOWTO (http: //www.tldp.org/HOWTO/Printing-HOWTO.html) pour plus dinformation.

Chapitre 3. Installation du systme Debian

41

3.6.1

lpr/lpd

Pour les spoolers comme lpr/lpd (paquets lpr, lprng, et gnulpr), congurez /etc/printcap comme suit sils sont connects une imprimante PostScript ou texte : lp|alias:\ :sd=/var/spool/lpd/lp:\ :mx#0:\ :sh:\ :lp=/dev/lp0: Signication des lignes ci-dessus : En-tte : lp nom de la queue, alias = alias mx#0 taille de chier maximum illimite sh suppression de limpression de la premire page den-tte lp=/dev/lp0 priphrique local, ou port@host pour une machine distante Cest une bonne conguration si vous utilisez une imprimante PostScript. De plus, lors de limpression depuis une machine Windows avec Samba, cest une bonne conguration pour nimporte quelle imprimante supporte par Windows (communication bi-directionnelle non supporte). Il faut slectionner limprimante correspondante sous Windows. Si vous navez pas dimprimante PostScript, il faut congurer un systme de ltre avec gs. Il existe beaucoup doutils dauto-conguration pour congurer /etc/printcap. Voici quelques options : gnulpr, (lpr-ppd) et printtool jutilise celle-l. lpr et apsfilter lpr et magicfilter lprng et lprngtool lprng et apsfilter lprng et magicfilter Pour excuter des outils de conguration graphiques comme printtool, voir Devenir root sous X page 112 pour obtenir les privilges de root. Les queues dimprimante cres avec printtool utilisent gs et agissent comme des imprimantes PostScript. Donc, lorsque vous y accdez, utilisez des pilotes PostScript. Du ct de Windows, Apple LaserWriter est le standard.

3.6.2

CUPS

Installez le Systme dImpression Commun pour UNIX (Common UNIX Printing System, ou CUPS) : # apt-get install cupsys cupsomatic-ppd # apt-get install cupsys-bsd cupsys-driver-gimpprint

Chapitre 3. Installation du systme Debian

42

Ensuite, congurez le systme avec nimporte quel navigateur Web : $ mybrowser http://localhost:631

3.7 Autres conseils de conguration de lhte


3.7.1 Installer quelques paquets supplmentaires aprs linstallation

Une fois rendu ce point, vous avez un systme Debian petit mais fonctionnel. Il est temps dinstaller des paquets plus gros. Lancez tasksel. Voir Installation de tches avec tasksel page 60. Vous pouvez choisir ces options si vous en avez besoin : Utilisateur X window system Dveloppement C et C++ Dveloppement Python Dveloppement Tcl/Tk Divers environnement TeX/LaTeX Pour les autres je prfre utiliser tasksel comme guide en regardant les composants lists dans Task Info et en les installant manuellement avec dselect. Lancez dselect. L, la premire chose faire est de slectionner votre diteur de texte favori, et tout programme dont vous avez besoin. Vous pouvez installer plusieurs variantes dEmacs en mme temps. Voir dselect conguration gnrale page 68 et Editeurs populaires page 129. De plus, vous pouvez remplacer des paquets par dfaut avec dautres ayant plus doptions. lynx-ssh ( la place de lynx) ... ... Jdite 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 priphriques sont congurs lors de linstallation initiale. modconf permet de congurer les modules ensuite au travers dune interface utilisant des menus. Ce pro-

Chapitre 3. Installation du systme Debian

43

gramme est utile lorsque des modules ont t oublis lors de linstallation ou lorsquun nouveau noyau est install. Le nom des modules prcharger est list dans /etc/modules. Jutilise lsmod et depmod pour les contrler manuellement. De plus, assurez-vous d ajouter quelques lignes dans /etc/modules pour mettre en route ipmasquerading (ftp etc.) pour les noyaux 2.4. Voir Le noyau 2.4 modulaire page 77, et notamment Fonctions rseau page 78.

3.7.3

Conguration de base de CD-RW

diter les chiers suivants : /etc/lilo.conf /dev/cdrom /etc/modules (ajouter append="hdc=ide-scsi", lancer lilo pour activer) (lien relatif # cd /dev; ln -sf scd0 cdrom) (ajouter "ide-scsi" et "sg". Si besoin est "sr" aprs cela.)

Voir Graveur de CD page 104 pour les dtails.

3.7.4

Grande capacit mmoire et arrt automatique

diter /etc/lilo.conf comme suit pour congurer les paramtres de dmarrage pour une grande capacit mmoire (pour les noyaux 2.2) et larrt automatique (pour apm) : append="mem=128M apm=on apm=power-off" Lancer lilo pour installer cette conguration. apm=power-off est requis pour un noyau multiprocesseur (SMP). La mme chose peut tre faite directement linvite de dmarrage. Voir Autres astuces avec linvite de dmarrage. page 83. Si apm est compil comme module comme cest le cas par dfaut dans les noyaux 2.4 de Debian, lancez # insmod apm power_off=1 aprs le boot ou congurez /etc/modules par : # echo "apm power_off=1" >>/etc/modules Autrement, compiler le support ACPI permet datteindre le mme but avec les nouveaux noyaux et semble plus compatible avec SMP (requiert une carte mre rcente). Le noyau 2.4 avec une carte mre rcente devrait correctement dtecter les grandes capacit mmoire.

Chapitre 3. Installation du systme Debian

44

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 paramtres de linvite de dmarrage nest requis.

3.7.5

tranges problmes daccs certains sites web

Les noyaux Linux rcents activent ECN par dfaut, ce qui peut causer des problmes daccs certains sites web situs derrire de mauvais routeurs. Pour vrier ltat dECN # cat /proc/sys/net/ipv4/tcp_ecn ... ou # sysctl net.ipv4.tcp_ecn Pour le dsactiver, utilisez # echo "0" > /proc/sys/net/ipv4/tcp_ecn ... ou # sysctl -w net.ipv4.tcp_ecn=0 Pour dsactiver TCP ECN chaque dmarrage, diter /etc/sysctl.conf et ajouter : net.ipv4.tcp_ecn = 0

3.7.6

Conguration dune connexion RTC avec PPP

Installer le paquet pppconfig pour congurer laccs par PPP.

Chapitre 3. Installation du systme Debian

45

# apt-get install pppconfig # pppconfig ... suivez les indications pour configurer PPP # adduser user_name dip ... autorise user_name appeler avec PPP Un accs PPP peut tre initi par lutilisateur (user_name) : $ pon ISP_name # dmarre laccs PPP au FAI ... amusez-vous bien sur lInternet $ poff ISP_name # arrte laccs PPP, ISP_name est optionnel Voir /usr/share/doc/ppp/README.Debian.gz pour plus de dtails. Dune autre faon, le paquet wvdial peut tre utilis pour congurer laccs PPP.

3.7.7

Autre conguration vrier dans /etc

Vous pouvez avoir envie dajouter un chier /etc/cron.deny, qui manque dans linstallation standard de Debian (vous pouvez copier /etc/at.deny).

Chapitre 3. Installation du systme Debian

46

47

Chapitre 4

Didacticiels Debian
Cette section propose une orientation basique dans le monde Linux pour les dbutants. Si vous utilisez Linux depuis un certain temps dj, utilisez-la comme un inventaire.

4.1 Sources dinformation


Jetez un oeil au Debian Documentation Project (DDP) (http://www.debian.org/doc/ddp) qui fait rfrence pour Debian. La plupart de ces documents sont gnralement installs dans /usr/share/doc/. Regardez aussi dans /usr/share/doc-base/, qui offre des liens vers des documents sur votre systme. Ajoutez export CDPATH=. :/usr/share/doc :/usr/src/local votre ~/.bash_profile pour accder facilement aux rpertoires de documentation. Le Linux Documentation Project (LDP) (http://www.linuxdoc.org/) est une rfrence sur Linux en gnral. 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 Midnight Commander (MC) page 50).

4.2
4.2.1

La console Linux
Se connecter

Dans un systme Linux ordinaire, il y a 6 pseudo-terminals indpendants. Le passage de lun a lautre se fait avec la combinaison de touches Left-Alt et F1 F6 simultanment. Chaque pseudo-terminal permet de se connecter de manire indpendante vos diffrents comptes. Lenvironnement multi-utilisateurs est une des grandes fonctionnalits dUnix laquelle on devient vite accro.

Chapitre 4. Didacticiels Debian

48

Sous Unix, une bonne habitude prendre est de se connecter en tant quutilisateur ordinaire pour une utilisation normale. Je dois admettre que je continue a utiliser le compte du super utilisateur (root) plus quil ne se doit juste cause de son aisance et de ma ngligence. Dsormais jutilise un compte ordinaire avec les commandes sudo, super ou su -c pour acqurir des accs root limits.

4.2.2

Ajouter un compte utilisateur

Aprs linstallation du systme, jajoute gnralement un compte utilisateur ordinaire. Si le nom dutilisateur est pingouin, # adduser pingouin le crera. Jutilise la commande vigr pour diter /etc/group comme cela : src:x:40:admin, debian, ... staff:x:50:admin ... Jutilise le groupe staff pour les utilisateurs qui effectuent des tches administratives et ont le privilge exclusif de su (voir Pourquoi GNU su ne supporte pas le groupe wheel page 101) et le groupe src pour CVS (voir CVS page 137). Dans le systme install par dfaut, le groupe staff possde /home, donc ses membres peuvent maintenir les comptes utilisateurs. Le groupe src possde /usr/src, utilis pour compiler un noyau, etc. Utilisez adduser, addgroup, vipw, vipw -s, vigr, et vigr -s pour congurer proprement les utilisateurs et les groupes.

4.2.3

Comment teindre

Comme tout autre systme dexploitation moderne o les chiers sont mis en cache en mmoire, Linux a besoin dtre teint proprement avant que le courant ne soit coup sans danger. Voici la commande en mode multi-utilisateur : # shutdown -h now

Chapitre 4. Didacticiels Debian

49

Voici la commande en mode mono-utilisateur (single-user mode) : # poweroff -i -f Attendez jusqu ce que le systme vous afche System halted (NdT : systme arrt), puis coupez le courant. Si apm est activ dans le BIOS et sous Linux, le systme steindra puis coupera lalimentation par lui mme. Voir Grande capacit mmoire et arrt automatique page 43 pour plus de dtails.

4.2.4

dition en ligne de commande

Linterprteur de commande (shell), bash, est dot dune possibilit ddition de commandes. Utilisez simplement la che vers le haut pour entrer dans lhistorique, ensuite utilisez les ches comme vous lentendriez. Autres combinaisons de touches importantes se rappeler :

Ctrl-C~: Interrompre un programme Ctrl-D~: Interrompre une entre Ctrl-S~: Interrompre la sortie lcran Ctrl-Q~: Ractiver la sortie lcran Ctrl-Alt-Del~: Redmarrer/arrter le systme (voir /etc/inittab) Click-gauche-et-dplace-souris~: Slectionner et copier dans le presse-papier (g 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 signication en les entrant une invite de commande ou en tapant man ou info suivi de leur nom (NdT : si votre systme est localis correctement, vous obtiendrez de laide en franais). Beaucoup de commandes Linux afcheront une aide brve si vous les invoquez de lune des manires suivantes :

Chapitre 4. Didacticiels Debian

50

$ nomdelacommande --help $ nomdelacommande -h

whatis nomdelacommande donne un rsum dune ligne de nimporte quelle commande ayant une entre dans les pages de manuel.

4.2.6

Le systme X Window

Pour dmarrer le systme X Window depuis la console :

# exec startx

Un clic droit sur la fentre principale (root window) afchera un menu de slections.

4.2.7

Commandes importantes au clavier

Quelques combinaisons importantes pour la console Linux retenir :

Alt-F1 F6~: Ctrl-Alt-F1 F6~:

Passer dautres pseudo-terminaux Passer dautres pseudo-terminaux (depuis un X-window, DOSEMU, etc.) Alt-F7~: Retourner X-window Ctrl-Alt-moins~: Changer la rsolution de lcran dans X-window Ctrl-Alt-plus~: Changer la rsolution dans lautre sens dans X-window Ctrl-Alt-Backspace~: Arrter X-window Alt-X, Alt-C, Alt-V~: Combinaisons de touches usuelles Windows/Mac pour Couper, Copier, Coller avec la touche Ctrl- qui est remplace 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.

Chapitre 4. Didacticiels Debian

51

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 rpertoire de travail avant de sortir. Si vous utilisez un terminal, comme kon et Kterm pour le japonais, qui utilise certains caractres graphiques, ajouter -a la ligne de commande de mc peut aider prvenir quelques problmes.

4.3.2

Dmarrer MC

$ mc Toutes les oprations sur chiers peuvent tre effectues depuis les menus de MC, moyennant un effort minimal de la part de lutilisateur.

4.3.3

Gestionnaire de chiers

Par dfaut on a deux panneaux contenant la liste des chiers de rpertoires. Un autre mode utile est de congurer la fentre de droite sur information pour voir linformation sur le type de privilges, etc. Ci-dessous, quelques raccourcis clavier essentiels. Avec le dmon gpm, on peut aussi utiliser une souris. (Vriez davoir appuy sur la touche Majuscule pour obtenir le comportement normal concernant le couper/coller dans MC.) F1 : Menu daide F3 : Afcheur de chier interne F4 : diteur interne

Chapitre 4. Didacticiels Debian

52

F9 : Active le menu droulant F10 : Quitte Midnight Commander Tab : Passe dune fentre lautre Insert : Marque le chier pour des oprations multiples telles que copier Del : Efface le chier (Soyez prudent rglez MC pour quil soit en mode de sauvegarde.) Touches du curseur : Auto-explicatif

4.3.4

Astuces en ligne de commande

Toute commande cd changera le rpertoire afch lcran. Contrle-Entre ou Alt-Entre copiera un nom de chier sur la ligne de commande. Utilisez ceci avec les commandes cp ou mv associes avec ldition en ligne de commande. Alt-Tab afchera les diffrentes applications ouvrir (dans un terminal) ou ouvertes, si la commande est utilise hors dun terminal (NdT : et avec un clavier congur en franais). On peut spcier le rpertoire de dpart pour les deux fentres comme arguments MC ; par exemple, mc /etc /root. Esc + numro de touche == Fn (cd., Esc + 1 = F1, etc. ; Esc + 0 = F10) Esc key == Alt key (= Meta, M-) ; cd., tapez Esc + c pour Alt-c

4.3.5

diteur

Lditeur interne possde une manire intressante de procder un copier-coller. Presser la touche F3 marque le dbut de la slection, une seconde fois F3 marque la n de la slection et met celle-ci en surbrillance. Ensuite vous pouvez bouger votre curseur. Si vous appuyez sur F6, la zone slectionne sera dplace jusqu lendroit o se trouve le curseur. Si vous pressez sur F5, la zone slectionne sera copie et insre lendroit o se trouve le curseur. F2 sauvera le chier. F10 vous fera quitter lditeur. La plupart des raccourcis clavier fonctionnent lintuition. Cet diteur peut tre dmarr directement avec un chier charg : $ mc -e fichier__diter $ mcedit fichier__diter Il ne sagit pas dun diteur multi-fentres mais on peut faire usage de plusieurs consoles Linux pour atteindre le mme effet. Pour copier dune fentre sur lautre, utilisez les touches Alt-Fn pour basculer dune console virtuelle lautre et utilisez File->Insert le ou File->Copy to le pour dplacer une portion dun chier dans un autre chier. Cet diteur interne peut tre remplac par nimporte quel autre diteur externe de votre choix. De plus, de nombreux programmes utilisent les variables denvironnement EDITOR ou VISUAL pour dcider quel diteur utiliser. Si vous ntes pas laise avec vim, congurez ces variables sur mcedit en ajoutant ces lignes dans le chier ~/.bashrc :

Chapitre 4. Didacticiels Debian

53

... export EDITOR=mcedit export VISUAL=mcedit ... Je recommande vraiment de positionner ces variables vim, si cest possible. Utiliser frquemment les commandes de vi(m) est une bonne chose faire, puisquelles sont toujours prsentes dans le monde Linux/Unix.

4.3.6

Visionneur

MC possde un visionneur intelligent. Cest un trs bon outil pour chercher des mots dans des documents. Je lutilise toujours pour lire les chiers qui sont dans le rpertoire /usr/share/doc. Cest la manire la plus rapide de surfer dans la masse dinformations 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

Possibilits de dmarrage automatique

Faites Entre sur un chier, et le programme appropri vous montrera le contenu du chier. Il sagit l dune possibilit trs utile de MC. excutable~: Excute la commande fichiers man, html~: Envoie le contenu un visionneur fichiers tar, gz, rpm~: Affiche le contenu comme sous-rpertoire An de permettre ces possibilits de visualisation de fonctionner, les chiers visionnables ne doivent pas tre excutables. Changez leur statut en utilisant la commande chmod ou via le menu de MC.

4.3.8

Systme de chiers FTP virtuel

MC peut tre utilis pour accder des chiers sur lInternet via FTP. Accdez au menu avec la touche F9, puis tapez p pour activer le systme de chiers FTP. Entrez une URL sous la forme username :passwd@hostname.domainname, ce qui permettra dtre dans un rpertoire distant comme sil tait local.

Chapitre 4. Didacticiels Debian

54

4.4 tude approfondie


Il existe beaucoup de bonnes rfrences pour dbutants sur UNIX ailleurs que sur ce site. Les livres de lditeur OReilly sont trs souvent de bons guides dans nimporte quel domaine de linformatique. Le document Tips-HOWTO (http://www.tldp.org/HOWTO/Tips-HOWTO.html) du LDP est une autre source dinformation consulter. Voir Support Debian page 157 pour plus de ressources.

55

Chapitre 5

Mise jour dune distribution


Les notes de version ofcielles pour mettre jour sont situes http://www.debian.org/ releases/stable/releasenotes et http://www.debian.org/releases/testing/releasenotes (en dveloppement).

5.1 Prparation de la transition (potato vers woody)


Une mise jour via le rseau vers testing peut tre effectue comme suit (lancer le script suivant go-woody (examples/) pour le faire en une seule commande) : # # # # # cd /etc/apt cp -f sources.list sources.old :>sources.list cd / apt-setup noprobe ... slectionner http ou ftp # cd /etc/apt # grep -e "^deb " sources.list >sources.deb # grep -e "^deb-" sources.list >sources.src # sed -e "s/^d/#d/" /usr/share/doc/apt/examples/sources.list >sources.list # sed -e "s/stable/testing/" sources.deb >>sources.list # apt-get update # apt-get install apt apt-utils # cat >preferences <<EOF > Package: * > Pin: release a=testing > Pin-Priority: 700

Chapitre 5. Mise jour dune distribution

56

> > > > > > # # >

Package: * Pin: release a=unstable Pin-Priority: 70 EOF sed -e "s/stable/unstable/" sources.deb >>sources.list sed -e "s/stable/unstable/" sources.src | \ sed -e "s/^deb-/#deb-/" >>sources.list

Conseils pour /etc/apt/preferences (voir apt_preferences(5)) : passer la version stable : changer la Pin-Priority de testing sur 80 passer la version testing : garde en ltat (installe les paquets instables avec apt-get en ajoutant "/unstable" aprs le nom du paquet) passer testing(unstable) : changer la Pin-Priority de unstable sur 600 passer unstable(testing) : changer la Pin-Priority de unstable sur 800 Un conseil concernant le choix de Pin-Priority : aller de haut en bas de la table prcdente, commencer en haut immdiatement aprs une version de distribution et descendre dans la table au fur et mesure que le temps approche pour le gel de la version suivante de la distribution. Faites en sorte de congurer apt pour lusage dun proxy, si ncessaire, en rglant la variable denvironnement http_proxy ou en rglant la valeur de http dans /etc/apt/apt.conf. La procdure dcrite dans cette section ne fait que mettre jour apt et un ensemble minimum de paquets an dviter des problmes de dpendance. Comme cette mthode de mise jour utilise apt-get, la gestion des paquets recommends et suggests est limite. Lisez Dpendances des paquets page 16 et utilisez dselect la place pour avoir un contrle plus n.

5.2

Mise jour vers Woody

Aprs la prparation ci-dessus : # apt-get ... pour # apt-get ... pour (new, # apt-get update # commande essentielle AVANT de mettre jour mettre jour lensemble du systme avec des "suggestions" -u dist-upgrade mettre jour et rester avec les rglages de dselect actuels better) -u dselect-upgrade # utiliser le rsultat de configuration de # dselect

Chapitre 5. Mise jour dune distribution

57

5.3 Conguration de Woody


(Ceci peut ne pas tre utiliser du fait de lvolution constante de Woody.) Pour un systme Woody frachement install, diter /etc/apt/sources.list, /etc/apt/apt.conf, et /etc/apt/preferences pour raliser la mme structure que celle dcrite dans les sections ci-dessus.

5.4 Amliorer le chier sources.list


Amliorer le chier sources.list en testant chaque site sur son temps de latence et sa bande passante. # apt-get install apt-spy # cd /etc/apt ; mv sources.list sources.list.org # apt-spy -d testing -l sources.apt netselect-apt est similaire apt-spy. Il cre un chier sources.list plus complet, mais utilise une mthode moins bonne pour choisir le meilleur mirroir (comparaison des temps de ping). apt-setup est la mthode manuelle pour slectionner les mirroirs de sources.list, mais cest toujours le meilleur moyen de choisir des mirroirs tant que apt-spy na pas t amlior.

Chapitre 5. Mise jour dune distribution

58

59

Chapitre 6

Gestion des paquets Debian


Assurez-vous de congurer un proxy HTTP local en utilisant squid pour les paquets tlchargs par APT. Cela permet damliorer considrablement les performances de la mise jour rseau, spcialement avec plusieurs machines Debian sur le LAN. Ce document traite des systmes Woody mais la plupart des informations sappliquent aussi un systme Potato ( part apt_preferences(5) et ce qui a rapport /etc/preferences)).

6.1 Introduction
Si lire toute la documentation pour les dveloppeurs est trop pour vous, lisez dabord ce chapitre et commencez goter la puissance de Debian avec testing/unstable :-)

6.1.1

Outils principaux

dselect dpkg

-- outil de gestion des paquets laide de menus (haut niveau) -- installation de paquets (focalis sur les fichiers de paquets) apt-get -- installation de paquets (focalis sur les archives de paquets, interface en ligne de commande pour APT) tasksel -- installation de tches (ensemble de paquets) aptitude -- installation de paquets (paquets et tches, interface ncurses pour APT) deity -- autre interface ncurses pour APT synaptic, gsynaptic -- autres interfaces graphiques pour APT Ces outils ne sont pas de mme niveau. dselect tourne au-dessus dAPT (en ligne de commande : apt-get) et dpkg.

Chapitre 6. Gestion des paquets Debian

60

APT utilise /var/lib/apt/lists/* pour suivre ltat des paquets tandis que dpkg utilise /var/lib/dpkg/status. Si vous avez install des paquets directement en utilisant apt-get ou un programme similaire tel que aptitude, assurez-vous de mettre jour le chier /var /lib/dpkg/status par le menu [U]pdate de dselect ou avec la commande shell dselect update avant dexcuter dselect select, tasksel ou dpkg -l. Quant aux dpendances de paquets, apt-get rcupre automatiquement les paquets marqus depends mais ne soccupe pas des paquets marqus recommends et suggests, alors que dselect offre un contrle avanc sur le choix de ces paquets, et rcupre les paquets marqus depends et recommends par dfaut. Voir Dpendances des paquets page 16.

6.1.2

Outils pratiques
recherche un paquet dans le cache local reconfigure un paquet dj install gre les paquets sources automatise la cration dun paquet

apt-cache dpkg-reconfigure dpkg-source dpkg-buildpackage ...

6.2

Commandes de survie Debian

Avec ces connaissances, on peut vivre une vie dternelle mise jour :-) Rfrez-vous aussi Installation du systme Debian page 29, Mise jour dune distribution page 55 et Editeurs de sauvetage page 129.

6.2.1

Installation de tches avec tasksel

tasksel est lInstallateur de Tches Debian, qui est offert comme option simple pendant linstallation du systme. Si on souhaite installer une fonction courante qui requiert plusieurs paquets, cest le meilleur moyen. Assurez-vous dexcuter les commandes dans lordre suivant : # dselect update # tasksel

6.2.2

Systme dinstallation avec APT

Vous pouvez installer des paquets provenant de diffrentes archives en utilisant une version rcente de apt-get (>woody). Ceci permet, par exemple, une mise jour de certains paquets vers

Chapitre 6. Gestion des paquets Debian

61

unstable et une remise un niveau infrieur de certains paquets vers stable tout en fonctionnant avec testing. Pour une mise jour de certains paquets, ajoutez les sources pour unstable (testing si vous utilisez stable) votre chier /etc/apt/sources.list et ditez /etc/apt/preferences comme suit : Package: * Pin: release a=unstable Pin-Priority: 50 (remplacez unstable par testing si vous utilisez stable). Maintenant, vous pouvez excuter apt-get install package/unstable et installer un paquet de unstable, avec toutes ses dpendances. Mais un apt-get upgrade ou apt-get install package normal ninstalle pas un paquet de unstable (ou testing). # # # # # # # apt-cache policy libc6 libc6-dev locales # vrifie ltat des paquets apt-get install libc6=2.2.4-1 libc6-dev=2.2.4-1 locales=2.2.4-1 apt-get install libc6/unstable libc6-dev/unstable locales/unstable apt-get install -t unstable libc6 libc6-dev locales apt-get -u install interesting-new-package remove-packageapt-get remove useless-old-package apt-get remove --purge really-useless-old-package

Pour faire une mise niveau infrieur vers stable, ditez /etc/apt/preferences comme suit : Package: * Pin: release a=stable Pin-Priority: 1001 et lancez apt-get upgrade, ce qui force la mise niveau infrieur grce Pin-priority > 1000.

6.2.3

Systme de mise jour avec APT

Systme de mise jour avec APT : # apt-get update ... puis lancez lune des commandes suivantes~:

Chapitre 6. Gestion des paquets Debian

62

# apt-get -u upgrade # apt-get -u dist-upgrade dpendances # apt-get -u dselect-upgrade

# rcupre tous les paquets ~depends~ # rcupre tous les paquets ~depends~ et rsoud les # suit les slections de dselect

Les commandes suivantes positionnent loption -u en tant quaction par dfaut : $ cat >> /etc/apt/apt.conf // Always show packages to be upgraded (-u). APT::Get::Show-Upgraded "true"; ^D Utilisez loption -s pour simuler la mise jour sans leffectuer. dselect offre une interface base de menus au-dessus dAPT. deity et aptitude offriront des solutions de rechange pour dselect.

6.2.4

Rechercher les bogues de Debian et demander de laide

Si vous avez des problmes avec un paquet, consultez ces sites en premier avant de demander de laide ou de remplir un rapport de bogue. (lynx, links et w3m fonctionnent bien) :

$ lynx http://bugs.debian.org/ $ lynx http://bugs.debian.org/package-name # si vous connaissez le nom du paqu $ lynx http://bugs.debian.org/bugnumber # si vous connaissez le numro du bog Utilisez le moteur de recherche Google (www.google.com) en incluant site :debian.org comme mot-cl. En cas de doute, lisez la documentation. Positionnez CDPATH comme suit : export CDPATH=.:/usr/local:/usr/share/doc et tapez $ cd <packagename> $ mc Plus de ressources sont listes dans Support Debian page 157.

Chapitre 6. Gestion des paquets Debian

63

6.2.5

Rsolution de problmes de mise jour avec APT

Des problmes de dpendances peuvent arriver lors de la mise jour vers unstable/testing. La plupart du temps, cest parce quun paquet qui doit tre mis jour possde une dpendance qui nest pas trouve. Ces problmes sont rsolus en utilisant # apt-get dist-upgrade Si cela ne marche pas, rptez les oprations suivantes jusqu ce que le problme se rsolve tout seul : # apt-get upgrade -f ... ou # apt-get dist-upgrade -f # continue ~upgrade~ malgr les erreurs # continue ~dist-upgrade~ malgr les erreurs

De mauvais scripts de mise jour peuvent causer des problmes rcurrents. Il est recommand de rsoudre ce genre de situations en consultant les scripts /var/lib/dpkg/info/packagename.{post-,pre-} du paquet en question et de lancer : # dpkg --configure -a # configure les paquets partiellement installs

Si un script se plaint dun chier de conguration manquant, regardez dans /etc pour le chier de conguration correspondant. Si un chier de conguration avec une extension .new (ou quelquechose similaire) existe, renommez-le (mv) en un chier sans sufxe. Des problmes de dpendances peuvent survenir en installant des paquets de unstable/testing. Il existe des moyens de passer outre les dpendances. # apt-get install -f package # passe outre les dpendances non rsolues Une autre mthode pour rsoudre ces problmes est dutiliser le paquet equivs. Voir Le paquet equivs page 72. Voir /usr/share/doc/equivs/README.Debian et Le paquet equivs page 72.

6.2.6

Sauvetage avec dpkg

La rcupration dun dselect (APT) qui ne fonctionne plus en utilisant dpkg sans APT est possible sur un systme compltement cass :

Chapitre 6. Gestion des paquets Debian

64

# # # #

cd /var/cache/apt/archives dpkg -i libc6* libdb2* perl* dpkg -i apt* dpkg* debconf* dpkg -i * # jusqu ce quil ny ait plus derreurs

Si un paquet manque, rcuprez-le avec : # mc # utilisez ~FTP link~ vers un serveur FTP Debian

Les paquets sur le serveur HTTP/FTP peuvent ne pas tre localiss sous le rpertoire habituel /dist mais sous le nouveau rpertoire /pool. (Voir Le rpertoire pool page 9.) Installez ensuite avec : # dpkg -i /var/cache/apt/archives/packagefile.deb Pour une dpendance non rsolue, rsolvez-la ou utilisez : # # # # dpkg dpkg dpkg dpkg

--ignore-depends=package1,... -i packagefile.deb --force-depends -i packagefile.deb --force-depends --purge package --force-confmiss -i packagefile.deb # Installe fichier de configuration m

6.2.7

Sauver un systme aprs avoir effac /var

Si tout ce qui est sous /var est effac, vous pouvez retrouver le contrle du systme si vous avez des sauvegardes de /var/lib/dpkg/status en excutant : # # # # # # cd / install -d /var/cache/apt/archives install -d /var/cache/apt/archives/partial install -d /var/lib/dpkg/ cp status-old /var/lib/dpkg/status apt-cache gencaches

Cherchez le vieux chier /var/lib/dpkg/status dans /var/lib/dpkg/status-old ou /var/backups/dpkg.status.*. Garder /var/backups/ dans une partition spare peut tre une bonne ide puisque ce rpertoire contient beaucoup de donnes systme importantes.

Chapitre 6. Gestion des paquets Debian

65

6.2.8

Installer un paquet sur un systme qui ne dmarre plus

Dmarrez Linux en utilisant une disquette/CD de sauvetage Debian ou une autre partition sur un systme Linux multi-boot. Montez le systme qui ne dmarre plus sur /target et utilisez le mode dinstallation chroot de dpkg. # dpkg --root /target -i packagefile.deb Congurez ensuite et rsolvez les problmes. Au fait, si cest seulement un lilo cass qui empche le dmarrage, vous pouvez dmarrer avec le disque de sauvetage standard Debian. A linvite de dmarrage, en considrant que la partition racine de Linux est sur /dev/hda12 et que vous souhaitez le niveau de fonctionnement 3, entrez : boot: rescue root=/dev/hda12 3 Vous avez maintenant dmarr un systme presque compltement fonctionnel avec le noyau de la disquette. (Il peut y avoir de petits problmes dus au manque doptions du noyau ou de modules.)

6.2.9

Que faire si dpkg est cass

Cela pose de srieux problmes pour linstallation des chiers .deb. Les commandes suivantes vous guident pour rcuprer cette situation. (Sur la premire ligne, vous pouvez remplacer links par votre navigateur favori.) $ links http://http.us.debian.org/debian/pool/main/d/dpkg/ ... tlchargez le bon dpkg_version_arch.deb $ ar x dpkg_version_arch.deb $ su password: ***** # mv data.tar.gz /data.tar.gz # cd / # tar xzfv data.tar.gz Pour une machine i386, http ://packages.debian.org/dpkg peut aussi tre utilis comme URL.

6.3 Commandes nirvana de Debian


A la lumire de ces commandes, on sera sauv de lternelle lutte karmique contre lenfer de la mise jour an datteindre le nirvana Debian. :-)

Chapitre 6. Gestion des paquets Debian

66

6.3.1

Informations sur un chier

De linformation sur un chier peut tre trouve avec : $ dpkg {-S|--search} pattern # cherche ~pattern~ dans les paquets installs $ zgrep -e pattern /local/copy/of/debian/woody/Contents-i386.gz # cherche ~pattern~ dans les fichiers de larchive Debian Sinon, utilisez les commandes spcialises pour les paquets : # apt-get install dlocate # cre un conflit avec slocate (version scurise de locate) $ dlocate filename # solution de rechange rapide pour dpkg -L et dpkg -S ... # apt-get install auto-apt # outil dinstallation de paquets la demande # auto-apt update # cre le fichier db pour auto-apt $ auto-apt search pattern # recherche exhaustive dans larchive de paquets, installs ou # non

6.3.2

Informations sur un paquet

Cherche et afche les informations sur un paquet. Assurez-vous quapt pointe vers la bonne archive en ditant /etc/apt/sources.list. Si vous voulez voir les diffrences entre un paquet de testing/unstable et un paquet install, utilisez apt-cache policyplutt sympa. # $ $ $ $ # $ $ $ apt-get apt-cache apt-cache apt-cache check # met jour le cache et vrifie les dpendances search texte # cherche un paquet partir de "texte" policy paquet # information sur la priorit dun paquet show -a paquet # affiche la description dun paquet dans toutes les distributions apt-cache showpkg paquet # informations de debogage sur un paquet dpkg --audit|-C # cherche les paquets partiellement installs dpkg {-s|--status} paquet ... # tat et description dun paquet install dpkg -l paquet ... # tat du paquet install (1 ligne) dpkg -L paquet ... liste les noms de fichiers installs par le paquet

apt-cache showsrc nest pas document la sortie de Woody, mais fonctionne :) Vous pouvez aussi trouver des informations sur les paquets (jutilise mc pour naviguer) dans :

Chapitre 6. Gestion des paquets Debian

67

/var/lib/apt/lists/* /var/lib/dpkg/{available|status}

6.3.3

Recongurer les paquets installs

Utilisez les commandes suivantes pour recongurer un paquet install. # # # # dpkg-reconfigure dpkg-reconfigure dpkg-reconfigure dpkg-reconfigure --priority=medium package [...] --all # reconfigure tous les paquets locales # gnre de nouvelles locales --p=low xserver-xfree86 # reconfigure le serveur X

Faites cela pour debconf si vous avez besoin de changer le mode de dialogue de debconf de faon permanente. Certains logiciels sont livrs avec des scripts de conguration.

apt-setup - cre /etc/sources.list install-mbr - installe un gestionnaire de Master Boot Record tzconfig - configure le fuseau horaire local gpmconfig - configure le gestionnaire de souris gpm sambaconfig - configure samba dans potato (woody utilise debconf) eximconfig - configure Exim (MTA) texconfig - configure teTeX apacheconfig - configure Apache (httpd) cvsconfig - configure CVS sndconfig - configure le systme sonore ... update-alternatives - configure la commande par dfaut~; par exemple, vim pour v update-rc.d - gestion des scripts de dmarrage System-V update-menus - systme de menus Debian ...

6.3.4

Enlever et purger des paquets

Enlever un paquet en gardant la conguration : # apt-get remove package ... # dpkg --remove package ...

Chapitre 6. Gestion des paquets Debian

68

Enlever un paquet et sa conguration : # apt-get remove --purge package ... # dpkg --purge package ...

6.3.5

Garder de vieux paquets

Par exemple, pour garder libc6 et libc6-dev lors de lutilisation de dselect et apt-get -u upgrade paquet, on peut utiliser les commandes suivantes : # echo -e "libc6 hold\nlibc6-dev hold" | dpkg --set-selections apt-get -u upgrade paquet ne sera pas gn par cela. Pour garder un paquet en forant une mise niveau infrieur automatique avec apt-get -u upgrade paquet ou apt-get -u dist-upgrade, ajoutez ce qui suit dans /etc/apt/preferences : Package: libc6 Pin: release a=stable Pin-Priority: 2000 Ici, lentre Package : ne peut pas utiliser dentres comme libc6* . Si vous voulez garder tous les paquets binaires lis au paquet source glibc synchroniss, il faut les lister explicitement. La commande suivante liste les paquets garder : dpkg --get-selections "*"|grep -e "hold$"

6.3.6

dselect conguration gnrale

Ajoutez une ligne expert dans /etc/dpkg/dselect.cfg pour rduire la quantit dinformations afche. Quand dselect est lanc, il slectionne automatiquement tous les paquets Required , Important et Standard . Sur le systme Potato, certains programmes, comme teTeX et Emacs, appartenaient cette list et il fallait mieux ne pas les slectionner lors de linstallation initiale en les dslectionnant manuellement (_). Dans Woody, ils ont t dplacs dans la catgorie Optional . dselect a une interface utilisateur droutante. 4 commandes importantes (en majuscules !) :

Chapitre 6. Gestion des paquets Debian

69

Touche Q R D U

Action Quitter. Confirme la slection courante et quitte (passe outre les dpendances). Rtablir. Je ne voulais pas faire a. (Damn it!) Je me fiche de ce que dselect pense. Fais comme a~! Positionne tout dans ltat sUggr.

Avec D et Q, vous pouvez slectionner des paquets en conit vos risques et prils. Faites attention en utilisant ces commandes. Pour des machines plus lentes, lancez dselect sur une machine rapide pour trouver un paquet et utilisez apt-get install pour linstaller. apt-get dselect-upgrade utilise au mieux la slection de dselect.

6.3.7

Supprimer les paquets du cache

Les installations de paquets avec APT laissent des chiers de paquets dans le cache /var/cache /apt/archives ; ce cache doit tre nettoy. # apt-get autoclean # efface les fichiers de paquets inutiles # apt-get clean # efface tous les fichiers de paquets du cache

6.3.8

Enregistrer/copier la conguration du systme

Pour faire une copie locale de ltat de la slection des paquets : $ dpkg --get-selections "*" >myselections # ou utiliser \*

* inclut aussi les noms des paquets purger dans myselections. Vous pouvez transfrer ce chier vers un autre ordinateur, et linstaller avec : # apt-get update # dpkg --set-selections <myselections # apt-get -u dselect-upgrade

6.3.9

Porter un paquet vers le systme stable

Pour des mises jour partielles du systme stable, recrer un paquet pour lenvironnement utilis partir des sources est recommand. Cela vite de nombreuses mises jour de paquets cause des dpendances. Dabord, ajouter lentre suivante dans /etc/apt/sources.list :

Chapitre 6. Gestion des paquets Debian

70

deb-src http://http.us.debian.org/debian testing \ main contrib non-free deb-src http://non-us.debian.org/debian-non-US testing/non-US \ main contrib non-free deb-src http://http.us.debian.org/debian unstable \ main contrib non-free deb-src http://non-us.debian.org/debian-non-US unstable/non-US \ main contrib non-free Chaque entre de deb-src est ici scinde en 2 lignes cause de contraintes dimpression, mais les entres relles dans sources.list doivent tenir en une seule ligne. Ensuite, rcuprez les sources et construisez un paquet : $ apt-get source package/unstable $ dpkg-source -x package.dsc $ cd package-version ... cherche parmi les paquets requis (Build-depends dans le fichier .dsc) et les installe. Il faut le paquet ~fakeroot~ aussi. $ dpkg-buildpackage -rfakeroot

...ou (si pas de signature) $ dpkg-buildpackage -rfakeroot -us -uc # utilisez ~debsign~ ensuite si ncessa ...ou (si pas de signature) fakeroot ./debian/rules binary fakeroot ./debian/rules clean cd .. fakeroot dpkg-source -b package-version ...ensuite pour installer $ su -c "dpkg -i packagefile.deb"

$ $ $ $

Normalement, il ny a besoin dinstaller que peu de paquets avec un sufxe -dev pour satisfaire les dpendances. debsign est dans le paquet devscripts. auto-apt peut aider rsoudre les dpendances. Lutilisation de fakeroot vite une utilisation non ncessaire du compte root. Dans Woody, ces problmes de dpendances peuvent tre simplis. Par exemple, pour compiler le paquet source de pine : # apt-get build-dep pine # apt-get source -b pine

Chapitre 6. Gestion des paquets Debian

71

6.3.10

Archive locale de paquets

An de crer une archive locale de paquets qui soit compatible avec les systmes APT et dselect, un chier Packages doit tre cr. Installer le paquet dpkg-dev et : cd /usr/local install -d pool # les paquets physiques sont placs ici install -d dists/unstable/main/binary-i386 ls -1 pool | sed s/_.*$/ extra BOGUS/ | uniq > override editor override # adjust BOGUS dpkg-scanpackages pool override /usr/local/ \ > dists/unstable/main/binary-i386/Packages # cat > dists/unstable/main/Release << EOF Archive: unstable Version: 3.0 Component: main Origin: Local Architecture: i386 EOF # echo "deb file:/usr/local unstable main" \ >> /etc/apt/sources.list # # # # # #

6.3.11

Convertir ou installer un paquet non Debian

alien permet de convertir des paquets binaires fournis aux formats rpm de Redhat, slp de Stampede, tgz de Slackware, et pkg de Solaris en paquet deb de Debian. Si vous voulez utiliser un paquet dune autre distribution Linux, vous pouvez utiliser alien pour le convertir vers votre format de paquet prfr et linstaller. alien supporte aussi les paquets LSB.

6.3.12 Vrier les chiers de paquets installs


debsums permet la vrication des chiers de paquets installs grce des sommes de contrle MD5. Certains paquets nont pas de somme de contrle MD5. Une solution temporaire pour les administrateurs systme : # cat >>/etc/apt/apt.conf.d/90debsums DPkg::Post-Install-Pkgs {"xargs /usr/bin/debsums -sg";}; ^D par Joerg Wendland <joergland@debian.org> (non test).

Chapitre 6. Gestion des paquets Debian

72

6.4 Autres particularits de Debian


6.4.1 La commande dpkg-divert

dpkg-divert force dpkg ne pas installer un chier sa place par dfaut, mais une place dtourne. Les dtournements peuvent tre utiliss dans les scripts de paquets Debian pour dplacer un chier qui cre un conit. Les administrateurs systme peuvent utiliser ceci pour recouvrir les chiers de conguration dun paquet, ou lorsque des chiers (non marqus confles) ont besoin dtre prservs par dpkg, lors de linstallation dune version plus rcente dun paquet qui contient ces chiers (voir Prservation de la conguration locale page 13). # dpkg-divert [--add] filename # ajoute un dtournement # dpkg-divert --remove filename # supprime un dtournement Ne pas utiliser dpkg-divert si cela nest pas absolument ncessaire.

6.4.2

Le paquet equivs

Si vous compilez un programme depuis les sources, il est mieux den faire un paquet Debian (*.deb). equivs est le dernier recourt. Package: equivs Priority: extra Section: admin Description: Passer outre les dpendances de paquets. Cest un paquet qui peut tre utilis pour crer des paquets Debian qui ne contiennent que des informations sur les dpendances.

6.4.3

Commandes de rechange

Pour utiliser vim la place de vi, utilisez update-alternatives : # update-alternatives --display vi ... # update-alternatives --config vi Selection Command ----------------------------------------------1 /usr/bin/elvis-tiny 2 /usr/bin/vim

Chapitre 6. Gestion des paquets Debian

73

*+

/usr/bin/nvi

Enter to keep the default[*], or type selection number: 2 Les commandes de rechange du systme sont maintenues dans /etc/alternatives en tant que liens symboliques. Pour avoir votre gestionnaire de fentres favori, utilisez x-window-manager la place. /bin/sh est un lien direct de /bin/bash ou /bin/ash. Il est plus sr dutiliser /bin/bash pour garder la compatibilit avec de vieux scripts bash mais /bin/ash permet dtre plus disciplin et dtre compatible POSIX. La mise jour vers un noyau Linux 2.4 a tendance positionner ce lien vers /bin/ash.

6.4.4

init System-V et niveaux de fonctionnement

Le niveau de fonctionnement par dfaut peut tre congur dans /etc/inittab. Contrairement dautres distributions, Debian laisse la gestion des niveaux de fonctionnement compltement ladministrateur. La gestion de init de type System-V est sense tre effectue par les scripts update-rc.d. Dmarrer /etc/init.d/name dans les niveaux 1, 2, 3 et le stopper dans les niveaux 4, 5 avec une priorit de 20 (normal) peut se faire avec : # update-rc.d name start 20 1 2 3 . stop 20 4 5 . Enlever le lien symbolique alors que le script dans init.d existe toujours peut se faire avec : # update-rc.d -f name remove Pour diter le niveau de fonctionnement, je triche. Jdite manuellement en utilisant la commande mv linvite shell de mc et je copie les liens avec Alt-Enter. Par exemple : # mv S99xdm K99xdm # dsactive xdm (X display manager) Je dsactive mme un daemon en insrant exit 0 au dbut du script init.d. Aprs tout, ce sont des chiers de conguration.

Chapitre 6. Gestion des paquets Debian

74

6.4.5

Services dsactivs

La distribution Debian prend trs au srieux la scurit du systme et sattend ce que ladministrateur soit comptent. Ainsi, la facilit dutilisation est quelquefois mise en second plan et certains services fournis par des daemons sont livrs avec le niveau de scurit le plus lev, avec le moins de services (voire aucun) disponibles dans leur tat dinstallation par dfaut. Excutez ps aux ou consultez le contenu de /etc/init.d/* et /etc/inetd.conf, si vous avez des doutes ( propos dExim, DHCP, . . .). De plus, consultez /etc/hosts.deny de la mme faon qu la section Contrle daccs avec PAM et login page 100. La commande pidof est aussi utile (voir pidof(8)). X11 ne permet pas les connexions TCP/IP (distantes) par dfaut dans les versions rcentes de Debian. Voir Connexion TCP/IP X page 111. La redirection X est aussi dsactive dans SSH. Voir Connexion X distante : ssh page 111.

75

Chapitre 7

Le noyau Linux et Debian


Debian a une manire de recompiler le noyau Linux et les modules associs qui lui est propre. Voir aussi Debian et le noyau page 24.

7.1

Recompilation du noyau

Lutilisation de gcc, binutils et modutils de Debian unstable peut aider lors de la compilation du dernier noyau Linux.

7.1.1 Mthode Debian standard


Utilisez le nouveau paquet kernel-package de Woody. De plus, soyez attentifs aux rapports de bogues relatifs gcc, binutils et modutils. Sous Debian, compiler un noyau personnalis partir des sources ncessite de prendre certaines prcautions. Utilisez la nouvelle option --append_to_version avec make-kpkg pour compiler plusieurs images du noyau. # # # $ $ $ $ apt-get install debhelper modutils kernel-package libncurses5-dev apt-get install kernel-source-2.4.18 # utilisez la dernire version vi /etc/kernel-pkg.conf # entrez votre nom et adresse lectronique cd /usr/src # dossier o va se faire la compilation tar --bzip2 -xvf kernel-source-2.4.18.tar.bz2 cd kernel-source-2.4.18 # si cest votre source du noyau rm -rf */pcmcia # [FACULTATIF] si on veut utiliser des modules de pcmcia-cs

Chapitre 7. Le noyau Linux et Debian

76

$ cp /boot/config-2.4.18-386 .config # rcuprez la configuration actuelle comme defaut $ make menuconfig # personnalisez votre noyau $ make-kpkg clean # obligatoire (voir : man make-kpkg) $ fakeroot make-kpkg --append_to_version -486 --initrd \ --revision=rev.01 kernel_image \ modules_image # modules_image pour pcmcia-cs* etc. $ cd .. # dpkg -i kernel-image*.deb pcmcia-cs*.deb # installation En ralit, make-kpkg kernel_image lance make oldconfig et make dep. Nutilisez pas --initrd si initrd nest pas utilis. Le script de dmarrage initrd actuel de Debian a besoin de la rustine pour le noyau cramfs, si vous utilisez les sources du noyau dune archive non Debian voir http://bugs.debian.org/149236. Vous pouvez viter de faire rm -fr */pcmcia en slectionnant General setup > dans PCMCIA/CardBus support > dans make menuconfig et en mettant la conguration < > PCMCIA/CardBus support (cd dcocher la case). Sur une machine SMP, congurez CONCURRENCY_LEVEL selon kernel-pkg.conf(5).

7.1.2

Mthode classique

Rcuprez les sources ofcielles depuis : linux : http://www.kernel.org/ pcmcia-cs : http://pcmcia-cs.sourceforge.net/ ou utilisez les sources quivalentes dans Debian et faites ce qui suit : # # # # # # # # cd /usr/src tar xfvz linux-whatever.tar.gz rm -rf linux ln -s linux-whatever linux tar xfvz pcmcia-cs-whatever.tar.gz ln -s pcmcia-cs-whatever pcmcia cd linux rm -rf */pcmcia # [FACULTATIF] si on veut utiliser les modules de pcmcia-cs # make menuconfig ... configurez ... # make dep # make bzImage

Chapitre 7. Le noyau Linux et Debian

77

... editions des fichiers de configuration pour lilo / grub ... ... dplacez /usr/src/linux/arch/i386/boot/bzImage vers boot ... ... /sbin/lilo ou ce qui se fait pour grub # make modules; make modules_install # cd ../pcmcia # make config # make all # make install ... ajoutez les noms des modules dont vous avez besoin dans /etc/modules # shutdown -r now ... redmarrez avec le nouveau noyau ...

7.2

Le noyau 2.4 modulaire

Les nouveaux noyaux 2.4 Debian fournis dans kernel-image-2.4.NN sont trs modulaires. Vous devez vous assurer que les modules effectuant les fonctions du noyau que vous recherchez sont l.

7.2.1

PCMCIA

/etc/modules doit contenir les lignes suivantes pour que PCMCIA fonctionne : # driver ISA PnP isa-pnp # driver PCMCIA bas niveau # yenta_socket # je nen ai apparemment pas besoin Le reste est pris en charge par des scripts PCMCIA (du paquet pcmcia-cs), depmod et kmod. Jai besoin de isa-pnp, srement parce que mon portable possde une vieille interface ISA-PCMCIA. Des portables rcents avec une interface Cardbus/PCMCIA peuvent ne pas en avoir besoin. Miquel van Smoorenburg <miquels@cistron.nl> nous dit : Jai tout simplement supprim tout ce qui a rapport pcmcia sur mon portable au travail, y compris cardmgr, et jai install un noyau 2.4 avec le support cardbus, et le nouveau paquet hotplug de Woody. Si vous avez une carte 32 bits, vous navez pas besoin du paquet pcmcia ; le noyau 2.4 comprend cardservices. Et le pilote tulip standard devrait marcher avec votre carte dlink. Mike

Chapitre 7. Le noyau Linux et Debian

78

7.2.2

SCSI

[NON TESTE] /etc/modules doit contenir les lignes suivantes pour que SCSI fonctionne : # core SCSI scsi_mod # driver gnrique SCSI sg # disque SCSI sd_mod # Tous les autres modules ncessaires pour le matriel ... depmod peut peut-tre se charger lui-mme de certains de ces modules.

7.2.3

Fonctions rseau

/etc/modules doit contenir les lignes suivantes pour obtenir des fonctionnalits rseau supplmentaires : # net/ipv-4 ip_gre ipip # net/ipv-4/netfilter # iptable (dans lordre) ip_tables ip_conntrack ip_conntrack_ftp iptable_nat iptable_filter iptable_mangle # ip_nat_ftp ip_queue # ipt_LOG ipt_MARK ipt_MASQUERADE ipt_MIRROR

Chapitre 7. Le noyau Linux et Debian

79

ipt_REDIRECT ipt_REJECT ipt_TCPMSS ipt_TOS ipt_limit ipt_mac ipt_mark ipt_multiport ipt_owner ipt_state ipt_tcpmss ipt_tos ipt_unclean # #ipchains #ipfwadm Ces lignes ne sont pas optimises. depmod pourrait se charger de certains des modules.

7.2.4

Systme de chiers EXT3 ( > 2.4.17)

Les tapes suivantes sont ncessaires pour activer le systme de chiers journalis Ext3, en utilisant une image du noyau Debian prcompile ( > 2.4.17) : # cd /etc; mv fstab fstab.old # sed s/ext2/ext3,ext2/g <fstab.old >fstab # vi /etc/fstab ... mettre le type du systme de fichier racine "auto" au lieu de "ext3,ext2" # cd /etc/mkinitrd # echo jbd >>modules # echo ext3 >>modules # echo ext2 >>modules # cd / # apt-get update; apt-get install kernel-image-2.4.17-686-smp ... installe le noyau le plus rcent et configure le dmarrage du systme (lilo est excut) # tune2fs -j -i 0 /dev/hda1 # tune2fs -j -i 0 /dev/hda2 ... Pour tous les systmes de fichier EXT2 convertis en EXT3 # shutdown -r now

Chapitre 7. Le noyau Linux et Debian

80

La journalisation EXT3 du systme de chier est maintenant active. Une entre type ext3,ext2 dans fstab assure un passage sr EXT2 si le noyau ne supporte pas EXT3 pour les partitions autres que la partition racine. Si un noyau 2.4 est dj install et que vous ne souhaitez pas le rinstaller, faites la mme chose jusquaux commandes apt-get et : # mkinitrd -o /boot/initrd.img-2.4.17-686-smp # /lib/modules/2.4.17-686-smp # lilo # tune2fs -j -i 0 /dev/hda1 # tune2fs -j -i 0 /dev/hda2 ... pour tous les FS EXT2 convertis en EXT3 # shutdown -r now La journalisation EXT3 du systme de chier est maintenant active. Si /etc/mkinitrd/modules na pas t congur quand mkinitrd a t excut et que vous souhaitez ajouter des modules au dmarrage du systme : ... linvite de initrd pour accder au shell (5 sec.), appuyer sur RETURN # insmod jbd # insmod ext3 # modprobe ext3 prend peut-tre tout en charge # insmod ext2 # ^D ... continue le dmarrage Sur lcran de dmarrage (dmesg), cramfs : wrong magic apparat mais cette erreur est connue pour tre sans consquence. Cela sera rsolu dans une prochaine version (2002/8). Voir http: //bugs.debian.org/135537 et le EXT3 File System mini-HOWTO (http://www.symonds. net/~rajesh/howto/ext3/index.html) ou /usr/share/doc/HOWTO/en-txt/mini/extra /ext3-mini-HOWTO.gz pour plus dinformation. Sur certains systmes, le noyau se bloque lorsque EXT3 est activ mais je nai eu aucun problme (avec 2.4.17).

7.2.5

Support Realtek RTL-8139 dans le noyau 2.4

Pour une raison inconnue, le module RTL-8139 ne sappelle plus rtl8139, mais 8139too. ditez simplement votre chier /etc/modules pour changer lentre correspondante lorsque vous mettez jour un noyau 2.2 en 2.4.

81

Chapitre 8

Astuces Debian
8.1 Dmarrer le systme
Consultez le BootPrompt-HOWTO (http://www.tldp.org/HOWTO/BootPrompt-HOWTO.html) du LDP pour des informations dtailles sur linvite de dmarrage.

8.1.1

Jai oubli le mot de passe de root ! (1)

On peux dmarrer dans le compte administrateur (root) sans connatre le mot de passe de root si on a un accs au clavier de la console. (Cela suppose quil ny a pas de mot de passe requis pour le BIOS ni pour le chargeur de dmarrage comme lilo qui empche de lancer le systme). Cette procdure ne ncessite ni disquette de dmarrage externe ni changement dans les rglages du BIOS. Ici, Linux est le nom du noyau Linux par dfaut qui lance le systme Debian. A lcran dinvite de lilo, ds que boot : apparat (il faut appuyer sur la touche MAJ sur certains systmes), entrez : boot: Linux init=/bin/sh Le systme lance alors le noyau et excute /bin/sh au lieu du processus init standard. Vous avez maintenant les droits et le shell de ladministrateur root. Puisque / est mont en lecture seule et que beaucoup de partitions ne sont pas encore montes, vous devez faire ce qui suit pour obtenir un systme peu prs fonctionnel. init-2.03# mount -n -o remount,rw / init-2.03# mount -avt nonfs,noproc,nosmbfs

Chapitre 8. Astuces Debian

82

init-2.03# cd /etc init-2.03# vi passwd init-2.03# vi shadow (Si la seconde colonne de /etc/passwd est x pour tous les utilisateurs, votre systme utilise les shadow passwords (NdT : mots de passes cachs), et il faut diter /etc/shadow.) Une entre vide dans la seconde colonne de lun de ces chiers dsactive le mot de passe. Maintenant le systme peut tre lanc sans le mot de passe de root. Debian (au moins aprs Potato) ncessite dentrer un mot de passe si le systme est lanc au niveau dexcution (runlevel) 1, ce que danciennes distributions ne faisait pas. Cest une bonne ide davoir un diteur minimum dans /bin au cas o /usr ne serait pas accessible (voir Editeurs de sauvetage page 129). Vous pouvez aussi installer le paquet sash. Si le systme ne dmarre plus, lancez : boot: Linux init=/bin/sash sash sert de substitution intractive sh mme lorsque /bin/sh est inutilisable. Il est li statiquement, et inclut beaucoup dutilitaires standard (tapez help linvite pour une liste).

8.1.2

Jai oubli le mot de passe de root ! (2)

Dmarrez depuis nimporte quel ensemble de disquettes de boot/root. Si /dev/hda3 est la partition racine originale, la suite vous laissera diter le chier de mots de passe aussi facilement que prcdemment. # # # # # mkdir fixit mount /dev/hda3 fixit cd fixit/etc vi shadow vi passwd

Lavantage de cette mthode sur la prcdente est quon nest pas oblig de connatre le mot de passe de lilo, mais on doit pouvoir rgler le BIOS pour que le systme se lance depuis la disquette ou le CD.

8.1.3

Je ne peux pas lancer le systme

Pas de problme, personne ne prend la peine de faire une disquette de dmarrage lors de linstallation. Si lilo est cass, rcuprez la disquette de dmarrage de linstallation de Debian (rescue).

Chapitre 8. Astuces Debian

83

Dmarrez depuis cette disquette. A linvite de dmarrage, en supposant que la partition racine de Linux est /dev/hda12 et que vous voulez le niveau dexcution (runlevel) 3, entrez : boot: rescue root=/dev/hda12 3 Vous avez maintenant lanc un systme presque totalement fonctionnel depuis le noyau prsent sur la disquette. Il peut y avoir quelques problmes et messages derreur mineurs cause dun manque dans les options du noyau ou dun module absent. Si vous avez besoin dune disquette de dmarrage personnalise, lisez readme.txt sur la disquette rescue.

8.1.4

Autres astuces avec linvite de dmarrage.

Le systme peut tre lanc un niveau dexcution particulier et avec des options de congurations en utilisant linvite de dmarrage de lilo. Les dtails sont donnes dans le BootPromptHOWTO (http://www.tldp.org/HOWTO/BootPrompt-HOWTO.html) (LDP). Si vous voulez lancer le systme au niveau dexcution 4, entrez la ligne suivante linvite de lilo. boot: Linux 4 Si vous voulez lancer le systme en mode de fonctionnement mono-utilisateur normal, et que vous connaissez le mot de passe de root, un des exemples suivants linvite de lilo fonctionnera. boot: Linux S boot: Linux 1 boot: Linux -s Si vous voulez lancer le systme en utilisant moins de mmoire vive que le systme nen a en ralit (par exemple 48Mo sur un ordinateur qui a 64Mo), utilisez la commande suivante linvite de dmarrage de lilo : boot: Linux mem=48M Assurez-vous de ne pas spcier plus de mmoire que le systme nen a en ralit, sinon le noyau va planter. Si vous avez plus de 64Mo de mmoire vive, 128Mo par exemple, moins de spcier mem=128M linvite de lilo ou dinclure une ligne append similaire dans /etc/lilo.conf, les vieux noyaux et/ou les cates mres avec un vieux BIOS nutiliseront pas la mmoire au-del des 64Mo.

Chapitre 8. Astuces Debian

84

8.2 Enregistrer les activits


8.2.1 Enregistrer les activits du shell

Ladministration systme est une srie dactivits beaucoup plus labores dans un environnement Unix que dans un environnement de PC ordinaire. Soyez sr de connatre les mthodes de conguration de base si vous avez besoin de rparer les problmes dun systme. Les interfaces graphiques des outils de conguration peuvent avoir lair agrable et commode, mais sont parfois limites surtout dans de telles situations. Dans ce contexte, enregistrer les activits du shell est une bonne habitude, surtout si lon est root. Sous Emacs : utilisez M-x shell pour dmarrer lenregistrement dans le buffer, et utilisez C-x C-w pour crire le contenu du buffer dans un chier. Sous le shell : utilisez la commande script. $ script Script started, file is typescript .... faites ce que vous voulez ... Control-D $ col -bx <typescript >savefile $ vi savefile La mthode suivante peut tre utilise la place de script. $ bash -i 2>&1 | tee typescript

8.2.2

Enregistrer les activits sous X

Si vous avez besoin denregistrer limage dune application sous X, y compris une fentre de xterm, utilisez gimp. Il peut capturer une fentre isole ou lcran entier. Des alternatives existent comme xwd (paquet xbase-clients), import (imagemagick), ou scrot (scrot).

8.2.3

Enregistrer les changements aux chiers de conguration

Le paquet Changetrack enregistrera les changements aux chiers de conguration dans des archives RCS. Voir changetrack(1). # apt-get install changetrack # vi changetrack.conf

Chapitre 8. Astuces Debian

85

8.3 Copier et archiver un sous-rpertoire entier


8.3.1 Commandes de base pour copier un sous-rpertoire entier

En cas de rarrangement de la structure de chiers, dplacez le contenu des dossiers y compris les liens par les commandes : Mthode classique~: # cp -a /source/directory /dest/directory # version GNU de cp # (cd /source/directory && tar cf - . ) | \ (cd /dest/directory && tar xvfp - ) Sil y a des liens durs, la mthode suivante est ncessaire~: # cd /path/to/old/directory # find . -depth -print0 | afio -p -xv -0a /mount/point/of/new/directory Si le systme de fichier est distant~: # (cd /source/directory && tar cf - . ) | \ ssh user@host.dom (cd /dest/directory && tar xvfp - ) Sil ny a pas de fichiers lis~: # scp -pr user1@host1.dom:/source/directory \ user2@host2.dom:/dest/directory Ici, scp <==> rcp et ssh <==> rsh. La mthode de copie dun sous-rpertoire entier est base sur linformation fournie par Manoj Srivastava <srivasta@debian.org> sur la liste de diffusion debian-user@lists.debian.org.

8.3.2

cp

Traditionnellement, cp ntait pas rellement utilisable puisquil ne drfrence pas les liens symboliques, ni ne prserve les liens durs. Une autre chose considrer tait les chiers faible densit (avec des trous). La version GNU de cp a dpass ces limitations ; cependant, sur un systme non GNU, cp peut toujours avoir ces problmes. De plus, on ne peut pas gnrer de petites archives portables avec cp. % cp -a . newdir

8.3.3

tar

tar a limin certains des problmes que cp avait avec les liens symboliques. Cependant, bien que cpio gre les chiers spciaux, le tar traditionnel ne les gre pas.

Chapitre 8. Astuces Debian

86

tar gre de multiples liens durs en plaant une copie du lien sur la bande, mais le nom de cette copie est le seul que vous pouvez utiliser pour rcuprer le chier ; cpio met une copie pour chaque lien, et vous pouvez le rcuprer en utilisant nimporte lequel des noms. La commande tar a chang loption pour les chiers .bz2 entre Potato et Woody, donc utilisez --bzip2 dans des scripts au lieu de -I (Potato) ou -j (Woody).

8.3.4

pax

Cest le nouvel utilitaire darchivage portable, compatible POSIX (IEEE Std 1003.2-1992, pages 380-388 (section 4.48) et pages 936-940 (section E.4.48)), qui chante et danse. pax lit, crit, et liste les chiers dune archive, et copie des hirarchies de rpertoires. pax travaille indpendament du format de larchive et supporte un grand nombre de formats darchives. Les implmentations de pax sont rcentes et encore chaudes. # apt-get install pax $ pax -rw -p e . newdir ou $ find . -depth | pax -rw -p e

newdir

8.3.5

cpio

cpio stocke ou extrait les chiers dans ou partir dune archive cpio ou tar. Larchive peut tre un autre chier sur le disque, une bande magntique ou un tube. $ find . -depth -print0 | cpio --null --sparse -pvd new-dir

8.3.6

afio

afio permet de mieux grer les archives au format cpio. Il est gnralement plus rapide que cpio, fournit plus doptions pour les bandes magntiques, gre mieux les erreurs de donnes en entre et supporte des archives multi-volume en utilisation intractive. afio peut crer des archives compresses qui sont plus sres que les archives compresses de tar ou cpio. afio est utilis au mieux en tant que machine archiver dans un script de sauvegarde. $ find . -depth -print0 | afio -px -0a new-dir Toutes mes sauvegardes sur bande sont faites avec afio.

Chapitre 8. Astuces Debian

87

8.4 Rcupration dun systme bloqu


8.4.1 Tuer un processus

Excutez top pour voir quel processus agit bizarrement. Appuyez sur P pour trier par temps CPU utilis, M pour trier par mmoire utilise, et k pour tuer un processus. Utilisez kill pour tuer (ou envoyer un signal ) un processus partir de son numro de processus, ou killall pour faire la mme chose partir du nom de la commande du processus. Signaux frquemment utiliss : 1: HUP, redmarre un daemon (NdT : serveur) 15: TERM, termine un process normalement 9: KILL, tue un process

8.4.2

ALT-SysRQ

Loption de compilation du noyau Magic SysRq key donne une assurance contre un mauvais fonctionnement du systme. Appuyer sur ALT-SysRQ sur un i386, suivi par une des touches r 0 k e i s u b, agit magiquement. UnRaw rcupre le clavier en cas de plantage de logiciels comme X. Mettre le niveau de log de la console 0 rduit le nombre de messages derreur. saK (touche dattention systme, NdT : system attention key en Anglais) tue tous les processus de la console vituelle courante. tErminate tue tous les processus du terminal courant except init. kIll tue tous les processus except init. Sync, Umount, et reBoot permettent de se sortir de trs mauvaises situations. Les noyaux de linstallation par dfaut de Debian ne sont pas compils avec cette option au moment o ce document est crit. Recompilez le noyau pour activer cette fonction. Des informations dtailles se trouvent dans /usr/share/doc/kernel-doc-version/Documentation /sysrq.txt.gz ou /usr/src/kernel-version/Documentation/sysrq.txt.gz.

8.5
8.5.1

Petites commandes utiles se rappeler


Pager

less est le pager (visualisateur de contenu des chiers). Appuyez sur h pour de laide. Il peut faire beaucoup plus que more. less peut tre amlior en excutant eval $(lesspipe) ou eval $(lessfile) dans les scripts de dmarrage du shell. Plus dinformation dans /usr/share

Chapitre 8. Astuces Debian

88

/doc/lessf/LESSOPEN. Loption -R permet lafchage de caractres bruts et active les squences dchappement couleur ANSI. Voir less(1). w3m peut tre une bonne solution de rechange pour les systmes de code (EUC).

8.5.2

Mmoire libre

free et top donnent de bonnes informations sur les ressources mmoire. Ne vous inquitez pas de la taille de used sur la ligne Mem :, lisez plutt la ligne en-dessous (38792 dans lexemple ci-dessous). $ free -k # for 256MB machine total used Mem: 257136 230456 -/+ buffers/cache: 38792 Swap: 264996 0

free 26680 218344 264996

shared 45736

buffers cached 116136 75528

La quantit exacte de mmoire physique peut tre conrme par grep ^Memory /var/log/dmesg, qui dans notre cas dexemple donne Memory : 256984k/262144k available (1652k kernel code, 412k reserved, 2944k data, 152k init) . Total = 262144k = 256M (1k=1024, 1M=1024k) Free to dmesg = 256984k = Total - kernel - reserved - data - init Free to shell = 257136k = Total - kernel - reserved - data Environ 5Mo ne sont pas utilisables par le systme parce que le noyau les utilise.

8.5.3
# # # #

Rgler lheure (BIOS)


date MMJJhhmmAAAA hwclock --utc hwclock --systohc hwclock --show

Cela va rgler lheure du systme et du matriel JJ/MM hh :mm, AAAA. Lheure est afche selon le fuseau horaire local, mais le matriel utilise UTC.

8.5.4

Rgler lheure (NTP)

Rfrence : Managing Accurate Date and Time HOWTO (http://www.tldp.org/HOWTO/TimePrecision-H index.html).

Chapitre 8. Astuces Debian

89

Rgler lheure avec une connexion Internet permanente Rgler lhorloge systme automatiquement via un serveur distant : # ntpdate server Il est bon davoir cette commande dans /etc/cron.daily si votre systme possde une connexion permanente Internet. Rgler lheure avec une connexion Internet intermitente Utilisez le paquet chrony.

8.5.5

Comment dsactiver lcran de veille

En mode console : # setterm -powersave off Dmarrez la console kon2 (kanji) avec : # kon -SaveTime 0 Sous X : # xset s off ou # xset -dpms ou # xscreensaver-command -prefs Lisez les pages de manuel correspondantes.

8.5.6

Chercher dans la base de donnes administrative

La Glibc offre getent(1) pour chercher dans les entres des bases de donnes administratives, cd., passwd, group, hosts, services, protocols, ou networks. getent database [key ...]

Chapitre 8. Astuces Debian

90

8.5.7

Dsactiver le son (beep)

On peut toujours dbrancher le haut-parleur PC ;-) Pour le shell : echo "set bell-style none">> ~/.inputrc

8.5.8

Messages derreur sur lcran de la console

An de ne pas avoir de messages derreur sur lcran, le premier endroit regarder est /etc /init.d/klogd. Rglez KLOGD=-c 3 dans ce script et lancez /etc/init.d/klogd restart. Une autre mthode est de lancer dmesg -n3. Voici la signication des niveaux derreur : 0 : KERN_EMERG, system is unusable 1 : KERN_ALERT, action must be taken immediately 2 : KERN_CRIT, critical conditions 3 : KERN_ERR, error conditions 4 : KERN_WARNING, warning conditions 5 : KERN_NOTICE, normal but signicant condition 6 : KERN_INFO, informational 7 : KERN_DEBUG, debug-level messages Si un message derreur particuler vous embte, pensez faire une rustine facile pour le noyau comme shutup-abit-bp6 (disponible dans le sous-rpertoire des exemples (examples/)). Un autre endroit regarder peut tre le chier /etc/syslog.conf ; vriez si les messages derreurs ne sont pas envoys vers une console.

8.5.9

Rgler la console

Les consoles sur les systmes Unix sont habituellement accdes par des fonctions de la bibliothque (n)curses. Cela donne lutilisateur une mthode indpendante du terminal pour mettre jour les caractres sur lcran avec une optimisation raisonnable. Voir ncurses(3X) et terminfo(5). Sur un systme Debian, il existe beaucoup dentres prdnies : $ toe | less $ toe /etc/terminfo/ | less # toutes les entres # entres reconfigurables

Exportez votre slection dans une variable denvironnement TERM. Si lentre terminfo pour xterm ne marche pas avec un xterm non Debian, changez le type de terminal de xterm lune des versions limite en options comme xterm-r6 lorsque vous

Chapitre 8. Astuces Debian

91

vous connectez un systme Debian distance. Voir /usr/share/doc/libncurses5/FAQ pour plus dinformation. dumb est le plus petit dnominateur commun pour terminfo.

8.5.10

Remettre la console dans un tat sain

Lorsque lcran devient illisible aprs $ cat fichierbinaire (il se peut que vous ne voyiez pas la commande en tapant) :

$ reset

8.5.11

Convertir des chiers texte DOS vers Unix

Pour convertir un chier texte DOS (n de ligne ^M^J) en chier texte Unix (^J) :

# apt-get install sysutils $ dos2unix dosfile

8.5.12 Modier des chiers grce aux expressions rationnelles


Pour remplacer toutes les occurences de FROM_REGEX par TO_REGEX dans tous les chiers FILES . . . :

# perl -i -p -e s/FROM_REGEX/TO_REGEX/g; FILES ...

-i est pour dition sur place , -p est pour boucle implicite sur FILES . . . . Si la substitution est complexe, vous pouvez faciliter le retour sur des erreurs en utilisant le paramtre -i.bak au lieu de -i ; cela permet de garder les chiers originaux en leur ajoutant le sufxe .bak.

8.5.13 Convertir un gros chier en plusieurs petits


$ split -b 650m file $ cat x* >largefile # spare file en morceaux de 650Mo # assemble les fichiers en 1 gros fichier

Chapitre 8. Astuces Debian

92

8.5.14

Bouts de scripts pour les tubes

Les scripts suivants font des choses sympa avec les tubes.

xargs -n 1 command # excute command avec tous les arguments de stdin xargs -n 1 echo| # place chaque argument spar par des espaces sur une ligne grep -e pattern| # extrait les lignes contenant pattern cut -d: -f3 -| # extrait le 3e champ spar par : # (fichier passwd, etc.) col -bx | # supprime backspace et transforme les tabulations en espac expand -| # transforme les tabulations sort -u| # trie et supprime les doublons tr \n | # concatne les lignes en une seule tr \r | # supprime CR tr A-Z a-z| # convertit les majuscules en minuscules sed s/^/# /| # change chaque ligne en commentaire sed s/\.ext//g| # supprime .ext sed -n -e 2p| # affiche la 2e ligne head -n 2 -| # affiche les 2 premires lignes tail -n 2 -| # affiche les 2 dernires lignes

8.5.15

Rcuprer du texte ou une archive de liste de diffusion partir dune page Web

Les commandes suivantes rcuprent une page web dans un chier texte. Trs utile pour copier des congurations depuis le Web. $ lynx -dump http://www.remote-site.com/help-info.html >textf ile links et w3m peuvent aussi tre utiliss, avec de lgres diffrences dans le rendu. Sil sagit dune archive de liste de diffusion, utilisez munpack pour obtenir les contenus MIME partir du texte.

8.5.16 Imprimer joliement une page Web


Les commandes suivantes vont lire une page Web sur une imprimante/un chier PostScript.

Chapitre 8. Astuces Debian

93

$ apt-get install html2ps $ html2ps URL | lpr Voir lpr/lpd page 41. Regardez aussi a2ps et mpage pour crer des chiers PostScript.

8.5.17

Mesurer la dure dune commande

Afche le temps pris par un processus. # time commande >/dev/null real 0m0.035s # dure sur lhorloge (temps rel coul) user 0m0.000s # dure en mode utilisateur sys 0m0.020s # dure en mode noyau

8.5.18

Commande nice

Utilisez nice (du paquet GNU shellutils) pour rgler la gentillesse (valeur nice) dune commande lors de son excution. renice (paquet bsdutils) ou top peuvent changer la valeur nice dun processus. Le processus le plus lent (priorit la plus basse) aura une valeur de 19 ; les valeurs ngatives sont not-nice (NdT : litt. pas gentilles), une valeur de -20 tant donne au processus le plus rapide (priorit la plus haute). Seul le superutilisateur peut donner des valeurs nice ngatives. # nice -19 top # trs gentil # nice --20 cdrecord -v -eject speed=2 dev=0,0 disk.img # trs rapide Parfois, une valeur extrme de nice fait plus de mal que de bien au systme. Utilisez cette commande en faisant attention.

8.5.19 Programmer des activits (cron, at)


Utilisez cron et at pour programmer des tches sous Linux. Consultez at(1), crontab(5), crontab(8). Excutez la commande crontab -e pour crer ou diter un chier crontab pour programmer des vnements rgulirement. Exemple de chier crontab :

Chapitre 8. Astuces Debian

94

# utilise /bin/sh pour excuter les commandes, quoi que dise /etc/passwd SHELL=/bin/sh # envoie un courrier lectronique Paul contenant tous les rsultats, quelle # que soit la personne a qui appartienne la crontab MAILTO=paul # Minute Heure JourDuMois Mois JourDeLaSemaine commande # est excut 00:05 chaque jour 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # est excut 14:15 le 1e de chaque mois -- le rsultat est envoy Paul # par courrier lectronique 15 14 1 * * $HOME/bin/monthly # est excut 22:00 chaque jour de la semaine(1-5), ennuie Joe. % pour une # nouvelle ligne, dernier % pour cc. 0 22 * * 1-5 mail -s "Its 10pm" joe%Joe,%%Where are your kids?%.%% 23 */2 1 2 * echo "run 23 minutes after 0am, 2am, 4am ..., on Feb 1" 5 4 * * sun echo "run at 04:05 every sunday" # est excut 03:40 le premier lundi de chaque mois 40 3 1-7 * * [ "$(date +%a)" == "Mon" ] && command -args Excutez la commande at pour programmer une tche unique : $ echo command -args| at 3:40 monday

8.5.20 Changement de console avec screen


Le programme screen permet dexcuter plusieurs terminaux virtuels avec un shell intractif sur chacun, sur un unique terminal physique ou mulateur de terminal. Mme si vous utilisez les consoles virtuelles de Linux ou plusieurs fentres xterm, explorer screen vaut le coup, de par son nombre de possibilits, qui incluent un historique, le copier/coller, lenregistrement de lafchage, une entre de digraphe, et la possibilit de dtacher une session screen du terminal pour la rattacher plus tard. Scnario daccs distant Si vous vous connectez frquemment sur une machine Linux depuis un terminal distant ou en utilisant un terminal VT100, screen vous facilitera la vie avec la possibilit de dtacher une session.

Chapitre 8. Astuces Debian

95

1. Supposez que vous tes connects via une connexion tlphonique, et que vous excutez une session screen complexe avec des diteurs et des programmes ouverts dans plusieurs fentres. 2. Vous avez alors besoin de quitter votre terminal, mais vous ne voulez pas perdre votre travail en raccrochant. 3. Tapez simplement ^A d pour dtacher la session, puis dconnectez-vous. (Ou encore plus rapide, tapez ^A DD pour que screen dtache la session et dconnecte lui-mme.) 4. Quand vous vous connectez de nouveau, entrez la commande screen -R, et screen va automatiquement rattacher toutes les fentres que vous aviez ouvertes. Commandes typiques de screen Une fois que screen est dmarr, toutes les entres au clavier sont envoyes la fentre except la combinaison de touches de commande, par dfaut ^A. Toutes les commandes screen sont entres en tapant ^A et une touche unique [ainsi que des paramtres]. Commandes utiles : ^A ^A ^A ^A ^A ^A ^A ^A ^A ? c n p 0 w a h H affiche un cran daide (affiche les combinaisons de touches) cre une nouvelle fentre et laffiche va la fentre suivante va la fentre prcdente va la fentre numro 0 affiche la liste des fentres envoie Ctrl-A la fentre courante enregistre une copie de la fentre courante dans un fichier commence/termine lenregistrement de la fentre courante dans un fichier verrouille le terminal (protection par mot de passe) dtache la session screen du terminal dtache la session screen du terminal et dconnecte

^A ^X ^A d ^A DD

Ceci est seulement un petit aperu des possibilits de screen. Sil y a quelquechose que vous souhaiteriez que screen fasse pour vous, il y a des chances quil puisse ! Consultez screen(1) pour plus de dtails. Backspace et/ou Ctrl-H dans une session screen Si la touche backspace et/ou Ctrl-H ne marchent plus correctement lorsque vous excutez screen, ditez /etc/screenrc, trouvez la ligne : bindkey -k kb stuff "\177"

Chapitre 8. Astuces Debian

96

et commentez-la (cd, ajoutez # devant). Programme quivalent de screen pour X Consultez xmove. Voir xmove(1).

8.5.21

Bases pour tester un rseau

Installez les paquets netkit-ping, traceroute, dnsutils, ipchains (noyau 2.2) iptables (noyau 2.4), et net-tools, puis : $ $ $ $ $ ping yahoo.com # teste la connexion Internet traceroute yahoo.com # trace les paquets IP ifconfig # affiche la configuration de la machine route -n # affiche la configuration de routage dig [@dns-server.com] host.dom [{a|mx|any}] |less # affiche les enregistrements DNS de host.dom # sur dns-server.com pour un enregistrement {mx|any} ichains -L -n |less # affiche le filtre de paquets (noyau 2.2) iptables -L -n |less # affiche le filtre de paquets (noyau 2.4) netstat -a # recherche tous les ports ouverts netstat -l --inet # recherche tous les ports en coute netstat -ln --tcp # recherche tous les ports tcp en coute (affichage

$ $ $ $ $

8.5.22

Vider les courriers lectroniques de la le locale

Pour vider la le locale des courriers lectroniques prsents : # exim -q # exim -qf # exim -qff # vide les courriers lectroniques en attente # vide tous les courriers lectroniques # vide mme les courriers lectroniques gels

-qff est peut-tre une meilleure option pour le script /etc/ppp/ip-up.d/exim.

8.5.23 Supprimer les courriers lectroniques gels de la le locale


Pour supprimer les courriers lectroniques gels de la le locale en renvoyant un message derreur : # exim -Mg mailq | grep frozen | awk { print $3 }

Chapitre 8. Astuces Debian

97

8.5.24

Supprimer le contenu dun chier

Pour supprimer le contenu dun chier, par exemple un chier de journal, nutilisez pas rm pour effacer le chier et crer ensuite un chier vide, parce que le chier peut toujours tre accd entre les commandes. Ce qui suit est une faon sre de supprimer le contenu dun chier. $ :>file-to-be-cleared

8.5.25

Fichiers fantmes

Les commandes suivantes crent des chiers fantmes ou vides.

$ dd if=/dev/zero of=filename bs=1k count=5 # 5Ko sans contenu $ dd if=/dev/urandom of=filename bs=1m count=7 # 7Mo de contenu alatoire $ touch filename # cre un fichier de taille 0 (si le fichier existe, met jour

8.5.26

chroot

Supposez que vous avez install une distribution Linux complte (cela peut tre une autre version de Debian ou mme une distribution Red Hat) dans /dev/hda1 et que vous excutez un autre systme Linux install sur /dev/hda2. Vous pouvez excuter le systme de /dev/hda1 sans redmarrer le systme de /dev/hda2 en partageant le mme noyau. # mount /dev/hda1 /mnt/target ... en supposant que /dev/hda1 contient un systme # chroot /mnt/target ... Maintenant le contenu de /dev/hda1 est vu comme rpertoire racine / # mount proc /proc # au cas o ... excutez les commandes depuis /dev/hda1 Cela permet dinstaller stable/testing/unstable sur une machine. De plus, on peut excuter un programme ncessitant beaucoup de mmoire comme dselect en le lanant sur une machine pendant que lon monte par NFS une machine auxiliaire en r/w et que lon pointe chroot vers la machine auxiliaire. Il est facile de crer un systme chroot avec la commande debootstrap de Woody. # # # # mkdir potatochroot debootstrap potato potatochroot chroot potatochroot apt-setup # configure /etc/apt/sources.list

Chapitre 8. Astuces Debian

98

Il existe un paquet chroot plus spcialis, pbuilder, qui construit un systme chroot et compile un paquet dans le chroot. Cest un systme idal pour vrier que les dpendances de compilation dun paquet sont correctes, et pour tre sr que des dpendances non ncessaires ou fausses nexistent dans le paquet rsultant.

8.5.27

Monter une image de disque dur

Si file.img contient limage dun disque dur et que le disque dur original avait une conguration xxxx = (octets/secteur) * (secteurs/cylindres), les commandes suivantes vont le monter sur /mnt : # mount -o loop,offset=xxxx file.img /mnt Notez que la plupart des disques durs ont 512 octets/secteur.

8.5.28 Samba
Bases pour rcuprer des chiers depuis Windows : # mount -t smbfs -o username=myname,uid=my_uid,gid=my_gid \ //server/share /mnt/smb # monte un rpertoire Windows sous Linux # smbmount //server/share /mnt/smb \ -o "username=myname,uid=my_uid,gid=my_gid" # smbclient -L 192.168.1.2 # list the shares on a computer Les voisins de Samba peuvent tre trouvs depuis Linux : # smbclient -N -L ip_address_of_your_PC | less # nmblookup -T "*"

99

Chapitre 9

Congurer un systme Debian


Ce chapitre dcrit seulement les bases de la conguration du systme. Lire Installation du systme Debian page 29 est pr-requis pour ce chapitre. Pour ceux qui sont intresss par la scurit, il est hautement recommand de lire Securing Debian Manual (http://www.debian.org/doc/manuals/securing-debian-howto/) qui se trouve aussi dans le paquet harden-doc.

9.1

Astuces sur linitialisation du systme

Voir Le programme init page 22 pour les bases sur les scripts dinitialisation de Debian.

9.1.1

Personnaliser les scripts dinitialisation

Debian utilise le systme de scripts dinitialisation sys-V. Bien que ces scripts dinitialisation dans /etc/init.d/* soient marqus comme des chiers de conguration et que les administrateurs systme soient libres de les modier, la personnalisation de ces scripts dinitialisation grce aux chiers de /etc/defaults/* est lapproche prfrable. Par exemple /etc/init.d/rcS peut tre utilis pour personnaliser les dfauts au dmarrage pour motd, sulogin, etc.

9.1.2

Personnaliser le journal du systme

Le journal du systme peut tre congur par le chier /etc/syslog.conf. Utilisez le paquet colorize pour colorier les chiers du journal. Voir syslogd(8) et syslog.conf(5).

Chapitre 9. Congurer un systme Debian

100

9.1.3

Optimisation de laccs au matriel

Quelques outils pour loptimisation du matriel sont donns ladministrateur systme avec Debian. hdparm Optimisation du disque dur. Trs efcace. Dangereux. Il faut lire hdparm(8) dabord. hdparm -tT /dev/hda pour tester la vitesse du disque. hdparm -c1 -d1 -u1 -m16 -A /dev/hda pour acclrer un systme IDE moderne. (Cela peut tre dangereux.) setserial Collection doutils pour grer les ports srie. scsitools Collection doutils pour grer le matriel SCSI. memtest86 Collection doutils pour grer la mmoire. hwtools Collection doutils pour la gestion bas niveau du matriel. irqtune : change la priorit dIRQ des priphriques pour autoriser ceux qui ont besoin dune priorit haute et dun service rapide (par exemple ports srie, modems) lavoir. scanport : scanne lespace I/O de 0x100 0x3ff pour trouver les priphriques ISA installs. inb : un petit programme rapide qui lit un port I/O et retourne la valeur en hexadcimal et en binaire. schedutils Utilitaires pour lordonnanceur Linux. taskset, irqset, lsrt et rt sont inclus. Avec nice et renice (non inclus), ils permettent un contrle complet des paramtres de lordonnancement des processus.

9.2 Contrle daccs


9.2.1 Contrle daccs avec PAM et login

PAM (Pluggable Authentication Modules, Modules dAuthentication Greffables) fournit le contrle de la connexion. /etc/pam.d/* # fichiers de contrle de PAM

Chapitre 9. Congurer un systme Debian

101

/etc/pam.d/login /etc/security/* /etc/securetty /etc/login.defs

# # # #

fichier de contrle de PAM pour la connexion paramtres des modules de PAM contrle les connexions de root sur la console contrle le comportement de login

Changez le contenu du chier /etc/pam.d/login comme suit, si vous voulez des terminaux non scuriss mais ne demandant pas de mot de passe. Faites le vos propres risques. #auth auth required required pam_unix.so nullok pam_permit.so

Des astuces similaires peuvent tre appliques pour xdm, gdm, . . ., pour avoir une console X sans mot de passe. Le nombre maximum de processus peut tre rgl avec ulimit -u 1000 dans un shell Bash ou avec la conguration de /etc/security/limits.conf. Dautres paramtres comme core peuvent tre rgls dune faon similaire. La valeur initiale de PATH peut tre rgle dans le chier /etc/login.defs avant le script de dmarrage du shell. La documentation de PAM est dans le paquet libpam-doc. Le Guide de lAdministrateur dun Systme Linux-PAM couvre la conguration de PAM, les modules disponibles, etc. La documentation inclut aussi le Guide du Dveloppeur dApplications Linux-PAM et le Guide du Dveloppeurs de Modules Linux-PAM.

9.2.2

Pourquoi GNU su ne supporte pas le groupe wheel

Cest la clbre phrase de Richard M. Stallman la n de lancienne page info su. Ne pas sinquiter : le su actuel de Debian utilise PAM, donc on peut restreindre laccs de su nimporte quel groupe en utilisant pam_wheel.so dans /etc/pam.d/su. Ce qui suit rglera le groupe adm du systme Debian comme quivalent du groupe BSD wheel et autorisera su sans mot de passe pour les membres du groupe. # anti-RMS configuration in /etc/pam.d/su auth required pam_wheel.so group=adm # Wheel members to be able to su without a password auth sufficient pam_wheel.so trust group=adm

9.2.3

Signication des groupes

Quelques groupes intressants :

Chapitre 9. Congurer un systme Debian

102

Le groupe root est le groupe wheel par dfaut pour su si pam_wheel.so est utilis sans largument group=. Le groupe adm peut lire les chiers du journal. Le groupe cdrom peut tre utilis localement pour donner accs au lecteur de CDROM un ensemble dutilisateurs. Le groupe floppy peut tre utilis localement pour donner accs au lecteur de disquettes un ensemble dutilisateurs. Le groupe audio peut tre utilis localement pour donner accs un priphrique audio un ensemble dutilisateurs. Le groupe src possde le code source, y compris les chiers de /usr/src. Il peut tre utilis localement pour donner la possibilit de grer le code source du systme un utilisateur. Le groupe staff est utile pour donner la possibilit de faire des choses dans /usr/local et crer des rpertoires dans /home plus dadministrateurs systme (support/junior). Pour une liste complte, voir la section FAQ dans Securing Debian Manual (http://www. debian.org/doc/manuals/securing-debian-howto/), qui se trouve aussi dans le paquet harden-doc.

9.2.4

sudo un environnement de travail plus sr

Jutilise sudo principalement comme protection contre ma stupidit. Utiliser sudo est toujours mieux que dutiliser le systme avec le compte root. Installez sudo et activez-le en congurant /etc/sudoers (examples/). Rglez aussi les possibilits de sudo pour les groupes dans /usr/share/doc/sudo/OPTIONS. Cette conguration fournit aux membres du groupe staff un accs toutes les commandes lances en tant que root avec sudo et donne aux membres du groupe src un accs certaines commandes lances en tant que root avec sudo. Lavantage de sudo est quil requiert seulement les mots de passe utilisateurs pour se connecter et que lactivit est surveille. Cest un moyen simple de donner des pouvoirs un administrateur dbutant. Par exemple : $ sudo chown -R myself:mygrp . Bien sr, si vous connaissez le mot de passe de root (comme beaucoup dutilisateurs individuels), nimporte quelle commande peut tre lance en tant que root depuis un compte utilisateur : $ su -c "shutdown -h now" Password:

Chapitre 9. Congurer un systme Debian

103

(Je sais que je devrais limiter les privilges du compte administrateur avec sudo. Mais comme cest mon serveur personnel, je ne me suis pas encore embt avec a.) Un autre programme permet des utilisateurs ordinaires de lancer des commandes avec les privilges de root, voir le paquet super.

9.2.5

Contrle daccs aux dmons

Le super-serveur internet, inetd, est excut lors du dmarrage par /etc/rc2.d/S20inetd (pour le niveau dexcution 2) qui est un lien vers /etc/init.d/inetd. inetd permet de nexcuter quun dmon qui en invoque plusieurs autres, rduisant ainsi la charge du systme. Lorsquune requte pour un service arrive, le protocole et le service sont identis en regardant dans la base de donnes stocke dans /etc/protocols et /etc/services. Pour un service internet normal, inetd utilise /etc/inetd.conf. Pour un service bas sur Sun-RPC, inetd utilise /etc/rpc.conf. Pour la scurit du systme, assurez-vous de dsactiver les services non utiliss dans /etc/inetd.conf. Les services Sun-RPC doivent tre actifs pour NFS et dautres programmes bass sur RPC. Parfois, inetd nexcute pas le serveur demand directement, mais excute le programme denveloppe de dmon TCP/IP tcpd avec le serveur demand comme argument dans /etc/inetd.conf. Dans ce cas, tcpd lance le serveur appropri aprs avoir enregistr dans le journal la requte et avoir fait quelques autres vrications en utilisant les chiers /etc/hosts.deny et /etc /hosts.allow. Si vous avez un problme avec laccs distance sur un systme Debian rcent, commentez la ligne ALL : PARANOID dans /etc/hosts.deny si elle existe. Pour plus de dtails, voir inetd(8), inetd.conf(5), protocols(5), services(5), tcpd(8), hosts_access(5), et hosts_options(5). Pour plus dinformation sur Sun-RPC, voir rpcinfo(8), portmap(8), et /usr/share/doc /portmap/portmapper.txt.gz.

9.2.6

Lightweight Directory Access Protocol

Rfrences : OpenLDAP (http://www.openldap.org/) OpenLDAP Admin Guide dans le paquet openldap-guide LDP : LDAP Linux HOWTO (http://www.tldp.org/HOWTO/LDAP-HOWTO/index.html) LDP : LDAP Implementation HOWTO (http://www.tldp.org/HOWTO/LDAP-Implementation-HOWT index.html)

Chapitre 9. Congurer un systme Debian

104

OpenLDAP, extensive use reports (http://portal.aphroland.org/~aphro/ldap-docs/ ldap.html) Open LDAP with Courier IMAP and Postx (http://annapolislinux.org/docs/plc/ postfix-courier-howto.txt)

9.3

Graveur de CD

Les graveurs de CD sur interface ATAPI/IDE sont devenus des priphriques courants. Le CD un bon mdia pour sauvegarder et archiver un systme pour un utilisateur individuel ayant besoin dune capacit < 640 Mo. Pour des informations plus ofcielles, consultez le CD-Writing-HOWTO (http://www.tldp.org/HOWTO/CD-Writing-HOWTO.html) du LDP.

9.3.1

Introduction

Dabord, sachez quune interruption de lenvoi des donnes vers le graveur entranera des erreurs irrcuprables sur le CD. Prenez donc un graveur avec un cache aussi gros que possible. Si le prix na pas dimportance, optez pour une version SCSI plutt quATAPI/IDE. Si vous avez le choix de linterface IDE sur laquelle connecter le graveur, prfrez celle sur bus PCI (une de celles de la carte mre) plutt quune sur bus ISA (carte SB16, etc.). Un graveur connect sur interface IDE doit tre pilot par le pilote IDE-SCSI et non par le pilote CD IDE habituel. Le pilote SCSI gnrique doit aussi tre activ. Pour cela, deux approches existent pour les noyaux distribus avec des distributions modernes ( la date de mars 2001).

9.3.2

Premire approche : modules + lilo

Ajoutez la ligne suivante /etc/lilo.conf si vous utilisez le noyau distribu avec Debian. Si vous utilisez plusieurs options, listez-les en les sparant par des espaces. append="hdx=ide-scsi ignore=hdx" Ici, le graveur, accd par le pilote ide-scsi, est identi par hdx, o x reprsente : hdb esclave sur le premier port IDE hdc matre sur le second port IDE hdd esclave sur le second port IDE hde ... hdh sur un port IDE externe

Chapitre 9. Congurer un systme Debian

105

Lancez les commandes suivantes, en tant que root, pour activer les options aprs avoir termin la conguration : # lilo # shutdown -h now

9.3.3

Seconde approche : recompiler le noyau

Debian utilise make-kpkg pour crer le noyau. Utilisez la nouvelle option --append_to_version avec make-kpkg pour crer plusieurs images du noyau. Utilisez la conguration suivante avec make menuconfig : bzImage Excluez le pilote CD IDE (non obligatoire mais cest plus simple comme a) Ajoutez ide-scsi et sg, ou compilez-les en tant que modules

9.3.4

tapes post-conguration

Le support pour le graveur peut tre activ dans le noyau lors du dmarrage avec les commandes suivantes : # echo ide-scsi >>/etc/modules # echo sg >>/etc/modules # cd /dev; ln -sf scd0 cdrom Une activation manuelle peut aussi tre effectue avec : # modprobe ide-scsi # modprobe sg Aprs un redmarrage, vous pouvez vrier linstallation avec : $ dmseg|less # apt-get install cdrecord # cdrecord -scanbus [Par Warren Dodge] Quelquefois, il peut y avoir des conits entre ide-scsi et ide-cd sil y a la fois un lecteur de CDROM et un graveur CD-R/RW sur le systme. Essayez dajouter ce qui suit dans votre chier /etc/modutils/aliases, excutez update-modules et redmarrez.

Chapitre 9. Congurer un systme Debian

106

pre-install

ide-scsi

modprobe ide-cd

Cela force le pilote IDE tre charg avant ide-scsi. Le pilote ide-cd prend le contrle du lecteur de CDROM ATAPI tout ce quon ne lui a pas dit dignorer. Cela laisse simplement les priphriques ignors au contrle de ide-scsi.

9.3.5

Image de CD (bootable)

Pour crer un CDROM contenant des chiers contenus dans le rpertoire target-directory/ en tant quimage nomme cd-image.raw (CD bootable, format Joliet TRANS.TBL. Pour un CD non bootable, enlevez les options -b et -c), insrez une disquette de dmarrage dans le premier lecteur de disquette et faites : # dd if=/dev/fd0 target-directory/boot.img # mkisofs -r -V volume_id -b boot.img -c bootcatalog -J -T \ -o cd-image.raw target_directory/ Une utilisation amusante est de crer un CDROM DOS bootable. Si boot.img contient limage dune disquette de dmarrage DOS, le CDROM dmarrera comme si une disquette DOS tait dans le premier lecteur de disquette (A :). Faire cela avec freeDOS est encore plus intressant. Limage cre peut tre vrie en la montant en utilisant le priphrique de boucle (loop device). # # # # mount -t iso9660 -o ro,loop cd-image.raw /cdrom cd /cdrom mc umount /cdrom

9.3.6

Graver un CD

Premier test avec les commandes suivantes (cas dun graveur double vitesse) # nice --10 cdrecord -dummy speed=2 dev=0,0 disk.img Si le test est russi, gravez un CD-R avec # nice --10 cdrecord -v -eject speed=2 dev=0,0 disk.img Ou gravez un CD-RW avec

Chapitre 9. Congurer un systme Debian

107

# nice --10 cdrecord -v -eject blank=fast speed=2 dev=0,0 disk.img Certains graveurs de CD marchent mieux avec # nice --20 cdrecord -v blank=all speed=2 dev=0,0 suivi de # nice --10 cdrecord -v -eject speed=2 dev=0,0 disk.img Deux tapes sont ncessaires pour empcher que des ns dattente SCSI lors du formatage ninterfrent avec ltape de gravure. Les arguments passs nice peuvent avoir besoin dun ajustement.

9.3.7

Crer limage dun CD

Certains CD-R et CD commerciaux ont des secteurs parasites la n qui les rendent incopiables par dd (le CD de Windows 98 est lun deux). Le paquet cdrecord comprend la commande readcd. Utilisez-la pour copier le contenu de nimporte quel CD dans un chier image. Sil sagit dun CD de donnes, montez-le et excutez mount pour connatre sa taille. Divisez le nombre afch (en blocs de 1024 octets) par 2 pour connatre le nombre de secteurs du CD (2048 octets). Lancez readcd avec les bonnes options et utilisez limage du CD pour graver un CD-R/RW. # readcd target lun scsibusno # choisissez la fonction 11 Ici, positionnez tous les paramtres de ligne de commande 0 dans la plupart des cas. Parfois, le nombre de secteurs donn par readcd est trop important ! Utilisez le nombre donn par mount pour de meilleurs rsultats. Mon CD-R = +2 secteurs CD de MS Windows = +1 secteur, cd +2048 octets

9.3.8

Images de CD Debian

Pour obtenir les dernires informations, consultez le site Debian CD. (http://cvs.debian. org/debian-cd/) Si vous avez une connexion Internet rapide, installez par le rseau en utilisant :

Chapitre 9. Congurer un systme Debian

108

quelques images de disquettes (http://www.debian.org/distrib/floppyinst). une image de CD minimale (http://www.debian.org/CD/netinst/). Si vous navez pas de connexion Internet rapide, achetez des CD depuis un vendeur de CD (http: //www.debian.org/CD/vendors/). Merci de ne pas gcher la bande passante en tlchargeant des images de CD standard moins que vous ne soyez un testeur dimages de CD (mme avec la nouvelle mthode jigdo). Une image de CD noter est celle de KNOPPIX - Systme de Fichier Linux Fonctionnel sur CD (http://www.knopper.net/knoppix/index-en.html). Ce CD dmarre avec un systme Debian fonctionnel sans sinstaller sur le disque dur.

9.3.9

Systme de sauvegarde sur CD-R

Permet de copier les chiers de conguration et de donnes importants sur CD-R. Utilisez le script suivant : backup (examples/)

9.3.10

Copier un CD audio sur un CD-R

Je nai pas test cela personnellement : # apt-get get install cdrecord cdparanoia # cdparanoia -s -B # cdrecord dev=0,0,0 speed=2 -v -dao -eject defpregap=1 -audio *.wav ou, # apt-get install cdrdao #disk at once # cdrdao read-cd --device /dev/cdrom --paranoia-mode 3 my_cd # lit le CD # cdrdao write --device /dev/cdrom --speed 8 my_cd # grave un nouveau CD cdrdao fait une vraie copie (pas de trous, etc.).

9.4

Le programme X

Serveur X page ci-contre un programme sur la machine locale qui afche des fentres X et/ou un bureau sur le moniteur (CRT, LCD) dun utilisateur et accepte des entres au clavier et la souris.

Chapitre 9. Congurer un systme Debian

109

Client X page suivante un programme sur une machine (locale ou distante) qui excute un logiciel dapplication compatible avec X-Window. Cela inverse lutilisation habituelle de serveur et client dans dautres contextes. Pour plus de dtails, rfrez-vous au X(7), au XWindow-User-HOWTO (http://www.tldp.org/HOWTO/ XWindow-User-HOWTO.html), et au Remote X Apps mini-HOWTO (http://www.tldp.org/ HOWTO/mini/Remote-X-Apps.html) du LDP. Il y a plusieurs faons de faire accepter les connexions distantes dun client X (ct application) un serveur X (ct afchage) : xhost le mcanisme de liste dhtes (non sr). protocole non chiffr (sujet des attaques dcoute de ligne). ne pas utiliser, si possible. voir Connexion X distante : xhost page 111 et xhost(1x). xauth le mcanisme des cookies magiques du MIT (non sr mais mieux que xhost). protocole non chiffr (sujet des attaques dcoute de ligne). utiliser seulement pour des connexions locales. voir Devenir root sous X page 112 et xauth(1x). xdm, wdm, gdm, kdm,. . . voir xdm(1x) et Xsecurity(7) pour les bases du contrle daccs un afchage X. voir wdm(1x), gdm(8), et kdm.options(5) pour plus dinformation, si ces programmes sont installs. voir init System-V et niveaux de fonctionnement page 73 pour savoir comment dsactiver xdm pour avoir accs la console Linux aprs le dmarrage sans purger le paquet xdm. ssh -X mcanisme de redirection de port travers SSH (sr). protocole chiffr (gchis de ressources en utilisation locale). utiliser pour des connexions distantes. voir Connexion X distante : ssh page 111.

Toutes les mthodes de connexion distante, sauf ssh, ont besoin de lactivation des connexions TCP/IP au serveur X. Voir Connexion TCP/IP X page 111.

9.4.1

Serveur X

Consultez XFree86(1) pour des informations sur le serveur X. Pour (re)congurer X4 sous Woody, excutez :

Chapitre 9. Congurer un systme Debian

110

# dpkg-reconfigure --p=low xserver-xfree86 Excution du serveur X depuis une console locale : $ startx -- :<display> vtXX par exemple~: $ startx -- :1 vt8 ... excution sur un terminal vt8 connect localhost:1

9.4.2

Client X

La plupart des clients X peuvent tre dmarrs comme ceci : client $ xterm -geometry 80x24+30+200 -fn 6x10 -display hostname:0 & Ici, les arguments de ligne de commande optionnels signient : -geometry WIDTHxHEIGHT+XOFF+YOFF : taille initiale et emplacement de la fentre. -fn FONTNAME : police utilise pour lafchage du texte. FONTNAME peut tre : a14 : Taille normale a24 : Grande taille . . .(consultez les polices disponibles avec xlsfont.) -display displayname : le nom du serveur X utiliser. displayname peut tre : hostname :D.S signie cran S sur afchage D de lhte hostname ; le serveur X de cet afchage coute le port TCP 6000+D. host/unix :D.S signie cran S sur afchage D de lhte host ; le serveur X de cet afchage coute la socket UNIX /tmp/.X11-unix/XD (et nest donc utilisable depuis host). :D.S est quivalent host/unix :D.S, o host est le nom de lhte local Le displayname (nom dafchage) par dfaut pour un programme client X (ct application) peut tre dni par la variable denvironnement DISPLAY. Par exemple, avant de lancer un programme client X, on peut excuter lune des commandes suivantes pour cela : $ export DISPLAY=:0 # Valeur par dfaut, machine locale avec premier cran X $ export DISPLAY=hostname.fulldomain.name:0.2 $ export DISPLAY=localhost:0

Chapitre 9. Congurer un systme Debian

111

9.4.3

Connexion TCP/IP X

Comme les connexions TCP/IP distantes sans chiffrage peuvent tre sujettes des attaques dcoute de ligne, la conguration par dfaut de X de Debian dsactive les sockets TCP/IP. Pensez utiliser ssh pour des connexions X distantes (see Connexion X distante : ssh de la prsente page). La mthode dcrite ici nest pas encourage moins que lon soit dans un environnement trs sr derrire un bon pare-feu et en prsence dutilisateurs de conance uniquement. La conguration suivante sur le serveur X restaure les connexions TCP/IP : # find /etc/X11 -type f -print0 | xargs -0 grep nolisten /etc/X11/xinit/xserverrc:exec /usr/bin/X11/X -dpi 100 -nolisten tcp Supprimez -nolisten pour permettre les connexions TCP/IP X.

9.4.4

Connexion X distante : xhost

xhost autorise laccs en se basant sur les noms dhtes, ce qui nest pas sr du tout. Les commandes suivantes permettent de dsactiver la vrication de lhte et autorisent des connexions de nimporte o si les connexions TCP/IP sont autorises ( (see Connexion TCP/IP X de la prsente page) : $ xhost + Vous pouvez ractiver la vrication de lhte avec : $ xhost xhost ne fait pas la diffrence entre les utilisateurs sur lhte distant. De plus, les noms dhtes (les adresses en fait) peuvent tre falsis. Cette mthode doit tre vite mme avec des critres sur les htes plus restrictifs si vous tes sur un rseau dans lequel vous ne pouvez avoir conance (par exemple avec une connexion PPP sur Internet). Voir xhost(1x).

9.4.5

Connexion X distante : ssh

Lutilisation de ssh active une connexion sre dun serveur X local vers un serveur dapplications distant.

Chapitre 9. Congurer un systme Debian

112

Rglez X11Forwarding et AllowTcpForwarding yes dans /etc/ssh/sshd_config sur lhte distant. Dmarrez le serveur X sur la station locale. Dmarrez un xterm sur lhte local. Lancez ssh pour tablir une connexion vers le site distant. localname @ localhost $ ssh -q -X -l loginname remotehost.domain Password: ..... Lancez des applications X sur le site distant. loginname @ remotehost $ gimp & Cette mthode permet lafchage du client X distant comme sil tait connect par une socket UNIX locale.

9.4.6

xterm

Apprenez tout sur xterm ladresse http://dickey.his.com/xterm/xterm.faq.html.

9.4.7

Devenir root sous X

Si une application graphique a besoin dtre lance avec les privilges de root, utilisez les procdures suivantes pour le faire partir du serveur X dun utilisateur. Nessayez jamais de dmarrer un serveur X depuis le compte root, pour vous garder dventuels risques de scurit. Dmarrez le serveur X avec un utilisateur normal et ouvrez un xterm. Ensuite : $ XAUTHORITY=$HOME/.Xauthority $ export XAUTHORITY $ su root Password:***** # printtool & Lorsque vous utilisez cette astuce pour effectuer un su vers un utilisateur non root, faites attention ce que le chier $HOME/.Xauthority soit lisible par le groupe de cet utilisateur. Cette squence de commandes peut tre automatise en ajoutant quelques chiers. Depuis le compte root, crez le chier /etc/X11/Xsession.d/00xfree86-common_environment avec les lignes suivantes : if [ -f "$HOME/.xenvironment" ]; then . $HOME/.xenvironment fi

Chapitre 9. Congurer un systme Debian

113

Depuis le compte utilisateur, crez le chier $HOME/.xenvironment, avec les lignes suivantes : # Cela permet que X marche quand je fais un su pour devenir root if [ -z "$XAUTHORITY" ]; then XAUTHORITY=$HOME/.Xauthority export XAUTHORITY fi Ensuite, excutez su (pas su -) dans une fentre xterm de lutilisateur. Maintenant vous pouvez excuter des applications graphiques avec les privilges de root sur lcran X dun utilisateur normal. Cette astuce fonctionne tant que le Xsession par dfaut est utilis. Si un utilisateur personnalise $HOME/.xinit ou $HOME/.xsession, la variable denvironnement XAUTHORITY mentionne ci-dessus doit tre positionne de la mme faon dans ces scripts. Une autre mthode est dutiliser le paquet sudo : $ sudo xterm ... ou $ sudo -H -s Ici le chier /root/.bashrc doit contenir : if [ $SUDO_USER ]; then sudo -H -u $SUDO_USER xauth extract - $DISPLAY | xauth merge fi Cela marche bien mme si le rpertoire home de lutilisateur est sur une partition NFS, puisque root ne lit pas le chier .Xauthority.

Il existe aussi des paquets spcialiss dans ce but : kdesu, gksu, gksudo, gnome-sudo, et xsu. Enn, trois autres mthodes peuvent tre utilises pour atteindre des rsultats similaires : crer un lien symbolique depuis /root/.Xauthority vers celui de lutilisateur ; utiliser le script sux (http://fgouget.free.fr/sux/sux-readme.shtml) ; ou mettre xauth merge ~USER_RUNNING_X/.X dans le script dinitialisation de root. Plus dinformations sur la liste de diffusion debian-devel (http://lists.debian.org/debian-devel/ 2002/debian-devel-200207/msg00259.html).

9.4.8

Polices TrueType dans X

Le xfs standard de XFree86-4 fonctionne bien avec les polices TrueType. Il faut installer un autre serveur de polices comme xfs-xtt si vous utilisez XFree86-3.

Chapitre 9. Congurer un systme Debian

114

Vous avez simplement besoin de vous assurer que les applications que vous voulez utiliser avec les polices TrueType sont lies avec les bibliothques libXft ou libfreetype (vous navez probablement pas vous en soucier si vous utilisez des .deb prcompils). Souvenez-vous dinstaller les chiers de polices et de gnrer les chiers fonts.{scale,dir} an que les fontes puissent tre indexes et utilises. Puisque les polices libres sont parfois limites, linstallation ou le partage de certaines polices TrueType commerciales est une option pour les utilisateurs Debian. An de rendre ce processus facile pour lutilisateur, il existe certains paquets : ttf-commercial msttcorefonts (Plus utile depuis 08/2002 cause dun changement de politique chez MS) Vous aurez ainsi une trs bonne slection de polices TT au prix de la contamination de votre systme libre par des polices non-libres.

9.4.9

Navigateur Web (graphique)

Il existe quelques paquets de navigateurs web disponibles avec la sortie de Woody : mozillaLe navigateur Mozilla (nouveau) galeonNavigateur bas sur Mozilla avec une interface Gnome (nouveau) konquerorNavigateur KDE amaya-gtkNavigateur de rfrence du W3C amaya-lesstifNavigateur de rfrence du W3C netscape-... (plusieurs, vieux) communicator-... (plusieurs, vieux) ... La version de mozilla doit correspondre avec la version que galeon requiert. A part linterface graphique, ces deux logiciels partagent le moteur de rendu HTML Gecko. Des ajouts pour les navigateurs comme mozilla et galeon peuvent tre activs en installant des chiers *.so directement dans le rpertoire plugin et en relanant les navigateurs. Ressources : Java : installer le binaire J2SE depuis http://java.sun.com. Flash : installer le binaire Macromedia Flash Player 5 depuis http://www.macromedia. com/software/flashplayer/. freewrl : navigateur VRML et plugin Netscape ...

9.4.10

CJK et X

Rfrences : Localisation et support des langues nationales page 121

Chapitre 9. Congurer un systme Debian

115

Pages Suse pour CJK (http://www.suse.de/~mfabian/suse-cjk/suse-cjk.html) Ici, essayons pour le Japonais : installer les paquets pour le Japonais : kinput2-canna-wnn un serveur dentre pour les applications X11. kterm, mlterm, et jfbterm : terminaux compatibles avec le Japonais. egg Input Method Architecture for Emacsen canna un systme dentre japonais (serveur et dictionnaire). freewnn-jserver systme de conversion Kana vers Kanji. . . .et tous les paquets de polices japonaises. En ralit, utilisez tasksel ou aptitude pour slectionner Japanese Environment et viter dinstaller des logiciels qui entrent en conit avec le systme normal. ajouter une locale qui supporte les caractres japonais (par exemple ja_JP.UTF-8, voir Localisation et support des langues nationales page 121). ajouter les valeurs denvironnement suivantes dans ~/.xenvironment en utilisant la mme astuce que dans Devenir root sous X page 112. XMODIFIERS="@im=kinput2" LC_CTYPE=ja_JP.UTF-8 # locale japonaise (Ou faites le manuellement dans un xterm avant de lancer une application.) activer XIM kinput2 en ajoutant *inputMethod : kinput2 dans votre chier de ressources X (on dirait que Debian le fait). Quelques applications (comme mlterm) permettent aussi de congurer *inputMethod : dynamiquement au lancement (appuyez sur Ctrl-BoutonSouris-3 dans mlterm). Une fois lapplication dmarre, vous devez appuyer sur Shift+Espace et une fentre devrait souvrir indiquant que vous pouvez entrer des caractres japonais.

9.5 SSH
SSH (Secure SHell) est le moyen scuris de se connecter dautres machines au travers dInternet. Une version libre de SSH appele OpenSSH est disponible dans le paquet ssh de Debian.

9.5.1

Bases

Installez dabord le serveur et le client OpenSSH. # apt-get update && apt-get install ssh

Chapitre 9. Congurer un systme Debian

116

Lentre non-US doit tre prsente dans le chier /etc/apt/source.list Le chier /etc/ssh /sshd_not_to_be_run ne doit pas tre prsent si lon veut excuter le serveur OpenSSH. SSh possde 2 protocoles didentication : Protocole SSH version 1 : la version de Potato supporte seulement ce protocole. mthodes didentication disponibles : RSAAuthentication : identication base sur une cl RSA RhostsAuthentication : identication base sur .rhosts (non sr, dsactiv) RhostsRSAAuthentication : identication .rhosts combine avec cl RSA (dsactiv) ChallengeResponseAuthentication : identication par challenge-response RSA PasswordAuthentication : identication base sur un mot de passe Protocole SSH version 2 : les versions daprs Woody utilisent ce protocole par dfaut. mthodes didentication disponibles : PubkeyAuthentication : identication de lutilisateur base sur une cl publique HostbasedAuthentication : identication par .rhosts ou /etc/hosts.equiv combine avec identication de lhte par cl publique (dsactiv) ChallengeResponseAuthentication : identication par challenge-response RSA PasswordAuthentication : identication base sur un mot de passe Faites attention avec ces diffrences si vous migrez vers Woody ou si vous utilisez un systme non Debian. Voir /usr/share/doc/ssh/README.Debian.gz, ssh(1), sshd(8), ssh-agent(1), et ssh-keygen(1) pour plus de dtails. Les chiers suivants sont les chiers de conguration importants. /etc/ssh/ssh_config : valeurs par dfaut pour le client SSH. Voir ssh(1). Entres noter : Host : Restreint les entres suivantes (jusquau prochain Host) aux htes qui correspondent au motif donn aprs le mot cl. Protocol : Spcie la version du protocole SSH. Par dfaut, 2,1 . PreferredAuthentications : Spcie la mthode didentication pour le client SSH2. Par dfaut, hostbased,publickey,keyboard-interactive,password . ForwardX11 : Dsactiv par dfaut. Peut tre outrepass par loption -X en ligne de commande. /etc/ssh/sshd_config : valeurs par dfaut pour le serveur SSH. Voir sshd(8). Entres noter : ListenAddress : Spcie les adresses locales que sshd doit couter. Plusieurs options sont permises. AllowTcpForwarding : Dsactiv par dfaut. X11Forwarding : Dsactiv par dfaut.

Chapitre 9. Congurer un systme Debian

117

$HOME/.ssh/authorized_keys : liste de cls publiques par dfaut utilises pour se connecter ce compte sur cette machine. Voir ssh-keygen(1). $HOME/.ssh/identity : Voir ssh-add(1) et ssh-agent(1). Les commandes suivantes permettent de dmarrer une connexion ssh. $ ssh username@hostname.domain.ext $ ssh -1 username@hostname.domain.ext # Force SSH version 1 Pour un utilisateur, ssh est plus intelligent que telnet (il ne crashe pas avec ^]).

9.5.2

Redirection de port tunnel SMTP/POP3

Pour tablir un tunnel pour se connecter au port 25 de remote-server depuis le port 4025 de la machine locale, et au port 110 de remote-server depuis le port 4110 de la machine locale par ssh, excutez les commandes suivantes sur la machine locale : # ssh -q -L 4025:remote-server:25 4110:remote-server:110 \ username@remote-server Cest un moyen scuris deffectuer une connexion vers un serveur SMTP/POP3 au travers dInternet. Positionnez lentre AllowTcpForwarding yes dans /etc/ssh/sshd_config sur la machine distante.

9.5.3

Se connecter avec moins de mots de passe

On peut viter de se rappeler le mot de passe pour chaque systme distant en utilisant RSAAuthentication (protocole SSH1) ou PubkeyAuthentication (protocole SSH2). Sur le systme distant, le contenu de /etc/ssh/sshd_config doit contenir RSAAuthentication yes ou PubkeyAuthentication yes . Gnrez ensuite les cls didentication localement et installez la cl publique sur le systme distant : $ ssh-keygen # RSAAuthentication~: cl RSA1 pour SSH1 $ cat .ssh/id_rsa.pub | ssh user1@remote \ "cat - >>.ssh/authorized_keys" ... $ ssh-keygen -t rsa # PubkeyAuthentication~: cl RSA pour SSH2

Chapitre 9. Congurer un systme Debian

118

$ cat .ssh/id_rsa.pub | ssh user1@remote \ "cat - >>.ssh/authorized_keys" ... $ ssh-keygen -t dsa # PubkeyAuthentication~: cl DSA pour SSH2 $ cat .ssh/id_dsa.pub | ssh user1@remote \ "cat - >>.ssh/authorized_keys" On peut changer la phrase de passe par la suite avec ssh-keygen -p. Assurez-vous de vrier la conguration en testant la connexion. En cas de problme, utilisez ssh -v. Vous pouvez ajouter des options dans les entres de authorized_keys pour limiter les htes et excuter des commandes spciques. Consultez sshd(8) pour plus de dtails. Notez que SSH2 fait une identication de type HostbasedAuthentication. Pour que cela fonctionne, il faut rgler la conguration de HostbasedAuthentication yes dans /etc /ssh/sshd_config sur le serveur et /etc/ssh/ssh_config ou $HOME/.ssh/config sur le client.

9.5.4

Clients SSH trangers

Il existe quelques clients SSH gratuits disponibles pour des systmes non Unix. Windows puTTY (http://www.chiak.greenend.org.uk/~sgtatham/putty/) (GPL) Windows (cygwin) SSH in cygwin (http://www.cygwin.com/) (GPL) Macintosh Classic macSSH (http://www.macssh.com/) (GPL) [Notez que Mac OS X inclut OpenSSH ; utilisez ssh depuis lapplication Terminal] Voir SourceForge.net, documentation du site (http://www.sourceforge.net/docman/?group_ id=1), 6. CVS Instructions .

9.5.5

SSH agent

Mettez simplement votre cl publique dans ~/.ssh/authorized_keys, et cest bon : $ $ $ $ $ ssh-agent # copiez la sortie dans votre shell ssh-add .ssh/identity # ou ssh-add .ssh/id_dsa selon le nom de votre cl prive scp remote.host.with.public.key

Pour plus dinformation, consultez ssh-agent(1) et ssh-add(1).

Chapitre 9. Congurer un systme Debian

119

9.5.6

Problmes

Si vous rencontrez des problmes, vriez les permission du chier de conguration et lancez ssh avec loption -v. Utilisez -P si vous tes root et avez des problmes avec un pare-feu ; cela vite dutiliser des ports serveur 11023. Si les connexions ssh vers un site distant arrtent subitement de fonctionner, cela peut tre suite des bidouilles de ladministrateur, srement un changement de host_key pendant une maintenance du systme. Aprs stre assur que cest bien le cas et que personne nessaie de se faire passer pour la machine distante par une bidouille, on peut se reconnecter en enlevant lentre host_key de ~/.ssh/known_hosts sur la machine locale.

9.6 Logiciels de courrier lectronique


La conguration du courrier lectronique se divise en trois parties : MTA : exim MUA : mutt Utilitaires : procmail, fetchmail, mail,. . .

9.6.1

Agent de transport de courrier lectronique (Exim)

Rfrences : paquets exim-doc et exim-doc-html http://www.exim.org/ Utilisez exim comme agent de transport de courrier lectronique (Mail Transport Agent, MTA). Congurez-le : /etc/exim.conf /etc/inetd.conf que daemon /etc/email-addresses Vrifiez le filtre avec "eximconfig" pour crer et diter mettez smtp en commentaire pour excuter exim en tant ajoutez les listes dadresses sources spoofes exim -brw, -bf, -bF, -bV, ... etc.

9.6.2

Tout rcuprer pour les adresses e-mail non existantes (Exim)

Dans /etc/exim/exim.conf (Woody ou plus), dans la partie DIRECTORS, la n (aprs localuser : director) ajoutez une directive catch-all qui correspond toutes les adresses que la directive prcdente ne pouvait rsoudre (par Miquel van Smoorenburg) :

Chapitre 9. Congurer un systme Debian

120

catchall: driver = smartuser new_address = webmaster@mydomain.com

Si vous souhaitez une recette plus dtaille pour chaque domaine virtuel, ajoutez ce qui suit la n de exim.conf (par moi, pas bien test) :

*@yourdomain.com ${lookup{$1}lsearch*{/etc/email-addresses} \ {$value}fail} T

Et ajoutez une entre * dans /etc/email-addresses.

9.6.3

Utilitaire de courrier lectronique (fetchmail)

fetchmail est excut en mode dmon et rcupre le courrier lectronique du compte POP3 du FAI sur le systme de mail local. Congurez :

/etc/init.d/fetchmail voir ci-dessous pour le script /etc/rc?.d/???fetchmail excutez update-rc.d fetchmail defaults 30 /etc/fetchmailrc fichier de configuration (chown 600) /etc/init.d/fetchmail

Les informations pour dmarrer fetchmail en mode dmon depuis un script init.d dans Potato ne sont pas claires (Woody corrige cela). Voir /etc/init.d/fetchmail et /etc/fetchmailrc (examples/). Si vos en-ttes de courriers lectroniques sont contamines par des ^M ds au logiciel de courrier lectronique de votre FAI, ajoutez stripcr aux options dans $HOME/.fetchmailrc :

options fetchall no keep stripcr

9.6.4

Utilitaire de courrier lectronique (procmail)

procmail est un ltre pour le courrier lectronique dlivr. Il faut crer un $HOME/.procmailrc pour chaque compte qui lutilise. Exemple : _procmailrc (examples/).

Chapitre 9. Congurer un systme Debian

121

9.6.5

Agent pour utilisateur de courrier lectronique (Mutt)

Utilisez mutt comme agent pour utilisateur de courrier lectronique (Mail User Agent, MUA) associ vim. Personnalisez-le dans ~/.muttrc : # utiliser le mode visuel et "gq" pour reformater les citations set editor="vim -c set tw=72 et ft=mail" # # slection des en-ttes prise dans le manuel ("Svens Draconian header # weeding") # ignore * unignore from: date subject to cc unignore user-agent x-mailer hdr_order from subject to cc date user-agent x-mailer auto_view application/msword .... Ajoutez ce qui suit dans /etc/mailcap ou $HOME/.mailcap pour afcher les courriers lectroniques en HTML et les attachements MS Word dans le message : text/html; lynx -force_html %s; needsterminal; application/msword; /usr/bin/antiword %s; copiousoutput; description="Microsoft Word Text"; nametemplate=%s.doc

9.7

Localisation et support des langues nationales

Debian est internationalis et supporte un nombre toujours plus lev de langues et de conventions locales. La sous-section suivante liste quelques formes de la diversit que Debian supporte actuellement, et la sous-section suivante parle de la localisation, processus de personnalisation de votre environnment de travail pour permettre lentre et lafchage de votre langue et conventions pour les dates, les formats numriques et montaires, et dautres aspects dun systme qui diffrent selon votre rgion.

9.7.1

Support des langues

Clavier Debian est distribue avec le support pour prs de deux douzaines de claviers, et avec des utilitaires (dans le paquet kbd ) pour installer, visualiser et modier les tables de caractres. Si vous avez besoin dinstaller un clavier diffrent, excutez simplement

Chapitre 9. Congurer un systme Debian

122

#dpkg-reconfigure console-date et debconf vous demandera la carte de clavier utiliser. Donnes La grande majorit des paquets de logiciels Debian supporte lentre de caractres non US-ASCII grce la technologie des locales offerte par la glibc (voir Locales de la prsente page. Propres en 8 bits : presque tous les programmes Autres langues latines (par exemple ISO-8859-1 ou ISO-8859-2) : majorit des programmes langues multi-octets comme le Japonais ou le Coren : beaucoup de nouvelles applications Afchage X supporte toutes les polices. La liste inclut non seulement les polices 8 bits mais aussi des polices 16 bits comme pour le Chinois, le Japonais et le Coren. Voir CJK et X page 114. Traduction Des traductions existent pour beaucoup de messages texte et documents qui sont afchs par le systme Debian, comme les messages derreur, lafchage standard des programmes, les menus et les pages de manuel. Actuellement, le support pour les langues Allemand, Espagnol, Finlandais, Franais, Hongrois, Italien, Japonais, Koren et Polonais dans les pages de manuel est fourni par les paquets manpages-LANG (o LANG est le code ISO deux lettres du pays). Pour accder une page de manuel NLS, lutilisateur doit congurer la variable du shell LC_MESSAGES de la faon approprie. Par exemple, dans le cas des pages de manuel en Italien, LC_MESSAGES doit tre positionne it. Le programme man cherchera alors les pages de manuel en Italien sous /usr/share/man/it/. Voir Locales de la prsente page pour plus dinformation sur la conguration des variables de locale.

9.7.2

Locales

Debian supporte la technologie locale. Cest un mcanisme qui permet aux programmes de fournir un afchage et des fonctionnalits adapts aux conventions locales comme le jeu de caractres, le format de la date et de lheure, le symbole de la monnaie, et ainsi de suite. Il utilise des variables denvironnement pour dterminer le comportement appropri. Par exemple, en supposant que vous avez les locales Anglais amricain et Franais installes sur votre systme, les messages derreur de beaucoup de programmes peuvent tre bilingues : $ LANG="en_US" cat foo cat: foo: No such file or directory $ LANG="fr_FR" cat foo cat: foo: Aucun fichier ou rpertoire de ce type La glibc offre le support pour cette fonctionnalit dans la bibliothque. Voir locale(7).

Chapitre 9. Congurer un systme Debian

123

9.7.3

Activer le support des locales

Debian nest pas livre avec toutes les locales disponibles prcompiles. Consultez le chier /usr /lib/locale pour voir quelles locales ( part le dfaut, C ) sont compiles pour votre systme. Si celle dont vous avez besoin nest pas prsente, vous avez deux possibilits : Editer /etc/locale.gen pour ajouter la locale souhaite, et lancer locale-gen en tant que root pour la compiler. Voir locale-gen(8) et les pages de manuel listes dans la section Voir aussi . Lancer dpkg-reconfigure locales pour recongurer le paquet locales. Ou sil nest pas dj install, linstallation de locales invoquera linterface debconf pour choisir les locales dsire et les compiler.

9.7.4

Activer une locale particulire

Les variables denvironnement suivantes sont values dans cet ordre pour fournir les valeurs de locale aux programmes : 1. LANGUAGE : cette variable denvironnement consiste en une liste de locales spares par deux points verticaux, dans lordre de priorit. Utilis seulement si la locale POSIX est positionne une valeur autre que C [dans Woody ; la version de Potato a toujours priorit sur la locale POSIX]. (GNU extension) 2. LC_ALL : Si cette variable est non nulle, sa valeur est utilise pour toutes les catgories de locales. (POSIX.1) Habituellement (null). 3. LC_* : Si cette variable est non nulle, sa valeur est utilise pour la catgorie correspondante. (POSIX.1) Habituellement C. Les variables LC_* sont : LC_CTYPE : Classication des caractres et conversion de casse. LC_COLLATE : Ordre de collation. LC_NUMERIC : Formats des nombres non montaires. LC_MONETARY : Formats montaires. LC_MESSAGES : Formats des messages dinformation et de diagnostic et des rponses intractives. LC_PAPER : Taille du papier. LC_NAME : Formats des noms. LC_ADDRESS : Formats des adresses et information sur les lieux. LC_TELEPHONE : Formats des numros de tlphone. LC_MEASUREMENT : Units de mesure (Metric ou Other). LC_IDENTIFICATION : Donne gnrale sur linformation de la locale. 4. LANG : Si cette variable est non nulle, et que LC_ALL nest pas dnie, sa valeur est utilise pour toutes les catgories de locales LC_* sans valeur dnie. (POSIX.1) Habituellement, C.

Chapitre 9. Congurer un systme Debian

124

Notez que certaines applications (par exemple Netscape 4) ignorent les valeurs LC_*. Le programme locale peut afcher la locale active et les locales disponibles ; voir locale(1). (NOTE : locale -a liste toutes les locales du systme ; cela ne signie pas quelles sont toutes compiles ! Voir Activer le support des locales page prcdente.) NdT : pour congurer Debian pour le Franais avec le support de lEuro, voir le document Utiliser et congurer Debian pour le Franais (http://www.debian.org/doc/manuals/fr/debian-fr-howto/).

9.7.5

Aprs locale

Certains programmes peuvent ncessiter une conguration en plus de la locale pour obtenir un environnement de travail confortable. Le paquet language-env avec sa commande set-language-env est un script qui facilite la conguration de lenvironnement de langue nationale sur un systme Debian. De plus, des entres spciques chaque langue dans le systme de tches que lon accde avec tasksel ou aptitude sont une autre ressource utile. Pour un example avec X, voir CJK et X page 114. Pour plus dinformation, voir Pages Suse pour CJK (http://www.suse.de/~mfabian/suse-cjk/ suse-cjk.html). Voir aussi le document sur linternationalisation, Introduction to i18n (http: //www.debian.org/doc/manuals/intro-i18n/). Il est destin aux dveloppeurs mais est aussi utile aux administrateurs systme.

125

Chapitre 10

Construire une passerelle avec Debian


Linux permet davoir une machine passerelle tout usage, avec NAT, mail, DHCP, cache DNS, cache proxy HTTP, CVS, NFS, et services Samba pour un rseau local personnel.

10.1 Conguration rseau


10.1.1 Conguration de la passerelle

Le rseau local utilise des adresses IP des plages ci-dessous pour viter les collisions dadresses avec lInternet. Class A: 10.0.0.0 avec masque 255.0.0.0 Class B: 172.16.0.0 - 172.31.0.0 avec masque 255.255.0.0 Class C: 192.168.0.0 - 192.168.255.0 avec masque 255.255.255.0 Debian utilise /etc/network/interfaces pour la conguration IP. Par exemple, si eth0 est connecte lInternet avec une adresse IP fournie par DHCP et eth1 est connecte au rseau local, /etc/network/interfaces est congur comme suit (Woody ou version plus rcente) : auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static

Chapitre 10. Construire une passerelle avec Debian

126

address 192.168.1.1 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 Excutez les commandes suivantes pour mettre jour la conguration rseau avec le nouveau /etc/network/interfaces : # /etc/init.d/networking restart Rappel : le chier interfaces de Woody est incompatible avec celui de Potato. Si le systme utilise une carte rseau PCMCIA, il faut congurer le rseau dans /etc/pcmcia /network.opts la place. En cas de doute, consultez la sortie des commandes suivantes : # # # # ifconfig cat /proc/pci cat /proc/interrupts dmesg|more

Parfois, les connexions DSL (PPPoE ?) ont des problmes de MTU. Consultez le DSL-HOWTO (http://www.linuxdoc.org/HOWTO/DSL-HOWTO/index.html) du LDP.

10.1.2

IP-masquerade

Les machines du LAN peuvent accder lInternet travers une passerelle qui utilise IP-masquerade (NAT). # apt-get install ipmasq Appliquez les rgles de lexemple pour fortier la protection ipmasq. Consultez /usr/share /doc/ipmasq/examples/stronger/README. Pour limage du noyau Debian 2.4, assurez-vous de charger les modules appropris. Consultez Fonctions rseau page 78. Pour limage du noyau Debian 2.2, ditez Z92timeouts.rul dans /etc/masq/rules comme suit : # tcp, tcp-fin, udp # 2hr, 10 sec, 160 sec - default # 1 day, 10 min, 10 min - longer example $IPCHAINS -M -S 86400 600 600

Chapitre 10. Construire une passerelle avec Debian

127

De plus, si le rseau est accd par une carte PCMCIA, ipmasq a besoin dtre dmarr depuis /etc/pcmcia/network.opts. Consultez /usr/share/doc/ipmasq/ipmasq.txt.gz.

10.1.3

Points principaux de la conguration rseau pour une passerelle

Ensemble de programmes typique : # apt-get install nfs samba dhcpd dhcp-client bind squid procmail fetchmail # apt-get install ssh cvs Ensuite, consultez les chiers suivants : /etc/init.d/dhcpd (diter pour avoir LAN = eth1) /etc/host.allow (ALL: 192.168.0.0/16 127.0.0.0/8) pour NFS /etc/exports (besoin pour NFS) /etc/bind/db.192.168.1 ( ajouter) /etc/bind/db.lan ( ajouter) /etc/bind/named.conf ( diter) /etc/resolve.conf ( diter) /etc/hosts /etc/dhcpd.conf (diter pour avoir LAN = eth1) /etc/dhclient.conf (diter pour forcer le DNS local) /etc/samba/smb.conf /etc/exim/exim.conf /etc/mailname /etc/aliases /etc/squid.conf (ajouter toutes les adresses IP des machines du LAN comme machines autorises) bind cre un cache DNS local et transforme lhte local en serveur DNS. Consultez le chier /etc /resolve.conf : nameserver 127.0.0.1 search lan.aokiconsulting.com

10.2

Grer plusieurs connexions lInternet

[FIXME] Politique de routage : (par Phil Brutsche pbrutsch@tux.creighton.edu) Voir le Manuel diproute (http://ds9a.nl/2.4Routing/) pour les dtails. Le contrle de trafc peut aussi tre intressant.

Chapitre 10. Construire une passerelle avec Debian

128

Environnement : eth0: 192.168.1.2/24; gateway 192.168.1.1 eth1: 10.0.0.2/24; gateway 10.0.0.1 Pas de masquerading sur cette machine. Un peu de magie : # # # # # # # # # # ip ip ip ip ip ip ip ip ip ip rule add from 192.168.1.2 lookup 1 rule add from 10.0.0.2 lookup 2 route add to default via 10.0.0.1 metric 0 route add to default via 192.168.1.1 metric 1 route add table 1 to 192.168.1.0/24 via eth0 route add table 1 to 10.0.0.2/24 via eth1 route add table 1 to default via 192.168.1.1 route add table 2 to 192.168.1.0/24 via eth0 route add table 2 to 10.0.0.2/24 via eth1 route add table 2 to default via 10.0.0.2

[FIXME] Je nai jamais fait cela. Comment congurer une connexion RTC en cas de dfaillance dune connexion rapide ?

129

Chapitre 11

Editeurs
11.1 Editeurs populaires
Linux offre plusieurs solutions comme diteurs en mode texte. Parmi eux : vim : diteur puissant et lger hrit de BSD. VI iMproved (VI aMlior). emacs : Lditeur ultime et lourd hrit de GNU. Loriginal de RMS (Richard M. Stallman). xemacs : Emacs : The Next Generation (la nouvelle gnration), lorigine par Lucid. mcedit : diteur GNU pour dbutant. Identique lditeur interne de mc. ae : Petit diteur par dfaut (Potato). viter. nano : Petit diteur GNU par dfaut (Woody). Emule pico. joe : Pour les vieux habitus de WordStar ou de TurboPascal. jed : diteur rapide et complet avec menus et raccourcis emacs. jove : Trs petit diteur avec raccourcis emacs. nvi : Nouveau vi. Compatible bogue pour bogue avec le vi original. Utilisez update-alternatives --config editor pour changer dditeur par dfaut. Il existe aussi quelques diteurs de texte pour X : gvim : Vim avec une interface graphique (paquet vim-gtk) emacs : Le vrai Emacs (dtecte X automatiquement) xemacs : LEmacs nouvelle gnration (dtecte X automatiquement) Ces commandes xclient prennent des options standard comme -fn a24 qui rendent les choses faciles pour les plus vieux comme moi :-) Voir Client X page 110.

11.2

Editeurs de sauvetage

Il y a peu dditeurs dans /bin. Lun deux doit tre install pour faciliter ldition de chiers quand /usr nest pas accessible.

Chapitre 11. Editeurs

130

elvis-tiny : Editeur minimum type vi (vi pour le dmarrer) nano-tiny : Editeur minimum non vi (nano-tiny pour le dmarrer) ed : Editeur minimum (toujours l mais difcile utiliser)

11.3
11.3.1

Emacs et Vim
Conseils pour Vim

Lisez la page VIM - main help le en tapant <F1>. <F1> Aide <esc> Retour au mode normal V Mode visuel i Mode insertion : Commandes en ligne :set tw=72 Paramtre la largeur du texte 72 <F11> Mode Insertion (collage) :r! date -R Insertion de la date selon RFC-822 qa Enregistre la frappe dans le registre a @a Excute la frappe enregistre dans le registre a :edit foo.txt Edite un autre fichier en chargeant foo.txt :wnext Enregistre le fichier courant et dite le fichier suivant q et @ peuvent tre utiliss pour enregistrer et excuter de simples macros. Par exemple, pour crer une macro qui insre des balises HTML pour litalique autour du mot sur lequel se trouve le curseur, vous pourriez taper qii<i>^[ea</i>^[q (o ^[ est la touche ESC). Taper @i au dbut dun mot ajoute les balises <i> et </i>.

11.3.2

Conseils pour Emacs

<F1> Aide <F10> Menu C-u M-! date -R

Insertion de la date selon RFC-822

11.3.3

Dmarrer lditeur

dmarrer lditeur : emacs nom_de_fichier vim nom_de_fichier

Chapitre 11. Editeurs

131

dmarrage en compatibilit vi : vim -C dmarrage en non-compatible vi : vim -N dmarrage en mode par dfaut : emacs -q vim -N -u NONE

11.3.4

Rsum des commandes de lditeur (Emacs, Vim)

Sortie~: C-x C-c :qa /:wq /:xa /:q! Retour/mode commande~: C-g <esc> Retour(gauche)~: C-b h Aprs(droite)~: C-f l Suivant(en bas)~: C-n j Prcdent(en haut)~: C-p k Dbut de ligne(^)~: C-a 0 Fin de ligne($)~: C-e $ Commandes mUltiples~: C-u nnn cmd :count cmd Commandes Multiples~: M-digitkey cmd Sauvegarder le fichier~: C-x C-f :w file Dbut du tampon~: M-< 1G Fin du tampon~: M-> G cran suivant~: C-v ^F 1/2 cran suivant~: ^D Ligne suivante~: ^E Revenir d1 cran~: M-v ^B Revenir d1/2 cran~: ^U Ligne prcdente~: ^Y Avance lautre fentre~: M-C-v Effacer sous le curseur~: C-d x Effacer partir du curseur jusqu la fin de ligne~: C-k D iRecherche en avant~: C-s iRecherche en arrire~: C-r Chercher en avant~: C-s enter / Chercher en arrire~: C-r enter ? iRecherche avec expression rationnelle~: M-C-s iRecherche en arrire avec expression rationnelle~: M-x isearch-backward-regexp Chercher avec expression rationnelle~: M-C-s enter / Chercher en arrire avec expression rationnelle~: M-x isearch-backward-regexp enter

Chapitre 11. Editeurs

132

? Aide~: C-h Aide Apropos~: C-h Aide sur les liens~: C-h Aide Info~: C-h Help mode Majeur~: C-h Aide tutorial~: C-h Annulation~: C-_ Refaire~: C-f Marquer la position du curseur~: C-@ change Marque et position~: C-x Aller la marque dans le fichier actuel~: Aller la marque dans nimporte quel fichier~: Copier rgion~: M-w Tuer rgion~: C-w Copier et garder tampon~: C-y Copier depuis le tampon~: M-y Conversion dune zone en majuscules~: C-x Conversion dune zone en minuscules~: C-x Insre un caractre spcial~: C-q Remplace~: M-x Remplace regexp~: M-x Recherche et remplace~: M-% Recherche et remplace~: M-x Recherche et remplace avec expression rationnelle~: M-x Ouvre un fichier~: C-x Sauvegarde le fichier~: C-x Sauve tous les tampons~: C-x Sauvegarde sous~: C-x Demande un tampon~: C-x Liste le tampon~: C-x Commute en lecture seule~:C-x Demande et tue le tampon~:C-x Scinde verticalement~: C-x C-h a b i m t :help :help key

:help howto u ^R m{a-zA-Z}

C-x {a-z} {A-Z} {visual}y {visual}d p C-u C-l octalnum/keystroke replace-string replace-regexp query-replace query-replace-regexp C-f :r file C-s :w s :wa C-w file :w file b C-b :buffers C-q :set ro k 2 :split ^V decimal/keystroke :%s/aaa/bbb/g :%s/aaa/bbb/g :%s/aaa/bbb/gc

Chapitre 11. Editeurs

133

Scinde horizontalement~: C-x 3 :vsplit (ver. 6) Va une autre fentre~: C-x o ^Wp Efface cette fentre~: C-x 0 :q Efface autre fentre~: C-x 1 Lance un shell en arrire-plan~: M-x compile Tue un shell lanc en arrire-plan~: M-x kill-compilation Lance make~: :make Makefile Inspecte les messages derreur~: C-x Lance un shell et enregistre~: M-x shell :!script -a tmp ...clean BS, ... :!col -b <tmp >record sauve/rappelle le shell/enregistre~: C-x C-w record :r record Lance shell~: M-! sh :sh Lance une commande~: M-! cmd :!cmd Lance une commande et insre~: C-u M-! cmd :r!cmd Lance un filtre~: M-| file {visual}:w file Lance un filtre et insre~: C-u M-| filter {visual}:!filter Montre une option :se[t] {option}? relance loption :se[t] {option}& relance une option boolenne :se[t] no{option} commute une option boolenne :se[t] inv{option} met le texte sur 72 colonnes :se tw=72 pas dorganisation du texte :se tw=0 autoindentation :se ai tend la tabulation :se et spcifie un commentaire (courrier) :se comments=n:>,n:\| Lance GDB M-x gdb dcrit le mode GDB C-h m saute une ligne M-s va la ligne suivante M-n saute une instruction (stepi) M-i Finit le cadre de la pile courante C-c C-f continue M-c up arg frames M-u down arg frames M-d copie le numro partir du point, insre la fin C-x & positionne un point darrt C-x SPC

Chapitre 11. Editeurs

134

11.3.5

Conguration de Vim

An de mettre en surbrillance les spcicits et la syntaxe avec Vim, ajoutez les lignes suivantes dans ~/.vimrc ou /etc/vimrc : set set set syn nocompatible nopaste pastetoggle=<f11> on

Le mode paste permet dviter que lautoindentation ninterfre avec le couper/coller en mode console/terminal. Cest mieux que faire un simple :set noai.

11.3.6

Ctags

apt-get install exuberant-ctags et lancez ctags dans les chiers source. Taper :tag function_name dans vim pour aller la ligne commence function_name. Les balises marchent pour C, C++, Java, Python, beaucoup dautres langages. Emacs a les mmes possibilits avec les ctags.

11.3.7

Convertir un cran avec syntaxe en surbrillance en un source HTML

so \$VIMRUNTIME/syntax/2html.vim avec Vim en mode commande convertira le texte en texte html. Sauvegarder avec :w file.html et :q. Trs utile pour du code C, etc.

11.3.8

Ecran scind avec vim

vim peut diter plusieurs chiers dans un environnement multi-fentr en scindant lcran. Tapez :help usr_08.txt pour plus de dtails. Pour scinder lcran pour afcher diffrents chiers, tapez linvite de commande de vi : :split another-file :vsplit another-file Ou linvite du shell : $ vi -o file1.txt file2.txt $ vi -O file1.txt file2.txt # Sparation horizontale # Sparation verticale

Chapitre 11. Editeurs

135

lancera vi en mode multi-fentr. $ vimdiff file.txt~ file.txt file.txt $ vimdiff file.en.sgml file.fr.sgml traduction $ gvimdiff file.txt~ file.txt # donne les changements rcents de # donne les changements dans la # sous X

fournit une vue sympa des diffrences entre un original et un chier de sauvegarde. En SGML, cela fait la correspondance des balises, donc comparer les traductions dans ce mode marche trs bien. Mouvements spciaux du curseur avec CTRL-W : CTRL-W CTRL-W CTRL-W CTRL-W CTRL-W CTRL-W ... + h j k l augmente la taille dune fentre rduit la taille dune fentre se dplace vers la fentre de gauche se dplace vers la fentre en dessous se dplace vers la fentre au dessus se dplace vers la fentre de droite

Les commandes suivantes permettent de contrler le dlement de lcran : :set scrollbind :set noscrollbind

Chapitre 11. Editeurs

136

137

Chapitre 12

CVS
Consultez /usr/share/doc/cvs/html-cvsclient, /usr/share/doc/cvs/html-info, /usr /share/doc/cvsbook avec lynx ou lancez info cvs et man cvs pour de linformation dtaille.

12.1 Installation dun serveur CVS


La conguration suivante autorise un commit sur le dpt cvs seulement par un membre du groupe src, et ladministration de cvs seulement par un membre du groupe staff, ceci an de rduire les risques de conits. # # # # # # # # # # # # # cd /var/lib; umask 002 ; sudo mkdir cvs # [WOODY] FSH apt-get install cvs cvs-doc cvsbook export CVSROOT=/var/lib/cvs cd $CVSROOT chown root:src . # "staff" => restriction importante pour un projet dbutant. chmod 3775 . # Si la ligne prcdente utilise "staff", alors rgler sur 2775 cvs -d=/var/lib/cvs init # il est plus prudent de spcifier explicitement -d ici ! cd CVSROOT chown -R root:staff . chmod 2775 . touch val-tags chmod 664 history val-tags chown root:src history val-tags

Chapitre 12. CVS

138

12.2 Exemples de sessions CVS


12.2.1 CVS anonyme (tlchargement seulement)

$ export CVSROOT=:pserver:anonymous@cvs.qref.sf.net:/cvsroot/qref $ cvs login $ cvs -z3 co qref

12.2.2

Utilisation dun serveur CVS local

$ export CVSROOT=/var/lib/cvs

12.2.3

Utilisation dun pserver CVS distant

Ceci nest pas trs sr, mais convenable pour du CVS anonyme : $ export CVSROOT=:pserver:account@cvs.foobar.com:/var/lib/cvs $ cvs login

12.2.4

Utilisation dun CVS distant avec ssh

Vous pouvez aussi utiliser lauthentication RSA (Se connecter avec moins de mots de passe page 117) qui limine la demande du mot de passe. $ export CVSROOT=:ext:account@cvs.foobar.com:/var/lib/cvs ou pour SourceForge : $ export CVSROOT=:ext:account@cvs.qref.sf.net:/cvsroot/qref

12.2.5
Pour,

Crer une nouvelle archive CVS

OBJET Arbre source : Nom du Projet : Balise vendeur : Balise de version :

VALEUR ~/projet-x projet-x Main-branch Release-original

SIGNIFICATION Tous les codes sources Nom pour ce projet Balise pour la branche entire Balise pour une version spcifique

Chapitre 12. CVS

139

Ensuite, $ cd ~/projet-x # va dans le rpertoire du source ... crer un arbre source ... $ cvs import -m "Start projet-x" projet-x Main-branch Release-initial $ cd ..; rm -R ~/projet-x

12.2.6

Travailler avec CVS

Pour rappeler et travailler sur les sources locales de projet-x avec une archive CVS :

$ cd # va la zone de travail. $ cvs co project-x # importe les sources du CVS en local $ cd project-x ... effectuez des changements au contenu ... $ cvs diff -u # similaire diff -u repository/ local/ $ cvs ci -m "Description" # sauvegarde les sources locales sur CVS $ vi newfile_added $ cvs add newfile_added $ cvs ci -m "Ajout de newfile_added" $ cvs up # rcupre la dernire version du CVS $ cvs tag Release-1 # ajoute une balise de version ... modifiez un peu plus ... $ cvs tag -d Release-1 # enlve une balise de version $ cvs ci -m "commentaires supplmentaires" $ cvs tag Release-1 # rajoute une balise de version $ cd # retourne la zone de travail. $ cvs co -r Release-initial -d old project-x ... rcupre la version originale dans le rpertoire old $ cd old $ cvs tag -b Release-initial-bugfixes # balise cration dune branche (-b) ... Maintenant vous pouvez travailler sur lancienne version $ cvs update -r Release-initial-bugfixes ... Larbre des sources a maintenant la balise permanente "Release-initial-bugf ... Travaillez sur cette branche $ cvs up # synchronise avec les autres dveloppeurs de la branche $ cvs ci -m "ajout la branche" $ cvs update -r HEAD # change la branche en tronc principal HEAD $ cvs update -kk -j Release-initial-bugfixes ... Ajoute la branche au tronc principal sans le remplacement des mots cl ... fixez les conflits avec un diteur

Chapitre 12. CVS

140

$ $ $ $

cvs ci -m "merge Release-initial-bugfixes into the main trunk" cd tar -cvzf old-project-x.tar.gz old # crez une archive, -j pour bz2 cvs release -d old # supprimez les sources locales (optionnel)

Options utiles se rappeler (utiliser juste aprs cvs) : -n -t lancement sec, sans effet message des tapes de lactivit cvs

12.2.7

Exportation de chiers partir de CVS

Pour avoir la dernire version par CVS, utiliser tomorrow : $ cvs ex -D tomorrow module_name

12.2.8

Administrer CVS

Ajouter un alias un projet (serveur local) : $ su - admin # un membre de lquipe Password: $ export CVSROOT=/var/lib/cvs ; cvs co CVSROOT/modules $ cd CVSROOT $ echo "px -a project-x" >>modules $ cvs ci -m "Now px is an alias for project-x" $ cvs release -d . $ exit # control-D pour quitter su $ cvs co -d project px ... projet-x (alias:px) de CVS au rpertoire du projet $ cd project ... faites les changements pour les contenus

12.3
12.3.1

Rsoudre les problmes de CVS


Permissions de chiers dans le dpt

CVS ne va pas craser le chier du dpt courant mais va le remplacer par un autre. Ainsi, la permission en criture sur le rpertoire de dpt est critique. Pour chaque nouvelle cration dun dpt, lancez ce qui suit pour vous assurer que cette condition et remplie.

Chapitre 12. CVS

141

# # # #

cd /var/lib/cvs chown -R root:src repository chmod -R ug+rwX repository chmod 2775 repository # si besoin est, a et les sous-rpertoires

12.3.2

Bit dexcution

Le bit dexcution de chier est conserv lorsquon quitte la session. Si on observe nimporte quel problme de permission dexcution dans les chiers de contrle, on peut changer la permission sur ce chier dans le dpt CVS avec la commande suivante. # chmod ugo-x nom_du_fichier

12.4

Commandes CVS

{add|ad|new} [-k kflag] [-m message] files... {admin|adm|rcs} [rcs-options] files... {annotate|ann} [options] [files...] {checkout|co|get} [options] modules... {commit|ci|com} [-lnR] [-m log_message | -f file] \ [-r revision] [files...] {diff|di|dif} [-kl] [rcsdiff_options] [[-r rev1 | -D date1] \ [-r rev2 | -D date2]] [files...] {export|ex|exp} [-flNn] -r rev|-D date [-d dir] [-k kflag] module... {history|hi|his} [-report] [-flags] [-options args] [files...] {import|im|imp} [-options] repository vendortag releasetag... {login|logon|lgn} {log|lo|rlog} [-l] rlog-options [files...] {rdiff|patch|pa} [-flags] [-V vn] [-r t|-D d [-r t2|-D d2]] modules... {release|re|rel} [-d] directories... {remove|rm|delete} [-lR] [files...] {rtag|rt|rfreeze} [-falnR] [-b] [-d] [-r tag | -D date] \ sym_bolic_tag modules... {status|st|stat} [-lR] [-v] [files...] {tag|ta|freeze} [-lR] [-F] [-b] [-d] [-r tag | -D date] [-f] \ sym_bolic_tag [files...] {update|up|upd} [-AdflPpR] [-d] [-r tag|-D date] files...

Chapitre 12. CVS

142

143

Chapitre 13

Programmation
Nutilisez pas test comme nom dexcutable pour un chier de test. test est une commande du shell.

13.1 O commencer
Linux Programming Bible (John Goerzen/IDG books) Documents et exemples sous /usr/share/doc/<packages> Beaucoup de longs documents informatifs peuvent tre obtenus sur papier par GNU (http:// www.gnu.org/). Les quatres sections suivantes contiennent quelques scripts dexemple dans diffrents langages pour crer un chier texte dinformation sur les comptes utilisateur qui peut tre ajout /etc /passwd, avec par exemple le programme newusers. Chaque script prend en entre un chier contenant des lignes de la forme prnom nom mot_de_passe. (Les rpertoires home des utilisateurs ne seront pas crs avec ces scripts.)

13.2

BASH

Learning the bash Shell, 2nd edition (OReilly) $ info bash $ mc /usr/share/doc/bash/examples/ /usr/share/doc/bash/

Chapitre 13. Programmation

144

(Il faut installer le paquet bash-doc pour avoir les chiers dexemple.) Court exemple de programme (cre un nouvel utilisateur) : #!/bin/bash # (C) Osmu Aoki Sun Aug 26 16:53:55 UTC 2001 Public Domain pid=1000; while read n1 n2 n3 ; do if [ ${n1:0:1} != "#" ]; then let pid=$pid+1 echo ${n1}_${n2}:password:${pid}:${pid}:,,,/home/${n1}_${n2}:/bin/bash fi done

13.3

AWK

Effective awk Programming, 3rd edition, et sed & awk, 2nd edition (OReilly) $ man awk Court exemple de programme (cre un nouvel utilisateur) : #!/usr/bin/awk -f # Script pour crer un fichier utilisable avec la commande newusers partir # dun fichier contenant des IDs utilisateur et des mots de passe sous la # forme : # Prnom Nom Mot_de_passe # Copyright (c) KMSelf Sat Aug 25 20:47:38 PDT 2001 # Distributed under GNU GPL v 2, or at your option, any later version. # This program is distributed WITHOUT ANY WARRANTY. BEGIN { # Assign starting UID, GID if ( ARGC > 2 ) { startuid = ARGV[1] delete ARGV[1] } else { printf( "Usage: newusers startUID file\n" \ "...where startUID is the starting userid " \

Chapitre 13. Programmation

145

"to add, and file is \n" \ "an input file in form firstname last name password\n" \ ) exit } infile = ARGV[1] printf( "Starting UID: %s\n\n", startuid ) } /^#/ { next } { ++record first = $1 last = $2 passwd = $3 user= substr( tolower( first ), 1, 1 ) tolower( last ) uid = startuid + record - 1 gid = uid printf( "%s:%s:%d:%d:%s %s,,/home/%s:/bin/bash\n", \ user, passwd, uid, gid, first, last, user \ ) }

13.4

PERL

Programming Perl, 3rd edition (OReilly) $ man perl Court exemple de programme (cre un nouvel utilisateur) : #!/usr/bin/perl # (C) Osmu Aoki Sun Aug 26 16:53:55 UTC 2001 Public Domain $pid=1000; while (<STDIN>) { if (/^#/) { next;} chop; $pid++;

Chapitre 13. Programmation

146

($n1, $n2, $n3) = split / /; print $n1,"_",$n2,":", $n3, ":",$pid, ":",$pid,",,,/home/",$n1,"_",$n2,":/bin/bash\n" } Installer le module Perl module name : # perl -MCPAN -e install module name

13.5 PYTHON
Learning Python (OReilly). Cest un interprteur sympa. $ man python Court exemple de programme (cre un nouvel utilisateur) : #! /usr/bin/env python import sys, string # (C) Osmu Aoki Sun Aug 26 16:53:55 UTC 2001 Public Domain # Ported from awk script by KMSelf Sat Aug 25 20:47:38 PDT 2001 # This program is distributed WITHOUT ANY WARRANTY. def usages(): print \ "Usage: ", sys.argv[0], " start_UID [filename]\n" \ "\tstartUID is the starting userid to add.\n" \ "\tfilename is input file name. If not specified, standard input.\n\n" \ "Input file format:\n"\ "\tfirstname lastname password\n" return 1 def parsefile(startuid): # # main filtering # uid = startuid while 1:

Chapitre 13. Programmation

147

line = infile.readline() if not line: break if line[0] == #: continue (first, last, passwd) = string.split(string.lower(line)) # above crash with wrong # of parameters :-) user = first[0] + last gid = uid lineout = "%s:%s:%d:%d:%s %s,,/home/%s:/bin/bash\n" % \ (user, passwd, uid, gid, first, last, user) sys.stdout.write(lineout) +uid if __name__ == __main__: if len(sys.argv) == 1: usages() else: uid = int(sys.argv[1]) #print "# UID start from: %d\n" % uid if len(sys.argv) > 1: infilename = string.join(sys.argv[2:]) infile = open(infilename, r) #print "# Read file from: %s\n\n" % infilename else: infile = sys.stdin parsefile(uid)

13.6

MAKE

Managing Projects with make, 2nd edition (OReilly) $ info make Variables automatiques simples : Syntaxe des rgles : Cible: [ Prrequis ... ] < TAB > command1

Chapitre 13. Programmation

148

< TAB > -command2 # peut gnrer une erreur < TAB > @command3 # pas decho Chaque ligne est interprte par le shell aprs la substitution des variables par make. Utiliser \ la n dune ligne pour continuer le script. Utiliser $$ pour entrer $ pour les variables denvironnement du script shell. Equivalents des rgles implicites : .c: header.h == % : %.c header.h .o.c: header.h == %.c: %.o header.h Variables automatiques pour les rgles ci-dessus : foo.o: new1.c new2.c.c old1.c new3.c $@ == foo.o (cible) $< == new1.c (premier) $? == new1.c new2.c new3.c (plus rcent) $^ == new1.c new2.c.c old1.c new3.c (tout) $* == % motif correspondant dans le motif cible. Rfrence des variables : foo1 := bar # expansion unique foo2 = bar # expansion rcursive foo3 += bar # ajoute SRCS := $(wildcard *.c) OBJS := $(foo:c=o) OBJS := $(foo:%.c=%.o) OBJS := $(patsubst %.c,%.o,$(foo)) DIRS = $(dir directory/filename.ext) # Extrait "directory" $(notdir NAMES...), $(basename NAMES...), $(suffix NAMES...) ... Excuter make -p -f/dev/null pour voir les rgles automatiques internes.

13.7 C
Kernighan & Ritchie, The C Programming Language, 2nd edition (Prentice Hall). Pour obtenir la rfrence de la bibliothque C GNU :

Chapitre 13. Programmation

149

# apt-get install glibc6-doc manpages-dev

Pour lire la rfrence de la bibliothque C GNU, utilisez info libc. Pour chaque fonction, printf par exemple, utilisez man 3 printf.

13.7.1

Programme simple en C (gcc)

Un exemple simple pour compiler example.c avec la bibliothque libm dans lexcutable run_example :

$ cat exmple.c #include <stdio.h> #include <math.h> #include <string.h> int main(int argc, char **argv, char **envp){ double x; char y[11]; x=sqrt(argc+7.5); strncpy(y, argv[0], 10); /* prevent buffer overflow */ y[10] = \0; /* fill to make sure end with \0 */ printf("%5i, %5.3f, %10s, %10s\n", argc, x, y, argv[1]); return 0; } $ gcc -Wall -g -o run_example exmple.c -lm $ ./run_example 1, 2.915, ./run_exam, (null) $ ./run_example 1234567890qwerty 2, 3.082, ./run_exam, 1234567890qwerty

Ici, -lm est ncessaire pour lier la bibliothque libm, pour utiliser sqrt(). La bibliothque est en fait dans /lib sous le nom libm.so.6 qui est un lien symbolique vers libm-2.1.3.so. Regardez le dernier paramtre dans le texte imprim. Il y a plus de 10 caractres imprims alors que %10s est spci. Lutilisation de fonctions effectuant des oprations sur des pointeurs sans vrier la limite, comme sprintf et strcpy, est dprcie pour prvenir les exploits de dpassement de buffer, annulant les effets ci-dessus. Utilisez snprintf et strncpy la place.

Chapitre 13. Programmation

150

13.7.2

Dboguer (gdb)

Didacticiel GDB (http://www.dirac.org/linux/gdb/) (NdT : en Anglais) Utilisez gdb pour dboguer des programmes compils avec loption -g. Beaucoup de commandes peuvent tre abbrvies. Lexpansion par tab marche comme avec le shell. $ info gdb ... $ gdb program (gdb) b 1 # positionne un point darrt la ligne 1 (gdb) run arg1 arg2 arg3 # excute le programme (gdb) next # ligne suivante ... (gdb) step # pas en avant ... (gdb) p parm # affiche parm ... (gdb) p parm=12 # met la valeur de parm 12 Les commandes suivantes sont aussi utiles : ldd : afche les dpendances des bibliothques partages strace : trace les appels et signaux systme ltrace : trace les appels aux bibliothques Pour dboguer depuis emacs, rfrez-vous Rsum des commandes de lditeur (Emacs, Vim) page 131.

13.7.3

Flex un meilleur Lex

Vous devez fournir vos propres main() et yywrap(), ou votre program.l. Il ne devrait pas y avoir besoin de bibliothque pour compiler. (yywrap est une macro ; %option main active %option noyywrap implicitement) : %option main %% .|\n ECHO ; %% Autrement, vous pouvez compiler avec loption du linker -lfl la n de la ligne de commande de cc, comme ATT-Lex avec -ll (pas de %option ncessaire).

Chapitre 13. Programmation

151

13.7.4

Bison un meilleur Yacc

Vous devez fournir vos propres main() et yyerror(). main() appelle yyparse() qui appelle yylex(), habituellement cr avec Flex. %% %%

13.7.5

Autoconf uninstall

SI vous avez toujours les sources et SI elles utilisent autoconf/automake et SI vous vous souvenez comment vous avez congur la compilation : $ ./configure les-options-de-configuration # make uninstall

13.8

SGML

Un moyen de grer plusieurs formats pour un document est SGML. Un SGML plus facile est offert avec debiandoc, qui est utilis ici. Cela requiert des conversions mineurs dans le chier texte original, pour les caractres suivants : < > & -&lt; &gt; &amp; &copy; &ndash; &mdash;

Pour marquer une section en tant que commentaire non imprimable, faites : <!-- State issue here ... --> Pour marquer une section en tant que commentaire ou pas limpression, faites : <![ %FIXME [ State issue here ... ]]>

Chapitre 13. Programmation

152

En SGML, la premire dnition dune entit lemporte. Par exemple : <!entity % qref "INCLUDE"> <![ %qref [ <!entity param "Data 1"> ]]> <!entity param "Data 2"> &param; Cela termine en tant que Data 1. Si la premire ligne inclut IGNORE au lieu de INCLUDE, cela termine en tant que Data 2 (la deuxime ligne est conditionnelle). Pour plus de dtails, faites apt-get install debiandoc-sgml-doc. Lisez aussi DocBook : The Denitive Guide, by Walsh and Muellner (OReilly).

13.9 Paquetage
Lisez la documentation fournie dans le paquet packaging-manual (Potato) ou debian-policy (Woody). Utilisez dh_make du paquet dh-help pour crer larchitecture du paquet. Ensuite, suivez les instructions de dh-make(1), qui utilise debhelper dans debian/rules. Une autre approche est dutiliser deb-make du paquet debmake. Cela nutilise aucun script debhelper et dpend seulement du shell. Pour plusieurs paquets source, voir mc (dpkg-source -x mc_4.5.54.dsc) qui utilise sysbuild.mk par Adam Heath (<doogie@debian.org>) et glibc (dpkg-source -x glibc_2.2.4-1.dsc) qui utilise un autre systme par Joel Klecker (<espy@debian.org>).

153

Chapitre 14

GnuPG
Consultez /usr/share/doc/gnupg/README.gz pour des informations dtailles ou lisez man gpg.

14.1 Installer GnuPG


Lisez le manuel de GNU privacy (dans woody, gnupg-doc). # gpg --gen-key # gpg --gen-revoke my_user_ID # # # # host -l pgp.net | grep www|less # Aujourdhui, les bons serveurs de cls sont : keyserver wwwkeys.eu.pgp.net keyserver wwwkeys.pgp.net Il faut faire attention de ne pas crer plus de deux sous-cls. Si vous le faites, les serveurs de cls de pgp.net vont corrompre votre cl. De plus, un seul serveur de cls peut tre spci dans votre $HOME/.gnupg/options Malheureusement, les serveurs suivants ne fonctionnent plus : keyserver search.keyserver.net keyserver pgp.ai.mit.edu gnre une nouvelle cl gnre une cl de rvocation pour my_user_ID cherche les serveurs de cls pgp

Chapitre 14. GnuPG

154

14.2 Utiliser GnuPG


Gestion de chiers : $ $ $ $ $ $ $ $ gpg gpg gpg gpg gpg gpg gpg gpg

[options] command [args] {--armor|-a} {--sign|-s} file # signe file dans le fichier file.asc --clearsign file # signe file sans le chiffrer --clearsign --not-dash-escaped patchfile # signe sans le chiffrer patchfi --verify file # vrifie un fichier sign sans chiffrement -o file.sig {-b|--detach-sign} file # cre une signature dtache --verify file.sig file # vrifie file laide de file.sig -o crypt_file {--recipient|-r} name {--encrypt|-e} file # chiffrement cl publique pour le destinataire name $ gpg -o crypt_file {--symmetric|-c} file # chiffrement symtrique $ gpg -o file --decrypt crypt_file # dchiffrement

14.3

Grer GnuPG

Gestion des cls : $ $ $ $ $ $ $ $ $ $

gpg --edit-key user_ID # "help" pour laide, intractive gpg -o file --exports # exporte toutes les cls vers le fichier gpg --imports file # importe toutes les cls depuis un fichi gpg --send-keys user_ID # envoie la cl de user_ID vers un serveu gpg --recv-keys user_ID # reoit la cl de user_ID depuis le serv gpg --list-keys user_ID # liste les cls de user_ID gpg --list-sigs user_ID # liste les signatures de user_ID gpg --check-sigs user_ID # vrifie la signature de user_ID gpg --fingerprint user_ID # vrifie lempreinte de user_ID gpg --list-sigs | grep ^sig | grep [User id not found] \ | awk {print $2} | sort -u | xargs gpg --recv-keys # get unknownkeys # met jour les cls pour toutes les signatures inconnues

Code de conance : e q n Pas de confiance assigne au possesseur / pas encore calcule Calcul de la confiance chou Pas assez dinformations pour le calcul Ne jamais faire confiance cette cl

Chapitre 14. GnuPG

155

m f u

Confiance marginale Confiance complte Confiance ultime

14.4

Utilisation avec Mutt

Ajoutez les instructions suivantes ~/.muttrc pour viter que GnuPG, qui est lent, sexcute automatiquement mais soit quand mme utile. macro index S ":toggle pgp_verify_sig\n" set pgp_verify_sig=no

Chapitre 14. GnuPG

156

157

Chapitre 15

Support Debian
Les rfrences suivantes fournissent de laide et des conseils pour Debian. Utilisez au mieux ces documents pour vous aider vous-mme avant de venir crier sur les listes de diffusion :) Notez que vous avez accs beaucoup de documentation sur votre systme en utilisant un navigateur web, en utilisant les commandes dwww ou dhelp, que vous trouverez dans les paquets du mme nom.

15.1 Rfrences
Les rfrences suivantes sont disponibles pour Debian et Linux en gnral. Si leur contenu est en conit avec lun lautre, comptez toujours davantage sur les sources primaires dinformations que sur les sources secondaires telles que ce document. Manuel dinstallation (primaire) A lire avant dinstaller et de mettre jour. Web : http://www.debian.org/releases/stable/installmanual Web : http://www.debian.org/releases/testing/installmanual (en cours dcriture) Paquet : install-doc Fichier : /usr/share/doc/install-doc/index.html Les notes de version (primaire) A lire absolument avant linstallation et la mise jour mme si avez de bonnes connaissances. Web : http://www.debian.org/releases/stable/releasenotes Web : http://www.debian.org/releases/testing/releasenotes (work in progress) Paquet : install-doc

Chapitre 15. Support Debian

158

FAQ (secondaire) Foire aux questions (un peu ancien) Web : http://www.debian.org/doc/manuals/debian-faq/ Paquet : doc-debian Fichier : /usr/share/doc/debian/FAQ/index.html APT HOWTO (secondaire) Guide dtaill pour lutilisateur de la gestion de paquets Debian (woody) Web : http://www.debian.org/doc/manuals/apt-howto/ Paquet : apt-howto, Fichier : /usr/share/doc/apt-howto Documentation dselect pour dbutants (secondaire) Tutoriel pour dselect Web : http://www.debian.org/releases/woody/i386/dselect-beginner Paquet : install-doc, La charte Debian (primaire) Charte Technique de Debian. Web : http://www.debian.org/doc/debian-policy/ Rfrence du dveloppeur Debian (primaire) Savoir de base pour les dveloppeurs. Nous devrions parcourir a au moins une fois. Web : http://www.debian.org/doc/manuals/developers-reference/ Guide des nouveaux responsables Debian (primaire) Guide pratique pour les dveloppeurs. Tutoriel dempaquetage. http://www.debian.org/doc/manuals/maint-guide/ Manuel dempaquetage (potato) packaging-manual dans potato. Pages de manuel Unix (primaire) man package-name Pages info GNU (primaire) info package-name Documents spciques chaque paquet(primaire) Retrouvez-les sous /usr/share/doc/package-name LDP : Linux Documentation Project (secondaire) HOWTOs et mini-HOWTOS gnraux pour Linux Web : http://www.tldp.org/ Paquet : doc-linux Fichier : /usr/share/doc/HOWTO/ Projet de Documentation Debian (secondaire) Manuels spciques pour Debian Web : http://www.debian.org/doc/ Le coin du dveloppeur (secondaire)

Chapitre 15. Support Debian

159

Informations clef pour les responsables de paquets Debian permet lutilisateur nal de mieux comprendre la Debian Web : http://www.debian.org/devel/ Code source (absolument primaire) Personne ne peut donner darguments contre a :-) Tlchargez le code source en suivant les instructions de Le code source page 11

15.2 Trouver le sens dun mot


Beaucoup de mots utiliss dans Debian sont des mots issus du jargons techniques ou des acronymes. Linstruction suivante rpondra la plupart des questions de vocabulaire : $ dict <mettez un mot bizarre ici>

15.3

Systme de suivi des bogues Debian

La distribution Debian a un systme de suivi de bogues ou bug tracking system (BTS) (http: //bugs.debian.org/) dans lequel nous enregistrons les dtails des bogues rapports par les utilisateurs et les dveloppeurs. Chaque bogue reoit un numro, et est rpertori dans un chier jusqu ce quil soit marqu comme ayant t trait. Vous devriez vrier que votre bogue na pas dj t signal par quelquun dautre avant de le soumettre. Les listes des bogues non encore rsolus sont disponibles sur la Toile (http:// bugs.debian.org/) et ailleurs (http://www.debian.org/Bugs/Access). Voyez aussi Rechercher les bogues de Debian et demander de laide page 62. La mthode pour rapporter un bogue est dcrite ladresse http://www.debian.org/Bugs/ Reporting

15.4 Listes de diffusion


Lisez au moins debian-devel-announce (Anglais, lecture seule & trac bas) pour tre au courant des nouvelles sur Debian. Les listes de diffusions les plus utiles aux utilisateurs de Debian sont debian-user (Anglais, ouverte & trac important) et autres debian-user-langue (pour les autres langues). Pour plus dinformations sur ces listes et la manire de sy inscrire voyez http://lists.debian. org/. Veuillez rechercher dans les archives si vos questions nont pas dja trouv de rponses avant de poster, et respecter le code de conduite des listes.

Chapitre 15. Support Debian

160

15.5 Internet Relay Chat


Debian a un canal IRC ddi au support et lassistance des utilisateurs Debian qui fait partie du rseau IRC Open Projects, un rseau consacr la mise disposition de ressources pour les changes dinformation dans la communaut du Logiciel Libre. Pour accder au canal avec votre client IRC favori, vous devez lui indiquer de se connecter irc.openproject.net et rejoindre le canal #debian. Veuillez suivre les instructions du canal et respecter les autres utilisateurs. Pour plus dinformations sur Open Project visitez le site internet (http://www.openprojects.net).

15.6

Moteurs de recherche

De nombreux moteurs de recherche offrent des documentations lies Debian : page de recherche du site internet de Debian (http://search.debian.org/). Google (http://www.google.com/) : inclure site :debian.org comme terme de recherche. Google Groups (http://groups.google.com/) : un moteur de recherche pour groupes de nouvelles. Inclure linux.debian.user comme terme de recherche. AltaVista (http://www.altavista.com/) Par exemple, chercher le terme cgi-perl donne une description de ce paquet plus dtaille que la texte bref dans le champs description dans son chier de contrle. Voir Rechercher les bogues de Debian et demander de laide page 62 pour de dtails ce sujet.

15.7

Sites internet

Il y a quelques sites internet populaires qui contiennent des informations gnrales de support. Debian planet (http://www.debianplanet.org/) Linux.com (http://linux.com/) Les pages de Matt Chapman (Unix Guide) (http://www.belgarath.demon.co.uk/) Les sites suivants sont des sites que jai rfrenc pour des sujets spciques. Paquets dAdrian Bunk pour faire tourner un noyau 2.4.x sur potato (http://www.fs.tum. de/~bunk/kernel-24.html) Linux sur portables (http://www.linux-laptop.net/) Xterm FAQ (http://dickey.his.com/xterm/xterm.faq.html) EXT3 File System mini-HOWTO (http://www.symonds.net/~rajesh/howto/ext3/index. html) Support de Grands Fichiers par Linux (http://www.suse.de/~aj/linux_lfs.html)

Chapitre 15. Support Debian

161

LNX-BBC (Projet de boot CD au format Business-card) (http://www.lnx-bbc.org/) Linux info par Karsten Self (Partitioning, backup, browsers. . .) (http://kmself.home.netcom. com/Linux/) Backup info HOWTO par Alvin Oga (http://www.Linux-Backup.net/) Security info HOWTO par Alvin Oga (http://www.Linux-Sec.net/) Various UNOFFICIAL sources for APT (http://www.internatif.org/bortzmeyer/debian/ apt-sources/) Conguration Ethernet dun portable (http://www.orthogony.com/gjw/lap/lap-ether-intro. html)

Chapitre 15. Support Debian

162

163

Annexe A

Annexe
A.1 Auteurs

Guide de rfrence pour Debian a t dmarr par Osamu Aoki <debian@aokiconsulting.com> en tant que mmo dinstallation personnel et nalement appel Quick Reference . . . . Une grande partie du contenu venait des archives de la liste de diffusion debian-user . Debian Manuel dinstallation et Debian Notes de version ont aussi t utiliss. Suite une suggestion de Josip Rodin, qui est trs actif dans le Projet de Documentation Debian (http://www.debian.org/doc/ddp) (DDP) et est le responsable actuel de la FAQ Debian , ce document a t renomm en Guide de rfrence pour Debian et fusionn avec des chapitres de la FAQ Debian ayant un contenu de rfrence. Ce document a t modi, traduit et amlior par les membres de lquipe QREF suivants : Relecture et rcriture en Anglais du Quick Reference. . . original Osamu Aoki <debian@aokiconsulting.com\textgreater{}> (leader : tout le contenu) Relecture et rcriture en Anglais David Sewell <dsewell@virginia.edu> (leader : style en) Brian Nelson <nelson@bignachos.com> Daniel Webb <webb@robust.colorado.edu> Traduction en Franais Guillaume Erbs <gerbs@free.fr> (leader : fr) Rnald Casagraude <rcasagraude@interfaces.fr> Jean-Pierre Delange <delange@imaginet.fr> Daniel Desages <daniel@desages.com> Traduction en Italien Davide Di Lazzaro <mc0315@mclink.it> (leader : it) Traduction en Espagnol

Chapitre A. Annexe

164

Walter Echarri <wecharri@infovia.com.ar> Jos Carreiro <ffx@urbanet.ch> QREF est un raccourci pour le document original Quick Reference. . . et aussi le nom du projet sur qref.sourceforge.net. La plus grande partie du contenu de Notions fondamentales sur Debian page 5 vient de la FAQ Debian (mars 2002) 5. Les archives FTP Debian ftparchives.sgml (chapitre entier) 6. Bases du systme de gestion des paquets Debian pkg_basics.sgml (chapitre entier) 7. Outils de gestion des paquets Debian pkgtools.sgml (chapitre entier) 8. Maintenir votre systme jour uptodate.sgml (chapitre entier) 9. Debian et le noyau kernel.sgml (chapitre entier) 10. Personnaliser votre installation de Debian GNU/Linux customizing.sgml (part of chapter)

Ces sections de la FAQ Debian ont t incluses dans ce document aprs des rorganisations majeures retant des changements rcents dans le systme Debian. Le contenu de ce document est plus rcent. La FAQ Debian originale a t crite et maintenue par J.H.M. Dassen (Ray) et Chuck Stickelman. Les auteurs de la FAQ Debian rcrite sont Susan G. Kleinmann et Sven Rudolph. Aprs eux, la FAQ Debian a t maintenue par Santiago Vila. Le responsable actuel est Josip Rodin. Une partie de linformation utilise pour la FAQ Debian venait de Lannonce de sortie de Debian-1.1, par Bruce Perens (http://www.perens.com/). La FAQ Linux, par Ian Jackson (http://www.chiark.greenend.org.uk/~ijackson/). Archives de la liste de diffusion Debian (http://lists.debian.org/), Le manuel des dveloppeurs dpkg et la Charte Debian (voir Rfrences page 157) beaucoup de dveloppeurs, volontaires, beta testeurs, et la mmoire voile de ses auteurs. :-)

Les auteurs souhaitent remercier tous ceux qui ont aid la cration de ce document.

A.2 Garanties
Comme je ne suis pas un expert, je ne prtends pas tout connatre sur Debian ou Linux en gnral. Les considrations de scurit que jutilise peuvent tre utilises seulement dans le cas dune utilisation personnelle. Ce document ne remplace aucun guide ofciel. Toute garantie est dsavoue. Toutes les marques de commerce sont la proprit de leurs propritaires respectifs.

Chapitre A. Annexe

165

A.3

Retour

Les commentaires et aditions ce document sont toujours les bienvenus. Merci denvoyer un courriel Osamu Aoki (http://www.aokiconsulting.com/) <debian@aokiconsulting. com> en Anglais ou chacun des traducteurs dans la langue respective. Bien que je vive aux Etats-Unis, lAnglais nest pas ma langue maternelle. Toute correction grammaticale est la bienvenue. Le meilleur retour est un diff du SGML, mais un diff de la version texte est bienvenu. Voir Document ofciel page 1 pour le site du document ofciel. Les chiers SGML originaux utiliss pour crer ce document sont aussi disponibles par CVS :pserver :anonymous@cvs.qref.sf.net/cvsroot/qref ou http://qref.sourceforge. net/Debian/qref.tar.gz.

A.4

Format du document

Ce document a t crit en utilisant la DTD SGML DebianDoc (rcrite partir de LinuxDoc SGML). Le systme SGML DebianDoc permet dobtenir des chiers dans de nombreux formats partir dune seule source, par exemple ce document peut tre visualis en HTML, texte, TeX DVI, PostScript, PDF, ou GNU info. Les utilitaires de conversion pour DebianDoc SGML sont disponibles dans le paquet Debian debiandoc-sgml.

A.5

Labyrinthe de Debian

Le systme Linux est une plateforme informatique trs performante lorsquelle est utilise en rseau. Cependant, connatre ses possibilits et lutiliser nest pas si facile. Congurer une imprimante en est un bon exemple. Il existe une carte trs dtaille appele CODE SOURCE . Elle est trs prcise mais trs dure comprendre. Il existe aussi des rfrences appeles HOWTO et mini-HOWTO. Elles sont plus faciles comprendre mais ont tendance trop se concentrer sur des dtails et perdent de vue les aspects gnraux. Jai de temps en temps des problmes trouver la bonne section dans un long HOWTO quand jai besoin de quelques commandes excuter. An de my retrouver dans ce labyrinthe dinformation sur la conguration dun systme Linux, je mtais fait des mmos dans un chier texte pour une rfrence rapide. Ces mmos ont grossi et dans le mme temps javais appris debiandoc. Le rsultat est ce Guide de rfrence pour Debian.

Chapitre A. Annexe

166

A.6

Les citations Debian

Voici quelques citations intressantes venant de la liste de diffusion Debian. This is Unix. It gives you enough rope to hang yourself. Miquel van Smoorenburg <miquels@ cistron.nl> (Cest Unix. Il vous donne assez de corde pour vous pendre vous-mme.) Unix IS user friendly. . .Its just selective about who its friends are. Tollef Fog Heen <tollef@ add.no> (Unix EST lami de lutilisateur. . .Il choisit juste qui sont ses amis.)

Vous aimerez peut-être aussi