Vous êtes sur la page 1sur 66

§couvrir

3cheme
fcl/Tk
\/1 uttrc

Utiliser
.àGTK
• KickStart
•Emacs

•Sendmail
•un serveur
ppp

li! n1aaa:rine en frantais 100% LINUX


d / t 0
Voici le second numéro de Linux Magazine. Grâce à votre aide et à vos contri-
butions; le magazine évolue: nouvelle organisation, nouvelles rubriques, nouvel-
ux Magazine France est édité par Diamond Editions le mise en page. Bon nombre d'articles ont été écrits par nos lecteurs. En effet,
Ruede la Scheer, 67 600 Sélestat
vous avez été nombreux à nous faire part de vos impressions et de vos attentes.
: 03 88 58 02 08 Fax: 03 88 58 02 09
Dans cette optique, un erratum à propos du premier numéro a été indu.
nail: linux@ed-diamond.fr
te : www.ed-diamond.fr Un grand nombre d'événe1nents ont eu lieu ces derniers mois. En particulier La
recteur de publication : ArnaudMetzler participation de Netscape et d'JnteL dans le capital de La société RedHa t. Les
1rtenaire : Logiciels du Soleil -Joël Bernier grands éditeurs de logiciels de base de données comme Oracle, IBM, Sybase, etc.
!daction portent ou ont déjà porté leur sa.fis sous Linux. Il y a fort à parier que cet
idacteur en chef : Denis Bodor engouement pour Linux va continuer à se propager chez les éditeurs de logiciels.
,crétaires de rédaction : Jessie Philippi, Daniel Hug Le travail de chaque utilisateur sera, ensuite, de pousser les éditeurs dans la
idacteur graphiste : Gérard Sturny bonne direction. Ceci a.fin que Linux reste.fidèle à lui-même et ne devienne pas
1nception graphique : Pascale Bauer, Gérard Sturny. une copie d'un système tristement populaire par ses bugs et ses pervers secrets
recteur artistique : Nicolas Ritter
( suivez mon regard) . Autre nouvelle, la société Crack Dot Com n'existe plus
1t participé à ce numéro : Bernard Lang, Guilhem de
( out of business) . Cette société qui a créé le jeu Abuse, puis porté Quake et
1illy, Eric Jacoboni, Bruno Bonfile, Daniel Roche, Christophe
aud, Christophe Roffy, Joël Bernier. Doo,n sous Linux a placé sur son site les sources de son dernier !-lit : Golgotha
1pression : Didier Québécor- Strasbourg en domaine public. Le développement du jeu continue via d'autres progra1nmeurs
stribution : (uniquement pour les dépositaires de presse) et nous tenons à adresser un grand merci à Crack Dot Com pour tout ce qui a
LP Réassort : déjà été fait. Pour plus d' infos, visitez www.l(olgothaforever.org.
1te-forme de Saint-Barthélemy-d'Anjou. Tél: 02 41 27 53 12
1te-forme de Saint-Quentin-Fallavier. Tél: 04 74 82 63 04 En ce qui concerne le présent numéro, vous ferez connaissance avec le langage
,vice des ventes: Distri-médias: 05 61 43 49 54 Scheme, Tcl/Tk et la bibliothèque de fonctions GTK. Vous découvrirez l'utilitai-
1édaction n'est pas responsable des textes, illustrations et re KickStart permettant d'automatiser les installations R edHat ainsi que diffé-
otos qui lui sont communiqués par leurs auteurs. La repro- rents logiciels comme Cdrecorcl, WordPe,ject, Arkeia, etc.
ction totale ou partielle des articles publiés dons Linux Dans ce numéro, vous apprendrez également comment créer un serveur PPP ou
1gozine France est interdite sons accord écrit de la société configurer sendmail. Une rubrique Internet a été ajoutée dans laquelle sont
1mond Editions. Sauf accord particulier, les manuscrits, pho- décrits les différents sites généralistes consacrés à Linux et à fa communauté.
; et dessins adressés à Linux Magazine France, publiés ou
n, ne sont ni rendus, ni renvoyés. Les indications de prix et Linux avance, et c'est pas près de s'arrête,: ..
idresses figurant dans lespages rédactionnelles sont donnés
itre d'information, sans aucun but publicitaire.

pôt légal: 3 e Trimestre 1998


' ISSN : en cours ·
mmission Paritaire: en cours Avis à tous les linuxiens Bordelais :
riodicité : bimestriel rendez-vous sur le stand du MIA 98
x de vente : 20 FF.

Linux est un système d'exploitation multiutilisateur et multitôche qui peut être


installé sur plusieurs plates-formes différentes (Intel, Apple, DEC, Spore, etc.). Il
est conforme à la norme POSIX et 8eut fonctionner sans problème avec d'autres
systèmes d'exploitation comme Apple, Microsoft et Novell. le système d'exploi-
tation Linux est libre. Il peut être copié et redistribué gratuitement. Le code sour-
ce est également disponible pour tous de la même manière.

NUX • DECEMBRE 98
'
omma,re
ERRATUM, EXCUSES ET NOTES Page 6 LE LANGAGE SCHEME Pages 12 à 16
Ensemble de correctifs concernant le précédent Découvrez un langage de programmation riche et
numéro du magazine. accéssible.

L'AFUL Pages 7/8


Présentation de l'Association Francophone des
J

Utilisateurs de Linux et des Logiciels Libres.

ARKEIA Pages 17 à 19
Présentation d'un logiciel de sauvegarde professionnel.

L'ECRITURE D'INTERFACE
GRAPHIQUE EN TCL/TK Pages 20 à 23
Article constituant un excellent tutorie l au langage
TCL/ TK. Vous pourrez découvrir toutes les finesses
de ce langage à la puissance méconnue.

XWPE Page 23
Petit article présentant l'éditeur orienté programma-
tion qu'est Xwpe.

INSTALLER UN
INTRODUCTION A LA PROGRAMMA-
SERVEUR PPP Pages 24 à 27
TION EN GTK Pages 9 à 1 1 Configurez votre st ation Linux pour recevoir des
Un article qui vo us démontrera combien il est aisé appels téléphonique et servir de serveur PPP
de programmer avec les librairies GTK utilisées par
Gimp.

LI NUX - DECEMBRE 98
ENDMAIL Pages 18 à 30 et 3S à 36 DESCRIPTION D'UN
e dossier vous apprendra le fonctionnement de FICHIER MUTTRC Page 46 à s1
en dmail et comment configurer correctement votre
Le client Mutt pour lire et envoyez des mails possè-
,achine sous Linux.
de un fichier de configuration très complet. Voici un
fichier commenté expliquant chacun de ses secrets.

LES DROITS SUR FICHIERS Page 51


Quels sont vos droits sur un fichier et comment les
modifier ? Grâce à cet article, les permissions ne
vous causeront plus de soucis.
~EMO EMACS Pages 31 à 34
n mémo qui référence les principales commandes
WORDPERFECT 8 POUR LINUX Page 53
u fabu leux éditeur Emacs. Présentation de l' un des traitements de textes les
plus connus au monde. La version 8 est ici décrite
et testée.
:REER DES MAN PAGES Pages 37/38
pprenez à écrire des pages de manuel et à les affi-
1er avec le formateur de textes gr off.

iRAVER DES CDs


~VEC CDRECORD Pages 39/40
drecord 1.6 est l' un des utilitaires les plus utilisés
our graver des CDROM sous Linux. Cet article vous NET Page 5S
xplique comment l'utiliser. Nouvelle rubrique regroupant des sites utiles
concernant Linux.
,2COMP Page 41
ne compression de disque à la carte pour Linux. Voici
e que propose le patch E2comp pour le kernel.

(ICKSTART Pages 41/43


ersonna lisez et automatisez l'installation d'une
istribution Red Hat avec L'utilitaire KickStart.
ASTUCES Pages 56/S7

,INUX FAIT LE CAFE Page 44


iré d'un Howîo, cet article vous expliquera com-
ENQUETE Page 60
1ent piloter une machine à café depuis Linux :-) Afin de mieux vous connaître et vous servir, nous
avons placé sur cette cette page de quoi vous expri-
mer.

ITILISER DIFF ET PATCH Page 4S


:réer des patchs pour distribuer les modifications COURRIER DES LECTEURS Page 61
pportées à des fichiers sources est chose facile.

NUX • DECEMBRE 98
ERRATUM, EXCUSES ET NOTES
SUR LE PRECEDENT NUMERO

LES CDROM& BOOTABLES SCANNER MUSTEK


Grâce à l'aide de nombreux lecteurs, nous pouvons . L'article sur SANE (Scanner Access Now Easy) fait
à présent affirmer que les CDROM bootables au for- référence à un test avec une carte Tekram DC390 et
mat El Torito décrit dans l'article page 12 fonction- un scanner Mustek MFS 12000SP. Il est important
nent parfaitement sur un lecteur CD SCSI. de signaler que ce scanner est couramment appelé
1200SP, tout comme un autre modèle : le Scan
ERREUR IMPARDONNABLE Express 12000SP. SANE O. 74 fonctionnera parfaite-
Vous avez été plusieurs à nous signaler une erreur ment avec le MFS 12000SP, mais le Scan Express
dans le nom du créateur de Linux. Celui-ci s'appelle n'est pas supporté et ne sera simplement pas
Linus Torvalds et non Linux Torvald comme écrit détecté par scanimage. Il existe cependant un patch
page 14. Il était important d'en faire la correction et pour SANE O. 73 écrit par un berlinois qui corrige le
aucune raison ne saurait excuser cette erreur d'in- problème. Preuve est faite que les constructeurs
attention digne de débutants. Mea culpa, mea maxi- devraient se décider à col laborer avec les dévelop-
ma culpa ... peurs Linux...

CGI QUELQUES CORRECTIONS EN VRAC APPORTEES


Le dossier sur les scriptes CGI n'a pas été signé. PAR UN LECTEUR
L'auteur est Pierre Ficheux, ingénieur ENSAM, admi- (Brut de mail)
nistrateur système, développeur Unix/X/Motif,
enseignant intervenant à l'ENSAM et à l'université - 'cd -' n'est pas uniquement réservé au shell bash.
de Poitiers. Pierre est également le créateur de nom- Le shell tcsh le reconnaît aussi.
breux logiciels Linux dont le fameux émulateur - Les auteurs de 'gnuplot' précisent * bien * dans
Minitel Xtel. leur doc qu' il n'y a aucun rapport avec le projet GNU,
et ils insistent. Certes, cela peut prêter à confusion,
RPM mai s il faut respecter le choix des auteurs ...
La couverture du N°1 fait mention d'un article sur - C'est dit dans les HOWTO, mais c'est une erreur :
l'utilisation de RPM. Cet article a été remplacé au le driver utilisé pour le SCSI n'est pas le AHA 1520,
dernier moment par celui sur XFCE2 écrit par son mais le AHA1502, et là , ca change tout, car lui,
créateur. Après changement dans le corps du maga- n'est pas reconnu par Linux.
zine , la modification de la couverture a été oubliée. - La plupart des WM sont répertoriés à :
www.PLiG.org/xwinman
LECTEURS QIC - Votre conseil sur l'activation du pavé numérique
Un utilitaire de formatage des bandes QIC40, QIC80 marche uniquement en mode console ! Pour que
et QIC3010 existe et fait partie de l'ensemble ftape cela marche sous X, il faut modifier le fichier
maintenu par Claus Heine à l'adresse suivante: XF86Config. Vous pouvez aller jeter un oeil dans le
http://www math.math.rwth French HOWTO de G. Aznar, à la rubrique configura-
aachen.de/~LBFM / claus/ftape/ tion sous X, c'est moi qui l'ai écrit.
Cet utilita ire ftformat a permis à un de nos lecteurs , - Alternative pour l'extinction d'écran : mettre
de formater des bandes au standard QIC 3010 MC. 'Blanktime O' dans le fichier de configuration de
XFree, XF86Config, dans la section 'Display'.
La création de l'AFUL
lssociation Francophone des
ltilisateurs de Linux et
les Logiciels Libres.
lote: Plutôt que de fa ire une présen tati on officielle de que soit la justesse du propos, cela ne menait souvent nulle part
AFUL, exercice difficile el susceptible d'être bien ennuyeux, dans un contexte idéologique où l'économie semble primer sur
ai choisi de raconter sa création et ses débuts. li s'agit bien toute autre considé.ration. De nouveaux articles apparaissent,
ntendu d'un e vision tout-à-fait subjective, dont j'imagine dont le plus connu est sans doute "La Cathédrale et le Bazai·"
u'elle ne peut être que contestée. Mais la vérité n'est souvent d'Eric Raymond, qui cherchent plus à expliquer le phénomène
u'une juxtaposition de subjectivités. des logiciels libres, leur intérêt économique et technique, leur
mode de développement, sans remettre en cause le système juri-
Un peu de contexte historique dique. lis prolongent ainsi de façon pragmatique et médiatique le
travail de Stallman qui , avec la GPL, utilise les mécanismes juri-
'rintemps 1997. Le déploiement de Linux est en pleine croissan- diques existants pour promouvoir les logiciels libres. Diverses
e, mais son utilisation reste marginale et peu connue. Même aux listes de discussion (free-software for business, Linux business)
ltats-Unis, où le Linux Journal est publié depuis le printemps analysent la viabilité économique du logiciel libre. Les prem ières
994, les articles sur Linux restent l'exception dans l'abondante études comparant (favorablement) les logiciels libres aux logiciels
ttérature informatique. En France, quasiment rien, sauf curieu- propriétaires son t publiées.
;ment dans le Monde (en mars 96, supplément télévision) et le
:igaro (en N ovembre 96), et quelques autres notanm1ent dans Dans un document largement diffu sé en 1996
nformatiques Magazine. 11 y a bien sûdés revues m èç m /kchanges/gwv.htrnl] , Greg Wettstein
tratos, mais q ui se considèrent elles-rl'lêine~ à cett é oque, n ituation: "Toute personne qui s'intéres-
omme marginales (- le mot poli est "alfürn . ·ves" :-) ' s sys- og· l'infor mation réalise que nous sommes
~mes propriétaires alignent les points cyans l'lp;cij:1strie, ch . Les décisions et les actions des pro-
adm inistration, l'enseignement/reche, isatlqn s per- is · · nt si nos rêves d'une alternative
onnelles, même si c'est souven} pl ~ 'Ji)ar le bl et lê;Jeu de tes du logiciel ont une chance de se
1mbes que par la technique. Evoquer l'al ternative Linux, ou r cr n dire : NT4 est ert train de sor-
èreeBSD et les logiciels libres en général auprès des responsables tir, avec ses dizaines de milliers de bogues (dixit Microsoft), et
.es entreprises ou de l'administration, n'attirent généralement les insuffisances techniques que nous connaissons maintenant.
1ue des commentaires sur la nécessité d'être réaliste. Mais une Et au moins jusqu'à la so rtie de NTS, sans cesse repo ussée (main-
,artie n'est jamais perdue, ni gagnée, avant la balle de match. tenant au delà de l'an 2000 so us le nom Windows 2000), apparaît
une fenêtre de lancement pour Linux et les logiciels li bres.
:n fait, la si tuati on est en train d'évoluer rapidement. La bureau-
igue sur Linux devient crédible grâce à Applix, Core!, Star En France
)ivision et un ou deux autres éditeurs. Apache, relayé par les sta-
i tiques en temps réel de Netcraft, devient la stai' de l'Internet, La France, qui a déjà de nombreuses contributions pionnières,
rédibi lisant à grande échelle l'usage commercial des logiciels voit le tissu associatif et ses sites web se développer rapidement,
,bres. Le travail de fo urmi des utilisateurs dans leurs entreprises principalement a utou r des gro upes d'utilisateurs de Linux et
om mence à porter ses fruits. Mais surtout, la conmrnnauté Free/Net BSD. L'association APR TL, déclarée en novembre
nû rit, et traite de plus en plus la diffusion des solutions libres de 1996, défend les thèses de la Free Software Fondation de Richard
açon professionnelle. Cela se manifeste en particulier par un Stallrnan , dont elle traduit de nombreux textes. L'équipe du
ffort plus important pour le développement des interfaces gra- Micro Bulletin du CNRS, en collaboration avec l'ENSTA, publie
)hiques, trop longtemps méprisées ou négligées par les experts, des études comparatives et encourage l'utilisation de Linux dans
nais indispensables pour être crédible dans une industrie où l'ex- la recherche et l'enseignement supérieur. Divers a utres projets,
) rtise reste trop onéreuse, et surtout peu disponible. plus ou moins formalisés, sont lancés. Des forums et des sites web
très actifs (Linux Center, Linux France) animent et informent la
:ela se manifeste aussi par un changement de ton dans la lit- communauté des logiciels libres.
érature. Les excellents articles de Ri chard Stallman s'atta- Mais cela ne sem ble pas atteindre les décideurs. Aucun écho
1uaient directement à la législation, aux accords internationaux dans la presse spécialisée ou générali ste. Si les États-Unis ont
ur la propriété industrielle/intellectuelle et les brevets. Mais, quel créé des organisations comme Linux Inte rnational, il sem ble
manquer en France une structu re susceptible d'assurer une

INU X - DECEMBRE 98
com munication médiatique efficace, et surtout de développer - coopérer avec les entreprises utilisatrices de logiciels libres.
une action de marketing a uprès des décid e urs responsables des comme fo urnisse ur de solutions ou de services, ou comme uti-
nouvelles tech nologies, tou t en structura nt l'offre commercia- lisateur final.
le correspondan te. Mais des contacts se nouent sur l'I nternet, - coo pérer avec les ad ministrations, et notanunent l'éducation
pour palli er ce vide. nation ale où une forte demande existe déjà.

Les logiciels libres sont techniquement et intimement liés à Six mois après sa création, l'AFUL semble avo ir affi rmé son
l'Internet. En janvier 1998, à l'occasion des Journées de l'ISOC rôle. Elle com pte plus de 130 membres d ont une dizaine de
(Internet Society) France, association avec laquelle j'avais déjà sociétés et une demi -douzaine d 'associations, et a établi de
collaboré, je su is invité par les organisateurs à présenter les logi- nombreux contacts pour d'autres ad hés io ns. Elle a par ticipé à
ciels libres. Forum inespéré car cette manifes tation attire les .d ivers évènements:
m édias et nombre de responsables, politiq ues et écon omiques. Le Applc Expo à l'invitation d'Apple, présentatio n des logicie ls
discours libre avait m ûri, et, cette fois, iJ est entendu, suffisam- libres à La Villette pendan t la semaine de la Science, salon
m ent pour que la vice-présidente du Club de l'A rche, Claudine FAUST à To ul o use à l'invitatio n d u CULTE, lancement d'une
Sclunuck, suggère une man ifes tation s ur les logiciels libres à l'oc- jou rn ée . Lin ux nation ale, et même participation à la
casion de la fête de l'In ternet en m ars 98 . Cc sera la confére nce- Conférence Africaine de Rec11erche e n In fo r mati que
débat sur les enjeux écon onuques des logiciels libres, organisée (CA RT'98) à D a kar. Plusieurs membres de l'AFUL intervien-
par l'INRIA (Institu t Natio nal de Recherche en Informatique et nent régulièrem ent dans les média , direc tement o u ind irecte-
en Automatique) au Palais de la M utualité. Elle sera en outre m ent, en co ll aborant avec des j o urnalistes.
parrain née par le MENRT, le Mi nistère de l'Educatio n
Nationale, de la Recherche et de la Teclmologie. Ma is surtout, l'AFUL a commencé à fédérer u n certain
n ombre de sociétés afi n de permettre à l'o!Tre in fo rmatiq ue
C'est au cours de cette conférence et de sa prép aratio n que se libre d'atteindre une masse critiq ue qui assoit sa crédibilité
rencontrent, so uvent p o ur la prem ière fo is, plusie urs des fo n- co rn mercia le.
dateurs d e l'A F UL. La création de l'association est annoncée
à la fin de la conférence, et les statuts so nt déposés le 5 ma i. E nfi n, last but not least, l'A F UL vient de signer un accord
a M ENRT lui permettant de proposer les solu tions
D ans la même période, la pa · n u ma s li b res a ux établissements de l'éducation natio-
teurs (bureautique, ou A dab· 1r I o à' é avec les offres propriétaires. Il fa u t ma in tena nt
se voit renforcée par !'atm é1 et is coo rdon ner la co ll ecte et la di ffusion d 'inform a-
Navigator en fév rier, p uis cJl .....~ '""'• es s te u cs, la préparation de solu tions ad aptées a ux sec-
pa r la plupart des grands é s . Tout c de :aria les fo rm atio ns et bien d'autres choses. Le
man que pas de susciter un ilttérêt cr s d ias, tra nîmer ce.

L'AFUL Bernard Lang


Directeur de Recherche à l'INRIA
D ès ses débuts, comme la conférence où ell e est annoncée, l'as- Secrétaire de l'AFUL
sociati on cherche à s'inscrire dans le tissu économiqu e, seule Bernard.Lang@inria.fr
faço n pour ses fo nd ate urs d 'acquérir la créd ibilité nécessa ire à http://pauillac.inria.fr/~lang/libre
une réelle prise en compte des logiciels libres. Son objectif,
selo n les stat uts, est de p ro mo uvo ir, directem ent o u indirecte-
men t, les logiciels libres et en pa rti cu lier les systèmes d'exploi-
tation lib res, principalement ceu x respectant les normes AFUL : www.aful.org
POSIX o u déri vées, d o nt le plus connu est le sys tème Lin ux Apple expo : http:1/www.smets.com/it/apple-expo.html
m un i de l'environnement logiciel issu du projet GN U, ainsi APRfL : www.april.org/
que l'usage des stand a rds ouverts. Ma is il est évident q ue le CNRS (Micro Bulletin) : www.lmb.cnrs.fr
champ des actions à entreprend re est vas te, et qu 'une associa- CULTE : savage.iut-blagnac.fr/projets/faust 1998/
ti o n comm e l'AFUL ne peu t trava iller q u'en coll aboratio n INRIA : www.inria.fr
avec tous les au tres acteu rs présents, en se concentrant sur les ISOC : www.isoc.asso.fr/AUTRANS987tr-tech.htm
as pects qui ont mot ivé sa créati o n : Linux France : www.linux-france.com
- travailler le plus possible avec les média en écrivant des articles, Linux Center : www.linux-center.org
en infor mant la presse, en participa nt à des co nfére nces; MENRT : www.education.gouv.fr
- développe r des argumenta ires sur l'in térêt éco nomiqu e, poli - CARI 98 : http://www."cari98.sn/edit.Jeudi.htm
tique, techno logique et sociétal de l'inform atique libre et des
La cathédrale et le bazar :
www.eleves.ens.fr/home/blondeel/traduc/Càthedra1-
sta nda rd s o uverts;
6azaar/cathedrale.htm1
- coopérer avec toutes les associations qui partagent les objectifs de Netcraft: http://wv,w,netcraft.co.uk/survey/
l'AF L, notamment en leur permettant d'adhérer gratu itement ;

LINUX - DECEMBRE 98
Introduction à la
~rogrammation en GTK
;JMP est désormais une application inévitable de Linux, mais savez-vous qu'il est développé avec une librai-
re dont sa simplicité n'a d'égale que sa puissance ? Je parle en effet de GTK, une librairie permettant le
ëveloppement d'interfaces graphiques dàns notre bon vieux langage qu'est le C, et ceci très simplement.
!vant de commencer, il est toutefois nécessaire de décrire briève,nent quelques principes fondamentaux à
1 programmation en GTK.

Les Widgets gtk_widget_show(Main_Box) ;

'haque élément (bouton, menu , barre de progression, ... ) Les deux premières lignes correspondent à la déclaration de
'une interface graphique est appelé Widget. Pour déclarer un deux variables de type GtkWidger. Ensuite, la fonction
·idget, rien de plus simple : gtk_1vindow_new crée une fenêtre et la fonction gtk_vbox_new
une boîte verticale. La fonction gtk_container_add ajoute la
boîte Main_Box au container qu'est la fenêtre Main_ Window.
:kWidget *Nom_du_widget; Ensui le on affiche la boîte, celle-ci recevant par la suite des élé-
ments, avec :
nsuite, il est prêt à être initialisé en fonction de sa nature
ün_Window = gtk_window_new (GTK_WINDO\rv_TOPLEVEL) ; gtk_box_pack_s tart(GTK_BOX(Box) , Label_M_, TRUE, TRUE , 5) ;
ans le cas d' une fenêtre. (L'argument correspond au type de gtk_widget_show( Label_M_);
:nêtre voulu). Pour une barre de progression, on aura :
~r re_l = gtk_progress_bar_new(); La fonction gtk_box_pack_start introduit le widget Label_M_
e reporter à la documentation de GTK pour plus de détails. par le haut (correspondant au début pour une boîte verticale).
On affiche le widget aussitôt après. Mais une boîte peut très
Les boîtes bien recevoir elle-même d'autres boîtes. Par exemple, pour les
deux labels (voir figure l), j'ai créé une boîte horizontale dan s
laquelle j' ai introduit les deux labels, avant d' inclure cette
our GTK, une fenêtre est par définition un container qui ne
boîte dans la boîte principale par :
eut contenir qu'une seule boîte. Cependant cette boîte peul
) ntenir elle-même un nombre illimité d' autres boîtes. C'est
o urquoi, pour chaque programme, il est nécessaire d'utiliser r- 7~~ • '
Mê/llOIU!l!bre J0-01,.
u moins une boîte :
swAPabre . 100 .oo'J.

ckWidget *Main_Box;
~in_Box = gtk_vbox_new(FALSE, 5);

·es deux lignes créent une boîte qui va contenir des Widgets gtk_container_add(GTK_CONTAINER(Main_Box), Box);
milés en hauteur (verticale). Pour introduire cette boîte dans gtk_widget_show(Box);
ne fenêtre, rien de plus simple

tkW idget *Main_Wi ndow;


La programmation événementielle
~kWi dget *Main_Box;
Une interface graphique, c'est (pour le non programmeur)
3in_Window = gtk_window_new(GTK_WINDOW_TOPLEVEL) ; d 'abord une jolie fenêtre, avec tout plein de boutons partout,
3'n_Box = gtk_vbox_new( FALSE, 5) ; des entrées ou sortie de textes, etc.Mais c'est aussi et surtout
tk_container_add(GTK_CONTAINER(Main_Window), (pour le programmeur) des fonctions associées à des événe-
3:n_Box); ments comme le clic sur un bouton, le clic sur la petite croix

NUX • DECEMBRE 98
A
pour fermer le programme, etc. Pour cela , il esL nécessaire GtkWidget *Mem_Bar; Il Barre pour la mémoire libre
d·associcr à des événements particuliers, des fonctions comme GtkWidget *Swap_Bar; Il Barre pour la SWAP libre
pour la fermeture du programme : GtkWidget * Label_M_Free; Il Label pour la mémoire libre
GtkWidget *Label_S_Free; Il Label pour la SWAP libre
GtkWidget *Label_M_; Il Label pour: "Mémoire libre:"
gtk_signal_connect (GTK_OBJECT (Window), "de l ete_event", GtkWidget *L abel_S_; Il Label pour: "SWAP libre:"
GTK_SIGNAL_FUNC(Quit), NULL) ;
L a fonction gtk_signal_connect, associe à l'événement "dele-
Il Lit la mémoire disponible et rafraîchit les progress bars ainsi que
te_event" de l'objet Window (renvoyé par le
les labels void Scan (void)
Windows_Manager lors du clic sur la croix), la fonction Quit
qui est appelé sans argument. (NULL).

FILE *File_Info;
Un mot concernant la fonction Scan char *Fichi er ;
char *Temp;
Si vous débutez dans la programmation en C, cette fonction int index;
vous paraîtra peut être floue. Elle fait , en effet appel, à des float Value ;
fonctions du type : fscanf, atoi et sprintf. Si vous ne connais-
sez pas ces fonctions, consultez les pages man. Remarquez que Fichier= (char *) malloc(1024);
ces fonct ions permettent juste une lecture du fichier Temp = (char*) malloc(16);
/proc/meminfo, et ne sont d'aucune manière que ce soit, néces- if( (File_Info = fopen("lproc /meminfo" , "rb" ) ) ==NULL )
saires à la création d 'une application en GTK. {
g_error ( "Le fichier l procl meminfo ne peut être ouvert. \ n") ;
X-Mem -Stat exit( - 1);
}
for(index =0;index<l9; index++)
Nous voilà prêts à rentrer dans le vif du sujet, à savoir un petit fscanf(Fi l e_Info,"%s", Fichier);
utilitaire permettant de connaître la mémoire disponible MEM_ = atoi(Fichier);
(mémoire vive et swap) grüce à deux barres de progression. fscanf(File_Info, "%s ", Fichier) ;
fscanf(File_Info , "%s", Fichier);
I* Ce programme permet de se renseigner sur la mémoire fscanf (File_Info , "%s", Fichier);
libre ( réelle et .map) . Il a été écrit en GTK 1.0.J MEM_FREE = atoi(Fichier);
fo r(index=0;index<l2;index++)
Auteur: Bruno BONFILS ( asyd@ minitel.net) fscanf (File_Info , "%s" , Fichier) ;
Contactez moi si vous trouvez des bugs... :- ( SWAP_= atoi( Fichier) ;
Date : 30 Aout 1998 fscanf (File_Info, "%s" , Fichier);
fscanf (File_Info, "%s" , Fichier) ;
L'avertissement : 111arning: passing arg 2 of 'gtk_ timeout_add fsc anf (File_Info, "%s" , Fichier) ;
from ... n'est pas important das le sens où /'application fon ction- SWAP_FREE = atoi(Fichi er) ;
ne très bien. fclose(File_Info) ;

*I free (Fichier);
I* X-Mem Stat v0.2.3 *I Value= (( f l oat) MEM_FREE / MEM_ ) ;

#include <stdi o . h>


Il Fonction permettant de changer la valeur d'une barre de progression
#include <stdlib.h> gtk_progress_bar_update(GTK_PROGRESS_BAR (Mem_Bar ),Val ue);
#include <gtklgtk . h>
Value= Value * 100;
#include <st ring . h> sprintf(Temp, "%3 . 2f %% ", Va l ue) ;

Il Variables globales : Il Perm et de remettre à jour le texte d'un label :


gtk_ label_set( GTK_LABEL(Label_M_Free ), Temp);
un igned int MEM_FREE; Il Mémoire libre Val ue = ( (float) SWAP_FREE I SWAP_ );
unsigncd int MEM_; Il Afémoire totale gtk_progr ess_bar_update(GTK_PROGRESS_BAR(Swap_Bar) ,Val ue) ;
unsigned int SWAP_FREE; Il Swap libre Value= Value* 100 ;
unsigned int SWAP_; Il S1 vap totale sprintf(Temp , "%3 .2 f %% ", Value) ;
gtk_ label_set(GTK_LABEL(Labe l _S_Free ), Temp) ;

LINUX - DECEMBRE 98
:ee(Temp) ; sur une même ligne
Box = gtk_hbox_new(TRUE, 5);

Fonction appelée lors du clic sur le bouton .fermeture de la Il On ajoute le premier label à cerre boîte
11-re de titre gtk_box_pack_start(GTK_BOX(Box), Label_M_, TRUE, TRUE,
5);
.nt Quit(GtkWidget *Wi dget, gpointer *Data) gtk_widget_show(Label_M_);

_pr int ( "\nX-Mem Status v0 . 2. 3\ nCode : Bruno BON- Il On ajoute le second label
:LS\nDate : 30 Aout 98\n") ; gtk_box_pack_start(GTK_BOX(Box), Label _M_Free, TRUE,
TRUE, 5);
Fonction appelée pour la.fermeture du progran?me gtk_widget_show(Label_M_Free);
:k_main_quit ();
,turn (TRUE) ; Il On ajoute cette boîte à la boîte principale
gtk_container_add(GTK_CONTAINER(Main_Box), Box);
1[ main(inL argc, char* argv[)) gtk_widget_show(Box);

:kWidget *Window; Il Fenêtre Il On ajoure ensuite la première barre de progression à la boîte


:kWidget *Main_Box ; Il Boîte principale verticale principale
:kWidget *Box; Il Boîte temporaire (horizontale) gtk_box_pack_start(GTK_BOX(Main_Box), Mem_Bar, TRUE,
:k_init (&argc, &argv); Il Fonction nécessaire à TRUE, 5) ;
l'initialisation de GTK gtk_widget_show(Mem_Bar);

On créé une jènêt re Il On réinitialise la boîte temporaire pour introduire les deux
Lndow = gtk_window_new(GTK_WINDOW_TOPLEVEL); seconds labels
Box = gtk_hbox_new(TRUE, 5);
On modifie le tit re de cette fenêtre gtk_oox__pack_start(GTK_BOX(Box), Label_S_, TRUE, TRUE, 5);
:k_window_set_title(GTK_WINDOW(Window), "X Mem St at") ; gtk_widget_show(Label_S_);
gtk_box_pack_start(GTK_BOX(Box), Label_S_Free, TRUE,
Création de la hoîte principale verticale TRUE, 5);
,in_Box = gtk_vbox_new(FALSE, 5) ; gtk_widget_show(Label_S_Free);
gtk_container_add(GTK_CONTAINER(Main_Box), Box);
qu'on ajoute aussitôt à la .fenêtre gtk_widget_show(Box);
:k_container_add(GTK_CONTAINER(Window) , Main_Box);
Il Puis 011 ajoute enfïn la seconde barre de progression
011 ajoute une bordure de taille 5 au container Winc/011· gtk_box_pack_start(GTK_BOX(Main_Box), Swap_Bar, TRUE,
:k_container_border_width(GTK_CONTAINER(Window), 5); TRUE, 5) ;
gtk_widget_show(Swap_Bar);
Associe la.fonction Qui! à l'événement "delete_event" (renvoyé
le Windoiv_Manager)
'.Jr
Il Appelle la .fonction Scan sans paramètre ( NULL) toutes les
500 mi!li-secondes.
gtk_timeout_add (500, Scan, NULL);
de l'objet Windo11·
tk_signal_connect(GTK_OBJECT(Window) , "delete_event" ,
Il On affiche enfin la boîte principale. puis la.fenêtre complète
:K_SIGNAL_FUNC(Quit), NULL); gtk_widget_show(Main_Box) ;
gtk_widget_show(Window);
Création des deux progress_bar
2m_Bar = gtk_progress_bar_new(); Il Cette.fonction permet l'initialisation de GTK el est obligatoire.
Nap_Bar = gtk_progress_bar_new(); gtk_main();
return(0);
Création des labels :
:1bel_M_Free = gtk_label_new ( "0") ; Voilà, j'espère que cet exemple vous a permis d 'entrevoir la
:1bel_M_ = gtk_l abel_new("Mémoire l ibre :" ); faci lité de programmation en GTK, et qu' il vous permettra de
:1bel_S_Free = gtk_label_new ( "0") ; développer de nombreuses in te,-races gra phiques.
:1bel_S_ = gtk_label_new( "SWAP libre :");
Bruno BONFILS
Créa tion d'une boîte hori:onrale pour faire tenir deux labels
asyd@minitel.net
INUX - DECEMBRE 98
Le langage Scheme
Cette série d'articles dont voici aujourd'hui le premier est destinée à présenter le langage Scheme à des
personnes ne le connaissant pas. L'accent est m,is sur l'accessibilité de la lecture, sans pour autant écarter
les concepts importants ou théoriques.
Scheme est langage de la famille de Lisp, langage de prédilection de l'intelligence artificiefle. Lisp fût uti-
lisé pour définir les premières versions de Smal/Talk, l'un des plus fameux langages à Objets. Il a servi
aussi à programmer AutoCad. Pll!S récemment, l'éditeur de texte sur le puissant Emacs est écrit en Lisp.

Scheme est un dialede de Lisp datan t de 1975. C'est un lan- Simple aussi parce que tous les objets créés peuvent être mani-
gage alliant simplicité et efficacité. Il existe de nombreux inter- pulés de la même manière : on dit qu 'ils sont tous de première
prètes et compilateurs performants pour Scheme. classe. Par exemple, il est possible à une fonction de rendre une
Les domaines d'application de Scherne son t nombreux et fonction ou de prendre comme argument une fonction. li est
variés. Tl peut être utilisé dans la phase préliminaire d ' un pro- aussi possible de manipuler " le futur " d 'un programme avec
jet, pour tester les algorithmes mis en œuvre, ou comme un les continuations.
langage de glu liant plusieurs autres langages. Mais il peut être Efficace parce que les variables de Scheme sont liées de maniè-
également utilisé comme un véritable langage de programma- re statique : cela permet une meilleure compréhension des pro-
t ion, tant son efficacité à la fois au niveau de la compacité, de grammes, mais surtout une compilation plus efficace.
la clarté du code et des performances est grande.
Cc mois-ci. nous allons présenter les bases du langage Scheme.
Les outils
Puis, au fur et à mesure, nous élargirons le cercle de nos connais-
sances. Au début, Scheme vous semblera être " un langage de
plus ". Ce n'est que par la suite que nous nous apercevrons de Programmer en Scheme suppose qu' il faille disposer d ' un cer-
son extraordinaire pouvoir d'expression, de sa grande simplicité tain nombre d'outils. Le prem ier d'entre eux est un interprète
et de sa compacité. Schcme procure le même sentiment de liber- Scheme (Les compilateurs Scheme ne nous seront pas très
té que C procura à certains venant de Pascal. utiles pour l'instant). Il existe un certain nombre d 'interprètes
Ce document ne saurait être exhaustif : il doit plus être vu Scheme, du plus simple au plus complet. Nous proposons
comme une introduction générale à Scheme. Le lecteur aura d 'utiliser umb-scheme disponible en standard sur la distribu-
intérêt à consulter la spécification officielle de langage. Notre tion RedHat de Linux. C'est un interprète simple et rapide.
introduction est plus une promenade soulevant d'ici et là cer- Tl existe aussi des outils plus sophistiqués comme DrScheme
tains points importants. qui contient un véritable environnement de programmation,
STk qui utilise la bibliothèque TK. L'auteur a conçu
Introduction OpenScheme qui est un compilateur/interprètc/débogeur dis-
posant d ' une vaste bibliothèque de fonctions, disponible sous
Windows et Linux. C'est l'un des seuls environnements
Schemc repose sur la théorie du lambda-calcul non typé. Le Scheme gratuit proposant un déboggeur symbolique intégré.
la mbda-calcul est un formalisme mathématique créé dans les L' une des dernières normes de Schemc est le R evised5 Report
années quarante et dont le but est de fo rmaliser le concept de on the Algorirhmic Language Scheme ou R5RS. Cette norme
fonction. Il est la base des nouveaux langages informatiques étant très récente, beaucoup d'environnements Scheme en
dits fonctionnels, comme Schcme et ML. sont encore à la R4RS. Nous n'aurons pas besoin pour l'ins-
Schcme fut décrit pour la première fois en 1975 par GJ. tant des dernières nouveau tés !
Susman el G L. Steele. C'est un langage de la famille de Li5p Tl est possible de programmer en Schcme, soit directement sur
doté d'un extraordinaire pouvoir d' expression. Schcmc a été la ligne de commande de l'interprète, soit par l' intermédiaire
conçu pour être simple et efficace. d' un fichier que l'on chargera dans l'interprète. Cependant,
Simple parce qu'il est un la ngage à parenthèses sans presque attention : programmer en Scheme sans un outil d 'édition
a ucune structure syntaxique. Tl n'est pas nécessaire d'ap- adapté tient du masochisme. En efTe t, comme nous l' avons dit
prendre des formes syntaxiques plus ou moins complexes : plus haut, Scheme est un langage à parenthèses sans structure
tout en Scheme (ou presque) s'écrit de la même manière, en syntaxique. Sans un outil d 'édition adapté, on passe plus de
utilisant les parenthèses pour structurer le programme. temps à compter les parenthèses qu'à réfléchir.
L'accent est mis sur la sémantique, c'est-à-dire le sens des opé- Il existe plusieurs éditeurs de texte sachant traiter les paren-
ra te urs, plus que sur leur synta xe. thèses. Le plus célèbre est sans doute Emacs, ou Xemacs. Mais il

LINUX - DECEMBRE 98
.iste aussi jed qui est beaucoup plus petit (donc rapide). Ces ) ( T 1)
liteurs fo nctionnent aussi assez bien dans un environnement => 1
'indows. (+ 1 2 3 4 5 6 7 8 9)
n général. un programme Scheme est écrit dans un fichier. Cc => 45
; hier est donné à l'interprète Schcme qui l'exécute et affiche Nous verrons plus ta rd comment définir nos propres procé-
s résullats. Lors de nos premiers pas, nous n'aurons pas dures, avec un nombre d 'arguments fixe ou variable.
:soin d'écrire de fichier: nous utiliserons directement la ligne
: commande de l'interprète. Comment alors bénéficier de Les booléens
1ide de l'éditeur Emacs ? C'est très simple. Il suffit de lancer
1 shell à l'intérieur d'Emacs. Pour cela, lancer Emacs et taper
Les booléens sont en général le résultat des comparaisons. E n
séquence de touches [ESCAPE], puis [X]. Emacs propose
Scheme," vrai " s'écrit #t et" faux" s'écrit #f . Sc sont les
ors une invite en bas de sa fenêtre. Sur cett.e invite, taper
deux seules valeurs possibles pour les booléens. Faisons un
1ell, puis [ENTER]. Un shcll apparaît à l'écran, avec son invi-
peu d' arithmétique binaire à l'aide des opérateurs booléens :
. Vous pou vez alors taper des commandes usuelles. Nous
présenterons le prompt du shell par la lettre 'S'. Taper alors:
> (and #t #t)
umb-scheme
=> li t
!lcome to UMB Scheme, version 3. 2 Copyright © 1988,
> (and #t #t #f #t )
l96 William R Campbell . >
=> H
a y est, nous sommes dans l' interprète Scheme. Nous repré-
·n terons le prompt de Scheme par la lettre '>' . E ntrez par
> (or #t #f #t)
=> #t
:emplc:
{+ 1 2)
> (not #t )
, 3 => H
> (not #f)
ou s introduirons les réponses de l'interprète par '= >'. En
=> #t
.pant (+ 1 2), on demande à Schemc de calculer (on dit éva-
> (boolean ? #t)
.er) 1+ 2. La réponse est heureusement 3 !
=> #t
oilà, nous sommes maintenant parés pour partir à la décou-
> (boolean? 1)
:rte de Schcme !
=> #f
Premiers pas ... Avec ces exemples, on remarque que and et or sont des fo nc-
tions avec un nombre d 'arguments va riable. Quant à not, elle
1a ns cette section, nous allons examiner quelques concepts de
n'accepte qu\m seul a rgument.
:isc du langage, comme les procédures, les types de données Nous introduisons aussi la notion de fonction prédicat. Ces
rirnitifs, la gestion des erreurs et l'alternative. fonctions retou rnent un booléen et permettent de savoir si l'ar-
gument est d ' un certain type. Ainsi la fonction boolean?
Les fonctions retourne" vrai " si son argument est # t ou # f, et " faux" dans
les autres cas. Tous les types de base de Scheme sont associés à
un prédicat. Par convention, le nom des fonctions retournant
rnnt de décrire succinctement les différent types de données un booléen se termine par un point d 'interrogation.
e Scheme, introduisons les procédures. Une procédure ou
mction, est un obje t qui peut êt re appliqué à des a rguments.
ar exemp le. on écrira : Les caractères
( J. 1 2)
> 3 Les caractères s'écrivent #\x où x est le caractère souhaité.
ui signifie appliquer la procédure+ aux arguments 1 el 2. O n Pa r exemple, le caractère 'a' s'écrit en Scheme #\a.
:marquera que Schemc utilise la notation injïxe, cc qui signi- Nous pouvons écrire :
c que l'opérate ur est placé en premier. Cela procure au lan-
age, on le verra, une grande homogénéité dans l'écriture des > (char? ll\a )
rogrammes. => li t
n Scheme, les procédures peuvent avoir 0, 1 o u plusieurs > (char=? ll \a #\A )
rguments. Certaines procédures ont un nombre fixe d ' argu- => llf
1ents, d ' au tres ont un nombre variable d ' arguments. C'est le > (char- ci=? ll\x ll\X )
:1s de la procédure + q ui permet les écritures : => #t
( +) Les caractères peuvent principalement être compa rés et
>O convertis. La procédure c har=? compare de ux caractères, en

NUX - DECEMBRE 98
tenant compte de la casse (majuscule, minuscule), alors que par l'enlier 3 ne donne pas rentier L comme c'est le cas avec
char-ci=? est insensible à la casse. la plupart des autres langages, mais le nombre rationnel 4/3 .
Dans le RxRS so nt décrites toutes les autres fonctions rela- Ainsi, en Scheme, (4/3)*3 ne s'évalue pas en 3, mais en 4, ce
tives aux caractères. qui est le résultat exact. Vérifions :
> ( * (/ 4 3) 3)
Les erreurs => 4
> (/ 4 3 )
=> 4/3
Que se passc-t-il si nous tapons (char=? 1 # \a ) ':' Il devrait Lorsque l'on dit que Scheme donne toujours un résultat le
nécessairement y avoir une erreur signalée parce que la fonc- plus exact possible, vérifions-le encore avec :
tion char=? allend deux caractères cl clic est appliquée à un > {* 9999999 9999999 9999999 9999999 )
entier et un caractère. => 9999996000000599999960000001
Eh bien cette écriture provoque une crrc·ur de la forme : Cette fois-ci, le résultat a été converti en entier long. Peu de lan-
> (char=? 1 #\a) gages sont si soucieux de l'exactitude des résultats , n'est-ce pas?
=> Error : wait a character instead of 'l' i n ' (char =?
1 #\a)' .
Cette erreur provoque l'abandon de tout ce que l'interprète était L'alternative
en train de faire et le retour à l' invite. Notons toutefois que la
forme du message d"erreur dépend de l'interprète utilisé. L'alternative permet d 'effectuer un choix en fonction d 'un pré-
dicat. En Scheme, l'alternative s'écrit (if condition a l ors
sinon) , où condi tion , alors, sinon sont des expressions
Les chaînes de caractères
Scheme. La clause sinon peut être omise. Nous pourrions
avoir:
Les chaînes de caractères s'écrivent entre guillemets. Il existe > (if #t 1 2)
un certain nombre de fonctions pour les manipuler : => 1
> "une- chaîne" > (if #f 1 2)
=> une- chaîne => 2
> (string #\a #\b #\c) > (if #f 1)
=> "abc " => #unspec ified
> (string-set 1 "abc " 0 #\X) La première écriture peut être lue comme "Si vmi alors retour-
=> "Xbc " ner 1 sinon, retourner 2 "
> (string- get "abc" 2) Notons qu'en Schcmc, toutes les valeurs sont supposées
=> #\c vraies, à l'exception de #f . Ceci est une entorse à l'orthogo-
> (s tring-set ! "ac" 2 #\Z) nalité du langage, mais rend, en pratique, l'écriture bien plus
=> Error: index '3' out of range in ' (string-set! "ac" 3 lisible. Nous pouvons donc écrire :
#\Z)' > (if 1 3 4)
> (string=? "abc" "ABC " ) => 3
=> #f > (i f (not "e ") #\a #\b)
> (string- ci=? "abc " "ABC") => #\b
=> #t
> (string? (string #\a #\b #\c)) Affichage
=> #t

Le dernier exemple montre que les appels aux fonctions peu- li existe en Scheme une fonction bien pratique : di spl ay per-
vent être imbriqués. C 'est en fait vrai pour toutes les exp res- met d 'afficher tous les objets existants. C'est une fonction dont
sions Scheme, comme nous aurons l'occasion de le voir. le paramètre est l'objet à afficher. Par exemple :
(display 123)
123=> #unspecified
Les nombres 123 est l'affichage produit par display . #unspecified est sa
vale ur de retour.
Les nombres s'écrivent pour la plupart naturellement : l'e ntie r Pour a ller à la ligne après avoir affiché une valeur, on pourra
1 s 'écrit 1, le nombre réel 1,2.3 s'écrit 1. 2 3 . Scheme pro- utiliser la fonctio n newl ine, comme dans :
pose d'autres syntaxes plus ésotériques comme par exemple (display #t) (newline )
=bl00 l qui représente l'entier binaire 9. #t=> #unspecified
Comme nous le verrons plus loin , Scheme définit une tour des ou bien :
types numériques. Cette spécification lui permet de toujours (display "1234") (newline)
donner le " meille ur " résultat possible. Ainsi, l'entier 4 d ivisé

A LINUX - DECEMBRE 98
134=> #unspecified boles et cxpression- 1, expression-2, expressi on- n
emarquons qu' un enlier et une chaîne ne conlenant que des sont des expressions Schcmc.
iiffres s' affichent de la même manière. Cette écriture crée une nouvelle fonction dont le nom est nom.
e plus, display est une fonction qui peut prendre des Cette nouvelle ronction a rn paramè tres. Elle aurait tout aussi
1leurs de nïmporte quel type. Nous l'avons illustré avec un bien pu n'avoir aucun paramètre. Lorsque l' on applique cette
1tier, un booléen et une chaîne de caractères. Elle sera donc fonction à des arguments, les paramètres prennent la valeur
)pelée fonct i on polymorphe. des arguments, puis, les expressions sont évaluées leur ordre
d'écriture. La valeur retournée par la fonct ion est la valeur de
retour de la dern iè re expression. L'ensemble des expressions
Abstraire en nommant rorment le co1ps de la nouvelle fonction.
D éfinissons une fonction qui reto urne la somme de ses deux
JUl langage de programmation permet de donner des n oms arguments en les ayant préalablement afîiché à l'écran :
des résultats. Sans ce procédé, il serait fa stidieux de pro- (define (somme ab)
·ammer, car on serait sans cesse obligé de répéter les expres- (display "argument 1 = ")
ons. C'est la première possibilité d'abstraction d 'un langage. (display a)
omrner en Scheme se fait à l'aide de la procédure de fi ne : (newline)
(define un-nom 123) (display "argument 2 = ")
• #unspecified (display b)
i. un-nomest le nom que l'on souhaite définir; c'est un sym- (newline)
J!e. 1 2 3 est la valeur de dé finition. ( + a b))
n Scheme, Lous les caractères imprimables mis à part les " => #unspecified
ancs " peuvent être utilisés dans un nom, pour peu qu' il L'affichage de #unspecified nous indique que la fonction
m1mence par une lettre. Scheme ne fai t pas la di fférence somme a bien été enregistrée. Nous po uvons donc maintenant
1trc les majuscules et les minuscules d a ns les symboles : il est l'appliquer ù des arguments :
.sensible à la casse. > (somme 3 4)
a valeur de retour de define est une valeur spéciale qui signi- argument 1 3
~ qu'elle n'est pas spécifiée. Comme Schcme est un langage argument 2 = 4
,nctionnel, l'évaluation de toutes les expressions doit avoir un => 7
:sultal. Cependant, dans certain cas dont celui-ci, la valeur de Nous obtenons bien ce que nous pressentions. Essayons un
·to ur n'est pas spécifiée ; #unspeci f ied est a lors retourné ! appel composé :
omment vérifier q ue un - 110111 " vaut "maintenant 123 ? > (somme 3 (somme 5 6))
ntrons : argument 1 = 5
un- nom argument 2 = 6
, 123 argument 1 = 3
1ue se passc-t-il si on demande la valeur d ' un symbole sans argument 2 11
~voir dé fini : => 2.4
non-définit Cet exemple est très intéressant car il nous montre la manière
> Erro r : symbo l 'non- définit' is unbou nded dont fonctionne l'interprète Scheme.
n 'non- définit'. Nous appliquons somme à deux a rguments, 3 et ( somme 5 6) .
a réponse est claire : Scheme n 'accepte pas que l'on évalue Pour évaluer cette application , l'interprète évalue les trois com-
~s noms sans les avoir préalableme nt définis. posantes de cette application, c'est-à-dire le symbole somme,
l'entier 3 et l'expression (somme 4 5) . L'évaluation du symbo-
Abstraire par les fonctions le somme retourne la procédure que nous avons définie, l'évalua-
tion de l'entier 3 donne l'entier 3. Enfin, l'évaluation de (somme
5 6), retourne l'entier 11 . Mais pour obtenir ce dernier résultat,
1ans cette sectio n, nou s a llons ap prendre à définir nos
l'inter prète a d ü évaluer au préa lable ( somme 5 6) qui se
roprcs fon ctions. Cette possibilité est très puissante car elle
décompose en l'évaluation de somme de 5 et de 6 . Cette sous-
ermet d 'augmenter sans limite le no mbre des fonctions
évaluation provoque l'affichage des deux premières lignes et
fTertes par le langage.
retourne l'entier 11. Maintenant que l'interprète dispose des
efine est au ssi utilisé pour définir les fonction s, en u tilisant
composantes de la première application, il l'évalue, ce qui pro-
. syntaxe suivante : voque l'affichage des deux dernières lignes et retourne l'entier 14.
iefine (nom param- 1 param-2 . .. param-m)
L es a ffichages effectués avec les fonctions displ ay et newline ,
,çpression-1
nous permettent de connaître le fonctio nnement de Schemc.
<9ression-2
Ce sont des fonctions à effets de bord, c'est-à-dire qu'elles
<9ression-n)
:i. nom, param- 1 , param-2 , .. . , param- m sont des sym- modifient l'état du système, l'écran en l'occurrence.

NUX - DECEMBRE 98
Mode d'évaluation de Scheme
D'après la section précédente, lorsque l'interprète évalue une
Structure et Interprétation des programmes
application, il évalue en premier les composantes de cette appli- informatiques - H. Abel-son, GJ. Sussrnan - InterEc;lilion
cation, c'est-à-dire la procédure, puis les arguments. Avec ces
Les langages Lisps - Christian Queinnèc - InterEdition
résultats intermédiaires, il efTectue alors l'application proprement
dite : on dit que Scheme est en mode applicatif (évaluation Programmer avec. Scheme
préalable des arguments). D'autres langages sont dit en mode J. Chazarin - Thomson Publishing
normal car ils n évaluent pas les argm11enls au préalable. Les lan-
gages en mode normal sont aussi appelés langages paresseux, car Revised 4 Report on the Algorithmic Language Scheme
ils n'effectuent les évaluations que lorsque c'est nécessaire. W Clinger J. Rees ·
Considérons par exemple l'écriture suivante: ftp://ftp.nj.nec.com/p ub/kelsey
(if (and #t #t) ·
Editeurs de texte et environnements
(s omme 1 2)
Scheme Emacs GNU
(somme 3 4))
http://www.gnu.org
ar gument 1 = 3
argument 2 = 4 Editeur surpuissant du GNU, avec un mode
argument 1 = 1 Scheme Xemacs SUN
ar gument 2 = 2 http://www.xemacs.org
=> 3
Nous constatons que tous les calculs intermédiaires ont été Version améliorée de emacs.
effectués, à savoir (and #t #t) qui retourne #t , (somme 1 2) et Ntemacs - .l.Voelkerhttp
(somme 3 4) . Ceci est conforme à ce que nous attendions, car http://www.cs.washington.edu/homes/vodker/ntemacs.html
Scheme est en mode applicatif, c'est-à-dire qu 'il évalue les
Version Windows 95, 98, NT de emacs
arguments au préalable.
Mais nous constatons aussi que le cakul de (somme 3 4)
Jed - JE. Davis
ftp://space.mit.edu/pub/davis/jed
aurait pu être évité parce que son résultat n'est pas utilisé. Un
langage en mode normal, (ce qui signifie qu 'il n'effectue les Petit éditeur reprenant les fonctionnalités de emacs,
éva luation s que lorsque cela est nécessaire) , dans cet exemple, mais beaucoup plus petit, avec un mode Scheme.
n'aurait évalué que (and #t #t) el (somme 1 2) . Sem - A Jaffer
Scheme est en mode appli catif, comme la plupart des autres http://www-swiss.ai.mit.edu/~jaffcr/SCM.hlml
langages, car les interprètes et les compilateurs sont plus
faciles à programmer et pl us efficaces. La référencedes interprètes ~cheme.Ttès petit; rapide,
pour beaucoup de plate-formes, èxtensible.
Ce qu 'il faut retenir Stk - E. Gallesio
http://kaolin.unice.fr
Dans cét article, nous avons introduit le langage Scheme. Nous
avons commencé par indiquer qu 'il ne faut jamais programmer en Interprète Scheme avec une interface Objet et une
Scheme sans un éditeur de texte adapté. Nous avons proposé diffé- interface TK, plus beaucoup d'autre choses.
rents enviro nnements de programmation Scheme. Bigloo - M. Serrano
Puis nous avons décrit les bases du langage, notamment les http://kao1in. unice. fr
fonctions, les types de base, la gestion des erreurs el l' a lterna-
Compilateur Scheme->C très performant.
tive. Puis nous avons succin ctement parlé des possibilités de
' PCScheme ~ Texas
nommer des expressions qui existent en Scheme.
Tnstrument
Enfin, nous avons défini notre première fonction . Elle nous a per-
ftp://cui.unige.ch/public/pcs/pcscheme.exe
mis de constater la manière avec laquelle Scheme évalue les
expressions. On en a déduit que Scheme est en mode applicatif. Un très bon environnement de programmation
Dans un prochain numéro, nous décrirons les structures de don- Scheme pour DOS, avec editeur intégré.
nées composées, la définition des procédures et d'autres struc- OpenScheme - G. de Wailly
tures de contrôle. http://www.linux-kheops/netwave/osm
ous montrerons auss i pourquoi il est nécessaire que le lan-
gage Schcme possède des formes spéciales, comme def ine. L'environnement de programmation de l'auteur com-
prenant .~n interprète, un compilateur et un déboggeur
Avec la participation de Fernand Boéri et symbolique. Existe en version libre et commerciale,
pour Windows et Linux.
Nat Makarevitch
Guilhem de Wailly gdw@linux-kheops.com

LINUX - DECEMBRE 98
~rkeia
èJUL administrateur de parc informatique sait que la sauvegarde est une opération contraignante, ,nais
écessaire qui doit être gérée avec rigueur. Peut-on faciliter cette tâche? La sauvegarde automatique en
?seau en est la réponse.
'rkeia présente l'originalité d 'être le logiciel le plus professionnel disponible sous Linux. Vous pouvez le
·ouver dans les disrrihutions Red Hat et S. u. S.E.
'omme tout pionnier Linux qui se respecte, Knox Software ( l'éditeur) offre une version shareware pour
utilisation personnelle, téléchargeable à partir de leur site web.

PRINCIPE

e logiciel serveur d'Arkeia est installé sur une machine dans le


Jt de gérer automatiquement la sauvegarde de l'ensemble des
1achines si tuées sur le réseau TCP/IP. Une base de données pro-
riétaire reposant sur un système de fichiers Unix est renseignée
1 fur el à mesure des sauvegardes et permet de restaurer n'irn-
x te quelle donnée sur n'importe quelle machine cliente.
e principe utilisé par Arkeia pour gérer la sauvegarde en réseau
msiste à comprimer les données sur les machines clientes dans
but de ne pas surcharger le réseau et de sauvegarder plus ieurs
1aehines simultanément sur un ou plusieurs lecteurs. Quel que
Jit le nombre de clients à sauvegarder en même temps et le
Jmbre de lecteurs disponibles, les données sero nt automatique-
1ent parallélisées et/ou multiplexées sur les méd ias.

DESCRIPTION DU LOGICIEL

..rkeia est un logiciel de sauvegarde centralisé multi-platcs-


>rmes qui se compose de 3 parties distinctes:
a partie serveur, la partie cliente, et la partie interface gra-
hi que. Elle s'installe sur la plupart des Unix du marché, notamment
sur toutes les plates-formes Linux.
a partie serveu r : Cette partie regroupe l'ensemble des programmes gérants :
• Les périphériques lecteur(s) et robotique(s)
( DLT,DAT,EXB,QIC, AIT. ... .... )
• Le support du catalogue/index de toutes les données sauve-
gardées (base de données).
• La navigation temporelle pour la restauration de l'objet
souhaité.
• Plusieurs processus de Sauvegarde/Restauration simultanés
• L'authentification des utilisateurs
• Les connexions réseaux
• L'automate d'exécution des sauvegardes périodiques.

La partie cliente:
Elle doit être installée sur toutes les machines susceptibles
d'être sauvegardées par le serveur de sauvegarde.
Arkeia supporte comme client tous les Unix(Linux) , Novell ,
NT, et W95.
Cette partie regroupe l'ensemble des programmes installés sur
la machine cliente, et assurant:

NUX • DECEMBRE 98
• L'exécutio n des requêtes de sauvegarde en provenance du LANCEMENT D'UNE SAUVEGARDE
serveur
• L'exécution des requêtes de restauration Quel que soit le type de sauvega rdes que vous souhaitez lancer
• L'encryptage/compression des données pendant les sauve- (interactives, ou périodiques), vous devrez préciser ces 3 élé-
gardes/resta mations (option) ments:
• la fourniture des informations au navigateur (définition des Savepack <Quoi> Que voulez -vous sauvegarder?
savepacks). Drivepack <Comment > Avec quels périphériques ?
Pool <Où> Sur quelles bandes?
La partie Interface Utilisateur Graphique (X 1 1).
Cette partie assure la liaison entre le serveur de sauvegarde et L'installation
l'utilisateur. Elle peut être installée sur n'importe quelle machine,
mais est typiquement présente sur le serv~ur de sauvegarde.
• Vous téléchargez les différents composants souhaités
E ll e permet de gérer la définition des lecteurs, robots, pools,
• Vous les copiez dans un répertoire temporaire.
bandes, savepack s, sauvegardes périodiques, utilisateurs, et de
• Vous devez être root pour in sta ller le logiciel.
lancer des sauvegardes interactives ou des restaurations.
• Vous vous placez dans le répertoire temporaire correspon-
dant au composant à installer.
• Vous lancez la commande ./install
MftffdllMii. J • Vous répondez aux requêtes d'installation.
n:t.I
jl
Installation dircctory (/usr/knox par défaut)
Temporary directory (" ." Par défaut) obligatoire pour les ins-
tallations à partir du CD.
ADMINSERVER NAME: est le nom du serveur de sauve-
' ~ ~ garde.
l ~ ~ ~
D dell95:I

~
D dune:/

~
• Les étapes conseillées d'installation sont:
□ europe:1 0 g266-/ O naIey:1 Oindy:f □ lln3:/
1) Installer le serveur de sauvegarde.
~
O neptune:/
~
O orlon:/
~
O proxil»a:/ 0
~
sputnl~./
2)
3)
Installer le client sur la même machine.
Installer l'interface utilisateur sur la même machine.
4) Tester un e sauvegarde locale.
S) Installer les autres machines clien Les.
Vous devez copier le module sur la machine cliente avant de
l'instal Ier.
6) Tester entièrement l'ins tallation.
TERMINOLOGIE 7) Programmer l'aulomale d'exécution des sauvegardes pério-
diques.

Savepack Remarques:
li correspond à l'ensemble des objets à sauvegarder. Ces objets • Dans le cas où, la seule machine à sauvega rder est le serve ur
peuvent être un fichier ou une centaine de machines. La confi- 1ui-même, vo us réalisez les étapes 1,2,3, et 4.
guration d'un Savepack s'effectue facilement , vo us naviguez • Avant d'installer une machine cliente, assurez-vous que le
sur les arborescences des machines clientes et vous sélection- serveur "ping" le client (avec son nom réseau) , et inversement
nez les objets que vous souhaitez sauvegarder. que le client "ping" le serveur de sauvegarde (avec son nom
réseau).
Drivepack
Il correspond ù l'ensemble des périphériques que vous souhai- Trucs Utiles
tez mettre à la disposition d~ la sauvegarde.
Si vous ne disposez pas de lecteur, vous pouvez quand même
Pool tester le logiciel avec le lecteur de type NULL, et le robot de
li est un réservoir de bandes disponibles pour un e sauvegarde. type FILE.
Si une bande n'esl pas suffisante o u si vo us parallélisez sur
plusieurs lectetirs, la sauvegarde se ravitaille dans le pool. • Lecteur de type NULL

Définition
Le lecteur de type NULL vou s permet de faire tourner une

LINUX - DECEMBRE 98
l1vegarde. Les flows de données en provenance des clients
nt envoyés dans /dev/null du serveu r de sa uvega rd e. Aucune
stauration n'est possible avec ce type de lecteur.
·océdure pour faire une sauvegarde sur un lecteur NULL:
réez un lecteur de type NULL(Device, Drive-management)
pe: NULL
~wind device : /dev/null
o n-rewind device : /dev/null
:mtro l dcvicc : /dev/null
réez un Drivepack NULL(Device, Drivepack) : il con tien-
a le lecteur NULL
•éez un pool NULL
ame Pool_NULL
:éez une bande NULL
tpe name : NULL Attachcz le lecteur FI LE dans la pseudo Library (Device,
pe : NULL Library management, Drive option).
.1 rrent Pool Pool_NULL Introduire les pseudo-volumes dans le robot de type FILE
mcement d'une sauyegarde avec lecteur NULL. ( Device, Library Management, Slot Usage) .
rivepack : NULL. Avec l'option 'Set Tape', vous introduisez les 5 pseudo-volumes
io l : NULL. dans les slots 1,2,3,4,et 5 du robot.
lYepack : Celui de votre choix. Lancement d'une sauvegarde avec lecteur FILE.
Dri vepack : FILE.
Robot de type FILE Pool : FILE.
Savepack : Celui de votre cho ix.
éfinition
; robot de type FILE permet d'écrire des données sur des Où obtenir Arkeia.
eudo-vo lumes situés sur disque.
l rrestion de ces volumes est la même que des cartouc.hes Arkeia, dans la version 4.0a9-9 (la dernière connue à l'écritu-
""
ués dans un véritable robot. re de ces lignes) est disponible sur le site web de Knox
fa ut 20Mb au minimum de disponible sur un disque pou r Software ou ftp anonyme ù l'adresse suivante :
iliser cet.le facilité. http://www.arkeia.com
)ntrairemen t au type U LL, il es t possible de restaurer les Vous pouvez télécharger le sharewarc (restrc.int à une utilisa-
ijels sa uvegardés sur du type FlLE. tion personnelle ou la version profossion nelle)
Pendant 30 jours, vous pouvez utiliser l'édition professionnelle
·océdure pour faire une sauvegarde sur un lecteur FILE:
d' Arkeia pour sauvegarder votre réseau
·éez un leeteljr de type FILE(Device, Drive-management)
(10 clients max.) sur un simple lecteur.
pe: FILE
Ressources nécessaires pour utiliser Arkeia sur Linux :
·éez un Drivepack FlLE(Deviec, Drivcpack) : il contiendra
• 16 to 32 MB RAM
lecteur FlLE
• SCST card (AH 2940 recommended)
·éez un pool FILE
• 486 or Pentium processor
ame : Pool_FI LE
• 1 GB hard disk or up
·éez une ou plusieurs bandes de type FILE (Warning :
• Linux V 2.0 or up, TCP/TP running
ctt re le pathname dans le champ Bar code).
œmple de création de 5 bandes de type FlLE de 20 MB cha-
Comment télécharger le logiciel
ne (FILE_! , FILE_2, FILE_ 3, FILE_4, et FLLE_5) dans le
pertoire /export/pl/ROBOT_FTLE du serveur de sauvegar- Se connecter sur le site http://www.arkeia.com
·.(Tape management) Suivre les recommandations « Download Arkeia >>
Pour prévenir les problèmes de connexion, il est préférable de
lpe name : FILE_ télécharger les composants désirés un par un.
u code : /export/p !/ROBOT_FTLE/FTLE_ Taille des différents composants pour linux:
r t number : 1 Last number 5 Linux 2.0 lnte1Server(2.26 MB Sep. 98)
·pe = 'FILE 20MB' Client( 0.66 MB Aug. 98)
.trrent Pool : pool_FTLE Interface(2.07 MB May. 98)
·éer un robot de type FTLE ( Device Library management) Manualslnsta ll (pdf format 1MB)
·eate Library User's manual (pdf format 8MB)
ame : FILE User's manual (pdf.gz format 4MB)
PE : FILE

IUX - DECEMBRE 98
L'ECRITURE D'INTERFACE
GRAPHIQUE EN TCL/TK
li existe aujourd'hui de nombreuses solutions pour écrire des programmes avec interface graphique, des
plus anciennes comme Athena ou Motif aux plus récentes comme GTK ( Gùnp Toollât) ou QT ( du
monde KDE) , en passant par des· librairies plus exotiques comme Forms.
Je voudrais cependant démontrer dans cet article, l'extrême facilité avec laquelle on peut réaliser des pro-
grammes graphiques en Tel/Tic.

T cl /Tk qu'est ce que c'est ? exemple:


Tout d ' abord vérifions que Tcl/Tk est bien installé sur notre
système. L'interpréteur graphique se nomme wish. Sur un sys-
Tel. un acronyme pour Tool Command
tème Unix, il suffit donc de taper:
Language, est souvent décrit comme un langa-
type wish
ge de scripts, similaire au shell. Mais il s' agit en
pour obtenir quelque chose du sty le
fait d'un véritable langage de programmation
wish i s / usr / bin/wish
interprété et comparable en fonctionnalités à
si vous obtenez :
Perl.
wi s h : not found
Bien que peu adapté aux calculs mathéma-
c'est vraisemblablement 4ue Tcl/Tk n'est pas installé sous
tiques. Tel est très p uissant pour tous les traite-
Linux. Cependant, cela à peu de chance de se produire, toutes
ments de chaînes de caractères. Et bien que très simple d'utili-
les distributions connues intègrent Tel en standard ! Sous
sation, il dispose de toutes les fonctionnalités nécessaires pour
Windows, vérifiez simplement que l'entrée Tel figure dans le
créer des applications complexes.
menu programmes.
Si tout est OK, créons un fichier exemple! .lei
Tel est étroitement associé à un Toolkit Graphique dénommé
Tk, ce qui lui donne une dimension bien supérieure à celle d 'un
labe l . l ab0 - text «Bonjour tout le monde\nEn Tc l/Tk»
simple langage de programmation. Cette librairie graphique
button .bou0 -text «OK» - command { exi t }
connaît un lei s uccès qu'elle est également disponible pour
d 'autres langages comme Perl ou Python , et nous verrons plus pack . labo . bouo
loin comment on pe ut l' utiliser avec du C/C++.
Puis exécutons wish exemplel . t el. Nous voyons apparaître
Tl ne faut pas o ublier de mentionner, outre la facilité d'utilisation
et la puissance, la troisième ca ractéristique majeure de Tel/Tk : la fenêtre:
c'est un langage multi plates-formes, dispon ible sur quasiment
tous les Unix, sur Windows 9x/NT, ainsi que sur Mac '

Un même programme reut donc tourne r sans modification ni


recompilation sur to utes les cibles. C 'est extrêmement impor-
tant quand on travaille comme moi dans un environnement
hétérogène. Cela permet d 'utiliser Linux comme plate-forme
de développcmeHt, travail pour leque l il excelle, et de pouvoir Voila, juste 3 lignes pour créer cette fenêtre !
également distribue r son travail sur Windows ou Mac .
Il ne faut pas oublier de mentionner la cerise sur le gâteau ; Quelques explications: chaque entité graphique (widgct) est
nommée d e manière hiérarchique : chaque parent contenant
l'existence d 'un plugin Tel pour Netscape ou JE, donnant la
possibilité à une application Tel de s'exécuter dans le naviga- (visuellement) tous ses enfants, la séparation s'effectuant par un
point, le Ier point représentant la fenêtre principale. Cela donne :
teur, comme une applet ( on dit Tclet ).
. par ent0. parentl . .. .. parentn . widget
Un petit exemple
Comme il se doit, pour démontrer les possibilités d'un langa- Dans notre exemple, nous avons donc créé un label 'labü' et un
ge de programmation , nous allons commencer par un petit bouton 'bouü', tous deux situés dans la fenêtre principale en
précisant le texte a ffiché avec l'option -text. Dans le cas du

LINUX - DECEMBRE 98
Juton, nous précisons l'action à effectuer avec l'option -com- lui précisant les options voulues, puis on le ' place' en utilisant
_and: dans notre exemple 'exit', mais cela pourrait être un un des trois pack, place ou grid.
1semb1e quelconque de corn.mandes Tel. Une fois créé, on peut récupérer les caractéristiques d' un wid-
ependant, créer les widgets ne suffit pas, il faut encore indi- get par la commande :
Jer comment les placer dans la renêtre parent. Tk dispose de widget_name cget options
possibilités de placement: et on peut changer ces caractéristiques comme suit:
le 'pack' qui les place à la suite les uns des autres ( par défaut widget_name configure options
! haut en bas ), où les options sont les mêmes que lors de la création.
le 'place' qui permet de les positionner s uivant des coordon-
~es x,y absolues ou relatives, En utilisant ainsi les widgets comme des briques élémentaires
le 'grid' qui arrange les widgets dans un tableau en lignes et d' un jeu de lego, il est très facile et très rapide de créer des
)lonnes. interfaces graphiques complètes.
1ans notre exemple, nous avons utilisé le cas le plus simple: pack

ms option. Le bouton apparaît donc en dessous du label! Déve lopper, Débugger

Les différents widgets Tcl/Tk étant un langage interprété, on gagne déjà une étape
par rapport au classique écrire-compiler-tester. De plus, on
ous n'allons pas dans cet article détailler le fonctionnement de dispose naturellement de quelques facilités sympathiques.
iaque widget, il existe pour cela de bons livres ainsi qu'une Reprenons notre exemple, lancez wish sans argument, et sous
Jcurnentation très conséquente. On peut notamment citer : l'invite de wish tapez :
Practical Programming in TcJ and Tk (2nd edition) par Brent source exemplel . tcl
Welch Nous voyons apparaître la même application que précédem-
TcUTk Refcrence Guide ment, avec tout de même une différence, on a toujours la main
ous nous contenterons donc d'une liste expliquant les diffé- sous wish ! Tapez alors
·ntes possibilités que nous offre Tk : . l abO configure -background red
Nous avons vu le label qui permet d'afficher du texte ou des
1ages
Les button, permettent également d'afficher des images, uti-
;ées pour déclencher une action
Les checkbutton sont simi la ires aux button, mais restent
ms un état enfoncé ou non.
Les radiobutton , simil aires aux checkbutton, mais dont un
:ul est enfoncé à la fois.
Les listbox, permettant une sélection unique ou multiple. Vous voyez que dynamiquement, on peut changer la configu-
Les entry, pour créer des zones de saisie ration des widgets, l' application continuant de tourner. On
Le text , permettant d'afficher et d'éditer un texte complet, peut de la même manière consulter et modifier les variables,
1ec possibilité d'afficher différentes fontes et couleurs, et éga- voire ajouter ou enlever des widgets.
ment possibilité d' hypertexte. Il faut signaler que sous ernacs, on dispose d'un mode Tel qui
Le canvas, pour dessiner lignes, cercles, ellipses, etc. On peut permet de lancer l'application et d' avoir accès à l'invite de
~a lement mélanger aux dessins d' autres widgets. Le canvas wish, sans quitter emacs.
;t très puissant et peut être utilisé pour créer ses propres wid- Cependant, malgré ces qiverses fonctionnalités qui aident
!ts. grandement au debug, Tcl/Tk ne propose pas en standard de
Les frame, pour regrouper un ensemble de widgets dans des fonctions avancées de debug. Qu'à cela ne tienne, nous avons
1oîtes' aux reliefs divers. Tuba!.
Les scrollbar, pouvant s'appliquer au listbox, text, entry can-
1
Les scale, pour créer des curseurs ou des barres de progression
Les messages, semblables aux label s, mais avec un contrôle I P'IP"I'
,,,,,n,111#ntl
t.ia& scl!ed-J1-inq vindo·~
.,,.,n,.,uU,,
lu fin de l'aspect multiligne l#ltlll.llllll,llll6'llll6;l.llll1"lllllr,,r,f•trr,rt~lff,._,,,,,
prll(: Sho-rP• ""J { ! • "'J'-'11 ) l
globi,l Mo'49"'
glob~l ~"- ~""-c
Les menus. déroulants, cascade, et popup.
~ HIJllt.e-VldgC t

Les toplcvel, pour créer d'autres fenêtres que la principale . :J• ~I, • • -V;.-$:JI 5~ ·• l ·t :l9
.,.., titb pgii. Siusn.gn(p:rgt it n)
!Jra!l=tc ?9•
Diverses boîtes de dialogue pour afficher un message, sélec- f:-ill o pça.fl ri:licf flot.-~r,:lu .. , du, 2
f raH p9-. t2 - r ., hcf gtoovc - t,~der•1dth2
onner un fichier, sélectionner une couleur. ht f fy40
ploc:.,_ p.,.. Il - x O -rt'1.,tdth 1 0 - uly 0.0 - relh~l ~t. 1.0 -he1ght / e;,;pr - Sfty J
f.o~: f ~ f2 - >< 0 -, el•m.lth l O - rt l y 1.0 -V I t:-.J:t - ">!2y ! -h6:.qht sf~

frMe pçn.H.fl -rel.uf fUt.-barôcr,.,dth 0


our chaque cas, le principe est le même : on crée le widgct en frui" pga.fl ! 2 relief f13.t-bordu•1dthO

NUX - DECEMBRE 98
Tuba est une application , elle même écrite en Tel, qui permet
de poser des points d 'arrêt, faire du pas à pas, consulter et
modifier les variab les, et tout ceci de manière graphique.
Tuba est disponible à l'adresse suivante:
http://www.doitnow.com/~iliad/Tcl/tuba/

Bien qu ' il soit très facile d 'écrire une interface graphique avec • Un arbre: semblable à ce que l'on peut voir dans Windows
Tk, il faut quand même l'écrire, et il est bien pratique d 'avoir Explorer, environ l0Ko de code à intégrer pour pouvoir affi-
un builder d' interface pour créer et positionner vis uellement cher ça.
les widgets. Si un tel builder n 'existe pas en standard dans
Tcl/Tk, il y a néanmoins une autre solution: vtcl.
~_J~l
~•1
- !} r.t2
... ;_§ ritJ
. . ' .;J fie.~
1i ,'i,:.S
.,:i ...
tl 'J,obi,
_!}!'ltl
.!] 00
0- ..J siSt!
•- lit(
- ~rl,2
ID·J.mrz .,

On peut trouver le widget arbre à l'adresse suivante :


http://tobit.hwaci.com/sw/tk/treepi.html

• Une combobox: c'est à dire une zone de saisie associée à un


menu déroulant

Vtel est un builder d ' application, également écrit en Tel, per-


mettant en quelq ues clics de créer son interface, de positionner
les wid gels, d'éditer leurs caractéristiques, couleurs, reliefs,
comportements, etc .... Vtcl permet même d' éd iLer le code de
chaque fonction associée aux widgets.
Vtel est disponible à l'adresse suivante: ..:J
http://www.ncuron.com/stewart/vtcl/
Il est important de remarquer que ces logiciels, écrits en Tel,
tournen t sur toutes les plates-formes. On aura donc un envi-
ronnement de développement identique quel que soit la plate- On peut trouver la cornbobox à l' adresse suivante:
forme choisie ' http://www t .clearlight .com/~oakley/tel/ com ho box/index. html

• Un notebook : plusieurs onglets permettant d 'afficher diffé-


Les Extensions
rentes pages alternativement . Tl vo us faudra rajouter 8Ko de
code pour obtenir :
Tk fournit tous les widgets de base et permet de les combiner.
Mais il peul être intéressant de disposer de quelques objets On peut trouver le widget notebook à l'adresse suivante :
plus évolués. Il existe pour ce faire de nombreuses extensions http://tobit.hwaci.com/sw/tk/nbpi.html
Tcl/Tk . On peut citer, parmi les plus connues, Tix, Incr Tel ,
Bit, mais il y en a bien d 'autres. Cependant, toutes ces exten-
sions ont l'inconvénient de nécessiter une installation plus ou
moins lourde, et pas forcément disponible sur toutes les plates-
formes.

Nous parlerons donc plus en détails d 'extensions réalisées en


pu r Tel, faciles à intégrer à vos applications :
• Les buHes d'aide : leur uti liLé dans une interface graphique
n'est plu s à démontrer. Voici un petit source Tel de 2.3Ko,
d'ail leurs tiré de vtcl , à ajouter à une application pour obtenir
les fa meuses bulles. • Un sélecteur de répertoire: au look identique au sélecteur de

LINUX - DECEMBRE 98
des structures de données très complexes comme on peut le
faire en C ou C++ .

Pas de panique, il y a aussi une solution à to ut cela :


Embedded Tk , plus couramment appelé ET, est un outi l per-
mettant de créer des exécutables autonomes à partir d ' un e
mixture de C ou C++ et de Tcl/Tk. Avec ET, il est possibl e
ichier intégré à Tcl/Tk. Une procédure de seulement 9Ko : d ' appeler un script Tcl/Tk dans une routine C, ou d 'appeler
)n peut trouver le sélecteur à l'adresse suivante : une routine C dans un script Tcl/Tk.
ttp://wmv.mygale.org/05/droche/tkgetdir/
loilà un aperçu de quelques extensions bien utiles, mais on ET est vraiment très simple à utiliser. 11 permet d ' utiliser à la
1eut évidemment en trouver bien d ' autres. Poµr cela, je vous fois les facilités de Tcl/Tk pour les interfaces graphiques et les
onseille de visiter les sites : traitements des chaînes de caractères, et la puissance du C là
ttp:// www.scriptics.com où elle est nécessaire.
ttp://sunscript.sun.com/ On peut trouver ET à l'adresse suivante:
.édiés à Tel , sur lesquels vous pourrez télécharger les dernières http://www.hwaci.com/sw/et
ersions de Tcl/Tk ainsi que de nombreuses extensions.
La comm un auté des programmeurs Tel est très active et de
plus en plus de no uveaux logiciels apparaisse nt régulièrement.
Tcl/Tk et le C/C++
Alors, à vos claviers ...

,es langages interprétés possèdent de nombreux avantages ; Daniel Roche


:ialheureusement, ils ont également quelques inconvénients. Ingénieur sys tème Un ix/Linu x et Réseau pour la société
~n premier lieu, les so urces sont forcement livrées avec l'ap- Lectra Systèmes
1lication, ce qui peut poser problème. Ensuite, cela peut intro- mail : dan@l ectra.com
,uire certaines lente urs. De plus, Tcl/Tk ne permet pas de créer http://www.mygale.org/OS/droche

LES OPTIONS
KWPE L'éditeur xwpe existe en 4 versions différentes. Deux d'entre elles
sont destinées à un fonctionnement sous Xwindow (xwe et xwpc),
alors que les deux autres sont dédiées au mode console (wpe et
>our le programmeur en C venu du inonde DOS, il
we). Les versions we et xwe sont dépourvues d'interface de déve-
st souvent difficile de trouver ses marques avec un loppement et leur utilisation se limite à l'édition de source.
ystème comme Linux. Les outils de développement Chacune de ces quatre versio ns acceptent les mêmes options
ant bien différents dans leur aspect. Pour résoudre au lancement. Les principales sont :
- so permet de lancer l'éditeur avec les opt ions par défaut (sans
? problème, voici xwpe.
lire .wperc)
- se lance le logiciel avec les couleurs par défaut
PRESENTATION
- ne (où n est un chiffre) permet d'entrer un nombre de
,u premier abord , xwpe se présente comme TC 3.0. On retrou - co lonnes maximum
~ a insi , les men us classiques destinés à l'ouverture des fichiers, - nm (où n est un chiffre) permet d'entrer le nombre d'étapes
ux recherches, à la compil ation, aux projets, etc ... Un fichier entre chaque sauvegarde automatique
)urce se verra coloré dès so n ouvertu re, ce qui facilite grande-
1ent l'orientation du programmeur dans les lignes de code. Les
ASPECT
1enus sont accessibles aussi bien par le clavier qu'à la souris. Comme le montre notre capture, l'ergonomie de l'env ironn e-
fais xwpe va pl us loin . Plusieurs compilateurs et débogueurs ment de développement, même sou s X , est en mode texte. On
euvent être lancés. Lorsqu'une erreur de compilation ou d'éd i- retrouve les menus habituels pour ouvrir, fermer, enregistrer
on de liens survient, le curse ur sautera automatiquement à la des fic hiers et pour les fonctions de copier/coller/couper.
gne correspondante dans le source. Le programme peut être On pourra également, via les menus, co nfigurer son compila-
mcé depuis l'éditeur et les erreurs peuvent être détectées de la teur et son débogueur. L'ensemble est hom ogène et bien orga-
1ême manière depuis le débogueur. nisé. Les habitués du TC sous DOS retrouveront les touches
'aide en ligne de xwpe et les pages de manuel installées su r le de raccourcis F2, F5, F6 etc .
rstème sont accessibles directement depuis le menu d'aide. Certains préféreront sans doute un environnement plus gra-
'éditeur lui-même permet l'ouverture simultanée de 35 fichiers. phique sous Xwindow comme Code Crusader, mais la sim-
plicité de xwpe fera sans doute des heureux conm1e nous.

NUX - DECEMBRE 98
Création d'un serveur PPP
sous Linux
Cet article décrit la mise en place d'un serveur PPP .sous LINUX. Ce serveur pourra être accessible
depuis n'importe quel système équipé d'un modem et d'un logiciel d'accès à un réseau distant supportant
le protocole PPP Ceci permettra par exemple de créer simplement un BBS ( Bulletin Board System)
accessible depuis un navigateur standard. Ce type d'accès est très intéressant pour donner la possibilité à
des utilisateurs éloignés d'accéder à un In tranet d'entreprise. La distribution LINUX utilisée dans cet
exemple de configuration est une RedHat 5.0 versionfrançaise.

1. Comment accéder à LINUX par modem ? 95. Le serveur LINUX devra donc pouvoir supporter ce type
de protocole s' il veut pouvoir recevoir les appels de PC
Un serveur LINUX équipé d'un m odem peu l être facilement Windows 95.
accédé depuis une mach ine distante en utilisant un terminal
équipé d'un modem, un micro o rdinateur ou même un simple Le support du protocole PPP est intégré au noyau LINUX à
Minitel (voir articles du numéro l de LMF) . LINUX utilise supposer que celui-ci ait été validé lors de la configuration du
pour cela un programme bien connu sur toutes les versions noyau. Cette option peut-être validée en cochant PPP (point-
d'UNIX appelé getty. Le comportement de getty est paramé- to-point) support lors de la config du noyau par exemple par
trable, entre-a utres, par le fichier /etc/inittab : un 'make menuconfig':

# Run gettys in standard runlevels [*) Network device support


1 : 12345 : respawn : /sbin/mingetty ttyl <M> Dummy net driver support
2 : 2345 : respawn : /sbin/ mingetty tty2 < > EQL (serial l ine load balancing) support
3:2345:respawn : /sbin/ mingetty tty3 <>Frame relay DLCI support (EXPERIMENTAL)
4:2345:respawn : /sbin/mingetty tty4 < > PLIP (parallel port) support
5:2345 : respawn: /sbin/mingetty tty5 <M> PPP (point- to- point) support
6:2345:respawn : /sbin/mingetty tty6
Dans le cas présent, le support PPP est présent sous forme de
Dans l'exemple ci-dessus, le PC utilise 6 consoles virtuelles. Ce module chargeable. Notez que le support PPP est validé dans
fichier devra être modifié ultérieurement a fin de permettre le noyau installé par défaut par la RedHat 5.0.
l'utilisation d'une entrée modem.
3. Le programme mgetty
2. Qu'est-ce que PPP 7
Le programme mgetty est une version très efficace du concept
getty permettant de gèrer sur une même ligne série des
PPP (Point to Point Protocol) permet d'accéder à un résea u
connexions m odems entrantes et sortantes, des connexions
distant en utilisant le support physique d' une ligne série (de
FAX et des connexions directes par terminal série. Cc pro-
type RS-232) o u bien d'une con nexion modem (cas le plus
gramme est !'oeuvre de Gert Doeri ng (gdoering@pbysik.tu-
souvent utilisé). U ne fois la con nexion établie, la machine
muenchen.de). Il est livré sous forme d'archi ves RPM binaires
connectée peut accéder a u réseau distant en utilisant les
et sources sur les distributions RedHat 4 et 5.
mêmes commandes que dans le cas d'une connexion réseau
classique (ping, telnet, ftp, etc ... ). Ce protocole est aujourd'hui
utilisé pour quasiment tous les types d'accès à des réseaux dis- 3. 1 Installer et configurer mgetty
tants et cc quel que soit le système d'exploitation utilisé. Il faut Vous devez tout d'abord vérifier que mgetty est installé sur
cependant noter que certaines configurations utilise nt des pro- votre système. Pour cela, tapez:
tocoles supplémentaires po ur l'authentification lors de la rpm - qa J grep mgetty
connexion à un serveu r, comme par exemple le protocole PAP
qui doil répondre quelque chose comme:
(Password Authentification Protocol) sur le système Windows

LINU X - DECEMBRE 98
etty-1.1.9-3 diverses lignes séries.
il répond par une ligne vide, vous devez installer le package La prem ière partie d u fichier défini t les paramètres communs
Il' : à to utes les lignes sér ies comme par exemple:

>m - ivh /mnt/cdrom/RedHat/RPMS/mgetty- l . l.9 - # access the modem(s) with 38400 bps
i 386 .rpm speed 38400

1 supposan t que votre CD Red Hal est mon té sur /mnt/cdrom. La deuxième partie définit le paramétrage de chaque port,
exemple:
jSfich iers de configuration d e mgetty sonl localisés dans le
pcrtoire /etc/mgetty+sendfax: port ttySl
speed 57600
,cc/ mgetty+sendfax : init-chat "" \dAT&F&ClE0\d\r OK ATQ0&K3&D2S0 =0 OK
,tal 13 modem- type data
-wxr-xr-x 2 root root 1024 sep18 16 : 21.
-wxr-xr-x 24 root root 3072 sep 18 16 :27 Dans le cas de la ligne ldev/ttySJ (équivalent à COM2), la
·w------ - 1 root root 1172 oct29 1997 vitesse de la jonction PC/modem sera de 57600 bit.sis, la
alin.config séquence d'initialisation d u modem sera:
·w- ------ 1 root root 2580 jui 17 11: 45
,gin.config \dAT&F&ClE0\d\r OK ATQ0&K3&D2S0 =0 OK
·w------- 1 root root 1782 sep 18 16: 21
retty . config le modem étant de type data.

Cette séquence d'ini tialisation sera envoyée lors de chaque


~ fichier dialin.config (qui définit les numéros ayant le droit démarrage du programme mgetty sur cette ligne (au démarra-
appeler votre système) n'a normalement pas besoin de modi- ge de la machine ou bien lorsque mgetty repre nd le contrôle de
;ation. la ligne après utilisation de celle-ci par un autre programme).
Cette séquence est bien entendu à adapter suivant le type du
; fichier !ogin.config nécessite de valider la ligne commcn- modem .
.nt par /AutoPPPI. Ceci a pour effet de valider la réponse à
:s con nexions entrantes de type PPP: Quelques remarques:

Contrairement à d'autres programmes équivalants comme


Automatic PPP startup on receipt of LCP configure getty_JJS, le programme mgetty n'utilise pas la fonctionnalité
iquest (AutoPPP) . de réponse automatiq ue du modem (Auto Answer). II est donc
mgetty has to be compi led with "- DAUTO_PPP" for NORMAL d'envoyer un séquence ATS0=0 qui indique au
1is to work . modem de ne PAS répondre. C'est mgetty qui force la réponse
Warning : Case is signi f icant, AUTOPPP or autoppp du modem en lui envoyant une commande ATA au bout d'un
m' t work ! nombre défini de sonneries (2 par défaut).
Consult the "pppd" man page to find pppd opti ons
1at work for you. Si vo us utilisez mgetty par exemple sur /de1/tty SJ , le device
1

/devlcual habituellement utilisé pour des appels sortan ts n'est


NOTE: for *some* users, the "- detach " option has plus utilisable (on obtient l'erre ur device busy ). Il faut OBLI-
,en necessar y , for GATOIREMENT utiliser /devlttySJ quel que soit le type
others , not at all . I f your pppd doesn' t die after d'accès au port série.
mgup , try it .
3.2 Configure r /etc/inittab
1utoPPP/ - a_ppp /usr/sbin/pppd auth - chap +pap Tl reste main tenant à indiquer au système que la ligne
>gin modem debug crtscts /dev/1tySI sera désormais utilisée par mgetty. Il suffit pour
cela d'ajo uter au fichier /etc/inittab la ligne:
'option +pap valide la reconnaissance d'une connexion utili-
.nt le protocole PAP. ml :2345 :respawn : /sbin/mgetty -D /dev/ ttySl
et de taper:
e fich ier mgetty config est le pl us important pour la réalisa- init q
::rn d'un premier test de connexion modem car il permet de
·gler, entre-a utres, l'initialisation des modems connectés aux afin de forcer le système à lire de nouveau le fichier letclinit-

NUX - DECEMBRE 98
tab. On peut alors suivre l'initialisation des modems en consul- 1.Si vous désirez que le PC serve de passerelle vers le réseau
tant le fichier /var/log/!og_mg.ttySJ: local (c'est-à-dire q ue le client connecté ait accès à d'autres
machines du réseau), il faut:
09/18 16 :27 :18 ySl mgetty: experimental test release
1 .1 . 9-Aug17 - ajouter à ce fichier l'option proxyarp.
09/18 16 :27 :18 ySl check for lockf iles
09/18 16 :27 :18 ySl locking the line - valider l'IP fonrnrding dans le système. Dans le cas de la
09/18 16:27:19 ySl l owering DTR to r eset Modem Red Hat 5.0, ceci peut être fait en éditant le fichier letclsyscon-
09/18 16:27:20 ySl send : \cl.AT&F&ClE0\d [0d) [0d] jig/netivork:
09/18 16:27:21 ySl waiting for ''OK '' ** found **
09 /18 16 :27 :21 ySl send : ATQ0N2&K3&D2S0=0[0d) FORWARD_IPV4=yes
09/18 16 :27:21 ySl waiting for ''OK'' ** found **
09/18 16 :27 :21 ySl waiting . .. puis en rebootant la machine (on peut aussi utiliser l'ulilitaire
graphique netcfg).
Le modem est alors en attente d'un appel entrant. L'appel du
serveur par un simple émulatcur de terminal (plus un modem 2.Si vous u tilisez plusieurs lignes séries, les options de chacu-
bien sûr) doit permettre d'obtenir le login sur le serveur). ne des connexions seront à spécifier dans /etc/ppp/options. t ty.
Si (i étant le numéro de la ligne).
4. Accès par PPP
4 .2 Test de l'accès par un client
4. 1 Configuration d e l'accès 11 faut maintenant tester la connexion au serveur en appelant
celui-ci à l'aide d'une autre machine équipée elle aussi d'un
L'accès PPP peut être validé simplement en créant un ou plu-
m odem et d'u n logiciel compatible PPP. Nous donnerons ci-
sieurs comptes spécifiques ainsi qu'une adresse IP affectée au
dessous les procédures à utiliser pour tester depuis LINUX et
client PPP pour le temps de sa connexion.
Windows95 .
11 suffit pour cela d'ajouter la ligne suivante au fichier
Test depuis LINUX
letclpassll'd:
Sous LINUX, il existe diverses méthodes pour définir une
connexion PPP cliente comme par exemple l'utilisation d'un
pppuser: : 501 :500 :Accès PPP : /tmp : /us r /sbin/pppd
utilitaire graphique comme Vppp (Visual PPP) ou EZppp
(Easy PPP). U ne autre méthode est de définir un bon vie ux
ll suffit ensuite de défi nir le mot de passe de cet utilisateur en
script comme ci-dessous:
utilisant la commande :
# ! /bin/sh
passwd pppuser
/usr/sbin/pppd connect /etc/ppp/connect _test
/dev/modem 57600 -detach +ua \
et ce, en étant super-utilisateur (root).
/etc/ppp/test .pap lock debug crtscts modem defaul-
troute
Pour l'adresse IP, il fau t ajouter une ligne du type:
puis de définir les deux fichi ers a uxi liaires
192 .168 . 3. 2 ipguest
/etclppplconnec1_test:
au fichier /etclhosts. 11 faut également spécifier cette adresse
# ! /bin/sh
dans le fichier /etc/ppp/options (fichier de param étrage du
/usr/sbin/chat -v ABORT BUSY ABORT "NO CARRIER" \
démon pppd) :
"" AT\&F\&K3\&D2\&C1Ml OK ATDTnuméro_de_téléphone
CONNECT
lock
:192. 168 . 3 . 2
et !etclpppltest.pap:
La config ci-dessus indiq ue :
pppuser
mot_de__passe
- que pppd doit verrouiller la ligne série (lock)
- que l'adresse affectée a u client est 192. 168.3.2
Quelques remarques:
Remarques:
Le fichier /etc/ppp/connect_test doit être EXECUTABLE

LINUX - DECEMBRE 98
faire un chrnod +x pour le rendre exécutable) le logi ciel serveur HTTP Apache devra être installé sur la
>our des raisons de sécurité, le fichier /etc/ppp/test.pap ne doit mach ine LINUX (ce qui est en général le cas lors d'une ins-
,as être lisible par d'autres utilisate urs (faire un chmodg-rw,o-nv) tallation d'un serveur LINUX).

;i tout se passe bien, l'uti lisation du script doit aboutir à l'éta- Pierre Ficheux - Septemb re 1998
>lissement d'u ne connexion PPP entre votre cli ent et le ser- pierre@alienor.fr
•eur. Une fois cette connexion établie, vous pouvez utiliser
1'importe quelle fonctionnalité réseau entre les deux
nachines. Vous pouvez par exemp le accéder directement au
erveur à travers Netscape en utilisant une U RL du type ' r ee,~.1iuùr.-
1ttp: //192. 168.l .3 (si l'on suppose que c'est l'adresse affectée r ~111ltc~•Uicfl~
' r QMO•,i;le1unrrol I» p.&tt.-Ct}~il
m serveur LINUX). Si vous n'utilisez pas de DNS, le mieux hM#ê@ll ■ WI
r. ~ t . _ ~ ~ ~
era d'ajouter le serveur dans votre fichier !etclhosts : r Jte1-fl1:w ,r S:~~~~œlf.· ~~~-~--~
r ~ell:'/(.lSP.,. i

p 1~~-----1=~ce==---~==~1..'""~M>=.=11 t~_. ,i:_:· --- ~ - - - - - '"

.92 .168. 1.3 lese rveur # Serveur PPP LINUX (" Aè'_tî!nde-t~WUld!irollJ~,buu.tQb!JtMt.11
f fo S~>M- . . ~~~ttl'l~Jdo.1'11:l!r.
! Qtis.~, p sz , 168 . 3., I'
J'arrêt de la connexion se fera par exemple en tuant le proces- l [Jt!S~.$:· 10. 0. 0. 0 1

_;: ~WS.~11 : 10. 0 . 0. 0 1


us pppd par un: \\l'iN$~~- 1 , . , . , . , IJ

:ill 'cat /var / run/ pppO .pid'

rest depuis Windows95


Je plus simple est de configurer un nouvel accès réseau dis-
m
ant. je ne vous ferais pas l'affront d'expliquer co mment on
léfînit l'accès à un réseau distant sous Windows95 , je me bor- e,........,- ·1
1erai à préciser la co nfiguration du Type de serveur comme Œ.;;;<.J ~
ndiqué ci-dessous (obtenue par les propriétés de la connexion
léfinie) (figure 1) :
)remière remarque : il semblerait qu'à Redmond, les seuls types N é le 4 avril 1962 à Talence (Gironde)
le serveurs connus soient Win95/NT et vaguement 'In ternet';-). Ingén ie ur ENSAM (Arts et Métiers), promotion 1981-84
Admini strate ur syst ème, développeur Unix/X/Motif,
l est conse illé, dans notre cas, de décocher toutes les options Enseignant interve na nt à l'ENSAM et à l'université de Poitiers.
, Créateur encre autres de l'émulateur minitel Xtel
.auf TCPIJP, puis de finir la config en cliquant sur Paramètres
rCPIIP pour obtenir la figure 2:

~'adresse sera normalement affectée automati quement par le


;erveur LTNUX (voir paramèt re du fichier /etc/ppp/options. Si Mgetty+Sendfax Archive/Documentation Centre
,ous désirez utiliser un serveur de nom (DNS), il faudra pré- http://wais.leo.org/~doering/mgetty
:iscr son adresse TP à ce nivea u là.
La page Web de Patrick Queutey [Linux-PPP]
J nc fois la configuration terminée, il s uffit de double-cliquer b,ttp://perso.club- ,
;ur l'icône de connexion définie pour obtenir la figure 3 : in ternètlf.r/ quèutey/Linux/config_ppp. htrnl ·
)UiS de cliquer sur Connecter.
Faq -Connexion PPP (config),
Modems, RNIS de Laurent Sintès
'> i vous n'utilisez pas de DNS, il fa ud ra ajouter le serveur dans
h ttp://www.cadrus.fr/~sin tes/intmodem.htmi ·
.'Oire fichier C:\WJNDOWS\HOSTS:
Home-page Vppp
92 .168. 1 .3 leserveur _http ://www.linux-kheops.com/pub/vppp

:i . Conclusion PPP-HOWTO
http://www.li11ux-khe9ps.eom/doc/howto/howto/PPP
~- · - . -, , );iOWTO.btml
LIN UX contient de base tous les composants logiciels pour la
:réation d 'un serveur PPP destiné soit à servir de passerelle PPP-FAQ
j'accès à un réseau local existant, soit à supporter directeme nt http://www.linux-kheops.çom/doc/howto/howto/PPP-FAQ.html
me arborescence de documents HTML. Dans ce dernier cas,

INUX - DECEMBRE 98
Sendmail
Dès qu'il est question de courrier sous Unix, Sendmail est le standard de facto, bien que certains lui préfè-
rent qrnail ou smail. La conception de sendmai l /ait qu'il est capable d'administrer le courrier à l'échelle
d'un campus tout en donnant la possibilité de ne l'utiliser que pour des besoins beaucoup plus ,nodestes : une
sùnple machine Linux reliée épisodiquemen t à l'Internet par une connexion PPP, par exemple...

sendmail.org Sendmail

---
Procmail

D e nombreux utilisateurs Linux tremblent à la seule pensée de ens uit e traité par le p réprocesseur 1114 pour produire un send-
devoir le configurer et il est vrai que l'on peut souve nt lire des mail. cf .
choses aussi encourageantes que "On dit souvent que celui qui
n'a jamais édité un fichier standard sendmai/. cf n'est pas un véri- Dans cet articl e, nous utiliserons cette dernière so luti on pour
table administrateur UNI X La légende dit aussi qu'il ne jàut la génération de no tre fichier sendma il. cf . Bien entendu , cet
pas le faire deux.fois, sous peine de devenir/ou ". articl e ne se veut pas exhaustif : le livre de référence fait
Cette réputation vient de la syntaxe, hauLemcn t hermétique, quelques 1000 pages, est écrit serré et n'a pas beaucoup
du langage utilisé pour décrire les règles utilisées par d'images ... Non, mon but est de vous tenter de fai re l'expérien-
sendmail : cc fame ux fichier sendmail . cf n'éta nt qu'une liste de ce de sa configuration qui , vous vous en rendrez compte, est
ces règles. bien plus faci le qu'il n'y paraît, si on se cantonne au minimum.
Face à la complexité de cette syntaxe, plusieurs solutions ont
vu le j our. Pou r ma part, j'en connais a u moins deux : Pou rquoi passer à sendmail alors que tout fonc tionne bien avec
des solu ti ons comme Netscape ou Xfma il ? Sur une machine
• le " kit jussieu ", propose une génération a utomatique du n'ayant q u'un seul utilisateur, moi, est-ce bien la peine d'utili -
sendmail . cf via un script de configuration qui utilise le pré- ser un programme dont la vocatio n es t de distribuer le courrier
processe ur du langage C. Ce kit comprend un document expl i- sur un campus universitaire aya nt des centaines de machines?
quant tout ce qu'il est nécessa ire de savoir pour l'utili ser. La réponse est, évid emment, oui. Pas par snobisme ou pour
Tou tefois, il est plus dédié à des sites de type campus qu'à " jouer dans la cour des gra nds ", mais d'abord parce qu'il s'agit
notre pa uvre petite machine reliée par télép hone.. . d'un beau petit défi, ensu ite parce que les 2 solutions que sont
• le macros m4 permettent de préciser la config uration voulue Netscape et Xfmail présentent un grave défaut : elles sont fer-
dan une syntaxe relativement claire. Le fichier de macros est mées. Vous devez récupérer, envoyer et consu lter les messages

LINUX - DECEMBRE 98
1vec un unique produit, en général incompatible avec les autres. congrue : 6 fichiers suffisent, et encore, on pourrait s'en sortir
:\vec sendmail, vous envoyez les messages en attente et réeupé- avec 4 ... A ces 6 fich iers, il convient d'ajouter le fichier des
·ez les nouveaux dans votre boîte aux lettres et tout cela en uti- macros 1114 qui nous permettront de générer le fichier
isant le programme d'écriture/lecture de votre eh0ix. Ici, le / etc / sendmail.cf, mais celte opération réalisée, il n'est plus
ransport du courrier est séparé de sa création et de sa consul- utilisé. Je vous conseille cependant de le garder précieusement.
ation. Ceci garantit que vous pourrez utiliser tous les logiciels Bien sür, les différentes pages du manuel ne sont pas comptées
J nix écrits pour le mail , vous pourrez aussi automatiser l'en- ici, ce qui ne veut surtoul pas dire qu'il ne faut pas les lire.
roi de courrier à l'aide de scripts shells ou autres... Alors, Comme tout programme qui se respecte, sendmail utilise des
:ertes, c'est un peu d'effort, mais pas plus que d'arriver au bout fichiers trace qui permettent de repérer les éventuels disfonction-
i'un tableau de Quake ... Et c'est sürement plus rigolo. ncment. Traditionnellement, il s'agit de /var/ log /mail . err et
/var/log/mail . l og mais certaines installations les rassemblent
1 Survol du fonctionnement de .sendmail en un seul fichier /var/log / maillog .
Le fichier /var /log/ sendmail. st permet de consulter les sta-
tistiques grâce à la commande mail stat s qui fait partie de la
fe disais ci-dessus que sendrnail délivrait les nouveaux messages
distribution.
fans votre boîte aux lettres. En làit, c'est faux : sendrnail utilise
Le fich ier / usr/lib/sendmail.hf contient les messages affi-
m autre programme pour délivrer le courrier qui lui est arrivé.
chés par sendmai l.
,ous Linux, ce programme est, le plus souvent, procmail. Nous
Bien qu'il ne fasse pas partie de sendmail à proprement parler,
;onsidérerons ici qu'il est correctement configuré.
le fichier /etc/ hosts est utilisé.
) e plus, si notre machine Linux est coupée du monde, il faut
Le fichier / etc/genericstabl e permet de préciser les réécri-
Jien " alimenter" sendrnail avec les nouveaux messages qui sont
tures des adresses locales.
;ur le serveur POP de notre Fournisseur d'Accès Internet
Le fichier / etc /nsswitch . conf sera utilisé ici pour résoudre le
F.A.I). Là encore, un autre programme entre en jeu, il s'agit de
problème des " DNS lookup " lors du dépôt des messages
:etchmail qui remplace maintenant l'ancien programme pop-
dans la file d'attente.
;lient qu'il ne faut plus employer pour des raisons de sécurité (le
Si vo us lisez des documen ts traitant de sendmai l , vous verrez
J uide du Rootard cite un autre programme de récupération :
aussi évoqué des fichiers portant les noms de sendmail.dw ,
JV'lpop). fetchmail. da ns ses versions récentes, dispose de
sendmail.ct, etc. Ils ne nous sont pas utiles ici.
1ombreuses fonctionnalités et est capable de gérer d'autres pro-
Maintenant la bonne nouvelle : vous n'avez que sendmail . cf
.ocolcs que POP, mais nous ne l'utiliserons qu'à son minimum.
et /etc/genericstable à configurer, et, éventuellement,
En résumé. une utilisation typique pour une machine reliée
/ etc/ aliases et / etc/ hosts à vérifier.
xi r PPP sera :
Enfin , avec sendmail, vienne nt deux programmes : mailstats
qui affiche les statistiques (taille des messages reçus et envoyés,
· écriture de courriers :
• connexion au FA.I . ; etc.) et mai l q qui affiche le contenu de la file d'altente des mes-
• ex pédition, sur l'Internet, des courriers avec sendmail ; sages à envoyer.
• récupération des nouveaux courriers, auprès du serveur POP
fo F.A.I. , avec fetchmail; 2 Installation et configuration de sendmail
• déconnexion ;
• lecture d es nouveaux co urriers.
2. 1 Installatio n
:::>n notera que les points 2 à 5 peuvent être regroupés en un
;eu! script. D'a utre part. il faut bien comprendre que sendmail
1'inLervient pas seulemenl a u point 3, mais à chaque fois qu'il Ainsi que nous l'avons dit plus haut, sendmail ne fournil pas
ra transport de courrier sur notre machine. Ainsi, lorsque vo us de programme permettant de délivrer le courrier. Pour cela, il
~crivez du courrier destiné à l'extérieur et que vous l'envoyez faut utiliser un aulre programme : le plus courant s'appelle
tout en étan t déconnecté, c'est sendmail qui se charge de le procmail. Ces deux programmes sont disponibles pour toutes
mettre dans une file d'attente. C'est le contenu de cette file qui les distri bulions Linux : sous forme de paquetages rpm, deb
,era envoyée au point 3. Lorsque fetchmail récupère les nou- ou tarballs. Utilisez la méthode préconisée par votre distribu-
l'ea ux courriers au point 4, c'est sendmail qui les dirige vers tion (rpm, dpkg ou tar). Vérifiez aussi que le paquetage mai l x
votre boîte aux lettres en utilisant procmail. est insta llé car c'est lui qui contient le programme ma il vous
permettant d'envoyer du courrier au moyen de shells scripts
1. 1 Fichi ers ut ili sés par sendmail ou en ligne de commande.
Normalement, sendmail s'installe sous /usr / sbin/ en suid, il
appartient à root et a u groupe mai l. Les programmes mail-
Hormis le trop fameux /etc/sendmail . cf déjà évoqué, send-
stats et mai lq s'installent dans /usr/bin/ et appartiennent
nail utilise un certain nombre de fic hiers. En fait, dans le cas
tous deux à root avec droits d'exécution pour tous. En fait,
qui nous préoccupe, ce no mbre a été réduit à la portion
mailq n'est pas un programme mais un lien vers sendmail -

.INUX - DECEMBRE 98
bp. Enfin, pr ocma il se trouve aussi dans ce répertoire et est GENERI CS_DOMAIN(machine .doma i ne . f r machine l ocalhost )
suid . FEATURE(generi cstabl e )
Assurez-vous qu'u n répertoire / usr /lib/ sendma i l-cf a été FEATURE(masquerade_envelope)dnl
créé e t qu'il contient plusieurs sous-répertoires. Parm i eux, define('~onfCF_VERSION' , 'Mon c f a moi - 14 / 01 / 98 ' )dnl
/ us r/l ib/ sendmail-cf / cf est celui qui nous intéresse au pre- define ( 'confCON_EXPENSIVE ' , ' True ' )dnl
mier c he f. Bien sûr. de nom bre uses documentations sont pla - def i ne ( 'confME_TOO ' , ' True ') dnl
cées dans / usr/ doc/sendma i l et les pages du manuel de send- def ine (' confCOPY_ERRORS_TO', 'Post master' )dnl
mail et de procmail sont dans leurs emplacements habituels. def ine( ' confDEF_CHAR_SET' , 'ISO- 8859-l ') dnl
Si / usr /l ib/ s endmail-cf n'existe pas, installez le paquetage def ine( ' confMI ME_FORMAT_ERRORS ' , 'Tr ue ')dnl
corres ponda n t aux fichiers d e confi guration (sendmail - define ( ' SMART_HOST', 'smtp8 : [ma il. fai . fr] ') dn l
cf* . r pm pour la Red Hat). De même, avec cette distribu tion define('confTO_QUEUEWARN ' , '24h' )
Linux, la d ocumen tation ne sera présen~e que si vo us avez ins- MAILER(local )
tallé le pa quetage sendmai 1- doc * . rpm. MAILER(smtp)
Nor malement. l'insta llation aura aussi modifié vos fichiers de
dém arrage afin de la ncer le démon sendmail lors d u boot de Pendant q ue vo us êtes da ns les éditions, créez le fichier
votre m achine (vérifiez les messages qui s'affichen t). Selon les / etc / genericstabl e suivant :
distributions, des outils existent po ur préciser quels démo ns
doivent être la ncés au démarrage (pa r ex. t ksysv ou l inuxconf moi : ego@mail . fai . fr
r oot : ego@mai l . fai . fr
avec Red Ha t). Po ur utiliser sendmail, vous devez vous ass urer
news : ego@mail . fai . fr
que les démons network et sendmail tournent.
Vérifiez que le préprocesseur m4 est bien intallé sur votre
où l'espace s uivant le " : " est un cara ctère de tabula tion , pas
machine (no rmalement d a ns / usr / bi n) ca r il sera nécessaire
un simple espa ce.
pour créer le fic hier / e t c / sendmail .cf .
D e même, m odifiez, o u créez le fichier / e t c /nsswitch . conf
Le répe rt oire / usr/l ib/ s endmai l - c f/ ostype doit contenir un
pour que chacune de ses entrées ne cont ienne que l'optio n
fichier linux . m4 qui définit des constantes propres à Linux,
files , sauf l'entrée hos t s q ui contiendra fi l es dns (voir "man
notamment celles indiq uan t le chemin de l'emplacement de
5 nsswitch" po ur plus d'informations sur le système des Nmne
procmail . Ne 111odifle: pas ce.fichier !
Service S il'itch).
Vérifiez le fichier /etc / al ias es cl a ssurez-vo us qu'il contien-
2.2 C r éation du fichier /etc/sendmail.cf ne au moins les deux entrées suivantes :

Pour to ut ce qui s uit, je suppose que le nom de votre machine MAILER-DAEMON: postmas t er
est machine, que votre nom de doma ine est doma ine . fr , que pos tmaster : root
votre no m de login est moi et qu e votre compte chez vot re
fournisseur d'accès est ego . Quelques explications :
L a ma~hinc de votre fournisseur à la quelle vou s envoyez vos • La ligne include(' ../m4/cf.m4') demande l'inclusio n dans le
co urrie rs s'appelle ma il . fai . fr fich ier des macros m4 , nécessaires au tra item ent.
Avec l'u tilisation des macros m4 , la d éma rch e est plutôt • L a ligne OSTYPE(' .. .') provoque l'incl usio n des spécificités
sim ple : s ous r o ot, on crée un fi chier con fig . me d a ns le d'un système d'explo ita tion particulier (ce qui se trouve entre ·
réperto ire /usr/lib/ sendmail - c f/ c f . et' do it être un nom de fichier ayant l'extensio n . m4 et présent
Ce fichier se b orne à donner des valeurs à cer taines constan tes da ns /usr/ l i b/ sendmail - cf / ostypes/ : notamment le Cic hicr
et à définir certa ines opt ions. l inux. m4 définit le chemin permettan t à sendmail de re tro u-
Enfin, no us comp ilero ns ce fich ie r p our qu'il gé nère ver le p rogramme procmai l , utilisé pou r délivrer localement le
/ e t c / sendmail . cf . courrier.
So us le comp te root , mettez-vous d a ns le répertoire • Les lignes define servent à affecter des valeurs sous fo rme de
/ usr / l i b/ sendmai l-cf/cf et, à l'aide de votre éditeur de texte chaînes à des variables qui seront prises en com pte par send-
favori, créez le fi chie r confi g . me suivant : mai l .
• Les lignes FEATURE serven t à fixer cer taines caractéris-
inc l ude ( ' .. / m4 / cf .m4 ' )dnl tiqu es du fo nctionnement de sendma il.
OSTYPE( 'l i nux ')dnl • Les lignes M A ILER servent à spécifier les protocoles utilisés
define('SMTP_MAILER_FLAGS ' , 'e9 ' )dnl pour tra nsporter notre co urrier. lei, on indique que l'on utili-
rEATURE(redirect)dnl se le transport local et via smtp.
FEATURE (nocanonify)dnl À p a rti r de ce fichier, vo us pouvez m aintenant générer vo tre
FEATURE(al ways_add_doma in)dnl fameu x fichier /etc / sendmai l . cf/ : placez-vo us da ns le réper-
FEATURE( l oca l _procma i l )dnl to ire /usr /l ib/ sendmail-cf/cf/ (c'est là que se trouve vo tre

A ..,
LI NUX - DECEMBRE 98
1

1
1
a abréviation locale du jour de la
1 %n Nombre de liens physiques sur le fichier.

A
semaine (Sun ..Sat)
nom local entier du jour de la semaine, 1 %p
%P
Nom du fichier.
Nom du fichier, ainsi que le nom de l'argument
de longueur variable (Sunday.. Sacurday) de ligne de commande à partir duquel le fichier
b
B
abréviation locale du mois Uan .. Dec)
nom local entier du mois, de longueur
1 %s
a été trouvé.
Taille du fichier en octets.

C
variable Uanuary.. December)
date et heure locales (Sat Nov 04
1 %t Date de dernière modification du fichier, dans le
format renvoyé par la fonction C ctime(3).

d
12:02:33 EST 1989)
quantième du mois (01 ;.31) 1 %Tk Date de dernière modification du fichier, dans le
format spécifié par k, comme pour la directive
D date (mm/jj/aa) %A
h comme b
jour de l'année (001 .. 366)
1 %u Nom du propriétaire du fichier, ou U-ID
numérique si l'utilisateur n'a pas de nom.
m
u
mois (0 1.. 12)
numéro de la semaine dans l'année, les
1 %U U-ID numérique du proprietaire du fichier.
Un caractère '%' suivi de tout autre caractère est
semaines commençant le Dimanche éliminé (mais lesecond caractère est affiché).

w
(00 .. 53)
jour de la semaine (0 .. 6), 0 correspond
1 -prune : vrai si l'option -depth n'est pas fournie; ne pas des-
cendre dans l'arborescence du répertoire en cours.

w
à Dimanche
numéro de la semaine dans l'année, les
1 Faux si l'option -depth est fournie et sans effet.
-1s : vrai, affiche le nom du fichier en cours dans le format ïs -dils' ·

X
semaines commençant le Lundi (00 .. 53)
représentation locale de la date 1 sur la sortie standard. La tai lle est comptée en blocs de I Ko, à
moins que la variable d'environnement POSIXLY_CO RRECT
(mm/jj/aa) soit positionnée, auquel cas la taille est calculée en blocs de 512
y les deux dernier chiffres de l'année
(00 .. 99)
1 octets.

%6
y année ( 1970... )
Taille du fichier en nombre de blocs de 512
1 OPERATEURS
octets (arrond i par excès).
%c Date de dernière modification du statut du
fichier, dans le format renvoyé par la fonction C
1 Dans l'ordre de précédence décroissante :
( expr) Force la précédence.

%Ck
ctime(3).
Date de dernière modification du statut du
1 ! expr
-not expr
Vrai si expr est fausse.
Comme ! expr.
fichier, dans le format spécifié par k, comme
pour la directive %A 1 expr I expr2 ET (implicite); expr2 n'est pas évaluée si exprl
est fausse.
%d Profondeur du fichier dans l'arborescence des exprl -a expr2 Comme exprl expr2.
répertoires, 0 signifiant que le fichier est un
argument de la ligne de commande.
1 exprl -and expr2 Comme exprl expr2.
exprl -o expr2 OU; expr2 n'est pas évaluée si exprl est vraie.
%f
%F
Nom du fichier, sans nom de répertoire.
Type de système de fichiers sur lequel se
1 exprl -or expr2 Comme exprl -o expr2.
exprl , expr2 Liste; exprl et expr2 sont toujours évaluées
trouve le fichier. Cette valeur peut être utilisée toutes les deux. La valeur de exprl est ignorée; la valeur de la

%g
pour l'option -fstype.
Nom du groupe propriétaire du fichier, ou G-ID
1 liste est celle de expr2.

%G
numérique si le groupe n'a pas de nom.
G-ID numérique du fichier.
1
%h Répertoires en tête du nom de fichier, (tout sauf
le dernier nom) . 1
%H Argument de la ligne de commande à partir

%i
duquel le fichier a été trouvé.
Numero d'i-noeud du fichier (en décimal).
1
%k Taille du fichier, en nombre de blocs de I Kilo-
Octet, arrondi par excès.
1
%1 Destination du lien symbolique (vide si le fichier Traduction 15/0 l / 1997 par Christophe Blaess (ccb@club-inter-

%m
n'est pas un lien symbolique). 1 net.fr) d'après la man page de find
Bits d'autorisation d'accès au fichier (en octal).

1
0 G
1
1
1
1
1 La commande find parcourt les arborescences de réper-
toires commençant en chacun des flchemins mentionnés, en éva-
1 luant les expressions fournies pour chaque fichier rencontré.
L'évaluation de l'expression se fait de gauche à droite, en suivant

1 des règles de précédence décrite dans la section OPÉRATEURS,


jusqu'à ce que le résu ltat soit connu (par exemple la partie
gauche vraie pour un opérateur "OU" ou fausse pour un opéra-
1 teu r ET).Le premier argument commençant par'-','(',')',',', ou
'!' est considéré comme le début de l'expression, tous les argu-
1 ments précédents sont des chemins à parcourir. Tous les argu-
ments ultérieurs sont considérés comme le reste de l'expression
régulière. Si aucun chemin n'est mentionné, le répertoire en
1 cours sert de point de départ. Si aucune expression n'est four-
nie, find utilise l'expression '-print' par défaut.
1
1 OPTIONS

1 Toutes les options renvoient toujo urs la vale ur vraie.


Elles ont toujours un effet global, plutôt que de s'appliquer uni-
quement à leur emplacement dans l'expression. Néanmoins, pour
1 améliorer la lisibilité, il est préférable de les placer au début de
l'expression.
1 -daystart : Mesurer les temps (avec -amin, -atime, -cmin, -ctime,
-mmin, et -mtime) depuis le début de la journée plutôt que

1 depuis 24 heures.
-depth :Traiter d'abord les sous-répertoires avant le répertoire
lui-même.
1 -follow : Déréférencer les liens symboliques pour accéder aux
fichiers vers lesquels ils pointent. Ceci implique l'option -noleaf.
Il 1 -help, --help : Afficher un message d'aide sur la sortie standard

in
et terminer normalement.
-maxdepth n : Descendre au plus n niveaux (n étant un entier
1 positif ou nul), dans les répertoires parco urus. ' -maxdepth O'
sign ifie que les tests et les actions ne s'appliquent qu'aux argu-
1 ments de la ligne de commande.
-mindepth n : Ne pas appliquer les tests ou les actions à des

1 niveaux de profondeur inférieurs à n. n est un entier positif ou


nul. '-mindepth I' signifie que les tests et les actions s'appliquent
à tous les fichi ers sauf aux argum ents de la ligne de commande.
1 -mount : Ne pas parcour ir les répertoires situés sur d'autres
systèmes de fichiers. Il s'agit d'une alternative à l'option -xdev,
1 assurant la compatibili té avec d'ancie nnes versions de find .
-noleaf : Ne pas faire d'opt imisation en supposant que les réper-

1 toires contiennent 2 fois mo ins de sous-répertoires que leurs


nombres de lie ns physiques. Cette option est nécéssaires lorsque
l'on parcourt des systèmes de fic hiers ne suivant pas les conven-
1 tions Unix sur les liens de répertoires, comme les systèmes MS-
DOS, les CD-ROM o u les points de montage de volumes AFS.
DETACHEZ CE FEUILLET ET PLIEZ-LE EN 1 Chaque répertoire sur un système de fichiers Unix dispose au
moins de deux liens physiques, son nom et '.'. De plus chaque
ACCORDEON SUIVANT LES POINTILLES
1 sous-répertoire a également un lien ' .. ' vers le répertoire parent.
Quand find examine un répertoire, il sait qu'il y a 2 fois moins de

0 1 8
1
1
1
1
1
_e système d'aide est simple. Tapez C-h et suivez les instructions.
1
Le système d'aide est simple. Tapez C-h et suivez les instructions.
ii vous êtes débutant, tapez C-h t pour disposer d'un didacticiel.

➔ uitter la fenêtre d'aide q


1 Si vous êtes débutant, tapez C-h t pour disposer d'un
didacticiel.
·ai re défi ler la fenêtre d'aide espace
1
quitter la fenêtre d'aide q
propos : afficher les commandes
1
:r aitant d'un sujet donné C-h a 1 faire défiler la fenêtre d'aide
a propos : afficher les commandes traitant
espace
ndiquer la fonction lancée par une touche C-h C
j écrire une fonction
)btenir des informations spécifiques à un mode
C-h f
C- h m
1 d'un sujet donné
indiquer la fonction lancée par une touche
C-h a
C- b C

décrire une fonction C-h f


1 obtenir des informations spécifiques à un mode C-h m

ancer le lecteur de la documentation lnfo C-h i


1
;e déplacer dans un noeud : (defun <nom-commande> (<args>)
1 "<documentation>"
(in teractive "<motif> ")
dl er vers l'avant ESP
ill er en arrière
jébut d'un noeud
SUPP
. (point)
1 <corps>)

Exemple :
i e déplacer entre les noeuds : 1 (defun this-line-to-top-of-window (ligne)
1oeud suivant
10eud précédent
n
p
1 "Reposition line point is on to top of window.
With ARG, put point on line ARG .
u Negative counts from bottom ."
ill er vers le haut
;él ectionner l' item de menu par son nom m 1 (interactive "P")
(recent er (i f (null ligne)
;électionner le nième item de
nenu par son numéro ( 1-5)
;uivre la référence croisée (revenir avec 1)
n
f
1 0
(prefix-numeric -value ligne))))
·evenir au dernier noeud rencontré
·evenir au no~ud répertoire
1
d 1
Iller sur un noeud par son nom g

~utres :
1
ancer le didacticiel lnfo h 1 L'argument d'interactive est une chaîne indiquant comment
~n umérer les commandes lnfo ? obtenir les paramètres lorsque la fonction est appelée de façon
➔ uitter lnfo
·echercher les noeuds par regexp
q
s
1 intéractive. Tapez C-h f interactive pour plus d'information.

1 Copyright (c) 1995 Free Software Foundation, Inc.


conçu par Stephen Gildea, Février 1995 v 2.0
pour GNU Emacs version 19 sur systèmes Unix
oici quelques exemples de liaisons globales de touches en
: macs Lisp.
1 Mis à jour de Ben Wing pour XEmacs en Février 1995
Adaptation française d'Éric Jacoboni, Octobre 1998

;~obal -set-key [ (control c) g] 'goto-line) 1 Vous avez le droit de faire et de distribuer des copies de cette
;;~obal -set-key [ (control x) (control k)] 'kill -region) carte à condition que la notice de copyright et cette note d'au-
g~obal-set -key [ (meta \#) ] ' query-replace-regexp) 1 torisation soient conservées sur toutes les copies.
Pour les copies du manuel GNU Emacs, écrivez à la Free
:xemple de configuration d'une variable en Emacs Lisp :

setq backup-by-copying-when-linked t)
1 Software Foundation, Inc., 675 Massachusetts Ave, Cambridge
MA 02139.

1
0 0
1
1
1
1
annule l'effet du dernier caractère SUPP
Carte de référence termine la recherche en cours C-g

XEmacs Utilisez à nouveau C-s ou C- r pour répéter la recherche dans


l'une ou l'autre des directions.
(pour version 20.3+)
Si Emacs est en cours de recherche, C-g annule uniquement la
partie non effectuée.

Pour démarr er XEmacs, tapez son nom : xemacs


Pour lire un fichier à éditer, voir « Fichiers » ci-dessous . entité de destination en arrière vers l'avant
caractère C-b C- f
mot M-b M- f

suspend r e Emacs (ou l'icôn ifier sous X) C-z


1 ligne
aller au début
C-p C- n

quitter définitivement Emacs C- x C- c (ou à la fin) de la ligne C-a C-e


1 phrase
paragraphe
M-a
M-{
M-e
M- }

lire un fichier dans Emacs C-x C- f


1 page
s-expression
C-x
C-M-b
C-x
C-M-f
sauver un fichier sur disque C- x C- s fonction C-M-a C-M-e
sauver tous les fichiers C- x s 1 aller au début (ou à la fin)
du tampon M-< M->
insérer le contenu d'un autre fichier
dans ce tampon
remplacer ce fichier par un autre
c-x i
C-x C-v
1 écran suivant C- v
écran précédent M-v
sauver le t ampon sous un
nom de fichier donné C-x C-w 1 défiler vers la gauche C-x <
défiler vers la droite C-x >
1 positionner la ligne courante
au centre de l'écran c-u C- 1
t erm iner une commande en cours de
frappe ou d'exécution C- g 1
r écupérer un fich ier perdu par
un crash du système M- x recover-file entité à supprimer en arrière vers l'avant
r écupérer les fichiers d'une session caractère (détruire,
Emacs précédente
annuler une modification non voulue
M-x recover-session
C- x u ou C-
1 pas supprimer)
mot
SUPP
M-SUPP
C-d
M-d
rétablir un tampon avec ligne (jusqu'à la fin) M-0 C-k C-k
so n contenu original
redessiner un écran en désordre
M-x revert-buffer
C- 1
1 phrase
s-expression
C- x SUPP
M- C-M-k
M-k
C- M- k

1 supp r imer une région c-w


copier la région dans le kill ring M-w
r ech erche vers l'avant C-s supprimer jusqu'à l'occurence suivante de car M-z car
reche rche vers l'arrière C- r
r echerche vers l'avant d'une récupérer la dernière entité supprimée C-y
exp r ess ion rationnelle C- M-s remplacer la dernière récupération
r echerche vers l'arrière d'une avec la suppression précédente M-y
expression rationnelle C-M-r
sélectionne la chaîne
précédemm ent recherchée
sé lectionne la chaîne de
M- p fi positionner la marque ici c-@
ou C-ESP
reche rc he su ivante
fin de la recherc he incrémentale
M- n
RET 1 échanger le point et la marque C- x C-x

0 1 8
1
1

1
)OSitionner la marque arg mots plus loin
narquer le paragraphe
M-@

M-h 1 insérer un saut de ligne après le point


déplacer le reste de la ligne vers le bas
C-o
C-M-o
narquer la page C-x C-p détruire les lignes vides autour du point c - x C-o
narquer la s-expression
narquer la fonction
C-M-@
C-M-h
1 joindre la ligne à la précédente (avec arg, suivante)
détruire les espaces autour du point
M-"
M- \
narquer tout le tampon C-x h
1 mettre exactement un espace à
l'emplacement du point M-ESP

·emplacer interactivement
1 justifier le paragr aphe
positionner la colonne de justification
M-q
C-x f
me chaîne de caractères
Jtiliser les expressions
M- %
1 positionner le préfixe de début de chaque ligne C-x

·ationnelles M-x query- replace - regexp

_es réponses valides dans le mode de remplacement interactif


1 mot en majuscules M-u
;ont:
1 mot en minuscules
première lettre du mot en majuscule
M-1
M-c
·emplacer celle-ci, passer à la suivante ESP ou y
·emplacer celle-ci sans progresser
;auter à la suivante sans remplacer SUPP ou n
1 région en majuscules
région en minuscules
C- x C-u
C-x C-1
·emplacer toutes les cor respondances suivantes première lettre de la région
·evenir à la correspondance précédente en majuscule M-x capitalize-region
;ortir du remplacement interactif ESC
?ntrer en édition r écu r sive
:c-M-c pour en sort ir) c-r
1
;upprimer la cor respondance et Les touches suivantes sont définies dans le mini-tampon :
rntrer en édition récu r sive C-w
compléter le plus possible TAB
1 compléter un mot
compléter et exécuter
ESP
RET
;upprimer tout es les autres fenêtres
;upprimer cette fenêtre
C-x 1
C- x 0
1 montrer les complétions possibles
récupérer l'entrée précédente du mini-tampon
?
M- p
:liviser la fenêtre en deux verticalement c-x 2 récupérer l'entrée suivante du mini-tampon M- n
j iviser la fenêtre en deux horizontalement C-x 3 recherche par regexp en arrière dans l'historique M- r
jéplacer l'autre fenêtre C-M-v recherche par regexp vers l'avant dans l'historique M-s
,lacer le curseur dans une autre fenêtre C-x o annuler la commande C- g
jiminuer la hauteur de la fenêtre M-x shrink-window
tUgmenter la hauteur de la fenêtre C-x " Tapez C-x ESC ESC pour éditer et répéter la dernière com-
ji minuer la largeur de la fenêtre C-x { mande ayant utilisé le mini-tampon. Les touches suivant es sont
lLigmenter la largeu r de la fenêtre C-x } définies :

;électionner le tampon dans une autre fenêtre c-x 4 b commande précédente du mini -tampon M-p
1fficher le tampon dans une autre fenêtre c-x 4 C-o commande suivante du mini-tampon M-n
) uvrir un fichier dans une autre fenêtre
) uvrir un fichier en lecture seulement
c-x 4 f 1
fa ns une autre fenêtr e C-x 4 r
ancer Dired dans une autre fenêtre C-x 4 d
:rouver un tag dans une autre fenêtre c-x 4 sélectionner un autre tampon C-x b
énumérer tous les tampons C-x C- b
supprimer un tampon C-x k

ndenter la ligne courante (dépend du mode) TAB


1
ndenter la région (dépend du mode) C- M- \
ndenter la s-expression (dépend du mode) C- M- q 1 transposer des caractères
transposer des mots
c-t
M-t
ndenter la région de arg colonnes C- x TAB
1
e 0
-1
1

transposer des lignes C-x C-t zéro répétitions ou plus *


transposer des s-expressions C- M- t une répétition ou plus +
zéro ou une répétition ?
1 tout caractère de l'ensemble .. . l

vérifier l'orthographe du mot courant M-$


1 ... l
A
tout caractère non dans l'ensemble
vérifier l'orthographe de début de ligne A

tous les mots de la région M-x ispell-region fin de ligne $


vérifier l'o rthographe de banalise un caractère spécial c \c
tout le tampon M-x ispell-buffer alternative ("ou") ,1
groupement \( ... \)
nième groupe \n
début du tampon \'
trouver un tag (une définition)
trouver l'occurence suivante du tag
M- .
C- u M- .
1 fin du tampon \'
séparation de mot \b
spécifier un nouveau fichier de tags M-x v i s i t -tags-tabl e ni le début, ni la fin d'un mot \B
rechercher par regexp dans début de mot \<
tous les fichiers du tableau des tags M- x tags-search
lancer un remplacement 1 n de mot
tout caractère faisant partie d'un mot
\>
\w
interactif sur tous les fichiers M-x t ags - query-replace tout caractère ne faisant pas partie d'un mot \W
continuer la dernière recherche
ou le dernier remplacement
1 caractère avec la syntaxe c
caractère avec la syntaxe non c
\ se
\ Sc
interactif de tags M- ,
1
exécuter une commande shell M- !
1 sauver la région dans un registre
insérer le contenu du registre dans le tampon
C-x r s
C-x r i
lancer une commande shell sur la région M- 1
filtrer la région par une commande shell C-u M- 1 sauver la valeur du point dans un registre C-x r ESP
lancer un shell dans la fenêtre *shell* M-x shell sauter au point sauvé dans le registre C-x r j
1
copier un rectangle dans un registre C-x r r 1 commencer à définir une macro clavier C-x
supprimer un rectangle C-x r k terminer la définition d'une macro clavier C-x
récupérer un rectangle
ouvrir un rectangle en
C-x r y 1 exécuter la dernière macro clavier définie C-x e
éditer une macro clavier C-x C-k
déplaçant son texte à droite C-x r o ajouter à la dernière macro clavier C-u C-x
nettoyer un rectangle M-x clear-rectangle donner un nom à la dernière
préfixer chaque ligne avec une chaîne M-x string-rectangle macro clavier M- x name-last - texttt - macro
sélectionner un rectangle avec la souris M-bouton 1 1 insérer une définition Lisp
dans le tampon M-x inserttexttt-macro
1
ajo uter une abréviation globale C-x a g
ajouter une abréviation locale au mode C- x a 1 1 évaluer la s-expression avant le point C-x C-e
ajouter une expansion globale évaluer la defun courante C- M-x
our cette abréviation
ajouter une expansion locale au
C- x a i g
1 évaluer la région
évaluer le tampon entier
M-x eva l -region
M-x eval -current -buffer
mode pour cette abréviation
étendre explicitement l'abréviation
C-x a i 1
C-x a e 1 lire et évaluer le mini-tampon
réexécuter la dernière commande
M-ESC

étendre dynamiquement le mot précédent M- / du mini-tampon C-x ESC ESC


1 lire et évaluer un fichier Emacs Lisp
charger à parti r du répertoire
M-x l oad-file

tout ca ractère sauf .un saut de ligne . (point) 1 système standa rd M- x load- l ibrary

e 1 0
1
1
1
1
Jus-répertoires que de liens vers le répertoire. Une fois qu'il a
1 -iregex motif : identique à -regex, mais sans différencier les
encontré le nombre prévu de sous-répertoires, il est donc sûr
ue le reste des entrées est constitué de fichiers autres que des
1 majuscules et les minuscules.
-links n : fichier ayant n liens.
Jus-répertoires. Ces fichiers sont des feuilles dans l'arborescen- -lname motif : fichier répresentant un lien symbolique, dont le
e des répertoires. S'il n'y a que les noms de fichi ers à examiner, 1 contenu correspond au motif indiqué. Lors du développement
des méta-caractères, '/' et '.' ne sont pas traités différement des
n'a plus besoin de vérifier leur nature, et ceci fournit une aug-
1entation notable de la vitesse de traitement.
,ersion, --version :Afficher un numéro de version sur la sor-
1 autres caractères (voir l'exemple dans la description de l'option
-path).
-mmin n : Fichier dont les données ont été modifiées il y a n
e standard et terminer normalement.
<dev : Ne pas parcourir les répertoires situés s_u r d'autres sys- 1 minutes.
~mes de fichiers. -mtime n : Fichier dont les données ont été modifiées il y a n*24
1 heures.
-name motif : Fichier dont le nom de base (sans les répertoires
TESTS
1 du chemin d'accès), correspond au motif du shell. Les méta-
caractères ('*', '?', et '[]') ne sont jamais mis en correspondance
avec un point '.' au début du nom. Pour ignorer un répertoire,
es arguments numériques peuvent être indiqués comme suit:
n : s upérieur à n 1 ainsi que tous ses sous-répertoires, utiliser l'option -prune; vous
trouverez un exemple dans la description de l'option -path.
1 : inférieur à n
: égal à n
1min n : dernier accès au fichier il y a n minutes.
1 -newer fichier : Fichier modifié plus récemment que le fichier
indiqué. L'option -newer n'est affectée par l'option -follow que si
celle-ci la précède sur la ligne de commande.
rnewer fichier : dernier accès au fichier plus récent que la der-
ière modifi cation de fichier. Le comportement de l'option -ane-
1 -nouser : Fichier dont l'U-ID numérique ne correspond à aucun
1er est modifié par l'option -follow uniquement si celle-ci la pré- utilisateur.
ède sur la ligne de commande. 1 -nogroup : Fichier dont le G-ID numérique ne correspond à
aucun groupe d'utilisateurs.
1time n : dernier accès au fichier il y a n*24 heures.
:min n : dernière modification du statut du fichier il y a n
1inutes.
1 -path motif : Fichier dont le nom complet correspond au motif
fourni. Lors du développement des méta-caractères,'/' et'.' ne
sont pas traités différement des autres caractères, ainsi par
:newer fichier : dernière modification du statut du fichier plus
§cente que la dernière modification du fichier fichier. Le com- 1 exemple : find . -path './sr*sc' affichera l'élément de répertoire
intitulé './src/misc' (s'il en existe un). Pour ignorer une arbores-
ortement de l'option -cnewer est modifié par l'option -follow
niquement si cell e-ci la précède sur la ligne de commande.
:time n : dernière modification du statut du fichier il y a n*24
1 cence complète de répertoires, uti lisez l'option -prune plutôt
que de vérifier chaque fichier de l'arbre. Par exemple, pour igno-
rer le répertoire 'src/emacs' et tous ses sous-répertoires, tout
eures.
empty : fichier vide. De plus ce fichier doit être régulier ou être
1 en affichant le nom de tous les autres fichiers, faites quelque
chose comme : find . -path './src/emacs' -prune -o -print
n répertoire.
:aise : toujours faux.
:stype type : fichier se trouvant sur un système de fichiers du
1 -perm mode : Fichier dont les autorisations d'accès sont fixées
exactement au mode indiqué (en notation symbolique ou octale).
1
pe indiqué. Les types de systèmes de fichiers dépendent de la
ersion d'Unix. Une liste non-exhaustive des systèmes acceptés
1 La notation symbolique utilise le mode O comme point de départ.
-perm -mode : Fichier ayant au moins toutes les autorisations
indiquées dans le mode.
Jr certaines versions d'Unix sont : ufs, 4.2, 4.3, nfs, tmp, mfs,
5 1K, S52K. Vous pouvez utiliser -printf avec la directive %F pour 1 -perm +mode : Fichier ayant certaines des autorisations indi-
quées dans le mode.
xaminer les types de vos systèmes de fichiers.
~id n : Fichier de G ID numérique valant n.
~roup nom__groupe : fichier appartenant au groupe nom_grou-
1 -regex motif : Nom de fichier correspondant à l'expression
régulière motif Il s'agit d'une correspondance sur le nom de
fichier complet, pas d'une recherche. Par exemple, pour mettre
e (éventuelle ment ID numé rique).
lname motif : dentique à -lname, mais sans différencier les
1 en correspondance un fichier nommé './fubar3', vous pouvez uti-
liser les expressions régulières '.*bar.' ou '.*b.*3', mais pas 'b.*r3'.
1ajuscules ec les minuscules.
name pattern : identique à -name, mais sans différencier les 1 -size n[bckw] : Fichier utilisant n unités d'espace. Les unités
sont des blocs de 512 octets par défaut (ou si un suffixe ' b' suit
1aj uscules et les minuscules. Par exemple les motifs 'fo*' et · F??'
le nombre n), des octets si un suffixe 'c' suit n, des kilo-octets si
orresponde nt aux noms de fichiers ' Fao', ' FOO', ' foo', 'fOo',
te ...
1 un suffixe ' k' est utilisé, ou des mots de 2 octets si un ' w' s uit le
num n : fichier dont le numéro d'i-noeud est n. nombre n. La taille ne prend pas en compte les blocs indirects,
path motif : identique à -path, mais sans différencier les majus- 1 mais e lle comptabilise les blocs des fichiers éparpillés pas encore
alloués.
ules et les minuscules.
1
E) 0
1
.1
1
1
•true :Toujours vrai.
-type c : Fichier du type c: 1 nom contient un saut de ligne, d'être correctement interprétés
par les programmes utilisant les données en sortie de find.
b fichier spécial en mode bloc (avec buffer)
c
d
fichier spécial en mode caractère (sans buffer)
répertoire
1 -printf format : vrai; affiche le format ind iqué sur la sortie stan-
dard, en interprétant les séquences d'échappement 'e' et les
p
f
tube nommé (FIFO)
fichier régulier
1 directives'%'. La largeur et la précision des champs peuvent être
spécifiés comme dans la fonction printf(3) du langage C.
Contrairement à -print, -printf n'ajoute pas de saut de ligne à la
1
s
liens symbolique
socket 1 fin de la chaîne. Les séquences d'échappement et les directives %
sont les su ivantes :
-uid n : Fichier dont l'U-ID numérique vaut n.
-used n : fichier dont le dernier accès date de· n jours après la
dernière modification de son statut.
1 \a
\b
Sonnerie.
Effacement Arrière (Backspace)
-user utilisateur :fichier appartenant à
'1Umérique éventuellement)
l'utilisateur indiqué (U-ID
1 \c Arrêter immédiatement l'impression du format
et vider le flux de sortie.
-xtype c : comme -type sauf si le fichier est un lien symbolique. \f Saut de page
Dans ce cas, si l'option -follow n'a pas été fournie, le test est vrai 1 \n
\r
Saut de ligne
Retour Chariot
;i le fichier destination du lien est de type c; Si l'option -follow a
'I'.
èté réclamée, le test est vrai si c vaut Autrement dit, pour les
iens symboliques, -xtype vérifie le type des fichiers que l'option
1 \t
\v
Tabulation horizontale
Tabulation Verticale
\\ Un caractère 'Backslash' littéral ('\').
-type ne vérifie pas.
1 Un '\' suivi de n'importe quel autre caractère est traité
comme un caractère ordinaire; ils sont donc affichés
ACTIONS 1 tous les deux.
01 1
0°0
101c Un caractere' pourcentage littéral (%)
,exec commande ; : Exécute la commande; vrai si le code de
·etour 0 est renvoyé. Tous les arguments suivants de find sont
1 %a Date du dernier accès au fichier, dans le format
renvoyé par la fonction C ctime(3).
%Ak Date du dernier accès au fichier, dans le format
: onsidérés comme des arguments pour la ligne de commande,
usqu'à ce qu'on rencontre un ';'. La chaîne '{}' est remplacée par
1 spécifié par k, qui doit être soit un '@', soit une
directive pour la fonction C strftime(3). Les
e nom du fichier en cours de traitement, et ceci dans toutes ses
Jccurences, pas seulement aux endroits où elle est isolée, 1 valeurs possibles pour k sont indiquées ci-
dessous, certaines d'entre-e lles ne sont pas
:omme c'est le cas avec d'autres versions de find . Ces deux
: haînes peuvent avoir besoin d'être protégées du développement
:Je la ligne de commande par le shell, en utilisant le caractère
1 disponib les sur tous les systèmes, à cause des
différences entre les fonctions strftime(3)
existantes.
:J'échappement ('e') ou une protection par des apostrophes. La
: ommande est exécutée depuis le répertoire de départ.
1 @ secondes écoulées depuis le Ier Janvier
1970 à 00h 00 GMT.
-fis fichier : vrai; comme -ls mais écrit dans le (,chier comme le
'ait -fprint. 1 Champs horaires :
H heure (00.. 23)
-fprint fichier : vrai; écrit le nom complet dans le (,chier. (,chier
Si
,'existe pas au démarrage de find, il est créé. S'il existe, il est
ècrasé. Les noms de fichiers "/dev/stdout" et "/dev/stderr" sont
1 k
heure (01 .. 12)
heure ( 0.. 23)
1 heure ( 1.. 12)
tra ités de manière spécifique, ils correspondent respectivement
1 la sortie standard, et à la sortie des erreurs.
1 M
p
minute (00 .. 59)
AM, ou PM, avec la désignation locale
-fprintO fichier : vrai; comme -print0 mais écrit dans le (,chier
:omme le fait -fprint. 1 r heure, sur un cadran de 12 heures
(hh:mm:ss [AP]M)
-fprintf fichier format : vrai; comme -printf mais écrit dans le
Fichier comme le fait -fprint.
-ok commande ; : comme -exec mais interroge d'abord l'utilisa-
1 S
T
secondes (00 .. 61)
heure, sur un cadran de 24 heures
(hh:mm:ss)
ceur (en utilisant l'entrée standard). Si la réponse ne commence
Jas par 'y' ou 'Y', la commande n'est pas exécutée, et le test 1 X représentation locale de l'heure
(H:M:S)
devient fau x.
,print : vrai; affiche le nom complet du fichier sur la sortie stan- 1 Z fuseau horaire (par exemple MET), ou
rien si le fuseau horaire est
: lard, suivi d'un saut de ligne.
,printO : vrai; affiche le nom complet du fichier sur la sortie stan-
:lard, suivi d'un caractère nu l. Ceci permet aux fichiers dont le
1 indéterminé.
Champs de date :

0
1 0
1
chier confi g .me et faites:
2.4 Vérification du fich ier /etc/ hosts
4 config. mc > /etc / sendmail.cf
L'étape suivante consiste à vérif'îer le contenu de votre 11chier
,ssurez-vous que le traitement ne détecte pas d'erreur de syn- / etc / hos ts qui doit comporter une ligne ressemblant à ça :
ixe et vérifiez par un ls - 1 /etc / sendmail .cf que ce fichier
it les permissions suivantes : -rw-------, qu'il appartient à 127 . 0 . 0 . 1 machine .domaine . fr localhost machine
utilisateur et au groupe roo t.
Attention : Le nom complet de votre machine doit être le pre-
.3 La transformation des adresses de l'expéditeur mier de la liste.

assons maintenant au fichier / etc / gene ricstable. Le rôle 2.5 Rechargement de sendmai l
e celui-ci est lié à la caractéristique genericstable. Celle-ci per-
iet aux adresses d'expéditeurs locaux d'être réécrites sous une Si un démon sendmail tournait déjà sur votre machine, il faut
utre form e: lorsque moi postera un message, l'adresse de le tuer puis le relancer afin que toutes ces modifications soient
~xpéditeur sera moi@machine. domaine . fr et on conçoit que prises en compte. Pour cela, faites :
~lie-ci risq uc fort d'être refusée par certains serveurs car il
agit d'une adresse invalide (machine. domaine . fr n'est pas kill 'head -1 /var/run/sendmail . pid'
3lide en dehors de chez vous... ). Qui plus est, l'utilisateur moi /usr/sbi n/sendmai l - bd - os
'existe que sur votre machine, pour l'Internet il s'appelle
Jo@mail . fai.fr. 3 Vérification de la configuration
our effectuer cette transformation de moi . machine . domai -
~. fr en ego@mail . fai . fr , sendmail procède en deux temps :
il vérifie que l'adresse de l'expéditeur appartient à l'un des Ce travail effectué, il reste à tester la conf'iguration: plusieurs
omaines spéci11és par la macro GENERICS_DOMAIN solutions s'offrent à nous. Chacune d'elles n'excluant pas l'uti-
si c'est le cas, il recherche une entrée correspondant à cet lisation des autres.
<péditeur dans la table générée à partir de /etc / generics -
~ble . 3. 1 Test d'envoi de courrier local
;i, donc, machine . domaine . fr faisant partie des GENE-
JCS_DOMAIN, l'entrée moi est recherchée dans la table el Créez un fichier test.mail contenant les lignes suivantes :
:mplacée par ego@mail . fai . fr. On notera que le même effet
urait été obtenu avec une ad resse d 'expéditeur égale à Subject: test local
)i @machine, moi@localhost ou, tout simplement moi ...
>a ns ce dernier cas, un mécanisme supplémentaire à lieu : moi Première ligne de mon message
.ant une adresse non qualifiée, elle est considérée comme
,cale et la caractéristique always_add_domain commence par ( sans oublier la ligne vide... ).
1i ajouter le nom du domaine et on se retrouve donc dans le
rem1er cas ... et faites :
fous pourrons vé rifier toutes ces transformations lorsq ue
ous testerons plus loin notre con11guration. /usr/sbin/sendmail - v moi< test .mail
our des raisons d'efficacité, la table de réécriture doit être
·ansformée en un format plus rapidement accessible à send- les lignes suivantes doivent s'afficher :
ül qu'un simple fichier Lexte. La commande permettant de
~nérer la table au fo rmat vo ul u à partir du fichier texte est la moi ... Connecting to local . . .
1ivante: moi . .. Sent

1sr/sbin/sendmail -bi - oA/etc/genericstable Lancez la commande mail, ou tout autre programme de lec-
ture d u courrier el véri11ez que le message a été reçu et contient
ous pourrez vérifier qu'elle a produit un 11chier / etc/ gene- les lignes suivan tes :
~cstable . db dont le contenu vous échappera sans doute... From root Tue Jun 23 02 : 17 : 40 1998
ien entendu, cette commande doit être faite après chaque Return-Path : <root>
1odification du fic hier texte original. Received : (from roo t @localhost)
>e même, si vous avez modifié le fichier /etc/aliases, il fau- by machine .domaine.fr (8 . 8.8/8 . 8 . 8/Eric Jacoboni
ra a lors utiliser la commande newaliases pour regénérer la - 26/05/98) id CAA03468
ase des alias. for moi; Tue , 23 Jun 1998 02 :17 : 40 +0200

NUX • DECEMBRE 98
Date: Tue , 23 Jun 1998 02:17:40 +0200 Attendez un peu, puis faites un fetchmail pour récupérer
From: root <moi@mail .fai. fr> les nouveaux messages sur le serveur pop de votre F.A.I.
Message-Id: <l99806230017.CAA03468@machine. doma ine.fr> Normalement, vous devez récupérer un message, celui qui
Subject : test loc a l vous a été renvoyé par le réflecteur. Lisez-le à l'aide de votre
< programme de lecture de co urrier afin de vérifier les en-têtes
Première ligne de mon message de votre message tel qu'il a été reçu par le réjlectew:

Ce simple petit test nous permet de constater que sendmai 1 Cc qu'il est important de noter est la première ligne, dite
est bien capable d'acheminer le courrier en local et qu'il a su " From d'enveloppe ", commençant par From (et qu'il ne faut
réécrire l'adresse de l'expéditeur ( root) en moi@mail. fai. fr surtout pas confondre avec la ligne d'en -tête commençant par
selon la règle de réécriture décrite dans Je fichier / etc/ gene- F'rom: ! ). Elle doit contenir votre adresse tell e que vous l'avez
ricstable configurée pour l'enveloppe, et, en aucun cas, l'adresse de
votre machine (celle qui apparaît dans la dernière ligne recei-
3.2 Utilisation de r éflecteurs et envo i du cou rri er ved), sinon certains serveurs la rejetteront.

Un réflecteur est une machine qui reçoit nos messages et nous 4 Sources d'i nformations
les renvoie après avoir copié l'en-tête de notre message tel qu'il
a été reçu . Ceci est plus sùr que de s'envoyer un message à soi-
En dehors du site de Jussieu , le si te " officiel " de sendmail est
même car, alors, sendmail peut très bien avoir réécrit cet
http://www.sendmail.org. Vous y trouverez tout mais en anglais...
en-tête (ceci ne veut pas dire qu'il ne faut pas tester cette
, notamment, le répertoire m4 conprenant la description exhaus-
méthode, mais qu'elle est un nécessaire non suffisant. .. ). Une
tive des macros utilisées pour créer les fichiers de configurati on ..
réponse d'un réflecteur prouve que la chaîne de messagerie
Le forum fr. camp . mai 1 est l'endroit où vous pourrez pos- ·
fonctionne (on peu t émettre et recevoir) !
ter vos questions en n'oublian t pas que celui-ci n'est pas réser-
vé aux utilisateurs de Linux et traite de façon générale de tous
P lusieurs réflecteurs existent : parmi eux, echo@cnam.fr et
les problèmes de courrier. Le forum comp. mai 1. sendmail est,
echo@univ-rennesl.fr. Le mi e ux est de tester les deux.
lui , uniquement consacré à ce programme, mais il est en
Bien sùr, il faudra avoir installé un logiciel pour écrire et rece-
anglais et est plutôt ardu à suivre : c'est là que vous pourrez
voir du courrier en utilisant sendmai l. Nombreux sont ces
trouver ceux qui écrivent leur sendmail . cf à la main .. .
programmes : certains fonctionnent en mode texte (pine,
Le document /usr/lib/sendmail-c f/README de la dis-
elm, etc. ) , d 'a utres nécessitent X (xfmail, xmail etc .).
tribution sendmail décrit l'emploi des macros M4. Le manuel
Théo riquement, vous devez au moins avoir le programme
de sendmail est di sponible au format PostScript (sur ma
mail qui se trouve d ans le répertoire /b in : ce 11'cst sûre-
machine, il s'agit de /usr / doc/sendmail /doc /op / op.ps) . JI
ment pas le plus pratique à utilise r mais il peut suffire pour le
ex iste aussi une }AQ. Le site de référence est http://www.send-
moment.
maiJ.org.
Bon, admettons que tout fonctionne en local. Essayons main-
Eric Jacoboni
tenant avec une adresse non locale : celle d'un réflecteur, par
exemple. Écrivez un message à l'adresse echo@cnam.fr, et,
toujours déconnecté, envoyez-le. Ainsi que nous le dision s plus
haut, ce message est placé dans /var / spool / mqueue. En
fait , il y est représenté par 2 fichiers : l'un constit ue l"' enve-
loppe " et l'autre le " contenu " .

À tout moment, vous pouvez interroger la file d'attente par la


commande mai lq qui ici, doit vous indiquer qu'un message '
à destination d' echo@cnam.fr est en attente. Connectez- _problfat~s liés àux résea . . ..
vous à votre F.A.l puis invoquez la commande suiva nte : dater bien que les concep s principaux i' -
sJ de toùCes façons. Ce livre est ·égaler
' ' chargea · . · ·
/ usr/ sbin/sendmail -q

L'option -q oblige sendmail à tenter d'envoyer tous les


messages en attente.

Lorsq ue cette commande est exécutée, vous pouvez vérifier avec


rnailq que la file d'attente est vid e : vos messages sont partis.

LINUX - DECEMBRE 98
,
CREER DES PAGES DE
MANUEL
_,orsque l'on crée un logiciel, la documentationjointejoue un rôle important dans son succès. Sous
_,inux, la première aide que l'on puisse apporter à l'utilisateur prénd la forme de man pages ou, en bon
iw1çais, de pages de manuel. Celles-ci portent habituellement le nom du programme et sont appelées par
1 commande man suivie du nom en question. Cet article décrit la création d'une telle page.

LES MAN PAGES dans l'arborescence du système pour le consulter avec la commande
man.
Les personnes ayant déjà utilisé TeX ou un langage comme
;i vous jetez un oeil dans l'arborescence du système Linux,
HTML retrouveront facilement leurs marques avec grojf
'OUS trouverez dans /usr/man, un grand nombre de répertoires
Utilisé pour la création des man pages, groff vous permettra
omprenant des fichiers avec une extension .gz. Il s'agit des
également de créer des documents PostScript ou DVI.
,ages de manuel classées par catégorie et compressées par
Afin de bien comprendre le fonctionnement de grojj; jetez un
' utilitaire gzip .
petit coup d' oeil à l'exemple en figure 1. On peut constater de
prime-abord que certaines commandes de formatage reviennent
,es différentes catégories de man pages sont:
à intervalles réguliers. Voyons ensemble leurs significations :
. TH définit le titre de la page ; Ici LMAG suivi de la date
- Commandes utilisateurs
. SH décrit un début de section comme par exemple N OM ,
:- Appels systèmes
SYNOPSIS, etc.
,- Fonctions des bibliothèques
.SS annonce le début d'une sous-section (ici, les options)
.- Fichiers spéciaux
. TP permet de définir chaque entrée d' une liste. Dans notre
;- Format de fichiers
exemple, il s'agi t de la liste des options.
'- Divers
:- Administration système
D 'autres commandes de formatage permettent de mettre des
éléments du texte en valeur par rapport à l'ensemble.
o utes les man pages respectent la même organisation. En
ffet, lorsque vous visualisez une page, les informations sont
VP permet de revenir à la police (font) précédemment utilisée.
Cette commande s'utilise après un changement avec les com-
lassées de manière stricte. On retrouve, dans l'ordre, le nom
mandes qui suivent.
lu logiciel (NOM) , un synopsis présentant les options
SYNOPSIS), un descri ptif comprenant les explications des
VBacti ve le passage en mode gras (bold) pour le texte qui suit
j usqu'à \fP
,ptions (DESCRIPTION), les fichiers concernés
FICHIERS), les liens vers d'autres ma n pages (VOIR
VI active le passage en mode italique de la même manière que
\fB.
\U SSI), d 'even tuelles notes (NOTES) , une signat ure
\fR active le passage en police Romande jusqu'au prochain \fP.
AUT EUR) et enfin les éventuels bogues ou problèmes
BOGUES).
;i vous vous lancez da ns la rédaction d'une page man , n' ou- LECTU RE D 'UNE PAGE DE MANUEL
1liez jamais cette convention . C'est clic qui garantie la clarté
le vos explications. Afin de tester votre page toute fraîche, tapez ce qui suit dans
le répertoire où est placé le fichier man (ici lmag. 1) :
REDACTION D 'UNE PAGE groff -Tascii -man l mag .1 1 l ess
Nous appelons l'utilitaire grojf avec les paramètres -Tascü
pour obtenir une sortie ASCIT en ut ilisant les macros man (-
,e programme utilisé pour lire des pages de manuel est groff
man). Nous redirigeons ensuite la sortie obtenue vers la com-
1 s'agit d' un utilitaire de forma tage de texte à l' instar de TeX
mande less avec u n p ipe (tuyau) afin de pouvoir faire défiler le
,u LaTeX. Son mode de fonctionnement repose sur la créa-
texte sur l'écran.
ion d'un script qui sera ensuite interprété par groff. Il en
ésultera un affichage formaté de manière spécifique. Vous
Si vous désirez obtenir un fichier PostScrip t o u DVI de votre
,ourrez ensuite le placer d ans le répertoire prévu à cet effet

NUX - DECEMBRE 98
man page uti lisez le paramètre -Tps ou -Tdvi et redirigez la
sortie vers un fichier.
Exemple:
gr of f -Tps -man lmag.l > lmag.ps
Vous obtiendrez un fichier lmag.ps lisibie avec GhostScript et
imprimable directement sur n'importe quelle imprimante
PostScript.

Finalement, pour installer votre page, copiez-la dans le réper-


toire /usr/man /manl. Elle pourra ensuite êt re affichée avec la ! News Flash E;~t!:~~:~~~:~~-~-~t. . 'P< .. -
c,p..-..,,,..,.,,x,1,.,li::,.,.,..~=" r ..,,6t~,:-.:,·o.r1
commande man lmag. Vous pouvez égalemen t compresser · Linui.: Busin~n. Top 10 c he-1 Surco11f

votre man page avec l'utilitaire gzip _ava nt de la copier en l.t•4l<,-•f,,..,,~!\.!.!E!l"4'~.,,....,.,.,..1,ropc1,,1ccdlr=v<=<H,..


t><cdt"f-<--•

tapant gzip lmag.1. J,inux Cnt'r.ctk ><n'1cl _


(j,L'W\Mod:1l,.,9'1t;.tdl,,-:u;,

m
. TH LMAG 1 16 octobre 1998"
.SH NOM
l mag \ - Linux Magazine France
. SH SYNOPSYS
œ .
N OUVI AUJC
■ R,d!lu• 11n,

• lnf
..,,.ri. ~a1 .Eo:!i1t..r,.... , ....

9$ (~1po1•15.Cll$)
1..., ..

\fBlmag\fP [--version) [-p \ fipage \ fP)


) . SH DESCRIPTION
\fBlmag\fP genère automatiquement une page de Linux Red lla t 5. 1 l n teru:1 110 11:111• I:::1l il ion fnuu,:.ii,c

Maga zine France . ■ AnnontaRad 5.1

. SS Options .

'
■ Ll1ladum1t•r111com p •Ub laRadHallnl1I
;;,,t ~ •

.TP ■ Erut 1Qinér, IR adH•tS . 1

\fB - -version \ fP
■ }'. 11 r; glur,m• nj MNi H~, ~.01•,...,.c::.al><
Affiche l e numéro de version du programme ■ ,\nhl""~~ MNi HIOI
■ .\hmu NlhlU.a1,ur,.OFr,mçal,
,.o
fr'...,Ç.lil~

.TP
\fB-p \ fipage \ fR
spécifie l a page générer . Il sagit d'un numéro de
page .
. SH FI CHIER
.TP
\fC / dev / lmag0 \ fR
Le péripherique de contrôle de la rédact ion de Linux
Magazine
. SH VOIR AUSSI
pao(l), kiosque(l)
. SH BOGUE
Nécessite parfois une relecture orthographique

Ouverture de la nouvelle boutique l undi 28 septembre.

• Tou11t1produlul UNUX,:UN!X
• R.tdHa!Sl ln11lVt";onfr1nç1u -Rtf 1989l•Priir329TTC -
• Open l"'-~ Bnt 12 -Vtrslo:>n Franç,,1, - Rtf 19890. Prl~ 626 TTC ""'"
• Appnwartdlî •Vtrs1onfrançaJu -Rtf 1Sl89S-PriKS48TTC -

men
Une par
Linux é'nfonctiôo es p siicÛlatitées [rânçaise~::.
Si vous êtes déjà possesseur, comme nous, éle l'ouvrage "Le systè- Revendeurs, contactez-nous sur :
me Linux", vous trouverez dans ''Linux ln a Nutshell" un formi- www.kheops-france.com
dable complément.

A LINUX - DECEMBRE 98
GRAVER DES CD AVEC
CDRECORD
'vous avons vu dans le précédent numéro comment créer une image d'un CDROM ISO 9660 avec diffé-
·entes extensions ( Joliet, Rock Ridge, etc... ) . La seconde étape après la création d'une image est le gra-
11age sur CD. L'utilitaire que nous avons choisi de décrire est cdrecord version 1.6. If s'utilise sous forme
i 'une commande à laquelle on passe d~s paramètres.

LE LOGICIEL Seconde étape. Tapez :


cdrecord dev=2,0 -inq
Nous spécifions le périphérique en ID 2 LUN 0 et passons le
::::drecord existe no n seulement sous Linux mais il est égale- paramètre inq po ur obtenir des informations. Cela nous donne :
11en t d isponible pour plusieurs autres systèmes comme scsidev : ' 2,0'
folaris, SunOS et bien sur, les systèmes BSD. Il a été écri t par scsibus: 0 target : 2 lun : 0
loerg Schilling qui continue son développement. Cdrecord se Device type : Removable WORM
xésente sous la forme d'un fichier exécutable unique. Les Version : 2
Jaramètres que nous allons voir ensemble permettent de défi- Response Format : 2
1ir le graveur à utiliser et comment procéder au gravage. Capabi lities
::::drecord sait aussi bien gérer les graveur CDR et CDRW et Vendor_info 'JVC
;e, en SCS I mais également en IDE sous certaines conditions Identifikation 'XR W2010
:iue nous verrons plus loin. Revision '1.51'
Device seems to be: Teac CD R50S .
LES GRAVEURS RECONNUS Notre graveur JVC sera utilisé comme un TEAC CD RS0S.
Dans le cas où le graveur n'aurait pas pu être piloté par
'.::drecord est développé et maintenu sur la base d e quat re gra- Cdrecord, un message comme celui-ci nous aurait été trans-
veurs : COMPRO/Matsushita/Panasonic CW 7501, Philips mis : S01TJ; 110 supported CD Recorderfound on this targe/.
C::DD 2000. TEAC CD R55S et Yamaha CDR 400. Sur cette
base, Joerg a pu développer un suppo rt pour un nombre LANCEMENT DU GRAVAGE
importan t de graveurs (voir liste).
Pour que le graveur puisse être utilisé, il faut avoir installé cor- A présent que nous connaissons tous les paramètres du gra-
rectement la gestion SCSI du kernel. Tout au long de cet veur, il est possible de la ncer no tre première gravu re pa r :
:lrtiele nous partirons du principe que votre configuration
SCSI fonctionne parfaitement. Pour savoir si votre graveur est cdrecord v speed=2 dev=2 ,0 . / test . i so
géré, tapez :
:drecord scanbus A insi, nous la nçons une session de gravage de l'image test.iso
Ceci doit vous afficher q uelque chose comme : en vitesse 2X avec les commentaires activés ( v).
scsibus0 : Cdrecord nous informe du début du gravage par :
0} *
1} * Last chance to quit, star t ing real write i n 9 seconds .
2) 'JVC ' 'XR W2010 ' '1 . 51 '
Removable WORM A ce moment, il est encore possible de stopper le processus
3) * avec CTRL C. Si on laisse le compte à rebours suivre son che-
4) * min, la procéd ure de gravage commencera. Vous reprendrez la
5) * main une fo is le gravage terminé.
6) *
7) *
1ous
EXPLICATION DES PARAM ETRES
en déduisons que notre graveur est connecté au premier
contrôleur SCSI (scsibus0), en ID 2 et qu'il s'agit d'un JVC XR
W2010 version 1.5 1. Cet exemple démontre que Cd record est simple à utiliser mais
bon nombre d'options peuvent être spécifiées, comme :

LINUX - DECEMBRE 98
- version affiche le numéro de version de C d record LE CAS A PART : LES GRAVEURS IDE
- quitte ej ect permet d 'ejecter le d isque après une o pération
- nofix permet de ne pas fixer le disq ue.
D ep uis la version l.6a5 de Cdrecord, il est possible d 'utilise r des
Ceci peu t vous permettre de graver un CD a udio en plusieurs
graveurs IDE sous certaines conditi o ns. E n effet, Cdrecord utili-
fois
se l'émulation SCSI sur le bus IDE po ur accéder a u g raveur.
- fix active la fixation du di sque, c'est-à-dire écrire l'index
E n fait, il s'agit plu s exactement d ' un e émulation du contrô -
(TOC) sur le CD
leur SCSI. Cette émul ati on est p ossible depuis la version
- driver= est une option très d an gereu se dans le sen s o ù elle
2.0.3 1 du kern el. Si votre kernel est plus ancien , vous dev rez
vous permet de spécifier à la m ain le pilote à utiliser. Po ur
vous proc urer les sources et le recompiler.
avo ir la li ste, uti lisez driver=help
· D a ns la co nfi guration du kernel, à la section " Floppy, ID E,
- 'inq rccupère les info rmations à prop os du graveu r et les
a nd other bl ack devices",désactivez le " gencric IDE/ATA PI
affiche
support " et activez l'émulation SCSI.
- reset ordo nne a u grave ur de fa ire un reset du bus SCSI
ATTE TION :
Vous tro uverez l'en semble des explicatio ns à propos des
Ne compilez p as cette émulation en m odule, cela ne fo nction-
opti ons ainsi que des exemples, d a ns la m a n page de cd record .
nera pas ! N'oubl iez pas d 'acti ve r la gestion SCSI.
E nfin , redém a rrez avec le no uveau kernel et fa ites un rcreco rd
scanbus pour conn aître le numéro du graveur.

LISTE DES GRAVEURS COMPATIBLES

COMPRO CW 7S02 (CDD52 I/ I 0 Revision: 2.07 uniquement)


Dysan CR 1622 Philips CDD 522, 2000, 2600, 3600 et 3610
DynaTec CDM 240J (Pinnacle RCD 4x4) Philips Omniwriter 26 et 26A
DynaTec CDM 240 et 400 (driver=yamaha_cdrl 00) Pinnacle Micro RCD 1000 (Revision 2.35 uniquement)
Grundig CDR 100 Pinnacle Micro RCD 5020 et 5040 (TEAC/JVC)
Hewlett Packard 4020i et 6020i Pinnacle Micro RCD 4x4
HP C4324/C4325 (HP SureStore 4020i/6020i) Pioneer DW SI l 4X
HP 7100 et 7110 Plasmon CDR 4220, 41 00 et 4102
Hi Val CD R (Pinnacle RCD 4x4) Plasmon CDR 4400 ( driver=yamaha_cdr 100)
JVC XR W2001, 2010 et 2020 (TEAC) Plasmon CDR 480
Kodak PCD 200, 200 Plus, 225, 240 et 600 Plextor PX R24CS (driver=ricoh_ro 1420c)
Matsushita CW 7502 Plextor PX R4 l 2C
Memorex CR 1622 Procom PCDR 4 (driver=yamaha_cdrl 00)
Microboards PlayWrite 2000 (driver=sony_cdu924) Ricoh RO l 420C, 6200, 62001 et 6201
Microboards PlayWrite 4000 ( driver=yamaha_cdr 100) Smart & Friendly CD R 1002 ( driver=sony_cdu924)
Microboards PlayWrite 4001 RW Smart & Friendly CD RI004 (driver=yamaha_cdrl00)
MicroNet MasterCD Plus 4x4 (driver=yamaha_cdr 100) Smart & Friendly CD R2004 (driver=sony_cdu924)
MicroNet MasterCD Plus 4x6 Smart & Friendly CD R4000 ( driver=yamaha_cdr 100)
Mitsumi CR 2401 TS et CR-2600-TE Smart & Friendly CD R2006 PLUS, 2006 PRO, 4006,
Olympus CDS6 l 5E 4012,RW226
Olympus CDS620E (driver=sony_cdu924) Sony CDU920S, 924S, 926S et 940S
Olympus CD R2x6 (driver=sony_cdu924) TEAC CD R50S et R55S
Optima Dis Kovery 650 CD R (driver=sony_cdu924) Taiyo Yuden CD WO EW 50
OTI CDRW 96S Traxdata CDR 4120 et 4260
Panasonic CW 7502 Turtle Beach 2040R (driver=ricoh_ro 1420c)
Philips CDD 521 Wearnes CD R622 et 632P
(CDD52 l/02 Revision: 2.06 ne fonctionne pas) Yamaha CDR 100, 102, 200,401 , 4001, 2260 et 4260
Yamaha CDR 400 (Revision I .0d)
Philips CDD 521

LINUX - DECEMBRE 98
E2COMPR: -~ystemsJ

LA COMPRESSION fff.i,''.=~~2.~ .·-J ~.-~-l



- - .-~(----·.-----
Y ~ _ , '!' n
:~~- ! - ~ --1; .. n Î
--------------:
L.ZVI aJgonlhrn _ _

LZRWJA~UVTI • _
- -~

_
----' ----:
__

___
~

-~ _j \
f~_\ ;·~:•.;. ,i '. Hetpj

rRANSPARENTE A
GZIPaf{pllhJn • -- - --- -

1_., Y
_~ _'v n BZIPZalgOrilhm(~tai) Hefp j

-~~~~---J
w --~-.___
ÔefaUlt~ptÛ~ -~11:.n -- _
J<_- ~!~_t_ttUtt~rsîH{~ IMsystemblocks,u~w.ity1KBe3Cfl)_
~
~ /

LA CARTE
~orsque vous installez Linux sur une machine ancienne, le problème insoluble est souvent l'espace disque.
Sn effet, la mémoire vive et Le processeur influent sur les perfonnances du systènze. Mais le manque d'es-
1ace disque peut empêcher l'utilisation de Linux. Pour résoudre ce problè,ne, il existe e2comp,:

PRESENTATION fichier test par rapport à sa taille compressée, il faut utiliser la


commande : du -btest . bmp. Cette commande retourne le
nombre d'octets qu'occupe un fichier.
\ l'instar d'utilitaires DOS comme Stacker, e2compr permet
La commande lsatt r nous donne beaucoup d'informations
me compression transparente mais sur un système de fichiers
sur le fichier co ncerné. Celle-ci nous dit bien sûr si il est com-
xt2 (Linux). La comparaison s'arrête là, car la compression
pressé, mais elle nous donne également la taille des blocs
1e s'opère pas sur tout le système de fichiers mais uniquement
(blocksizc) et la méthode de compression, ici gzip par défaut.
ur les fichiers que vous aurez choisis. E2compr se compose
Il ex iste deux autres algorithmes de compression nommés
l'un patch pour le kernel (2.0 .x et 2.1.x) et de différents utili-
l zrw3 et lzvl. Ils sont plus rapides, mais le taux de compres-
aires, eux aussi patchés. L'ensemble de ces éléments sont télé-
sion est moindre.
·hargeables depui s le site principal du projet, http://netspa-
·e.net.au/~reiter/e2compr/
L'un des principaux avantage d'e2compr est de lai sser le choix
à l'utilisateur pour les fichiers à compresser. La commande
UTILISATION chattr R t e / essai/*
vous permettra d'activer la compression dans le répertoire
\près avoir patché le noyau , vous pourrez trouver un nouveau /essai de manière récursive. Tous les fichiers qui seront ensuite
nenu au moment de la configuration de celui-ci , comme le copiés dans ce répertoire seront automatiquement compressés
nontre notre capture d'écran. En activant cette option, vous à leur tour. Voilà de quoi se créer un répertoire d'archivage
1a liderez la compression selon l'algorithme voulu. Dès lors, consommant un minimum de place. La grande utilité
1près redémarrage du système, vous ne verrez rien de neuf (vu d'e2compr se porte sur les fichiers de données comportants de
1ue c'est transparent). nombreux caractères redondants comme les documentations
>our active r la compression sur un fichier, vous devrez utiliser au format texte, HTML ou PS.
a commande modifiée chatt r. Celle-ci vous permettra de
1alider ou de dévalider l'attribut de compressio_n d'un ou plu- NOTES IMPORTANTES
ieurs fichiers. Exemple :
:hatt r te te s t.bmp E2compr n'en est qu'au stade alpha. La version que nous
:eci activera l'attribut c de compression, la commande avons testé est la 0.3 pour le kernel 2.0.30 . Nous n'avons ren-
.sattr t est .bmp contré aucun problème majeur. Le seul souci a été de devoir
rous donnera comme résultat modifier un fichier Con f ig. i n dans le répertoire
c 32 gzip9 test .bmp /usr/src/linux/f s en encadrant i386 par des guillemets car la
:onfirmant que l'attribut est bien positionné et que le fichier commande make xc onfig générait une erreur.
: t a lors compressé. La documentation d'E2compr averti l'utilisateur : TL NE
: n tapant la commande l s t es t .bmp- 1, nous remarquerons FAUT PAS COMPRESSER L'IMAGE DU KERNEL OU
1ue la taille du fichier est la même. Normal ; Une des proprié- LE SWAP et ceci sous peine de très gros ennuis. Si vous n'avez
és d' E2compr est de faire croire à l'utilisateur que les fichiers jamais compilé de noyaux Linux ou que vous ne vous sentiez
ont les originaux! . Pour comparer la taille d'origine de notre

.INUX - DECEMBRE 98
pas absolument expérimenté pour cette opération, nous vous
déconseillons d'installer E2cornpr. Vous voilà prévenu ... A
..
41
KickStart
Depuis la version 5.0 de Linux RedHat, un utilitaire peu connu appelé KickStart est livré avec. Il vous
permet de personnaliser et d'automatiser l'installation d'une distribution Linux RedHat, en sautant bon
nombre de choix qui sont proposés dans l'installation class;que. KickStart ne s'arrête pas là. Il permet de
lancer des commandes shefl immédiatement après l'installation, ceci afin d'installer des packages externes
ou des programmes "maison".

Grâce à KickStart, il vous sera possible de prédéfinir les promp t 0


options su ivantes à l'installation d'une distribution RedHat : label ks
- sélection de la langue; kerne l vmlinuz
- configuration réseau et sélection des sources de la distribution; append ks= f loppy i ni
- sélection du clavier; trd=ini t rd.img
- installation de l'u tilitaire de démarrage (ex : lil o);
- partitionnement du disque et création du système de fichiers; FICHIER DE CONFIGURATION KICKSTART
- sélection de la souris;
- configuration du serveur X-Window; Informations système
- sélection de la zone géographique; Attention, certains paramètres comme la gestion des parti-
- sélection du mot de passe de l'utilisateur rool; tions sont à utiliser avec un maximum de précaution . Véri fiez
- sélection des packages à installer. deux fois votre fichier pour ne pas créer un effaceur de disque !
Voici les divers paramètres que vous pouvez spécifier :
CONFIGURATION MINIMUM - La langue utilisée à l'insta llation, pour l'anglais : l ang en
-La configuration du réseau , pour utiliser BOOTP/DHCP uti-
KickStart peul être utilisé de deux manières différentes. La pre- lisez :
mière façon de procéder est de copier le fichier de configuration network - - boot p
de KickSta rt sur une disquette d'amorçage Red Hat. La seconde - La source d'installation comme le CDROM : cd rom
est d'utiliser une disq uette d'amorçage classique et de récupérer - Les paramètres d'un périphéri que comme une carte réseau :
ce fichier de configuration via le réseau (nous n'en parlerons pas device e thernet 3c509 - -opts "io=0x330 , irq=7"
ici). Quelle que soit la manière de procéder, vous aurez besoin de : (d'autres valeurs pour device sont possibles, s c si pour les
contrôleurs SCSI et cdrom pour les gestionnaires de CD-
- une machine à processeur Intel (famille i386) ROM)
- un fichier de configu ration de KickStart - Le serveur NFS et le répertoire à partir duq uel l'insta llation
(voir plus loin) devra se faire: nfs --server t r ucmuche . org / mnt / cdrom
- une disquette Boot RedHat qu'il conviendra de créer depuis - La nationalité du clavier, pour un clavier angla is: keyboard uk
le C DROM - L'effacement du secteur MBR (dangereux) : zerombr
- des entrées DNS pour les adresses IP que vous allez utiliser, - L'effacement des partitio ns déjà existantes avant installa-
ceci évitera de spécifier le nom de domaine de la machine tion : clearpart - all
- Le partitionnement du disque, exemple créer une partition de
CREATION DE LA DISQUETTE 700Mo :part / --size 500
- Le lancement d'une installation : install
Vous devrez simplem ent copier le fichier de configuration - ou la mise à jour d'un système : u pgrade
KickStart s ur la disquette de Boot issue du CDROM. Lors de - L a définition du type de souris, ici une PS/2 : mouse ps/2
la copie, vous lui donnerez le nom k s. cfg : - Les paramètres d'installation du serveur Xwindow, exemple :
mcopy ks .cfg a : xconfig -- server "Mach64" --monitor "tatung cml4uhe"
Lorsque la disquette est bien remplie, il sera nécessaire d'y - Le paramètrage du fuseau horaire, fuseau an gla is (Londres) :
faire un peu le ménage. Vous pourrez, par exemple s upprimer timezone - - utc Europe/London
les fichiers messages qui sont normalement affichés : - Le mot de passe du root à partir d'un mot de passe déjà cryp-
::adel a : .msg té: rootpw - - i scrypt ed XaacoeGPmf/A .
Ensuite, il vo us faudra éditer le fichier de configuration sysli- - L'installation du chargeur LTLO s ur le MBR :
1111x. cfg. Celui-ci est situé à la racine de la disquette d'amorça- l i lo -- l ocation mbr
ge. Voici un exemple de fichier de configuration permettant de - Les p ackages à insta ller (voir chapit re s uiva nt)
passer au tomatiquement en mode KickSta rt: - Les commandes à la ncer après installation (vo ir plus bas)
default ks
Le répertoire da ns lequel KickStart cherche la distribution

LINUX - DECEMBRE 98
Red H at doit conteni r un sous-répertoire RedHat. Celui-ci devra Lancer des commandes post-installation
~on teni r la distribution selon une arborescence comme : Il s'agit là de la fonction la pl us pratique de Kickstart. Le
script d'installation permet de lancer des commandes shell
/cdrom/RedHat automatiquement. C'est très utile pour paramétrer d'avance
/ cdrom/RedHat / base d es alias par exem ple.
/ cdrom/RedHat /c ontents Le paragraphe décrivant les commandes post-installation
/ cdrom/RedHat /i38 6 débute avec la mention o/opos t.
/ cdr om/RedHat /inst i mage Exemple:
/ Cd-rom/RedHat /RPMS %post
/ cdrom/RPM-PGP-KEY echo alias ls='ls - -color=tty -F -b -T 0' >>
/etc /bashrc
Voici u n exemple de fichier de configuration ( !ère partie):
lang en Ceci permettra de créer un alias de la commande ls qui lan-
1et work --bootp cera ls --color=tty - F -b - T O. Il est même possible c.i'i ns-
1fs --server chicken . swedish-chef . org / mnt /cdrom taller des RPM que vous avez créés, exem pie :
keyboard uk rpm -i /mnt/cdrom/ rpms /trucbidule . rpm
zerombr yes
:learpart --all
INSTALLATION
~art / - -size 500
~ar t swap --size 120
Une fo is le fichier de configuration copié sur la disquette tel
install
que mentionné plus haut, il vo us suffira de démar rer la
nouse ps/2
machine à partir celle-ci. Au momen t d u démarrage, au lieu
timezone --utc Europe/London
de valider à l'invite, entrez Linux ks.
roo tpw --iscrypted XaacoeGPmf/A .
Si tout se passe correctemen t, les manipulations au clavier
l ilo --location mbr
doivent s'arrêter là.
Si KickStart n'arrive pas à déterminer ce qu'il doit faire, une
Ceci déb utera une installation en anglais à partir d'un serveur
boîte de dialogue s'affichera en vous proposant les choix pos-
NFS chicken.swedish-chef.org après avoir supprimé les parti-
sibles. Le cas le plus fréquent est le problème de détection de
tions ex istantes sur le disque. Le système sera configuré sur
la carte réseau, KickStart vous demandera alors de préciser
une partition d e 500 Mo et un swap de 120 Mo, il utilisera une
l'IRQ et l'adresse de la carte.
souris PS/2 et une zone horaire anglaise. Nous définissons
également un mot de passe crypté pour l'utilisateu r root.
MODIFICATION DES DISQUETTES
Configuration des packages
Pour spécifier les packages à installer, il faut créer un nouveau La disquette d'amorçage RedHat nommée boot . img est l'ima-
paragraphe dans le fichier de configuration. Celu i-ci débutera ge d'une disquette MS-DOS. La disquette supplém entaire
avec la m enti on %packages . li est ainsi possible d 'installer s upp. img quant à elle est au format Linux ext2. Pour modifier
des packages ou des groupes de packages appelés compo- ces images, vous devrez les monter dans un répertoire.Dans un
ne nts. Pour connaître la liste des divers packages et compo- premier temps vous devrez créer deux nouvea ux répertoires :
nents, consultez le fic hier /RedHat/base/comps . Les mkdir -p /mnt/boot /mnt/supp
compon ents sont précédés d 'un chiffre e t d'un espace à la dif- Ensuite, vous pourrez monter les deux images de disquettes par:
fére nce des packages, qui eux, ne le sont pas. mount - o loop - t msdos boot . img /mnt/boot et
Voici un exemple de la section %packages d'un fichier de mount -o loop -t ext2 supp . img /mnt/supp
co nfig uratio n de KickStart :
Le paramètre -o loop permet de monte r des images de systè-
%packages me de fichiers. Cette option permet également de monter une
@ Base image de C DROM i so. (mount - o loop -t iso9660
ne tkit-base image . cd /mnt /cdrom) .
traceroute Bien sür, il est toujo urs possible de monter les véritables disquettes
bsd- games plutôt que leurs images. Mais c'est tellement plus gracieux ...
@ X Window System
@ C development
REMERCIEMEN T S
Cet a rticle est inspiré du KickStartHOWTO de Mar tin
Ceci permettra d 'insta ller les groupes de packages Base, X
Hamilto n . Consultez ce document sur l'un de vos serveurs
winc/0111 System et C développent ainsi que les packages netkit-
Linux préférés pour plus d 'informations sur KickStart.
base, traceroute et bsd-games.

.I NUX - DECEMB RE 98
LINUX FAIT LE CAFE
La plus énervante des remarques que l'on puisse
entendre à propos d'un logiciel, est le fait qu'il ne
sache pas faire le café. Georgatos Photis a donc
écrit le Coffee HOWTO. A présent Linux sait
faire le café, et de plus, il est excellent!
Depuis longtemps, le café est la matière première
de l'informatique. Tout le monde le sait, la pro-
grammation est toujours plus facile de nuit et pour
rester éveillé, il faut du café.

MATERIEL

Le problème principal est le contrôle de la machine à café par


l'ordinateur. Il faut en effet que le PC puisse allumer et
éteindre la cafetière.
Le port le plus facile à mettre en oeuvre pour ce genre de mon-
tage est le port parall èle. Le diagramme général de fonction- LOGICIEL
nement est donné en figure 1.

Pour écrire un programme q ui accède au port parallèle de la


machine, vous devez, dans l'ordre :
- obtenir la permission d'écrire sur le port par une instruction
comme ioperm(BASE, largeur, l);
- envoyer l'instruction sur le port par outb( 1, BASE);
- attendre le temps nécessaire à la confection du café (passé
par un paramètre, par exemple);
- eteindre la machine à café par outb(0, BASE);
- rendre les permissions par ioperm(BASE, largeur, 0).

Pour une machine à café importante, il vaudra mieux utiliser La valeur le BASe est l'adresse du port parallèle où est
un relais. En revanche, pour une simp le cafetière, un montage connecté le montage, 0x3bc pou /dev/lp0 , 0x378 pour /dev/lpl
à Triac suffira. Nous décrirons ici le montage à relais. et enfin 0x278 pour /lp2. La largeur est 8 dans tout les cas .
Les broches importantes du port parallèle sont les sorties
numérotées de 2 à 9, et la masse sur les broches 18 et 25. C 'est N 'oubliez pas de rendre votre programme setuid afin que tous
sur ces broches que sera connecté le montage. les utilisateurs puissent boire du café.
Le schéma du montage est donné en figure 2. La broche 2 du
port paral lèle est reliée à la base du trans istor NPN (2N2222A EXTENSIONS POSSIBLES
ou BC547A) via une résistance de 4,7 KOhm. L'émetteur du
transistor sera relié à la masse et le collecteur sur le bobinage Parmi les extensions proposées par l'auteur du HOWTO, il y a :
du relais. Il suffira ensuite de mettre le montage sous tension - la création d 'un script CGl pour faire du café via Internet;
(Vcc) selon le type relais uti lisé (5 ou 12 Volts). Notez la pré- - Etendre le montage pour faire des toasts ou des tartes aux
ence de la d iode ( 1N4002) destinée à protéger le transistor du pommes;
reto ur de co urant. En l'absence de celui-ci , il y a de fortes - Fabriquer un cluster de machines à café pour augmenter le
cha nces que le transistor devienne sombre el malodorant. rendement;
Il \'O US suffira ensuite de connecter la sortie du relais entre la - Ajouter des capteurs pour connaître le niveau d'eau et de
machine à café et son alimentation. café;
- Créer un montage pour brancher une cafetière sur le port
série à l l 5K/s.

LIN UX- DECEMBRE 98


Diff & Patch
Lorsqu'on se lance dans la traduction ou la modification d'un logiciel libre, il faut trouver une manière
,impie et efjicuce de redistribuer son travail. Pour cela, il faut pouvoir le diffuser le plus Légèrement pos-
,ible. La solution consiste donc à ne distribuer que la différence entre la version originale et la vôtre. En
111 mot, il faut créer un patch.

PATCHER Ensuite, pour créer un fichier de différences, nous utilisons la


commande:

:::e terme désigne l'action d ' appliquer un patch sur un o u plu- diff -c hel lo . c . old hell o.c > hel lo .diff
;ieurs fichiers. En patchant un fichier, vous apportez de maniè-
·e automatique les modifications nécessaires pour le mettre ù Le -c indiquant une comparaison contextuelle, il en résulte un
our. Le patch contient la liste des différences qui existent entre fic hier hcllo.diff qui peut alors être distribué ù toutes per-
'ancienne et la nouvelle version du ou des fichiers. Résultat : sonnes possédant la version a nglaise de hcllo.c.
:c fichier de différences est beaucoup plus léger et s' applique
:n une seule manipulation. Bien souvent, les sources d ' un logiciel ne se limitent pas à un
~a commande utilisée pour appliquer un patch sous Linux seul fic hier. Le programme est réparti sur plusieurs fichiers
;·appelle tout naturellement pa tch. Cet utilitaire, créé par sources qui seront compilés, puis liés (linkcr) pour fo rmer le
:..,arry Wall (créateur de Perl), ne se limite pas ù " regarder" et programme exécutable. La traduction (donc la modification),
:hanger les fichiers. En effet, patch peut réagir en fonction du porte sur plusieurs fichiers et parfois plusieurs sous-réper-
:ontexte et permettre d'appliquer un patch sur des fichiers toires. La m éthode pour créer le patch consiste à modifier les
iéjù modifiés. so urces dans son répe rtoire original, puis à installer les
so urces d ' origine d ans un répertoire différent. Soit le répertoi-
CREATION D 'UN PATCH re /h.old contenant la version anglaise de hello.cet le répertoi-
re /h qui contiendra la version fra nçaise. Placez-vous à la raci-
ne du disque puis tapez:
?our créer un fichier de différences, il fa ut utiliser la comman-
:le diff qui analyse et détermine les "différences contextuelles" di ff - cr h . old h >hello. di ff
mtrc deux fichiers. Celle-ci peut être utilisée de manière récur-
L e fichie r hcllo.diff résultant contiendra les différences
;ive pour analyser les fichiers entre deux répertoires distincts.
contextuelles entre les fichiers du répertoire /h.old (l' o riginal
Voici un exemple concret pour bien comprendre le fonction-
en anglais) et /h (la version française). L e paramètre r passé en
1ement de la commande diff :
complément de -c indique un fonctionnement récursif.
~oit un fichier source en C hello.c.old contenant le texte suivant :

/Demonstr ation file for dif f APPLICATION D 'UN PATCH


/ Creator :Diamonds Edition 1998
=incl ude<stdio .h> Pour appliquer le patch du premier exemple, nous utiliserons :
1oid main (void) {
printf ("Hello World !\ n"); pat ch< hel l o .diff
} da ns le répertoire où figu re le fichier hello.c anglais. L e patch
s'appliq ucra et le fichier hello.c sera modifié pour devenir
Nous le modifions pour en fa ire une version française sous le notre version française.
1 0111 hello.c. Ce qui nous donne :

Dans le cas d 'un patch s' appliquant sur plusieurs fichiers d 'un
/Fichier de démonstration pour di ff répertoire, il faut copier le fichier .diff à la racine du disque ,
/Créateur :Edi t ions Diamond 1998 puis taper:
=incl ude<stdio .h>
Joid main (void) { patch -pO <hello .diff
print f( "Bonj our l e Monde !\n ") ; Le paramètre -pO perme t à patch de travailler de manière
} récursive. Le fichier présent dans le réperto ire /h se verra
modifié pour devenir notre version française.

l!NUX - DECEMBRE 98
,~··
----=·~--~ J
..
J.
Exemple de fichier
MUTT.RC commenté
Mutt est un puissant mailer en mode texte avec des fonctions très utiles.
Il reprend d'ELM la présentation et certains menus, de PINE de nombreusesfonctionnalitéJ~ ce qui en
fait un hybride puissant. Son utilisation est très simple.

A tout moment, par exemple dans un menu, en appuyant sur la touche '?', vous accédez à l'aide correspondant au menu dans
lequel vous vous trouvez.
Outre la gestion de plusieurs boîtes à lettres pour un même utilisateur, Mutt permet de gérer les messages reçus des mailing lists,
de les afficher selon une arborescence que l'on peut paramétrer et de trier les messages en fonction de critères que l'on a choisi.
Bien qu'il soit en mode texte, le paramétrage des couleurs donne une très bonne lisibilité et le rend convivial.

La configuration :

Afin d'exploiter toute la puissance de Mutt, il est nécessaire de connaître son paramétrage.

Plusieurs fichiers de configuration peuvent être utilisés :

un fichier pour la configuration système de Mutt (Muttrc)


un fichier pour la configuration utilisateur (~/.muttrc) qui prévaut sur le fichier Muttrc.

Le fichier M uttrc est placé généralement dans le répertoire /usr /loca l / share lors de l'installation de mutt.
Celui-ci suffit pour utiliser ce mailer avec les options par défaut. Mais pour exploiter toute sa puissance, l'utilisation d'une confi-
guration personnalisée devient vite indispensable.
Il vo us faut alors créer un fichier ~/.muttrc, où vo us allez placer tous les paramètres que vous voulez changer par rapport à la
configuration par défaut.
Le fichier .muttrc va remplacer les paramètres par défaut par ceux que vous aurez définis.

Ce fichier ne reprend pas la totalité des options de Mutt car elles sont trop nombreuses, mais devrait vo us permettre de décou-
vrir la richesse de ses fonctions et vous donner envie de l'utiliser.
Si vous souhaitez utiliser cc fichier, vous pouvez le télécharger à partir de ftp://ftp.netliberte.org/pub/Linux/mutt/muttrc.tar.gz

# .mutt r c
#
# Le f or mat de ce f ichie r est :
# une commande par ligne
# tout ce qui se t rouve derr ière le dièse (#) est pris comme un commentaire sauf si un backslash (\) le précède .

# Note : $folder doit être initialisé AVMlr tout aut re var iable contenant un chemin où les signes '+ ' ou'=' sont utilisés .

set folder=- /Mail # Répertoire utilisateur pour stocker les mails (à ne pas confondre avec la boîte ou arr ive
# les nouveaux messages ... )
set abort_u.T111lodified=yes # Abandonne automatiquement la réponse si le message n'a pas été modifié
set alias_fi l e=~/ .mai l_al iases# Fichier contenant l es alias
set arrow_cursor # Utilise > à la place de la ligne en surbrillance lors du déplacement dans l a liste des messages
~set asci i_chars # Utilise ies caractères ASCII à la place des caractères graphiques pour afficher l a hiérarchie
# des messages
=set askbcc # Lors de l'écriture d'un nouveau message, demande la sai si e du champ 'bec' . Si le champ vous est
#automatiquement demandé , vous pouvez l'inhiber par l a commande 'set noaskbcc '
=se: askcc # Comme pour le champ 'bec' vous pouvez forcer la demande de saisi du champ 'cc' . Si celui-ci
# vous est automatiquement demandé, vous pouvez l ' inhiber par la commande ' set noaskcc'
#set attribution=" Le %d, %n écrivai t : " # Horodate le message d ' origine lors de l'envoi d 'une réponse
set autoedit # Passe directement dans l ' éditeur de texte lors de la composition d'un message .
# NarE : Lorsque cette option est active, les paramètres askbcc, noaksbcc, askcc et noaskcc sont inutiles .
#set auto_tag # Si l'option est active, l a prochaine opération sera automa t iquement appliquée au message sél ectionné ( *) .

A LINUX - DECEMBRE 98
,t charset="iso 8859 l " # Sélectionne la page de code iso 8859 1 pour votre terminal
,t noconfinnappend # Lorsque cette option est active et que vous sauvegardez un message, aucune confirmation ne vous est
# demandée
,t confirmcreate # Cette option permet de confirmer la création d'un nouveau fichier de sauvegarde des messages
,t copy=yes # Garde aut omatiquement une copie des messages envoyés
,t delet e=yes # Lorsque vous qui ttez mutt , les messages effacés (D) sont automatiquement supprimés de votre
# boî te aux lett res
,t edi t _headers # Autorise l'édition de l' ent êt e d'un message .
NOTE: Si cette option est i nact ive, il peut s ' avérer utile d' activer les options askbcc et askcc
;et edi tor=" emacs nw" # Vous pouvez ici choisi r l'éditeur que vous voulez utiliser pour éditer vos messages
;et fcc_attach # Cette option permet de choisir si l ' on veut ou non envoyer le(s) fichier(s) attaché(s) au(x)
# destinataire(s) mentionné(s) en copie (cc et/ou bec)
;et force_name # Force le nom du f i chier de sauvegarde. Celui-ci prendra automati quement le nom de l'expéditeur du message
;et forward_decode # Décode les messages forwardés au format MIME

;et forward_format=" [%a: %s]" # Définit le sujet des messages que vous réexpédiez (forward)
;et forward_gu9te # Délimite 1 'entête ·et le corps des messages que vous réexpédiez
,t hdr_format ="%4C %Z %{%m/%d} % 15 .15F (%4c) %s" # Format de chaque l igne de l'index des messages
;et hdr_format="%4C %Z %{%m/%d} [%2N] % 15 .15F (%4c) %s # Ceci est un autre exemple.
~es variab:es suivantes peuvent êt re utilisées dans le format :
%a adresse de l'auteur du message
%b nom du fichier de sauvegarde d'origine
%8 liste des destinataires du mail, sir.on nom du f i chier (%b) .
%c taille du message
%C numéro du message courant
%d date et heure du message dans le format spécifié par ''date_format''
%f champ From: comple (adresse+ nom réel)
%F Nom de l ' auteur, ou nom du destinataire si le message est de vous
%i message id du message courant
%1 nombre de lignes du message
%L nom réel de l ' émet teur du message
%m nombre total de messages dans la boîte aux lettres
%N score
%n Nom réel de l'auteur (ou adresse si le nom est inconnu)
%0 liste ( ou expéditeur si il n'y a pas de liste) auquelle est ratachée le 1Œssage
%s sujet du message
%S statut du message {N/D/d/ ! /* /r) (N=Nouveau; D=Effacé; ! =Important; *=Marqué; r= répondu
%t champ 'to:' (desti nat aire)
%T Caractères correspondants à la variable $to_chars
%u login de l'auteur
%Z état àu message
%{fmt} :a date et l'heure sont converties au fuseau horaire de l'expéditeur
%[fmt) :a date et l'heure sont converties au fuseau horai re local
%( fmt) date et heure locale de réception du message
%<fmt> date et heure locale courante
%>X justifie la ligne à droite et complète avec le caractère X
NOTE : le caractère X peut êt re remplacé par n ' importe quel autre caractère
%IX complète la ligne avec des X (ou tout autre caractère)

,t hdrs 4 inclut le contenu de la variable 'my_hdr' dans les messages envoyés (sauf les réponses)
,t header ~ inclut l 'entête du message d 'origine lors de l'envoi d'une réponse
,t help # affiche la ligne d' aide
;et history=20 F nor.bre de lignes à conserver dans l'historique
NOTE : l ' historique est utile uniquement si vous avez désactiver l'option sec autoedit'.
Vous pouvez rappeler le contenu des champs avec les touches du curseur .
,t hostname="netliberte .org" # votre nom de domaine
,t include # inclut le message d'origine dans les réponses
,t indent_string= "> " # définit le marqueur pour délimiter le message d' origine
;et locale="C" # local e to use for printing time (???)
;et mailcap_path="-/ .mailcap: /usr/local/share/mailcap" # Chemin où se trouve le fichier mailcap
NOTE: Vous pouvez personnaliser ce fichier (-/ .mailcap)
?t mark_old # Marque les messages non lus depuis la dernière ouverture de Mutt
,t mail_check=l0 # Délai de rafraîchissement de la boîte aux lettres (en minutes)
,t mbox=+mbox # définit le nom du dossier où seront enregistrés les messages lus
;et metoo # supprime l'adresse de l ' expéditeur lors d 'une réponse
,t mime_forward # utilise le type RFC822 lors du forward d'un message
,t move=yes # lorsque vous quittez mutt, cette option permet de dépl acer les messages lus sans poser de question
;et pager=less # vous pouvez ici définir les pages de votre choix
,et pager_context=3 # nombre de lignes de contexte à conserver lors d'un scrolling
NOTE : Cette option n'est utile que si 'set pager' a été déf:ni

INUX · DECEM BRE 98


#set pager_format=" %S % 20.20f %s" # format de la barre d'état lorsque vous consultez un message
# NŒE : vous pouvez utiliser les mêmes variables que pour ' set hdr_format'
set pager_index_lines=6 # nombre de lignes d'index a afficher lorsque vous consultez un message
#set pager_stop # ne passe pas au message suivant sur la prochaine page
#set pgp_strict_enc # use Q P encoding when needed for PGP (???)
set postponed=+postponed # mailbox où seront stockés les messages que vous ne souhaitez pas envoyer immédiatement
#set post_indent_string=' Fin du message d'origine ' # util isé pour marquer la fin du message d'origine lors d'une réponse
#set print=ask yes # demande une confimation avant d'imprimer le message
set print_command=/bin/ false # définit la commande d' impression
#set prompt_after # demande la commande à exécuter lorsque vous quittez la page externe
#set quote_regexp='" *[a zA Z]* [>:#}]" # permet d'identifier le texte des messages précedents
set read_inc=25 # lorsque vous l isez votre mail, mutt vous affichera tous les 25 (dans l'exemple ) mails un message
# d'avancement
# dans la lecture de votre courrier. Vous pouvez indiquer la fréquence que vous souhaitez. Si O est défini, mut t
# vous affichera un message AVANT la lectu~e de vos mails.
#set recall # si l'option est active, dés que envoyez un nouveau mail, mutt vous propose automatiquement le
# message dont l'envoi avait été différé.
# dans le cas contraire, mutt demande si l'on veut ou non reprendre l'envoi du message différé .
set record=+outbox # fichier où sont sauvegardés l es courriers expédiés
set reply_to # utilise toujours le champ 'reply_to' si il est présent
set reply_regexp=" A(re: [ \t]*)+" # le modèle contenu dans cette option permet d'identifier une réponse dans un sujet
#set resolve # passe au message suivant lorsque qu ' une action est exécutée
#set reverse_alias # Remplace l ' alias par l'adresse email
set reverse_name # utilise votre adresse telle qu ' el le apparait dans le message auquel vous répondez
set nosave_empty # Supprime les fichiers de sauvegarde ne contenant pas (ou plus) de mesages.
#set save_name # Lors de la sauvegarde d'un message, cette option propose automatiquement le nom de
# l'expéditeur comme nom de fichier.
#set sendmai l ="/usr/ lib/ sendmail oi oem" # Paramétrage pour l 'envoi des mails
#set shell=" /bin/ zsh " # shell à utiliser pour l'exécution des commandes (lors de l'appui sur la touche!)
#set signatur e="-/ . signature" # définit le fichier qui contient votre signature

# Si vous êt es abonné à de nombreuses mailing listes, les options suivantes vont vous être d'un grand secours.
# Elles vont vous permettre de mieux suivre les discussions en les organisant en thread et en les triant .
set sort =threads # Définit la première méthode de tri. d'autres méthodes de tri sont possibles
# date sent par date d'envoi
# dat e r eceived par date de réception
# from par expéditeur
# mail box order non triée, ou plus précisement par ordre d'arrivée
# score (??? )
# subject par sujet
# threads par thread
# to votre adresse email (util e si vous en avez plusieurs)

# Tous les t ris sont effectués par ordre croissant. Vous pouvez effectuer des tri dans l'ordre décroissant en
# préfixant les options avec 'reverse ' .
# Exemple :
# tri dans l' ordre croissant des dates d ' envois > set sort=date sent
# tri dans l'ordre décroissant des dates d'envois > set sort=reverse date sent
#set sort_aux=reverse date received # Définit l e tri des sub threads. Vous pouvez utiliser les mêmes méthodes de tri que pour l 'option 'sort 'set
sort_browser=reverse date # Définit la méthode de tri des fichiers lors de l'affichage du contenu d'un répertoire
set spoolfile='-/mailbox' # fichier où se trouvent les nouveaux mails
#set status_format=" %r Mutt : %f [Msgs: %?M?%M/ ?%m%?n? New :%n?%?d? Del:%d?%?F? Flag:%F?%?t? Tag :%t?%?p? Post:%p?%?b? Inc:%b? %1] (%s) %>
(%P)
# Vous pouvez avec cette option paramétrer la barre d'état qui se trouve par défaut au bas de l'écran .
# Pour se faire vous pouvez utiliser les mêmes variables que pour l'option 'hdr_format'
# set status_on_top # Si vous préférez la barre d'état en haut de l'écràn , activez cette option
# set strict_threads # Si vous ne souhaitez pas que vos thread soit triées par sujet, activez cette option
set tilde # Marque l es lignes vides (sans CR ni espace) dans l'éditeur
set timeout=600 # Ce délai permet à Mutt d'attendre 10 minutes qu'une touche soit pressée. Passé ce délai il rafraichi l a
# liste avec les nouveaux mails.
#set trnpdir=- / trnp # répertoire où seront placés les fichiers temporaires
sec to_chars=" +TCF" # Cette option vous permet d'identifier les mails qui vous sont destinés :
Le premier caractère identifie les mails qui ne sont pas envoyés à votre adresse (défaut : [espace]}
Le second est utilisé lorsque vous êtes le seul destinataire du message (défaut : ' +'}
Le troisième repère les mails dont le champ 'To : ' contient votre adresse, mais que vous n'êtes pas le# seul destinataire .
~ Le quatrième identifie les mail s contenant votre adresse dans le champ 'cc : ' , mais vous n êtes pas le# seul destinataire.
1

# Le dernier caractère indique que le mail a été envoyé par vous .


#set use_8bitmime # Active l 'option B8BITMIME de sendmail
sec use_domain # Qualifie votre adresse email avec le nom de domaine contenu dans $hostname .
# si vous ne souhaitez pas qualifier votre adresse email, préfixez l'option avec no (nouse domain).

A LINUX - DECEMBRE 98
=t use_from # Renseigne toujours automati quement l e champ 'From:' dari_s l 'entête des mail s
=t use_mailcap=yes # Trois choix sont pessibl es peur définir cette option
yes Utilise toujours les ent rées du fichier mailcap lorsque cela est possible peur afficher les entrées MIME.
ask : Demande si l'affichage doit être fait en texte ou au format MIME
no : Affiche toujours les entrées MIME comme du t exte
=t pgp_verify_sig=no # no : ne vérifie pas automatiquement les signatures PGP
yes : vérifie automatiquement l es signatures PGP
;et nowait_key # Après avoir executé une commande dans le shell appellé par la touche·!', cette option vous permet de
# désactiver l'attente de touche .
=C write_inc=25 li Lorsque vous écrivez un message, Mutt vous affichera un message de progression
# tou:es les 25 lignes.
Les deux opcions qui suivent ne sont à utiliser que si vous utilisez sendmail versi on 8.8 .x ou supérieure, ou bien si vous ne souhaitez
pas envoyer de courrier !

;et dsn_notify='failure,delay' # Cetce opcion vous.permet de préciser peur quel(s) évènement(s) vous souhaitez être prévenu . Vous peuvez
spécifier
plusieurs options parmi les sui vant es, séparées par une virgule .
never Vous ne serez préver-u pour aucun évènement
failure Vous prévient lorsqu'une erreur de transmissi on se produit
delay Vous prévient lorsque le dél ai d'expédition du message est dépassé
success Vous prévient lorsque le message a été correctement acheminé . (Accusé de réception)
;et dsn_retum=hdrs # Vous pouvez ici choisir ce que vous souhaitez recevoir de vot re message lorsque vous recevez une notification
hdrs Renvoi uniquement l ' entête du message
full Rer.voi le message complet

Les deux options suivantes n'agissent que sur l'entête des messages
JilOre * ~ ignore toutes les lignes d'entête
La ligne suivante permet de choisir ce que l 'on souhaite voir de l'entête .
Dans l'exemple ci-dessous, ce sont des noms entiers d'options, mais vous pouvez aussi specifier
seulement 'x', dans ce cas tous les champs commencant par x dans l 'entête seront affichés .
1ignore from: subject to cc mail followup to date x mailer x url # Affiche uniquement ces champs
d'entête

Paramétrage des couleurs


Chaque ligne est composée de la manière suivante :
color objet couleur_cexte couleur_fond expression_regulière
couleur_texte et couleur_fond sont obligatoire pour tous les objets, expression_réguli ère ne l'est que pour certains objets .
objet peut être :
attachment couleur des fichiers joints
body couleur de la chaine trouvée par expression_régulière (obligatoire) dans le corps du message
bold couleur des caractères gras dans le corps du message
error couleur des messages d ' erreurs renvoyés par Mutt
header couleur de la chaine trouvée par expression_régulière (obligatoire) dans l'entête du message
hdrdefault couleur par défaut de l ' entête dans l'éditeur de messages
index couleur de la chaine trouvée par l'expression régulière dans l'index des messages
indicator couleur de la barre (ou de la fl èche suivant votre paramétrage) indiquant l e message en cours
markers couleur du signe'+' l ors du passage à la l igne suivante pour une longue l igne dans l'éditeur de message
message couleur des messages d'information de Mutt
normal couleur par défaut
quoted couleur du message de l'expéditeur lors de l 'envoi d 'une réponse
quotedl couleur du message de second niveau lors de l'envoi d'une réponse (vous pouvez aussi définir quoted2, •quoted3,
# . .. etc)
search couleur pour marquer les occurences trouvées lors d'une recherche
signature couleur de la signature
status couleur de la l igne d'état
tilde couleur du'~' marquant les lignes vides
tree couleur de l'arborescence des messages et des fichiers attachés
underline couleur du texte souligné
Les couleurs du texte peuvent être préfixées par 'bright', ce qui aura pour effet de rendre la couleur plus claire .
:or normal white black # couleur par défaut
~or quoted brightblue black # couleur du message de l 'expéditeur lors de l 'envoi d'une réponse
,:or signature red black # couleur de la signature
>lor indicator brightyellow red # couleur de l'index (message en cours)
>:or error brightred black # couleur des messages d'erreurs
rlor status yellow blue ~ couleur de la ligne d'état
:or tree magenta black # couleur des flèches de l'arborescence des t hreads
:or tilde magenta black # couleur du'~• marquant les lignes vides
:or message brightcyan black li
:or markers brightcyan black #
:or attachment brightmagenta black * coul eur des fichiers joints

NUX - DECEMBRE 98
color search black green # couleur pour marquer les occurences trouvées lors d"une recherche
color header brightred black ' (From [Subject) : # couleur de l'entête des messages
color body .magenta black "(ftplhttp) :/ /[' ]+" # couleur pour identifier les URL
col or body magenta black [ a z_0 9. ] @[ a z_0 9.]+ # couleur pour i dentifier l'adresse email
color underline brightgr een black # couleur des mots soul ignés

# Si votre te11ninal ne supporte pas la couleur, vous pouvez utiliser les attributs suivants sur les mêmes objets que pour un terminal couleur :
# none aucun attribut
# bold gras
# underlin souligné
# reverse inverse vidéo
# standout fait ressortir le texte
#mono header underline '(From [Subject) :
#mono quoted bold

# Exempl e de modification de l 'affec tation des t ouches


bind generic "\e<" first entry # \
bind generic \e> last entry # 1

bind generic ( top page # > utilisation de la même affectation que pour emacs
bind generic ) bottom page # 1

bind generic \177 last entry # I


macro index \cb [urlview\n # simule l 'ancienne fonction d'affichage des URL
macro index S s+sparn\n # définit le fichier par défaut pour stocker les spams
macro pager S s+sparn\n #
bind pager G bottom # Utilise G pour se pl acer en début de message (comme vi et less)
#macro pager X " 1morepgpAM" # transmet le message PGP à un script
#bind editor \ cy eol # utilise 'Y pour aller à la fin de l a ligne

# Définition de l 'entête des messages que vous expédiez


my_hdr X Useless Header : Besoin d'un compte Linux ? # vous pouvez intégrer un commentaire personnel
my_hdr X Operating System : 'unarne a' # et aussi utiliser des commandes Linux . Ici, on affichera l ' OS et sa version

# Spécifie l e nom du fi chier par défaut pour la sauvegarde des messages


# Syntaxe:
# save hook [!]<modèle> <nom_du_fichier>
# <nom_du_fichier> est proposé par défaut l orsque vous sauvegardez un message en fonction de <modèle>

#save hook mutt =mut t mail # le répertoire par défaut des messages comprenant 'mutt ' sera 'mutt mai l '
#save hook spammer\ .org +spam # celui des messages en provenance de 'spamrner.org' sera 'spam'

# Sauvegarde des messages après les avoir lus


# Syntaxe :
# rnbox hook [ ']<modèle> <l us rnailbox>
# Après la fermeture de la boîte aux lettres <modèl e> , tous l es messages lus seront déplacés dans le fichier <lus mailbox>.

#rnbox hook =mutt users .in =mutt users


#rnbox hook +TEST +inbox

# Exécution d 'une commande en fonction du destinataire du message


it Syntaxe :
# send hook [!]<modèle> <commande>
#
#Lacommande <commande> est exécutée lorsque vous envoyez un message à une adresse comprenant <modèle> .

#send hook mutt 'set signature=- / .sigmutt ; my_hdr From: Mutt User <user@example .com>'

Spécifie où seront sauvegardés les messages envoyés


Syntaxe :
fc c hook [!]<destinataire> <f ichier>
tous l es messages envoyés à <destinataire> seront sauvegardés dans <fichier>.

#fcc hook joe +joe


#fcc hook bob +bob

LINUX - DECEMBR E 98
Modification du paramétrage de Mutt en fonction de l a boîte aux lettres
Syntaxe :
folder hook [!)<modèle> <corranande>
La comi1\ande <commande> sera exécutée lors de l ' ouverture d'une boîte aux lettres comprenant <modèl e>
dans son nom
folder hook. 'set sort=date sent'
Eolder hook mutt 'set hdr_format="%4C %Z %02m/%02N % 20 .20F (%41) %s"'
Eolder hook =mutt my_hdr Revolution: \#9 # real comment

Eolder hook . 'set reply_regexp=""re : [ \t)*'"

Création d'alias
Syntaxe :
alias <nom> <addresse> [ , <addresse>

,lias moi Christophe Giraud <chri s>


lias mutt dev Mutt Development List <mutt dev@cs.hmc .edu>
lias mutt users Mutt User List <mutt users@cs . hmc . edu>
lias mutt announce Mutt Announcement List <mutt announce@cs. hmc .edu>
lias wmaker WindowMaker Mailing List <wmaker@eosys . corn>
lias lfm Linux France Magazine <di amond@pandemonium. fr>

Boîte aux l ettres à consulter pour l ' arrivée de nouveaux messages


Syntaxe :
mailboxes <pathl> [ <path2> .. . )
,ilboxes ! +mutt dev +mutt users +wmaker +chris
nailboxes ·echo $HOME/Mail/*' f Cette ligne consulte par défaut toutes les boîtes que vous avez dans votre répertoire Mail

Spécifie l'ordre d'affichage des champs de l'entête lors de la consultation d'un message
Syntxe :
hdr_order <hdrl> [ <hdr2> ... )

ir_order date from subject to cc

Identifie les mailing lists auxquelles vous êtes abonné


Syntaxe :
lists <list name> [ <l ist name> . . . ]

,sts mutt dev mutt users

Utilise automatiquement les entrées du fichier -/ .mailcap pour afficher les messages de type MIME
Synatxe :
auto_view <type> [ <type> ...

1to_view application/ x gunzip


1w_view application/x gzip

Attribution de points aux messages


Syntaxe :
score <modè:e> <valeur>
~a commande score permet d'attribuer aux messages des points (<valeur>) lorsque la chaine <modèle> est dans le message .
Cela permet ensuite, par exemple, de classer vos messages par 'score' et d'obtenir ainsi une liste des messages avec en premier ceux qui
ont le plus d'importance pour vous .
~es valeurs 9999 -9999 sont spéci al es car elles permettent de s 'arrêter sur le message concerné.
Si vous préfixez la valeur avec le signe égal l=I, la valeur est assignée au message et le traitement s'arrête.
i.,a valeur final du message est la somme de toutes les valeurs ayant été attribuées au message.

;core '-f "me@cs\ .hmc\.edu$' 1000


;core '-t muët 1 -c mutt ' =500
;core '-f spammer\ .org$' 9999

Si vous util isez Mutt sur plusieures machines différentes, vous pouvez utiliser un fichier différent pour chacune d'elle comprenant leurs
paramètres spécicifiques .

iurce - / .muttrc machinel

Cet article a été écrit par Christophe Giraud de l'association Net Liberté

NUX - DECEMBRE 98
1f'i
Droits sur les fichiers
LES PERMISSIONS SUR FICHIERS CHANGER LES DROITS

Parmi les commandes les plus utilisées sur un système de type C'est dans ce cas que s'applique la commande chmod avec la
Unix on trouve chmod. Celle-ci est des plus utiles mais égale- syntaxe suivant :
ment des plus puissantes. En effet c'est elle qui vous permettra
de changer les droits des fichiers sur vos différents disques et chmod catégorie+/ -droits fichier
de vous éviter bien des tracas en réseau.
exemple :
LES PERMISSIONS c hmo d u +x monf ichi er rend exécutable monfichier pour
l'utilisateur courant
Dès sa création, chaque fichier reçoit un certain nombre de
permissions de la part du système. Ces permissions définissent c hmo d +w monfichi er active le droit en écriture pour
les trois d'accès possibles des trois catégories d'utilisate urs : toutes les catégories

- Je propriétaire (user) : il s'agit de l'utilisateur à qui appartient c hmo d go-rw monfich ier retire les droits de lecture et
le fichi er d'écriture pour le groupe et les a utres

- le groupe: d ans un système unix, les utilisateurs pe uvent être Comme vous pouvez le voir, la catégorie est symbolisée par un
regroupés pour partager des droits communs sur les fichiers. caractère, u pour le propriétaire, g pour le groupe et enfin o
Les droi ts d 'un groupe sont les mêmes pour chacun des utili- pour les autres. Le - retire un droit et le+ l'appl ique.
sateurs q ui constitue le groupe.
Finalement, la symbolique utilisée po ur l'affichage des droits
- les autres : il s'agit simplement du reste des utilisateurs non est reprise dans la commande chmod ( rwx ) .
concernés par les deux catégories ci-avant.
Il existe une autre méthode qui consiste à utiliser les valeurs
Les droits pour chaque catégorie sont la lecture, l'écriture et correspondantes aux d ifférents droits.
l'exécution. La lecture est un droit qui s'applique aussi bien à chmod 666 monf ich ier pe rmet d'autoriser la lecture et
un fichier pour en lire le contenu ou un répertoire pour en lis- l'écriture du fichier à toutes les catégories. Explications :
ter le con tenu. L'écriture permet de modifier un fichier. Dans lecture (400) et écriture (200) po ur le propriétaire d onne 600
le cas d'un répertoire, cc droit permet l'ajo ut o u la suppres- lecture (40) et écriture (20) pour le groupe donne 60
sion d e fichiers. Enfin, le droit d'exécution permet tout logi- lecture (4) et écriture (2) pour les autres donne 6
quement d'exécuter un fi chier ou de se déplacer clans un li suffit alors d'additionner les trois chi!Trcs qui nous donne
répertoire. 666 et de les att ri b uer au fichier par chmod.

LISTER LES DROITS Le tableau donné en figure 1 vous mon tre les diverses vàlcurs
et leur signification.
Pour savoir quels sont vos droit s sur un fichier ou un répertoi-
re, la méthode la plus simple consiste à utiliser la commande
1s . L'utilisation du paramètre -1 permet de connnaître bien
des informations comme dans l'exemple suivant :

- rwxr-xr-- 1 roo t r oot 1204 Sep 20 22 :54 t est . sh


EN SAVOIR PLUS
On retrouve un groupe de dix caractè res. Le prcivier caractère
détermine s'il s'agit d 'un répertoire (d), d'un lien (1) ou encore
d'un fichier normal(-). Les neufs caractères suiva nts a ffichent Comme d 'habitude, la meilleure information est le système lui-
les droits, classés pa r catégorie (utilisateur, groupe, autres). mêmc. Consultez les man pages des comm andes 1 s et chmod
Ces droits sont lecture (r), écriture (w) et exécution (x). Plus pour e n a pprendre d 'avan tage.
loin o n retrouve le nom du p ropriéta ire puis celui du groupe.

LINUX - DECEMBRE 98
WordPerfect 8
POUR LINUX
,' arrivée en force des grands éditeurs commerciaux dans le monde Linux est un phénomène qui tend à
'a,nplifie,~ Après Netscape, Oracle (récemment), et consorts, Core/fait partie de cette mouvance d'édi-
iurs, qui, par leur intérêt, permettra à notre plate-forme préférée d'atteindre enfin la notoriété qui
'evrait être la sienne auprès du grand public. Nous ne pouvons qu'encourager de telles initiatives.

.inux Mag a donc testé pour vous la nouvelle mouture du - La barre d'outils peut être personnalisée à souhaits. li est
·aitement de texte Core! sous Linux. La version testée n'est possible d 'ajouter et de supprimer des boutons dans cette
u'une pré-release en anglais. Malgré quelques problèmes dus barre en quelques clics de souris. ·
u stade expérimental du soft (dixit les développeurs), XWP8 - Un assistant vous permettra de créer pas à pas des docu-
'aura strictement rien à envier à ses concurrents, qu'ils soient ments tels que calendriers, carnets d'adresse, dépliants, etc.
)US Windows ou so us Linux. Cet assistant s'appelle PerfectExpert.
- Suivant la grande mode de la publication sur Internet,
PREMIERES IMPRESSIONS l'Internet Publisher permet de créer facilement des pages
HTML.
- Dernier point important, le correcteur grammatical intégré
>ès le premier contact, c'est le gain de vitesse par rapport à la fonctionne relativement bien , mais ne propose malheureuse-
ersion précédente qui saute aux yeux. Il semblerait qu'un gros ment que rarement des corrections.
Tort ait été fait de ce coté. Au premier démarrage, on constate
~alement la richesse du traitement de texte. Autre grand avan- LA VERSION FINALE
tge, le format des fichiers entre la version 7 et 8 reste inchangé.
>e ce fait, aucun filtre n'est nécessaire pour vos anciens fichiers.
>ans son utilisation, WP8 fait la différence. Une fonctionnalité Comme nous l'avons déjà dit , la version testée ici n'est qu 'une
ppelé "shadow cursor" permet de placer du texte où bon vous pre-release. Les informations concernant la version définitive
:mble en vous acquitant de l'insertion de lignes blanches. sont encore plus réjouissantes. La Core! WordPerfect Persona!
r1time essai de conversion, l'ouverture d'un fichier MS Word Edition sera disponible dans pas moins de dix langues diffé-
7. Résultat, aucun problème, le filtre remplit parfaitement rentes parmi lesquelles, bien sûr, le français. La boîte finale
m rôle et donne le résultat escompté. contiendra non seulement WordPerfect 8 mais aussi tous les
accessoires d'usages : Netscape Navigator, 130 polices de
CARACTERISTIQUES caractères, 5000 cliparts, 200 photos, 187 textures (très utiles
pour les fonds de pages Web) et plus de 90 documents types
personnalisables (ExpressDoc).
/ordPerfect 8 pour Linux propose bon nombre de fonction- Le logiciel occupera entre 43 Mo et 87 Mo sur le disque dur.
alités intéressantes : Notre configuration de test était un Intel Pentium 200 MMX
Le format de fichier est inchangé. Entre les plate-formes avec 32 Mo de Ram.
inux , Unix, Windows 3.x, Windows 95/98 et NT, les formats
mt les mêmes. Cela élimine bon nombre de problèmes dans
k hange de documents.
Près de 40 filtres vous permettent d'échanger des données
COQt;J,
1ec traitements des textes étrangers. WOQL)Pt:Rl1':CI'
Le correcteur orthographique fonctionne en mode interactif ai
vous soulignera automatiquement les mot inconnus de so n DOUQ
LINlfX
lctionnaire. Dans la mesure du possible, il corrigera automa-
quement toutes les erreurs de frappe. Bien sûr, le dictionnai-
: peut être complété et mis à jour. l'C«\St'H.n.ber. Osra,1Q',1.ta,

f>n:9tlflfit,!uU, B.0.004(6123/19:l&

NUX • DECEMBRE 98
D Je suis intéressé(e) par _ _ _ _ _ _ _ _ _ _ _ _ __ __ _ _ __ et désire recevoir une documentation.
O Je désire commander _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ au prix de _ _ _ _ _ Fnc
au prix de _ _ _ _ _ Fnc Tous no s 1:c1rlh
au prix de _ _ _ _ _ Fnc sont. eo 'f"fTC
el port compris
Total _____ Fnc Llvraison
Nom ________________ Prénom soLIS 48/ 7 7-. h .
- ---------
Société _ __ _______ Adresse _ _ _ _ _ _ _ _ _ _ _ _ _ __ 0 Je règle par chèque à l'ordre de MCo2 Diffusion
0 Je règle par Carte Bancaire en reportant son n° ci-dessous
C.P_____ Ville _ _ _ _ _ _ _ _ __ Tél.
1 1 1 1 1 1 1 1 1 1 1 Il 1 1 Il
http:/ /www.mcd2-diff.fr email : mcd2@mcd2-diff.fr
LINUX Web Watcher Slashdot LinuxWorld
http://www.webwatcher.org/ http://slashdot.org/ http://www.linuxworld.com/
oici un moteur de recherche très Des informations sur Linux et le Un site riche en news modérées et
ratique. Vous pourrez y trouver monde des systèmes d'exploitation en liens. Linux World est un excel-
>Utes les informations utiles pour mis à jour en continu. Vous pourrez lent point de départ pour une balla-
Jtre système. Le site est mis à jour suivre les actualités qui vous plaisent de consacrée à Linux sur le Net.
n permanence et un compteur vous quasiment en temps réel.
1forme des nouveautés. ,..~---
- ---~...,, -~
,f ~;;.- 3 1i -~ -
r.;..~~1~ ,. ..:.. '--a<....
~-➔~~~
=..~=:=-=-=-:.:::...=..:::=~~-~

Linux
"" WORLD
i--.---
- - . . .. ma

=•
=:: ...
•-C!- --:--~... ":1 P:-~~~
- ' " - " ' · p lll;.;llt<!~ ........
Linux Center
http://www.linux-center.org/ft/
Linux FTP Watcher Linux Head Quarter Une page en français bourrée de liens
Http://lfw.linuxhq.comt http://www.linuxhq.com/ utiles. Ce site regroupe aussi bie11 des
i un fichier vous manque~;-e site est Voici le quartier général de Linux. -"' ebmparatifs de distribution que des
. solution idéale. · lt '1•s'a.git - d :u;; Vous trouverez toutes les mises à , '. liens vers des -serveurs dédiés ·à des
1oteur de récherche oi( v~"s"7>our- jour des kernel en versions stables -- -projets sp.écifiques eomme le dévelop-
~z déclencher une recherct\e à par: ou de développement. C'est le site pement d'application de PAO...
r du nom ou une partie du nom éfe de référence pour tous ceux qui bri- · • - - - - - - - - - - - - - - ~
chier. , colent le kernel ..,.4 -ti «-l ~ ~ - ; _ •

- -~--~,:-
Jt--- ~
..... ~

....., _______________.,, = = =~~~~-- ..) ,._._~~


t.t-.- ~ -
i .i
---- -
3•

...,"""-.....,,_J.-~l>taOllool-•
~ A ... q, 4

--·-
ù
!ot,l~--

Linux ~enter

- ~--·--------~--.
1-~----~
_ ,
_..__ - - -- .-
. . . ........ .
-"l'',/ - ... _.. ... ""' ....
_ ..,
-- i.,.__ ~--•-- _, __ • ' ' -• ,.,

• !,c.ùL.--~:~
• t~...,.:..
• · -··j
-- ~
~:1a.;"~:--_1o .... ,~~.û;~~:~"T-=-~1_·;... :;t.,..;.:;:_.,~
h"'l"'w_.........,, •.:i..... 1_.....,..,..;t<
~:..., -loo<."13

-~
;.J,.;,;,,

Linux.Garnes
Linux Daily News , http://www.linuxgames.com/
http://lfw.net/daily/ ;::/ ., ., Golgotha For Ever Un ~site oédié aux jeux sous Linux.
i vous êtes friand de nouvelles
aîches, ce site propose des aduJli-
is journalières à propos de Linux.
http://www.golgothaforever.org/
Un tout nouveau site à propos du jeu
~cewc-ci sont encore peu nombreux
mais ils- bënéficient tous de la puis-
Golgotha de feu Crack Dot Corn. _, satfce éle développement propre à
-
es nouvelles plus anciennes sont Ces pages seront sans doute le site Linux. Vous trouverez ici de nom -
assées par date, pour qu'aucun central du jeu qui est en passe de breuse informations sur Golgotha ou
iénement ne vous échappe. devenir un mythe sous Linux. Crystal Space par exemple.

,.. @ lt's.lm,!~~~ ~2.,oorshare.! ,

1 ô ..!11111.>; fiQF.'l j1 ffa,il. 1

NUX - DECEMBRE 98
Pour connaître les bibliothèques Il est souvent utile de connaître le
associées à un programme tapez ldd contenu d 'un fichier.tar.gz (ou .tgz)
suivi du nom complet du programme. / sans pour autant tout décompresser.
Voici une manipulation bien pratique :
Exemple: tar tzf toto . t ar .gz I less

ldd /bin/vi

libtermcap . so . 2 => / lib/l ibt ermcap_. s o . 2 (Ox4 0006000)


libc .so . 6 => /lib/libc.so .6 (Ox40009000) Chaque programmeur présente ses codes sources comme il
/ l i b/ld li nux.s o .2 => / lib/ ld l i nux. so . 2 le désire. li faut utiliser une indentation standard pour faci-
(OxOOOOOOOO) liter la lecture. L'exemple suivant vous permettra de réin-
denter correctement un source en C pour le sortir ensuite à
Le résultat obtenu représente à gauche la bibliothèque l'imprimante :
recherchée et à droite celle trouvée. Si une bibliothèque indent - t r off test . c I gr of f - mindent
manque, la mention Not Found apparaîtra à droite.

Lorsque vous téléchargez un fichier en tâche de fond , il est


Il est parfois nécessaire de savoir où se trouve un pratique de connaître sa taille sans pour autant taper 1s -1
exécutable sur le disque (comme dans l'astuce précédente). ou siz e à chaque fois. Utilisez la commande watch de la
Pour savoir directement où se trouve un programme sans le manière suivante :
chercher par son nom , tapez typ e nom du progr amme. watch - n 5 size t es t . tar .gz
Le chemin complet s'affichera alors à l'écran. Ceci vou s permettra de lancer automatiquement size
test.tar.gz toutes les 5 secondes. Watch peut, bien sûr, être uti-
liser avec beaucoup d ' autres commandes comme date si vous
êtes soucieux de votre ponctualité.
Pour connaître la version en
cours du noyau,
sa date de compilation,
le type de processeur, tapez : lnfo pour tous les joueurs sous Linux. Si vous désirez jouer
uname - a tranquillement à Quake 2 sous Linux (avec une carte 3Dfx en
Ceci affichera les informations en particulier), assurez-vous que votre configuration au clavier
question. La version du noyau est donnée en ne provoque pas autre chose que l'effet désiré , exemple :
majeur.mineur.révision , exemple : 2.0.34. (N ' oubliez pas CTRL pour tirer et C pour ramper, intimera l'ordre CTRL-
que les mineurs impairs sont des versions de développe- C au système et vous quitterez le jeu. Pire, avec une 3Dfx,
ment) l'écran affichera toujours l'image du jeu . Donc vigilance ...

Voici une astuce bien connue mais


toujours utile pour les nouveaux
arrivants.
Un ls en couleur vous permettra de distin-
guer plus facilement les répertoires, liens,
programmes, etc.
Pour avoir un ls en couleur, il faut créer un alias de ls vers
ls --color=tty -F -b -T O en ajoutant la ligne suivante dans
/ et.c/ bac hrc :
alias ls =' l s --color= tty -F - b -T 0 '
D ès le prochain login, votre ls sera tout en couleur.

LINUX - DECEMBRE 98
LE SYSLOG UR LA REBOOT

est possible de diriger les messages système (syslog) vers une La séquence de touches ctrl+alt+suppr destinée à redémarrer
,nsole. Pour cela ajoutez : le système est décrite dans le fichier /etc/inittab sous la forme :
* (autant de tabulation qu'i faut) /dev/tty12 # CTRL-ALT-SUPP
,ns / etc / syslog.conf ca : :ctrlaltdel : /sbin/shutdown -t5 -rf now
u prochain démarrage, appuyez sur ALT-f 12 et Ceci permet de lancer la commande shutdown avec une tempo-
,ilà ... risation de 5 secondes (-t5), pour redémarrage (-r comme reboot
au lieu de -h comme hait), en mode rapide (f comme fast).

vous possédez une souris PS/2


1ini-DIN ) et que l'entrée Pour une suppression complète d 'un utilisateur, spécifiez l' op-
ev/psaux venait à disparaître, vous tion -r, exemple :
userdel -r toto
:vez faire un MAKEDEV busmice.
~ci ne vous créera pas un /dev/psaux Ceci supprimera r utilisateur toto mais également son réper-
ais un /dev/psmouse. N ' oubliez pas toire privé, les entrées dans crontab (gestion des tâches pério-
: créer u n li en symbolique entre diques) et sa boîte à lettres.
ev/psmo use et /dev/psaux.

Il est parfois utile de retrouver tous les fichiers d 'un utilisateur


sur un système, en particulier si l'utilisateur n'existe plus. Pour
)ici une astuce connue des habitués mais toujours utile. Pour cela faites :
voir les messages affichés au démarrage sous Linux, il vous find / -user nom_utiliseur - 1s
ffit de taper dmesg I more. Vous pomrez ensuite supprimer tous les fichiers de feu l'utilisateur.
L'éditeur Xemacs 20.4
L'éditeur Emacs 20.2
Le jeu Golgotha (sources+ musiques+ sons)
Librairie GTK l.0.4
Les sources de Gim 1.0.0
• CDRecord 1.6
eXWPE

><
:,
• Emacs / Xemacs

i! @
~;(aurrier des lecteur
- ~ ,,

nterrogez, partagez vos opinions ou vos coups de coeur. ..


~nvoyer vos lettres ou courrier des lecteurs, ou vos e-mails à
inux@ed-diamond.fr

'ous avez été très nombreux à nous Je trouve que l'idée du CD vendu à part est excellente. En effet,
je possède un accès à InterNet par le câble et j e peux téléchar-
3ire part de votre avis sur le premier ger facilement des versions plus récentes que celles du CDROM.
uméro. Quelques jours seulement De plus, bon nombre de lecteurs doivent déjà posséder une gran-

ro-
de partie du contenu du CDRO l'vf par d'autres sources.
près son apparition en kiosque, nous
E.D.
vons reçu des dizaines d'e-mails de
~licitations, d'encouragements ou de Comme vous pouvez le constater, les avis sur la
ritiques. Parmi les remarques les :ii:.ilillilllil-.alli
q uestion d u CDROM sont très partagés. Nous
avons pris la liberté de laisser le choix au lecteur.
lus courantes, voici des courriers En fournissant un CD à part, nous pensons satisfaire à la fois
ui résument l'avis général. les gens qui le commandent et ceux q ui n'en veulent pas.
Pourquoi forcer les lecteurs à payer 15 francs de pl us pour un
'EN A PLUS! CD qu'ils ne veulent peut-être pas?
· suis localisé à 30km au sud de Toulouse, le détaillant du
·ntre commercial était déjà en rupture.. . Succès commercial?
.M. ABONNEMENT
· voudrais me renseigner pour savoir comment me procurer le Vous avez été très nombreux à nous demander une offre
' J de "Linux Maga::ine France" sur Grenoble. J'ai essayé cinq d 'abonnement tant par téléphone, que par e-mail ou courrier.
agasins de presse, dont trois qui ne /'avaient pas reçu et deux Voilà chose fa ite, vous trouverez dans le présent numéro un
•aient tout vendu quasi immédiatement. coupon pour les abonnements au magazine ainsi qu' au cd.
D.
inuxien bordelais, j'ai cherché votre revue partout sans succès PAPIER ET PERIODICITE
ors que des amis d'autres villes n'ont aucun problème... Auriez Quelques-uns d'entre vous ont relevé un paradoxe dans le pre-
•us l'adresse d' UN ou DEUX revendeurs Bordelais ? mier numéro. Dans l'édita, nous avons défini notre volonté de
A. fournir des informations à long terme. Cependant, il apparaît
que le papier que nous avons choisi est trop fragile. Comme
[1T.'IIII Lors de la sortie d'un nouveau magazine, il faut vous pouvez le constater, le numéro 2 a donc été fabriq ué avec
~ créer un plan de d istribution qui défi nira la quan- un no uveau papier ainsi qu' une couverture digne de ce nom .
tité de magazines servis par région. Ne pouvant D e cette manière, il vous sera possible de conserver vos exem-
) US baser su r a ucune expérience passée, ce premier numéro plaires plus longtemps.
) US permettra d'affiner la distribution des magazines en
netion des demandes. Le numéro 2 que vous tenez entre vos ET LE NET?
ai ns a du déjà être plus judicieusement réparti. Cependant, Comme vous l'avez si bien noté dans votre magazine, Linux vient
l'expérience devait se renouveler, la bonne solution consiste d'Internet. Pourquoi ne pas ajouter une rubrique concernant les
vous rendre chez un buraliste excentré. sites les plus intéressants à chaque numéro ? De cette manière,
les lecteurs pourraient se tenir informé des é vénements qui ont
VIS SUR LE CDROM lieu entre deux parutions.
mrquoi ne pas inclure directem ent le CDROM dans le maga- G.J.
Cela ferait gagner du temps. 35 fi'ancs pour un magazine+
•ie.
DROM cela n'est pas excessif Comme vous pouvez le constater une rubrique l nterNet indé-
L. !Qi. pendante des articles a été mise en place. Internet

>tre couverture annonce "seul.ement 20firancs " a lors qu 'ensuite


.
J- reste une source d'informations en temps réel sur
les fréquents changements qui interviennent dans
, se rend compte qu'il fa ut ajouter l 5 autres fi'ancs pour bénéjï- la communauté Linux. Les sites décrits dans cette ru brique
?r du CDROM. Je trouve que cela est à la limile de l'arnaque... seront toujours en rapport avec notre OS mais plus généra-
.F. listes que ceux cités au bas des articles.

rnx - DECEMBRE 98
1
B, rue de la Scheer - ZI Nard - 87B03 SELESTAT
•••••••••• ••• Tél: 03 88 58 02 02
• GRATUIT!

• Demandez, par
• téléphone, lax,
• internet ou minitel,

• notre catalogue
• 28 pages!

• Kit réseau
• complet pour

•• 2 postes
• Ce kit réseau ethernet deux postes a
été spécialement conçu pour exploiter

• les modes multijoueursde jeux comme


Quake2, etc. .. maisaussi pour les

• réseau x sous LI NUX afin de partager les


ressources entre deux PC. Est composé

• de2 ca rtes Net 2000, d'un câble de2,5


M, de 2 boûchons et des drivers pour
DOS, Windows 3.11 et 95 et SCO UNIX. Nous vous
• proposons de
• Réf.
nombreux autres
P0015

• produits pour
• LINUX!

• r--------------------------------------------------------------------------------------------------------------------,
! Bon de Commande reCaurner PEARL DHluslon
à à à l'adresse cl-dessous :

•• Â :1 Quantité Désignation Prix Unitaire Prix Total Nom & Prénom _ __ _ _ _ _ _ __ _ _ _ :1


Adresse _ __ _ _ _ __ _ _ __ _ _ _ !
• ~ Code postal/ Ville - - -- - - - -- - - - :
Signature


TOTAL: Mode de paiement :
6, rue de la Scheer • B.P. 121 Frais de port (logiciels) : 40,-
_ Chèque (Umqu,m,ntparcourri,r) Mandat _ Contre remboursement
l 1Nord - 67603 SELESTAT Frais de port (matériel) : 65,-

• Tél: 03 88 58 02 D2 Si contre remboursement : +45,


Option Chronopost : +30,-
_Carte bancaire : N°: _ _ J_ _ J_ _ J_ _
Date d'expiration : _ _ J_ _

• Fax : 03 88 58 02 07 TOTAL A PAYER: Commandes et devis administratifs uniquem n par courrier -Pas de livraison dans les DOM TOM et Hors Europe
L--------------------------------------------------------------------------------------------------------------------
~oitier double SCSI • Boitier externe SCSI
Ivec une gamme de périphériques de
• Utilisez vos périphériques internes en ► bouton SCSI-ID ► connexion 2x 50


,lus en plus étendue, votre chaîne SCSI périphériques externes (lecteur CD-ROM, broches SCSI ► emplacement pour
nonopolise l'espace autour de votre graveur de CD et Disque Dur pour le SCSI, ... ). apparei l 3,5" ou 5,25 " ► Avec
'C. Ce boitier compact apporte une

••
C'est la solution idéale à tous vos problèmes : ventilateur
éponse élégante à vos problèmes de transport, manque de place, portable, ... Ce Réf. PE 461
,la ce . Avec son alimentation
nté grée , il accueille 2 : :!]::::: boitier est en métal et intègre l'alimentation et
une connexion audio (cinch).

•==--• • • ••• • • •• • •
1ériphériques SCSI (lecteurs, · : : :: :::
1raveurs,disques durs,etc. .).La mis~ • • • • • • •
il route se fait à l'avant et la façade ·
f ~ "' •M o-1sques Stratus Ultra SCSI - 3"1/2 Stratus Ultra SCSI - 3"1/2

1..
rrièreprésentelessélecteursd'IDet n
es (i nch pour l'a ud10 Un • f( " )\ • • d'une capacité de 289900 d'une capacité de 189000iië
onnecteur secteu r mâle permet ~
gaieme nt de repiquer 59900 .,.■4f ..,
"~~ _
0 • ..,_.. " •
e durs SCSI 6,0 Giga Réf. PC552 TTC 3,2 Giga Réf. PE239

'alimentation en 220V. Ef ':> Stratus Ultra SCSI - 3"1/2 Viking Ultra-Wide SCSI· 3"1/2
téf. PE863 ne " ..~ 5) • • Quantum d'une capacité de
8,0 Giga Réf. PC554
319000
ffi: :~s 0
~i~;nR~f. PC557 2390M
FreeBSD 2.2.S
LINUX Red Hat 5 COREL ~
Ce système d'exploitation pro-
fessionnel compatible UNIX est basé sur Berkeley 4.4 BSD.

·wordPerfect 8 f
Caractéristiques : Installation directe depuis le CDROM, pas-
sage aisé d'un système d'exploitation à l'autre, performances
La version 5 de Red Hat LINUX allie simpli- Persona! Edition ~t ,
et stabilité accrues, système de développement complet inté-
gré et serveur internet inclus. Si vous recherchez un système de
cité d'utilisation pour les débutants, puis- Le très célèbre logiciel de traite- l'i1llDI
qualité professionnelle votre choix se portera tout naturelle-
sance et souplesse pour les utilisateurs ment de texte de COREL est enfin ) WordPerfeêJ: §
ment sur celui-ci. (Ensemble de 4 CD) Réf. LI05
confirmés souhaitant disposer d'une sta- disponibles pour LI NUX dans sa --
tian de travail performante ou d'un ser-
veur. Conforme au standard POSIX, Red
version 8 !
Retrouvez toute la puissance et
LINUX ApplixWARE 4.3.7 : Voici une
Hat est livré avec 2 CD, un guide d'instal-
1ation en français, 2 disquettes de boat et
toute la souplesse de WordPerfect
avec, en prime, 130 polices de carac- 499~r! suite logicielle internationale (Français, Anglais, Allemand)
complète, qui regroupe un traitement de texte (compatible
WORD), un éditeur graphique, un ta bleur (compatible EXCEL),
30 jours de support technique pour l'ins- tères, plusde 5000 cliparts, 200 photos, 187 textures et plusde
une méssagerie électronique, etc... Réf, LIOl
tallation via E-Mail. Réf. LI04 90 feuilles de styles directement utilisa bles. Réf. LI06

GNUCollection : What is GNU? «Gnu is Not Unix!» Nous avons récu- 99nDDc I LINUX Nirvana : Nous avons testé, trié et sélectionné pour vous les meilleurs
péré pour vous le maximum de logiciels sous licence GPL comme Emacs, Tex, GCC, Gzip
sont donc gratuits et LIVRÉS AVEC LEURS SOURCES. Ces applications sont disponibles
pour de nombreux systèmes d'exploitation, vous trouverez forcément votre bonheur. Réf, CS24
logiciels LINUX disponibles sur lnterNet (plus de 600 Mo). Beaucoup sont livrées avec leurs
sources et couvrent des domaines aussi divers que la P.A.O., le dessin, la C.A.0., les éditeurs, les
langages, les utilitaires, etc. .. avec de nombreusesdocumentations Réf, CS25
99~,~
(:arte • Carte TELES.SU 16.3
~arallèle • Carte ISA 16bits configurable par logiciel, Windows ► ZIP Drive Interne IDE pour PC Réf. PE490
Fr869,-TT


95 PnP, elle n'occupe pasde canal DMA. Agré- ► ZIP Drive parallèle pour PC Réf. PE470

ECP/EPP gation des canaux B, X25/MLP. Compres-


sion de données V42bis, compatible télédis-
► ZIP Drive SCSI pour PC Réf. PE471 Fr869,-TTC

• quette. Liaisons vers les USA à 56kbits.


Inclus : carte, manuel, câble de raccordement SO,
► Disquette pour ZIP 100MB
Réf. PE482 Fr 75,- TTC
à runité
, ,~.,o,~
~ ~

149" • ••••••• • • • • logiciel ci-dessus sur CD-ROM. Réf. PE1895


► Disquettes pour ZIP 100MBpar10
t'°J l ~
.,

• Carte 3Dlx Il -,.,990~


Réf. PE483 Fr 720,- TTC
an:mD:t-.
Lecteurs de CD-ROM -

Am,ellom•nl~
•ttecarte parallèle vous permet d'ajouter
1second port imprimanie (LPT) dans votre 1~
Un monstre de puissance qui permet à Lecteur IDE 36X :


dinateur ► Format ISA 8 bits ► Configurablepar
vos jeux d'atteindre une fluidité digne Caractéristiques techniques:
mpers ► Supporte les modes standard,
des meilleures bornes d'arcades ► Connection directe à la carte contrôleur
directionnel, EPP, ECP ou ECP+EPP ► LPT1 ou

• ► 12Mo de RAM EDO ► Format PCI du disque dur ► Tiroir motorisé ► LED de
,-2 ► DMA 1 ou 3 (en mode ECP) Réf. PE8209 œ!j]J~
Réf. PE776 contrôle, prise casque , réglage en facade du volume par /

•••• •••••••
Cartes SCSI TEKRAM
touches de lecteur hifi ► taux de transfert : 5400 KB/s ►
compatibilité: CD, CD-ROM XA, CD-DA, CD-1, CD Extra, Karaoke /,,.; 1 r •
CD, CD Plus, 1-Trax CD, Multisession Photo CD ... ► MPC Niveau 1, 2
...,-_

et 3 ► Pour Win 3.x/95/98 et NT, LINUX ► Cache: 256K ► Garantie 1an Réf. PE 440
)41!

Carte SCSI 2 Uj!JJl!.~ TEKRAM PCI UltraWide Carte SCSI 3 Lecteur IDE HITACHI 32X
399H
---;'a'., Caractéristiques techniques : ► Connection au
: RAM DC-390 (PCI-Bus), BIOS intégré _
our au maximum 7 appareils SCSI ,,,.; ;
Connexion standard 50 broches pour la carte, ·
/ 'r \ .MO
TEKRAM DC-390F (PCI-Bus), BIOS intégré pour au
maximum 15 périphériques SCSI ► Connexions 50 et 68
broches pour la carte, et connexion externe 68 broche,
19900ne rontrôleur du disque dur ► Tiroir motorisé ► LED
de contrôle, prise casque, réglage volume ► taux de
transfert: 4800 KB/s ► compat. : CD, CD-ROM XA, CD-DA, CD-
pour les périphériques externes connexion 50 broches Micro-
1b-D ► Inclus les driverspour DOS, Windows 3.x /Win95/NT, OS/2
Micro-Sub-D ► Inclus les drivers pour DOS, Wind ows
3.x/95/NT, OS/2 Warp,SCO Unix et NetWare ► Inclus 1 nappe SCSI et 1 nappe 1, CD Extra, Multisess., Photo CD ... et LINUX ► lit éga lement les _ 4
UltraWide Réf. PE883 CD RW (Réinscriptibles) ► Garantie 1an Réf, PE441 /,,.; 1 , r
'arp et SCO Unix ► Inclus nappe de liaison SCSI Réf. PE882

• •• • • ••
icanner A4 1490~r!
• • • ••••• Un scanner de grande marque
compatibleLINUX. Utilisable avec tousles
Lecteur SCSI TEAC 32X :
Ce lecteur travaille à la vitesse de rotation de
6850 tr/mn et possède 512ko de mémoire
cache, lui permettant d'atteindre un très haut
contrôleurs SCSI supportés par Linux
:ouleur Réf. PE324
taux de transfert (jusqu'à 4800Kb/s) avec un •
très faible temps d'accès (jusqu 'à 85ms) .
1 aron 1200-SP 1 MOiiard de couleun:-Surfaœ:21,6135,5
60011200 ppp optique, 9600 xHOO ppp par interpolation
Compatible CD-RW, CD-DA, CD-ROM XA Mode 1&)
Photo CD Multisession. Réf. PE 450 699~1!
Bienvenue sous Linux 1

Deuxième édition Son et images


Le système Linux sous Linux
Matt Welsh & Lor Kaufman Jeff Tranter
Septembre 1997 Mars 1997
677 pages 402 pages
2 -84177-033-8
280 F
Les 2-84177-014-1
220 F
,

Administration
Editions Deuxième édition
ADMI;.;J!ffRATION
réseau sous Linux Les bases de
Rr;SEAt1 SOUS
LINUX
- r:,
Olaf Kirch O'REILLY l'administration
Mars 1995 système -
l'administration
368 pages li:.leen Frisch système
2 -84177-007- 9 vous Avril 1996 - 768 pages
220 F 2 -84177-008 - 7 r.,~.
.. .... .,..., .. "'lk.·••·- - ~

aident 280 F

Linux in a Pilotes de
Nutshell périphériques
Jessica Perry Heckman à en tirer sous Linux
Octobre 1998
LINUX
IN A NUTSHELL
450 pages
le
Alessandro Rubini
Décembre 1998
2-84177-031 - 1 500 pages (env.)
O'IU:U'f 220 F 2-84177-064 -8
meilleur 280 F (env.)

Le shell Bash Apache,


Cameron Newham &
Bill Rosenblatt
parti Installation et
mise en œuvre
Février 1996 Ben & Peter Laurie
343 pages Octobre 1997
2-84177- 023 - 0 310 pages
. ...... - -....
.....,._, ~~
220 F 2-84177-036-2 O fl,.EI.LY'

220 F

Tous ces livres et bien d'autres sont en vente


chez votre libraire habituel

O'REILLY™ •

http://www.editions-oreilly.fr/

Vous aimerez peut-être aussi