Self-Help

(ou "Comment RTFM")


par Erik Rossen <rossen@rossen.ch>

NOTE: La dernière version de ce document se trouve à http://www.linux-gull.ch/cours/selfhelp.

Avant tout, les astuces!

Généralités

Si vous n'avez pas le temps de lire rien d'autre, au moins lisez ceci!

Vous n'aurez JAMAIS la capacité de mémoriser toutes les options et possibilités d'un système comme GNU - la seule vraie solution c'est d'apprendre comment chercher les documentations rapidement. Et la meilleur façon d'apprendre c'est pratiquer.

Gardez un fichier de notes ~/notes où vous notez vos changements de configuration, vos problèmes et leurs solutions. Songez à faire un alias n='vi + notes'.

Les touches "standards" pour faire des recherches des chaînes des caractères sont / et ? (modele "vi") ou CTRL-S et CTRL-R (modele "emacs").

Apprenez bash, surtout les raccourcis comme "TAB completion".

Apprenez des dialectes d'expressions régulières (grep, perl, sed, etc.)

Utilisez un client email de console (terminal, tty) (Pine, Mutt, mailx, etc.) - ils sont plus rapides et plus flexible.

Utilisez les interfaces texte des moteurs de recherche - ils sont souvent cachés, mais ils sont les plus efficaces.

Quand vous utilisez un moteur de recherche, songez aux mot-clefs en anglais.

Les browsers en mode texte (Lynx, w3m, links, etc.) sont souvent plus rapide que Netscape.

Desactivez Javascript et Java, si possible. Les sites qui dépendent de ces choses n'ont presque jamais d'informations intéressantes.

Utilisez Junkbuster pour filtrer les cookies et les images de publicité.

Utilisez les chaînes de caractères exactes des messages d'erreur quand vous cherchez avec un moteur de recherche.

Evitez d'imprimer. Si c'est important, stockez l'information dans un fichier de notes qu'on peut chercher plus tard. grep! grep! grep!

Utilisez locate - c'est bon pour votre disque dur.

Si vous venez d'installer GNU/Linux sur une machine, essayez de faire tourner le script dans /etc/cron.daily qui met à jour la base de données du logiciel locate, normalement nommé /etc/cron.daily/find,updatedb,slocate.

Utilisez Glimpse ou autres outils d'indexage si vous avez de la place sur votre disque dur.

Amortissez votre apprentissage - choissisez vos applications par leur popularité et leur longévité.

Lisez la mailing-list BugTraq et quelques sites web régulièrement. Je conseille GULL, Slashdot, et LWN.

Apprenez l'anglais.

Apprenez la courtoisie.

Apprenez la patience.

Diagnostics Rapides

Ces quelques commandes donnent souvent les plus rapides indices d'un problème et de sa solution.

df
Donne les espaces libres et utilisés sur les systèmes des fichiers montés.
ps auxfwww
Donne une arborence des processus qui tournent et leurs options.
top
Donne les processus qui utilisent le plus de mémoire et CPU.
tail -f /var/log/* &
Pour voir les messages d'erreur au moment où ils arrivent.
ifconfig
Liste les interfaces réseaux qui sont activés.
route -n
Liste les interfaces réseaux utilisé par les paquets, selon leur destinations (table de routage).
ipchains -L -n -v
Liste les règles du firewall (dans les kernels Linux 2.2.x/2.4.x compatibilité).
netstat -pan
Liste les processus qui écoutent sur le réseau.
dmesg
Liste des messages du status du kernel (y compris ses modules).
lsof
Liste les fichiers et sockets actuellement ouverts et les processus qui les utilisent.

Introduction/philosophie

Le "self-help" ou "s'aider soi-même" dans le communauté des logiciels libres peut-être se résumer par deux pratiques: RTFM et l'entraide.

RTFM == "Lisez le mode d'emploi, s'il vous plaît."*

*traduit librement

Extrait du "Jargon File" édité par Eric S. Raymond.
Voir http://www.science.uva.nl/~mes/jargon/r/rtfm.html

RTFM: /R-T-F-M/ imp. [Unix] Abbreviation for `Read The Fucking Manual'. 1. Used by gurus to brush off questions they consider trivial or annoying. Compare Don't do that then!. 2. Used when reporting a problem to indicate that you aren't just asking out of randomness. "No, I can't figure out how to interface Unix to my toaster, and yes, I have RTFM." Unlike sense 1, this use is considered polite. See also FM, RTFAQ, RTFB, RTFS, STFW, RTM, all of which mutated from RTFM, and compare UTSL.

Un petit test d'attitude

Comment réagir face à un problème avec un logiciel libre?

Ça ne marche pas, donc...

  1. ...je lance une poursuite contre Linux S.A.
    Inutile. Tous les logiciels libres sont livrés sans garantie, comme la plupart des logiciels commerciaux. De toute façon, Linux S.A. n'existe pas.
    (exemple typique: "Matsushita Electric Industrial Co.,Ltd. and its dealers, etc. offer no warranty in regard to the software programme and the operating instruction manual. Neither do they assume any liability for damages resulting from the use of the software programme and the operating instruction manual.")
  2. ...je demande à quelqu'un de m'aider.
    Ça va. Si vous savez poser la question dans une manière précise et polie, vous pouvez avoir une réponse rapidement. Autrement, on risque une réponse sèche ou non-existante.
  3. ...je regarde les documentations d'abord pour voir si je peux régler le problème.
    Bonne attitude. Vous allez apprendre quelque chose, au moins.
  4. ...je vais résoudre ce problème ou mourir dans l'effort.
    Très bonne attitude. Vous allez apprendre quelque chose ou recevoir une couronne
  5. ...j'engage un consultant.
    Bien, si vous avez de l'argent. Mes tarifs commencent à CHF150.-/h pour les petits problèmes (comme le plupart des consultants en informatique dans la région lémanique). Voir également la concurrence dans le Consultants-HOWTO ou jetez un coup d'oeil dans la base de données du GULL.
Morale: toutes ces réponses sont correctes selon les circonstances, sauf la première. (Duh.)

Pourquoi utilisez-vous les logiciels libres?

Peut-être perdez-vous votre temps?

Voici des raisons valable pour utiliser Linux:

  1. Je suis fauché.
    Attention. Apprendre un nouveau système est toujours cher en temps.
  2. J'en ai marre d'instabilité.
    Normal. Mais les grandes applications sont instables des fois aussi. Songez à simplifier vos habitudes de travail d'abord. Par exemple, si vous avez seulement besoin de faire une lettre, peut-être vaut-il mieux utiliser Wordpad sous Windows, une machine à écrire, ou une stylo?
  3. Je suis curieux.
    Excellent. Il y a plein de choses intéressantes à voir.
  4. J'aime bien bricoler.
    Parfait. Il y a plein de choses à améliorer.
  5. J'ai besoin. / Je suis forcé.
    Bonne raison / Tant pis. N'oubliez pas qu'il y a des consultants qui peuvent vous aider.
Morale: Ce sont toutes des raisons valables, mais il faut avoir du temps disponible si vous ne pouvez pas engager quelqu'un pour résoudre vos problèmes.

Quote de Jean-Albert Ferrez, vice-président du GULL:

Et puis, enfin, et peut-être surtout, il y a l'utilisation d'un système. Windows (même NT) a été conçu pour être utilisé comme un magnétoscope : c'est moyennement intuitif, c'est basé non pas sur une analyse des processus mais sur l'observation du comportement de cobayes a qui on a onctueusement offert une version bêta. Résultat, la ménagère de 50 ans a l'impression qu'elle sait employer un ordinateur. Unix, c'est l'inverse. C'est une implémentation visible et accessible de certains principes de l'informatique. On peut donc tout faire, à condition de savoir ce que l'on veut faire et comment le faire. Et souvent c'est difficile. Ça suppose donc - et c'est là où je voulais en venir - une _solide_ formation. Formation que personne n'a reçu à la naissance et que peu de gens ont fait l'effort d'acquérir par la suite.

Les ressources disponibles

Documentation dans chaque distribution

Astuce: Si vous avez de la place sur votre système, n'hésitez pas à installer toute la documentation!

Les pages "man"

estimation du nombre de pages man dans un Debian woody typique:
rossen@laptop:~ > locate /share/man/ | wc -l
   4664

Les pages man sont:

  • disponibles en français (et d'autres langues), mais les versions anglaises sont les plus à jour.
  • résumées, manquent souvent d'exemples, mais sont universelles, donc apprenez ce système.
  • formatées avec le système *roff (troff, nroff, groff) pour impression, mais plus efficaces en forme électronique, donc n'imprimez pas les pages man.
  • divisées en sections. Les commandes Unix sont souvent citées avec leurs sections de man: p.ex. cat(1) De $ man man:
           1   Executable programs or shell commands
           2   System calls (functions provided by the kernel)
           3   Library calls (functions within system libraries)
           4   Special files (usually found in /dev)
           5   File formats and conventions eg /etc/passwd
           6   Games
           7   Macro packages and conventions eg man(7), groff(7).
           8   System administration commands (usually only for root)
           9   Kernel routines [Non standard]
           n   new [obsolete]
           l   local [obsolete]
           p   public [obsolete]
           o   old [obsolete]
    
  • Voici quelques-uns des options les plus intéressants de man:
    $ man --help
    usage: man [-c|-f|-k|-w|-tZT device] [-adlhu7V] [-Mpath] [-Ppager] [-Slist]
               [-msystem] [-pstring] [-Llocale] [-eextension] [section] page ...
       -a, --all                   find all matching manual pages.
       -f, --whatis                equivalent to whatis.
       -k, --apropos               equivalent to apropos.
       -w, --where, --location     print physical location of man page(s).
       -l, --local-file            interpret `page' argument(s) as local filename(s).
       -u, --update                force a cache consistency check.
       -H, --html                  use lynx or argument to display html output. 
       -M, --manpath path          set search path for manual pages to `path'.
       -P, --pager pager           use program `pager' to display output.
       -S, --sections list         use colon separated section list.
       -L, --locale locale         define the locale for this particular man search.
       -V, --version               show version.
       -h, --help                  show this usage message.
    

GNU info (texinfo)

  • rossen@laptop:~ > locate /info/ | wc -l
        645
    
  • système hypertexte, normalement utilisé avec son browser info basé sur ncurses(3x)
  • système de GNU, censés remplacer le système man, mais n'est pas universellement adopté (dû à HTML?)
  • essayez $ info info
  • les touches principales de navigation sont:
    • CRTL-S - chercher une chaine de caractères (et repéter pour repéter/continuer la recherche)
    • ESPACE - va à la prochaine page ou node
    • n - aller au prochain noeud
    • p - aller au noeud précedent
    • l - aller au noeud visité avant celui-ci
    • u - monter un niveau dans l'arborescence des noeuds
    • t - monter au plus haut noeud de l'arborescence
  • les logiciels GNU ont des pages man aussi, donc apprendre GNU info est utile, mais ce n'est pas essentiel

help, l'aide en-ligne du shell bash(1)

  • Essayez $ help ou $ man bash
  • exemple:
    rossen@laptop:~ > help echo
    echo: echo [-neE] [arg ...]
        Output the ARGs.  If -n is specified, the trailing newline is
        suppressed.  If the -e option is given, interpretation of the
        following backslash-escaped characters is turned on:
            \a      alert (bell)
            \b      backspace
            \c      suppress trailing newline
            \E      escape character
            \f      form feed
            \n      new line
            \r      carriage return
            \t      horizontal tab
            \v      vertical tab
            \\      backslash
            \num    the character whose ASCII code is NUM (octal).
    
        You can explicitly turn off the interpretation of the above
        characters with the -E option.
    
  • plus d'infos sur bash(1) dans ces fichiers:
    rossen@banana:~$ locate doc/bash
    /usr/doc/bash
    /usr/share/doc/bash
    /usr/share/doc/bash/changelog.Debian.gz
    /usr/share/doc/bash/changelog.gz
    /usr/share/doc/bash/COMPAT.gz
    /usr/share/doc/bash/copyright
    /usr/share/doc/bash/FAQ.gz
    /usr/share/doc/bash/INTRO.gz
    /usr/share/doc/bash/NEWS.gz
    /usr/share/doc/bash/POSIX.NOTES.gz
    /usr/share/doc/bash/README.Debian.gz
    
  • sous Debian, n'oubliez pas d'installer le package de documentation bash-doc

Les HOWTOs

  • estimation du nombre des HOWTOs:
    rossen@banana:~$ find /usr/share/doc/HOWTO/en-txt | wc -l
        373
    
  • descriptions de tâches typiques, gérés par le Linux Documentation Project (LDP)
  • écrits en SGML (DTD LinuxDoc ou DocBook) et formatés en texte, HTML, LaTeX
  • les versions texte sont plus facilement cherchable par grep(1), donc plus utiles.
  • disponibles en plusieurs langues
  • voir aussi les sous-répertoires mini/ et unmaintained/
  • voir /usr/doc/howto ou http://www.linuxdoc.org/HOWTO/HOWTO-INDEX/howtos.html
  • probablement les documentations les plus utiles pour savoir comment faire quelque chose de pratique

Les FAQs

  • FAQ == Frequently Asked Questions
  • pas d'organisation centrale, simplement une convention de l'Internet que chaque groupe ou projet ou soft a sa propre FAQ
  • une collection non-exhaustive se trouve à ftp://rtfm.mit.edu (environ 19'500 fichiers avec le mot "faq" dans leur titre)
  • souvent utile, si vous savez qu'il y a un FAQ qui s'adresse à votre problème

Le répertoire /usr/doc ou /usr/share/doc

  • contient tous les READMEs et autres documentations de tous les packages dans un système GNU/Linux typique
  • contient d'autres documentations, par exemple dans Debian:
    • HOWTO/ - les HOWTOs du Linux Documentation Project, eventuellement en HTML ou texte pure
    • HTML/ - les Guides (livres électroniques) du Linux Documentation Project
    • RFC/ - les Requests For Comments (standards de l'Internet)
    • LANG/ - documentations en autres langues que l'anglais
  • regarder dans /usr/share/doc pour les tutoriels, exemples, et les documentations supplémentaires des packages (READMEs, changelogs, etc.)

Documentation sur l'Internet

La documentation sur l'Internet est la meilleure source pour information et software. Normalement, chaque projet ou soft a toutes ses documentations les plus courantes sur son site web. Un utilisateur des logiciels libres sans accès à l'Internet est fortement handicapé.

Le Linux Documentation Project (LDP)

  • www.linuxdoc.org
  • miroirs en Suisse: http://sunsite.cnlab-switch.ch/LDP/
  • regroupement de Guides, HOWTOs, pages man, Linux Gazette, traductions
  • les Guides (taille d'un livre):
    • Advanced Bash-Scripting Guide
    • LDP Author Guide
    • Linux From Scratch
    • The Bugzilla Guide
    • Linux Kernel 2.4 Internals
    • Linux Consultants Guide
    • Securing and Optimizing Linux Red Hat Edition - A Hands on Guide
    • The Linux Network Administrator's Guide, Second Edition
    • The Linux Administrator's Security Guide
    • Linux System Administration Made Easy
    • The Linux System Administrators' Guide
    • The Linux Kernel Module Programming Guide
    • Installation and Getting Started Guide
    • The Linux Kernel
    • The Linux Kernel Hackers' Guide
    • The Linux Programmer's Guide
    • The Linux Users' Guide
  • Si on est content d'avoir seulement de la documentation électronique (non-papier), le LDP a tout ce qu'il faut pour GNU/Linux.

Documentations sur papier

Les combinaisons livre + distribution

on peut acheter une distribution avec un mode d'emploi imprimé inclus

  • Mandrake, SuSE, Redhat, autres?
  • souvent la meilleure référence pour les particularités de la distribution
  • ce n'est pas forcément le meilleur livre sur GNU/Linux.

on peut acheter un livre de GNU/Linux avec une distribution incluse

  • p.ex. Learning Debian GNU/Linux d'Éditions O'Reilly).
  • c'est une solution pas chère
  • difficile d'être certain d'avoir acheté la bonne combinaison. Renseignez-vousi.

Astuce: Les livres sur papier sont souvent erronés dû au passage du temps. Voir le site web errata du livre, ou mieux, téléchargez la dernière version électronique.

Livres sur des sujets spécifiques

Presque tous les livres par O'Reilly sont bons. (La seule exception (à mon avis) est Linux in a Nutshell qui est les pages man imprimées.)

Une liste de livres en version française se trouve à http://www.editions-oreilly.fr/liste.html

Commencez avec:

  • Running Linux, par Matt Welsh, si vous n'avez pas encore un livre avec votre distribution. (Version française: Le système Linux, 3e edition.)
  • Learning the bash Shell, 2nd edition, par Cameron Newham et Bill Rosenblatt, si vous voulez comprendre la ligne de commande. (Pas de version française.)
  • Unix Power Tools, par Jerry Peek, Tim O'Reilly, et Mike Loukides, si vous voulez profiter de 30 années de Unix. (Pas de version française.)

D'autres recommendations

Perl est un riche (trop riche?) langage avec des éléments de C, le shell Unix, awk(1), et sed(1). Il est utilisé pour sa puissance en traitement de chaînes de caractères et pour ses interfaces aux systèmes Unix. The Perl Cookbook, par Tom Christiansen et Nathan Torkington (Perl en Action en version française) est un livre très pratique à avoir.

Voir le Reading-List-HOWTO ou les copains.

Voir les revues sur www.amazon.com avant d'acheter vos livres.

Le Linux Journal (américain) était très bon à l'époque avec un fort taux de contenu, mais c'est devenu de plus en plus commercial et "fluffy". Pour cette raison, je recommande plutôt le Linux France (& Hurd) Magazine en français. Ils ont un site web à http://www.linuxmag-france.org/. Ce journal se trouve en Suisse dans les kiosques Relay avec une douzaine d'autres magazines Linux/Unix de qualité très bas.

USENET

Le débit d'articles dans USENET est trop grand pour lire beaucoup de newsgroups, donc il vaut mieux "subscriber" à quelques-uns seulement, et chercher dans les autres avec un moteur de recherche (p.ex. groups.google.com).

Il y a beaucoup de newsgroups qui s'occupent de Linux:

laptop:/var/spool/news/leaf.node # grep linux groupinfo | wc -l
    425

Peut-être le seul qui est toujours utile à lire regulairement est comp.os.linux.announce, qui annonce les nouveautés et les événements.

Si on sait l'allemand, voire l'anglais, on peut trouver du support dans ch.comp.os.linux.

Autrement, si on a un problème qui n'était pas résolu dans une mailing-list, on peut choisir de poster un article à un des groups de la hiérarchie comp.os.linux.*:

comp.os.linux.advocacy
Benefits of Linux compared to other operating systems.
comp.os.linux.alpha
Linux on Digital Alpha machines.
comp.os.linux.announce
Announcements important to the Linux community. (Moderated)
comp.os.linux.answers
FAQs, How-To's, READMEs, etc. about Linux. (Moderated)
comp.os.linux.development.apps
Writing Linux applications, porting to Linux.
comp.os.linux.development.system
Linux kernels, device drivers, modules.
comp.os.linux.hardware
Hardware compatibility with the Linux operating system.
comp.os.linux.m68k
Linux operating system on 680x0 Amiga, Atari, VME.
comp.os.linux.misc
Linux-specific topics not covered by other groups.
comp.os.linux.networking
Networking and communications under Linux.
comp.os.linux.portable
Linux on portable computers.
comp.os.linux.powerpc
Linux systems running on PowerPC microprocessors.
comp.os.linux.setup
Linux installation and system administration.
comp.os.linux.x
Linux X Window System servers, clients, libs and fonts.
ch.comp.os.linux
Linux and Unix in general
fr.comp.os.linux.annonces
Annonces concernant Linux. (Moderated)
fr.comp.os.linux.configuration
Prise en main d'un système Linux. (Moderated)
fr.comp.os.linux.debats
Promouvoir, critiquer et troller sur Linux.
fr.comp.os.linux.moderated
Discussions sur le système Linux. (Moderated)

Si vous voulez participer activement dans USENET, il vous faut un client news comme tin(1) (un client en mode ncurses(3)), Pan (un client graphique sous X), ou Netscape Communicator.

Autrement, si vous utilisez USENET seulement de temps-en-temps, vous pouvez chercher des articles via le frontal de Google à http://groups.google.com.

Attention: Certains systèmes et logiciels (p. ex. sendmail(1)) ont leur propre newsgroup où les gens sont plus souvent en mesure de répondre à vos questions. Songez à trouver le bon newsgroup avant de poster quoi que ce soit.

Les moteurs de recherches

Mes moteurs préférés:

Voir aussi la liste du GULL à http://www.linux-gull.ch/liens.html.

Francophone

Les traductions des HOWTOs

D'abord, il y a des HOWTOs qui répondent aux questions de utilisateurs francophones de GNU/Linux: le French-HOWTO et la nouvelle version, le Francophone-HOWTO. Ils sont très utiles si vous voulez en savoir plus sur comment configurer divers logiciels pour la langue de Johnny Hallyday. Lisez-les.

Les HOWTOs et les FAQs les plus importants, ainsi que les documentations d'autres logiciels libres sont déjà traduits en français par le Traduc.Org. Ils sont offerts dans la plupart des distributions GNU/Linux. Il n'y a qu'à les installer si vous le désirez.

Les Linux User Groups (LUGs)

Les LUGs sont une bonne source d'appui qui met à disposition des ressources comme des sites web, des mailing-lists et des manifestations.

Les utilisateurs de GNU/Linux francophones sont soutenu par L'Association Francophone des Utilisateurs de Linux et des Logiciels Libres (AFUL) à http://www.aful.org.

En Suisse, il y a le LUGS, Linux in der Schweiz (le Groupe d'Usagers de Linux de Suisse, à Zürich) à http://www.lugs.ch, et dans le bassin lémanique il y a le Groupe de Utilisateurs de Linux du Léman (GULL) à http://www.linux-gull.ch

Un groupe d'utilisateurs plus axé sur les logiciels dits "ouverts" (et moins GNU/Linux) est /ch/open, le Swiss Open Systems User Group, basé à Zürich. Ce groupe, aussi bien que LUGS, est largement germanophone.

Les mailing-lists du GULL

Il existe quatre différentes listes de linux-leman*:

  1. linux-leman, destinée aux questions informatiques et techniques (installation et administration d'un système Linux, etc).
  2. linux-leman-admin, destinée aux messages concernant la création et l'administration du groupe Linux Léman (discussion et organisation de manifestations, ...)
  3. linux-leman-annonces, liste modérée à bas trafic pour les annonces d'événements touchant le Groupe des Utilisateurs de Linux du Léman (GULL) ou la Suisse romande, ou annonces d'intérêt général (failles de sécurité, etc).
  4. linux-leman-commercial, liste modérée à bas trafic pour les annonces commerciales. Veuillez consulter la charte de cette mailing-list avant de poster. Elle se trouve sur: http://www-internal.alphanet.ch/linux-leman/linux-leman-commercial.intro

Rien de plus simple que d'adhérer à une de ces listes.

  1. Envoyez un email à la mailing-list du serveur alphanet, Majordomo@alphanet.ch (cliquez) et inscrivez dans LE CORPS du message (l'espace réservé au sujet du message peut être laissé en blanc, il est ignoré par le logiciel) :

    subscribe linux-leman
    ou
    subscribe linux-leman-admin
    ou
    subscribe linux-leman-annonces
    ou
    subscribe linux-leman-commercial

  2. Vous pourrez ensuite envoyer des messages à tous les membres du groupe à l'adresse:
    linux-leman@alphanet.ch
    ou
    linux-leman-admin@alphanet.ch
    ou
    linux-leman-annonces-owner@alphanet.ch
    ou
    linux-leman-commercial-owner@alphanet.ch

Les débutants sont vivement encouragés à lire l'introduction des listes linux-leman* par Marc Schaefer et l'article satirique d'Emily Postnews, AVANT de poser leur première question.

Internet Relay Chat (IRC)?

Je n'utilise pas parce que:

  • J'aime bien me debrouiller tout seul.
  • Je paie mes factures de communication à la minute.
  • Je trouve l'email plus efficace.
  • Je n'ai pas encore appris comment ça marche.

Question: Quelqu'un sait-il si ca vaut la peine?

Réponse (François Deppierraz et Mattieu Houriet): Oui, ça permets de poser des questions, avoir une réponse, tester les informations, et re-poser une question (si nécessaire) à une vitesse plus élevée qu'avec l'email.

Poser et répondre aux questions*

*la plupart de cette section a été prise de l'introduction des listes linux-leman* par Marc Schaefer

Comment poser une question sur un mailing-list ou un newsgroup

Nous vous demandons de ne pas simplement poser votre question, mais de prendre quelques minutes à:

  1. bien clairement formuler la question, avec toutes les informations nécessaires (version du kernel, distribution et version, version exacte du programme posant problème, nom de la carte, détails sur le chip de la carte (nom, etc), et éventuellement le contenu édité de /proc/pci si c'est une carte PCI)
  2. une fois cela fait, consulter les bases de données de support et les archives de la mailing-list linux-leman:
    http://sdb.suse.de/fr/sdb/html/index.html - base de données support et liste de compatibilité de matos
  3. http://www.linux-gull.ch/archives_mail.html - archives des mailing-listes du GULL
  4. éventuellement consulter une des FAQs Linux, http://www-internal.alphanet.ch/archives/autofaq/faq/linux/ et, en français http://www-internal.alphanet.ch/archives/autofaq/faq/fr/linux/.
  5. si après toutes ces étapes, vous n'avez pas trouvé quoi que ce soit, ou si ce que vous avez trouvé ne répond pas ou pas entièrement à votre question, postez votre question, en ajoutant p.ex. une liste des démarches effectuées ou des points de la documentation qui sont peu clairs pour vous.

Cela peut sembler compliqué. Cela l'est. Linux est une nouvelle philosophie, qui consiste, pour l'utilisateur, en une liberté accrue. Toute liberté a son prix: chercher par soi-même. C'est ainsi qu'on apprend; c'est seulement ainsi que Linux sera pour vous une expérience intéressante.

Merci de ne pas amener de polémiques inutiles n'ayant pas de rapport direct avec Linux, ni de chaînes par mail. Il n'est pas non plus nécessaire que chacun des membres de la mailing-list fasse part de ses bons voeux à toute la mailing-list.

Répondre à une question

En bref:

Plus de détails:

Méthodes de recherches

On peut classer les méthodes de recherches sous quelques catégories:

Trouver une commande ou un programme

  1. essayez de trouver des mots associés avec la tâche que vous voulez faire, p.ex. on veut convertir des images GIF en PNG, donc on va chercher les mots "GIF", "PNG", et peut-être "convert" ou "image"
  2. cherchez par option mot-clef "-k" dans man(1) (cette option est aussi connue sous le nom "apropos")
    rossen@laptop:~ > man -k GIF
    gif2tiff (1)         - create a TIFF file from a GIF87 format image file
    giftopnm (1)         - convert a GIF file into a portable anymap
    ppmtogif (1)         - convert a portable pixmap into a GIF file
    rossen@laptop:~ > man -k PNG
    libpng (3)           - Portable Network Graphics (PNG) Reference Library
    libpngpf (3)         - Portable Network Graphics (PNG) Reference Library (private functions)
    png (5)              - Portable Network Graphics (PNG) format
    rossen@laptop:~ > man -k convert | less
    GetInt (3)           - convert from string to integer, double, or boolean
    PDL::Pod::Html (3pm) - module to convert pod files to HTML
    Pod::Html (3pm)      - module to convert pod files to HTML
    
    [114 lines deleted]
    
    brushtopbm (1)       - convert a doodle brush file into a portable bitmap
    cmuwmtopbm (1)       - convert a CMU window manager bitmap into a portable bitmap
    convert (1)          - converts an input file using one image format to an output file with the\
     same or differing image format.
    fitstopnm (1)        - convert a FITS file into a portable anymap
    fstopgm (1)          - convert a Usenix FaceSaver(tm) file into a portable graymap
    
    [103 lines deleted]
    
    
  3. lisez le page man de convert(1) en faisant $ man convert
  4. et/ou essayez les options de "help" typique "-h", "-?", et/ou "--help"
    rossen@laptop:~ > convert --help
    Version: @(#)ImageMagick 4.2.0 99/03/01 cristy@mystic.es.dupont.com
    Copyright: Copyright 1999 E. I. du Pont de Nemours and Company
    
    Usage: convert [options ...] file [ files... ] output_file
    
    Where options include:
      -adjoin              join images into a single multi-image file
      -antialias               remove pixelaliasing
      -append              append an image sequence
    
    [154 lines deleted]
    
           PNM  rw+   Portable anymap
           PPM  rw+   Portable pixmap format (color)
           PNG  rw-   Portable Network Graphics
       PREVIEW  -w-   Show a preview an image enhancement effect, or f/x
            PS  rw+   Adobe PostScript file
    
    [85 lines deleted]
    
  5. chouette - convert(1) est capable
  6. on essaie:
    rossen@laptop:~ > convert penguinjihad.gif penguinjihad.png
    rossen@laptop:~ > file penguinjihad.png
    penguinjihad.png: PNG image data, 66 x 70, 8-bit colormap, non-interlaced
    rossen@laptop:~ > file penguinjihad.gif
    penguinjihad.gif: GIF image data, version 89a, 66 x 70,
    
  7. et ça marche (plus ou moins)
    penguinjihad.gif*: GIF of Tux on the Jihadpenguinjihad.png: PNG of Tux on the Jihad
    * cette image venait de Suck.com

Astuces:

Comment trouver un fichier

L'outil classique pour trouver un fichier est find(1), mais:

par contre, GNU locate(1) est rapide:

la commande du shell type (aussi connue comme which, similaire à whereis(1)) est utilisé pour afficher l'interpretation d'une commande, y compris les chemins des commandes, p. ex:

rossen@laptop:~ > type ls less httpd help glorble
ls is aliased to `/bin/ls $LS_OPTIONS'
less is hashed (/usr/bin/less)
httpd is /usr/sbin/httpd
help is a shell builtin
bash: type: glorble: not found

Comment trouver une chaîne de caractères

grep(1) est votre meilleur ami

d'autres commandes/logiciels qu'on peut utiliser pour chercher les chaînes:

Comment trouver un message d'erreur

Les messages d'erreur sont des bonnes indices. Lisez-les!

Ils se trouvent:

Exemples

Où est-ce, ce quote de Jean-Albert Ferrez?

Type de problème: on sait que la réponse existe, il suffit de creuser un petit peu

Démarche: (authentique!)

  1. Je me souviens que JAF avait dit quelque chose sur la philosphie de Unix qui peut être idéal pour ce cours.
  2. Je me souviens qu'il a parlé de quelque chose comme les "principes de l'informatique".
  3. Je l'avait trouvé intéressant à l'époque, donc je l'ai peut-être gardé dans mes emails.
    rossen@laptop:~ > cd mail/Club/
    rossen@laptop:~/mail/Club > grep -i principe *
    Admin:1.2- Principes d'accès
    club:La date de l'AG sera annonc=E9e sous peu, en principe elle devrait avoir =
    club:A Gen=E8ve, un local nous est en principe acquis pour un soir par semaine=
    club:La date de l'AG sera annonc=E9e sous peu, en principe elle devrait avoir =
    club:Les candidats devront en principe =EAtre pr=E9sents. Toutefois, une perso=
    club:En clair, cela signifie-t-il que vous abandonnerez enfin le principe des
    club:vais contacter dès aujourd'hui DELL et ORACLE sur le principe.
    club:principes de l'informatique. On peut donc tout faire, à condition de savoir
    club:En principe, oui.  As-tu déjà essayé de spécifier /dev/ttyS0, 1, 2, et 3
    club:   des principes....
    club:> Le principe est assez sympa : tout ce qu'il faut : un CD bootable
    club:Le principe est assez sympa : tout ce qu'il faut : un CD bootable
    DemoDay:Genève.  En principe ils nous soutient, mais il faut que nous réservons
    DemoDay:batiment (dommage, mais sur le principe ils ne sont pas opposés, donc
    DemoDay:batiment (dommage, mais sur le principe ils ne sont pas opposés, donc
    DemoDay:Genève.  En principe ils nous soutient, mais il faut que nous réservons
    
    Oui, il est là.
  4. Je fais $ less club, puis /principes de l, puis je lis le message.
  5. Je cherche après dans les archives de linux-leman à http://www.linux-gull.ch/archives_mail.html pour "Ferrez" et "principes" afin d'avoir le URL.
  6. Je tombe directement sur cette quotation, cité plus haut.
Morale: si on sait d'avance que ce qu'on cherche et qu'on a des indices très spécifiques, les moteurs de recherche sont hyper-efficaces pour localiser l'information.

Les fonts de Netscape sont illisibles. Comment les changer?

Type de problème: soit simple, soit impossible, probablement posé déjà par d'autres

Démarche: (authentique, mais j'avais une idée du contenu de /usr/doc/howto/en depuis longtemps):

  1. Si vous croyez que la procédure est souvent utilisée, regardez dans les FAQs et HOWTOs.
  2. $ cd /usr/doc/howto/en
  3. $ ls
  4. Hmm...Font-HOWTO.gz peut-être intéressante...
    rossen@laptop:/usr/doc/howto/en > zgrep -1 Netscape Font-HOWTO.gz
    
      8. Netscape
    
    --
         Your TrueType fonts should now display and be available to
         applications such as GIMP and Netscape.  You may want to configure
         it to start every time your system starts up.  Check to see if
    --
    
      8.  Netscape
    
      Perhaps the most notorious application as far as fonts are concerned
      is the dreaded Netscape. However, there is a fairly simple procedure
      to attack Netscape font ugliness. The main problem is that Netscape
      wants to use 75dpi fonts which is typically too small. You can fix
    --
    
              Netscape*documentFonts.sizeIncrement: 20
              Netscape*documentFonts.xResolution*iso-8859-1: 100
              Netscape*documentFonts.yResolution*iso-8859-1: 100
    
    --
    
      The other essential tip with regard to addressing Netscape font
      ugliness is this -- get the Microsoft font pack. These fonts are
    
  5. Ca a l'air de ce que je cherche, donc je lis en détail avec $ less Font-HOWTO.gz et j'apprends non seulement comment régler Netscape, mais comment on peut aussi utiliser les fonts True-Type sous Linux(!).
  6. Je fais le changement dans mon ~/.Xdefaults et je fais une petite note du changement dans mon fichier ~/notes (au cas où...).

Morale: Peut-être que vous avez la réponse à votre question qui est déjà stockée sur votre disque dur. Regardez avec votre fidele ami grep(1) et RTFM.

Comment lire un fichier .DVF?

Type de problème: on ne sait pas si une réponse existe

Démarche: (sommaire)

Détails du problème: J'ai acheté un caméscope numérique Panasonic NV-EX3EG avec des sorties RS-232c et IEEE-1394 et un logiciel (DV STUDIO 2 for Acquisition v1.00, par Matsushita Electric Industrial Co. et Pixela Corp.) qui tourne (assez mal) sous Windows 95 pour sortir des clichés. Le soft stocke ces images dans un format .DVF (Digital Video Frame?). Comment les lire sous Linux?

  1. Lire les documentations du software. Aucun indice de ce que DVF veut dire. Possible que ce soit propriétaire. :-(
  2. Peut-être qu'il y a un utilitaire DVF , un pilote DVF, ou des images DVF déjà sur mon système GNU/Linux? $ locate dvf; locate DVF rien
  3. Essayer les pages man: $ man -k dvf rien
  4. Chercher sous /usr/doc: $ locate /usr/doc | xargs zgrep -i dvf rien d'intéressant
  5. Chercher sur Google.com pour "Linux" ET "dvf". rien d'intéressant
  6. Chercher sur Freshmeat.net pour "dvf". rien
  7. Peut-être les gens qui font de la vidéo numérique savent ce que c'est .DVF? Chercher sur Freshmeat.net pour IEEE1394. Trouvé le projet "IEEE 1394 for Linux" à http://linux1394.sourceforge.net
  8. Chercher dans les archives du projet LINUX1394 pour "dvf". rien
  9. Vu une référence dans les archives. Il y a un site www.DVCentral.org. Chercher dans leurs archives. rien
  10. Souscrire à DV-L (http://www.DVCentral.org/thelist.html et poster un message. rien
  11. Attendre une réponse et continuer chercher des gens qui font de la DV sous Linux.

Solution provisiore possible: faire tourner le software du Matsushita sous Wine (ça ne marche pas encore) ou VMWare (il faut acheter VMWare et une machine plus puissante.)

Morale: Des fois, la réponse n'est pas immédiate.

Annexe A: Ressources spécifiques à Debian

Chaque distribution a ses particularités. Si vous travaillez avec Debian, la meilleure distribution du monde de GNU/Linux (sans blagues!), ça vaut la peine de connaître les ressources spécifiques à Debian.

Documentation dans chaque package

Regarder dans /usr/doc/nom_du_package et/ou /usr/share/doc/nom_du_package. Typiquement on voit:

ASTUCE: ces fichiers sont gzippés si leurs tailles originales dépassent 4kB. Au lieu de devoir choisir less ou zless pour voir ces fichiers selon leur suffixe, on peut utiliser seulement less si on inclut une des commandes eval $(lesspipe) ou eval $(lessfile) dans un script de démarrage du shell (/etc/profile, ~/.bash_profile, ~/.bashrc, etc.) Voir /usr/share/doc/less/LESSOPEN pour plus d'infos.

Des packages de documentation

Souvent les grandes documentations sont séparées de leurs packages qui sont associés. Par exemple, le package samba a un package de documentation correspondent samba-doc qui contient le livre Samba de O'Reilley en format HTML. Si vous avez affaire avec une application compliquée et ils semble qu'il y a trop peu de documentation dans /usr/share/doc/nom_du_package, cherchez un package qui s'appelle nom_du_package-doc et installez-le. Les documentations apparaîtront dans /usr/share/doc/nom_du_package-doc. (Note: les packages qui sont modulaire par nature, apache par exemple, ont souvent un package nom_du_package-dev qui contiennent tous qu'il faut pour développer des applications qui utilisent le package.)

Voici quelques packages de documentations que je trouve utiles dans woody:

ii  apache-doc     1.3.19-1       Apache webserver docs
ii  bash-doc       2.05-10        Documentation and examples for the The GNU B
ii  doc-base       0.7.11         Utilities to manage online documentation
ii  doc-linux-fr   2001.09-1      Linux docs in french : HOWTO, MetaFAQ ...
ii  doc-linux-html 2001.09-1      Linux HOWTOs, mini-HOWTOs, and FAQs in HTML 
ii  doc-linux-text 2001.09-1      Linux HOWTOs, mini-HOWTOs, and FAQs in ASCII
ii  doc-rfc-0001-0 20010829-1     Other RFCs
ii  doc-rfc-1000-1 20010829-1     Other RFCs
ii  doc-rfc-2000-2 20010829-1     Other RFCs
ii  doc-rfc-3000-3 20010829-1     Other RFCs
ii  doc-rfc-std    20010829-1     Standard RFCs
ii  glibc-doc      2.2.4-3        GNU C Library: Documentation
ii  gnupg-doc      2000.10.01-1   GNU privacy guard documentation.
ii  kdebase-doc    2.1.1.0-10     Documentation for Applications in kdebase
ii  linuxdoc-tools 0.9.11         SGML converters for the LinuxDoc DTD only.
ii  m4-doc         1.4-13         Documentation for GNU m4.
ii  perl-doc       5.6.1-5        Perl documentation.
ii  phpdoc         20010818-1     Documentation for PHP4 and PHP3
ii  postgresql-doc 7.1.3-4        Documentation for the PostgreSQL database.
ii  samba-doc      2.2.2-1        Samba documentation.
ii  asr-manpages   1.3-5          alt.sysadmin.recovery manual pages
ii  funny-manpages 1.3-3          more funny manpages
ii  manpages       1.39-1         Man pages about using a Linux system.
ii  manpages-dev   1.39-1         Linux-development man pages.
ii  manpages-fr    0.8-1          French version of the manual pages.
ii  debian-guide   1.0.1          Text from: Debian GNU/Linux: Guide to Installation and Usage
ii  gnome-users-guide 1.4.1.1-1   GNOME User's Guide
ii  links-ssl      0.96-1         Character mode WWW browser with SSL

Debian dhelp browser

Debian a un système de aide en-ligne qui s'appelle dhelp (tapez "dhelp" à la ligne de commande). Il utilise l'utilitaire swish++ pour indexer les pages de documentation partout ils se trouvent sur le système. Personnellement, je trouve la version en woody mal fait et je recommande plutôt des recherches à la main en sachent quelles documentations sont installées et où elles sont.

Je recommande que si vous voulez utiliser ce système (au moins sous woody) que vous définir la variable d'environment BROWSER ainsi: export BROWSER=links

Ceci pour éviter le "Gnome help browser" qui ne fonction pas très bien. :-( À propos de Gnome, n'oubliez pas d'installer le package gnome-users-guide. Le package équivalent sous KDE est kdebase-doc.

Autrement, vous pouvez toujours surfer les docs sur votre système depuis l'URL file:/usr/share/doc ou, si vous avez installé un serveur web, http://localhost/doc/.

Trouver le package qu'il vous faut

Debian a quatre outils principaux pour gérer les packages: dselect, APT, dpkg, et grep.

dselect

dselect est le puissant outil haut-niveau de Debian pour sélectionner interactivement des packages. Ça marche, mais il faut du temps pour apprendre le système et c'est souvent "over-kill" pour l'usage commun. Beaucoup de gens plaignent que son interface n'est pas assez intuitive, mais les martiens la trouvent confortable.

RTFM si vous voulez - je l'utilise presque jamais et je me débrouille. Notez qu'on commence de parler de aptitude comme remplacement de dselect.

APT

APT, le "Advanced Package Tool" qui est en fait une collection des outils pour gérer les packages, leurs dépendances, et sur quels média qu'il faut chercher des packages (incluant p.ex. le réseau. Souvenez-vous de /etc/apt/sources.list que nous avons modifié pendant le cours d'installation). Les outils APT sont appelés par dselect.

apt-cache est l'outil APT pour faire les recherches dans la base de données des packages disponible. On ne sait pas pourquoi, mais les gens de Debian cachent l'existence de cette outil. Jusqu'à récemment, il y avait même le remarque dans la page man de apt-cache que ce n'était pas censé d'être un outil pour le "end-user". Pourtant, il fait bien (et simplement) son boulot.

apt-cache search 'expression_regulière'
pour chercher dans les noms des packages et leurs descriptions
apt-cache show nom_du_package...
pour lire les descriptions et meta-données d'un ou plusieurs packages

dpkg

dpkg un outil de niveau intermédiaire appelé par APT et dselect mais également disponible à l'utilisateur,
rossen@banana:~$ man --locale=fr_CH dpkg
...
dpkg est un outil de niveau intermédiaire pour l'installation, la création, la
suppression et la gestion des paquets Debian GNU-Linux.  Dselect(8) est la
principale  interface  à  dpkg  et  la  plus agréable pour l'utilisateur.  dpkg
lui-même est entièrement contrôlé par des paramètres sur la ligne de commande,
laquelle comprend exactement une action et zéro ou plusieurs options.  Le
paramètre « action » dit ce que dpkg doit faire et les options modifient
l'action d'une manière ou d'une autre.
...
dpkg -p nom_du_package...
comme apt-cache show
dpkg -l nom_du_fichier_regex
liste tous les noms des packages qui coorespondent au regex
dpkg -s | --status nom_du_package...
status du package spécifié
dpkg --get-selections
liste les packages ont été sélectionnés (installés) au moins une fois et leur status
dpkg -L | --listfiles nom_du_package...
liste les fichiers installés sur le système par des packages donnés. NOTE: les fichiers crées par les scripts de configuration NE SONT PAS pris en compte.
dpkg -S | --search nom_du_fichier_regex...
cherche des fichiers et liste à quel packages ils appartient

grep

grep? Pourquoi grep? Parce que c'est souvent le moyen le plus simple pour extraire des infos des longue listings, en particulaire si la recherche que vous voulez faire n'est pas couvert dans les options des outils dselect, APT, ou dpkg.

Par exemple, pour faire une liste de tous les packages maintainus par Debian QA Group (le groupe d'assurance qualité de Debian), on peut faire: grep -B4 'Maintainer: Debian QA' /var/lib/dpkg/available | grep 'Package:' | sort | less

Le site web du Debian www.debian.org

Explorez http://www.debian.org! Et essayez le moteur de recherche http://search.debian.org!

Les archives des mailing listes lists.debian.org

Debian gère et archive plus de 75 mailing-listes. Quelques-uns (tous?) sont mirrorées sur USENET aussi. Si vous songez de tourner "testing" ou "unstable", ça vaut la peine de regarder ce qui se passe sur debian-devel. De temps en temps des packages cassés font des dégâts et on peut éviter de faire apt-get -u dist-upgrade si on sait que quelque chose de dangereux est dans les archives. (Avec la stable, ce genre de choses n'arrive presque jamais). Si vous avez des questions sur l'usage quotidien de Debian, posez-les dans debian-user ou debian-user-french. Au minimum inscrivez-vous dans debian-news, debian-announce, et debian-announce-security!

Infos sur les packages packages.debian.org

Pour avoir d'informations sur les packages par nom, vous pouvez les accéder directement avec: http://packages.debian.org/nom_du_package - c'est hyper-pratique. Autrement, commencer par le formulaire sur http://packages.debian.org. Lorsqu'on cherche quel fichier se trouve dans quel package, c'est le dernier champ de recherche qui est très utile.

Infos sur les bugs bugs.debian.org

Il y a le bug-tracking système à http://bugs.debian.org qui est fort utile pour les astuces et pour voir le progrès du bug report. Si vous avez besoin de faire un bug report, utilisez le package reportbug (avec éventuellement en paramètre le nom du package si vous voulez aller plus vite). Il vous guide pour préparer le report et il extraie automatiquement quelques informations essentielles de votre système. Si vous voulez offrir une solution ou des informations supplémentaire à un bug existant, il suffit d'envoyer un email à numéro_du_bug@bugs.debian.org. Simple et efficace.

Annexe B: Exercices

  1. dpkg est le nom du logiciel qui gère les packages sous Debian. Utilisez-le pour rapidement générer une liste de tous les packages avec un nom qui fini avec -doc. La liste devrait inclus (au moins) une descriptif concis pour chaque package.
  2. Localisez le fichier sur votre station qui contient une liste de tous les packages disponible pour Debian "stable", ainsi que toutes leurs dépendances (dependencies), leurs descriptifs, etc.
  3. Il se peut que la base de données des mot-clefs man(1) ne soit pas créée sur votre station, ce qui entraîne un mauvais fonctionnement de man -k. Trouvez le script qui met à jour la base de données chaque jour ou chaque semaine. Examinez-le et tournez-le. Testez le résultat avec 'man -k man'.
  4. Trouvez un logiciel qui reformatte les fichiers texte à 40 caractères par ligne au maximum. Donnez un exemple de son usage.
  5. Trouvez comment avoir la sortie du ls(1) en couleur.
  6. Qui c'est qui a écrit "The Unix Time-sharing System" en July 1974?
  7. Trouvez une explication du message d'erreur "Go away. You don't exist."
  8. Trouvez le nombre de BogoMIPS que votre station fait. Trouvez l'explication du mot "BogoMIPS".
  9. Trouvez une explication de la hiérarchie des systèmes de fichiers GNU/Linux.
  10. Est-ce que Apache tourne sur votre machine?
  11. Faire une liste de toutes les commandes dans l'histoire de votre session qui contient le command dpkg.
  12. Quelle(s) option(s) utiliser pour optimiser la vitesse d'un logiciel lorsqu'on compile avec gcc(1)?
  13. Essayez lynx, links, et w3m. (Installez-les s'ils ne le sont pas encore.) Visitez le site de SecurityFocus avec chaque browser. Visitez SecurityFocus avec un browser graphique comme Konqueror. Lisez quelques messages dans les archives de BugTraq.
  14. Trouvez les URLs des interfaces style texte de votre moteur de recherche préféré. Visitez ces URLs avec un browser en mode texte.
  15. Listez les ports réseau ouverts sur votre machine et déterminer la fonction de chaque processus qui les utilise.
  16. AVANCÉ Installez junkbuster et configurez votre browser pour l'utiliser comme proxy.
  17. AVANCÉ Trouvez quelque chose dans /var/log ou dmesg qui n'a pas l'air d'aller bien. Contrôlez si d'autres personnes ont eu le même problème et si oui, qu'est-ce qu'ils ont fait?