Académique Documents
Professionnel Documents
Culture Documents
3cheme
fcl/Tk
\/1 uttrc
Utiliser
.àGTK
• KickStart
•Emacs
•Sendmail
•un serveur
ppp
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.
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.
NUX • DECEMBRE 98
ERRATUM, EXCUSES ET NOTES
SUR LE PRECEDENT NUMERO
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.
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.
'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
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_ ) ;
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);
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
DESCRIPTION DU LOGICIEL
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.
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
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~
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 .,
LINUX - DECEMBRE 98
des structures de données très complexes comme on peut le
faire en C ou C++ .
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':
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.
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
.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
: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 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
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.
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.
;~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
0 1 8
1
1
1
)OSitionner la marque arg mots plus loin
narquer le paragraphe
M-@
·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
;é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
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 " .
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.
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..., ..
. SS Options .
•
'
■ Ll1ladum1t•r111com p •Ub laRadHallnl1I
;;,,t ~ •
\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
• 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.
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.
LINUX - DECEMBRE 98
E2COMPR: -~ystemsJ
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,:
.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".
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
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.
:::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 :
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.
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
# 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
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
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
bind generic ( top page # > utilisation de la même affectation que pour emacs
bind generic ) bottom page # 1
#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'
#send hook mutt 'set signature=- / .sigmutt ; my_hdr From: Mutt User <user@example .com>'
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
Création d'alias
Syntaxe :
alias <nom> <addresse> [ , <addresse>
Spécifie l'ordre d'affichage des champs de l'entête lors de la consultation d'un message
Syntxe :
hdr_order <hdrl> [ <hdr2> ... )
Utilise automatiquement les entrées du fichier -/ .mailcap pour afficher les messages de type MIME
Synatxe :
auto_view <type> [ <type> ...
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 .
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 :
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--- ~
..... ~
...,"""-.....,,_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.
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
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).
><
:,
• Emacs / Xemacs
i! @
~;(aurrier des lecteur
- ~ ,,
'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
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
•
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 :
•
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,-
• 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
•
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
■
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.)
220 F
O'REILLY™ •
http://www.editions-oreilly.fr/