Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 0d5cd12c82d627a82c59047e1ba7b8a9 > files > 1124

howto-html-fr-9.0-0.2mdk.noarch.rpm

<HTML>
<HEAD>
<TITLE>L'impression, comment &ccedil;a marche</TITLE>
</HEAD>
<BODY>
<H1>6. <A NAME="s6"></A>L'impression, comment &ccedil;a marche</H1>
<P>
<A HREF="Printing-HOWTO.html#toc6">Contenu de cette section</A></P>

<P></P>
<P>Nous consid&eacute;rons ici que  vous utilisez la suite logicielle <CODE>lpd</CODE>
que nous d&eacute;crirons  d'ailleurs. Elle est  la plus r&eacute;pandue et
fonctionne tr&egrave;s bien.</P>
<P></P>
<H2>6.1 <A NAME="ss6.1"></A> Impression locale et impression distante </H2>

<P></P>
<P>L'impression   locale  permet    aux utilisateurs  d'envoyer   des  travaux
d'impression  &agrave;  l'imprimante directement  rattach&eacute;e &agrave;
leur machine.</P>
<P></P>
<P></P>
<P>L'impression  distante, par    contre,  permet  de soumettre   des  travaux
d'impression   depuis  une  machine, &agrave;  une   autre  machine  sur le
r&eacute;seau, sur laquelle est connect&eacute;e une imprimante.</P>
<P></P>
<P></P>
<P></P>

<H2>6.2 <A NAME="ss6.2"></A> De quoi avez vous besoin </H2>

<P></P>
<P>Nous supposons que vous savez &eacute;diter un  fichier texte sous Linux et
que  vous avez   une bonne  compr&eacute;hension   des  notions  de  droits
d'acc&egrave;s et de propri&eacute;t&eacute; (<CODE>chmod</CODE>, <CODE>chown</CODE>).</P>
<P></P>
<P></P>
<P>Nous supposons &eacute;galement  que votre  syst&egrave;me Linux fonctionne
correctement.  En particulier,  si   vous souhaitez  faire  de l'impression
distante, que votre r&eacute;seau fonctionne d&eacute;j&agrave;.</P>
<P></P>
<P></P>
<P>Consultez &agrave; ce propos les  nombreuses documentations disponibles sur
le sujet  (comme  on dit: RTFM, ce   qui  en bon  francais veut   dire LLBD
<CODE>:-)</CODE>).</P>
<P></P>
<P></P>
<P></P>

<H2>6.3 <A NAME="ss6.3"></A> Les programmes importants</H2>

<P></P>
<P>Le syst&egrave;me  d'impression Unix comprend (au  moins) 5 programmes. Ils
doivent se trouver &agrave;  l'endroit  d&eacute;crit (c'est le  mieux)  ou
dans un r&eacute;pertoire accessible  (avec  la variable PATH),  appartenir
&agrave; root (groupe lp), et avoir les permissions suivantes :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
             -r-sr-sr-x      root    lp      /usr/bin/lpr
             -r-sr-sr-x      root    lp      /usr/bin/lpq
             -r-sr-sr-x      root    lp      /usr/bin/lprm
             -r-xr-sr-x      root    lp      /usr/sbin/lpc
             -rwxr--r--      root    lp      /usr/sbin/lpd
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Les quatre  premiers   sont  utilis&eacute;s  pour soumettre,   visualiser,
annuler, contr&ocirc;ler les   travaux   d'impression. Le dernier    est le
d&eacute;mon.</P>
<P></P>
<P></P>
<P>Il existe bien entendu des pages de manuel  en ligne pour ces commandes que
vous  pourrez consulter  pour    plus d'information.  Le  point   important
&agrave; noter  est    que   les commandes   <CODE>lpr</CODE>,    <CODE>lpq</CODE>,
<CODE>lpc</CODE> et    <CODE>lprm</CODE> op&egrave;rent   sur une    imprimante par
d&eacute;faut nomm&eacute;e  <CODE>lp</CODE>.  La    variable   d'environnement
<CODE>PRINTER</CODE>    peut contenir le nom   de   l'imprimante que vous  avez
choisie.  La  sp&eacute;cification du nom  d'une imprimante sur la ligne de
commande  surchargera ces d&eacute;finitions  (les imprimantes de l'exemple
sont hors-ligne):</P>
<P></P>
<P></P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
     # echo $PRINTER
                                (vide)
     #
     # lpq
     waiting for lp to become ready (offline ?)
     ...
     # export PRINTER=mon_imprimante
     # lpq
     waiting for mon_imprimante to become ready (offline ?)
     ...

     # lpq -Plpr0
     waiting for lpr0 to become ready (offline ?)
     ...
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P></P>
<H3>Le client et le serveur</H3>

<P></P>
<P>Voici ci-dessous les interactions client - d&eacute;mon</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
                                              _________      
                                            +/BlaBla  /+
                                           //________//|
                                          /          / +
+----------------+                       +----------+ /
|      LPR       |                       |=      oo |/
+----------------+                       +----------+
        |                                 Imprimante
        |                                     ^
        V                                     |
+----------------+                  +------------------+
|      LPD       |------&gt;------&gt;----|        LPD       |
+----------------+                  +------------------+

            Soumission d'un requete d'impression


+----------------+
|      LPQ       |
+----------------+
                  \
                   \_______&gt;______
                                  \
+----------------+                 \+------------------+
|      LPD       |                  |        LPD       |
+----------------+                  +------------------+

            Soumission d'une demande d'information
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Lorsque      le   syst&egrave;me     d&eacute;marre,   <CODE>lpd</CODE>     est
charg&eacute;.   Il lit   le   fichier   <CODE>/etc/printcap</CODE> (dont  vous
trouverez  une explication  plus  loin) qui  d&eacute;crit  les imprimantes
connues.</P>
<P></P>
<H3>Les fichiers soumis par le client</H3>

<P></P>
<P>Lorsqu'un  programme    client    soumet  un   travail  d'impression,    il
g&eacute;n&egrave;re deux fichiers qu'il &eacute;crit dans le spool:</P>
<P>
<UL>
<LI>
Un fichier de donn&eacute;es qui  contient une copie des donn&eacute;es que
vous souhaitez soumettre &agrave; l'imprimante. Il s'agit bien d'une copie,
ce qui signifie  que toute modification  ult&eacute;rieure de votre fichier
n'alt&eacute;rera pas l'impression.
</LI>
<LI>
Un fichier de description du travail &agrave; effectuer.
</LI>
</UL>
</P>
<P></P>
<H3>La commande lpr</H3>

<P></P>
<P>La commande <CODE>lpr</CODE> soumet un travail d'impression.  Elle se charge de
mettre les donn&eacute;es  &agrave; imprimer dans  un fichier dans le spool
d'impression. Ces donn&eacute;es  peuvent provenir  soit d'un fichier  (les
donn&eacute;es   sont       dupliqu&eacute;es    et   toute    modification
ult&eacute;rieure du  fichier d'origine n'affectera pas l'impression), soit
de   l'entr&eacute;e standard  (stdin).   Le   d&eacute;mon  est  averti de
l'existence  d'un nouveau fichier et   envoie, d&egrave;s que possible, les
donn&eacute;es vers l'imprimante physique (ou la machine distante).</P>
<P></P>
<P></P>
<P>La  taille  du  spool  est  bien  entendu limit&eacute;e &agrave;  la place
disponible sur votre disque dans <CODE>/usr/spool/</CODE> ou &agrave; la taille limite
sp&eacute;cifi&eacute;e  dans  le fichier  de configuration   <CODE>printcap</CODE>.  Vous pouvez
n&eacute;anmoins imprimer un gros fichier en demandant &agrave; <CODE>lpr</CODE> de
ne  pas dupliquer le fichier.     Le  d&eacute;mon d'impression ira   alors
chercher le fichier que vous indiquez dans la ligne de commande et non plus
dans le spool.</P>
<P></P>
<H3>La commande lpq</H3>

<P></P>
<P>La commande <CODE>lpq</CODE>  affiche le contenu du  spool, pour une imprimante
donn&eacute;e.     Une des   informations    importantes fournies   est  le
num&eacute;ro  du  travail (job).  C'est   lui  qui pourra  servir &agrave;
annuler un des   travaux soumis, y  compris  celui  en  cours d'impression.
Parmi tous  les travaux soumis, l'indication  ``active'' indique le travail
en cours  d'impression   (ou   que  <CODE>lpd</CODE>  essaie   d'envoyer   &agrave;
l'impression).</P>
<P></P>
<H3>La commande lprm</H3>

<P></P>
<P>La commande <CODE>lprm</CODE> enl&egrave;ve  un travail de la  file (et donc le
fichier  du spool).  Vous pouvez soit  sp&eacute;cifier un num&eacute;ro de
job,  soit  un tiret   permettant  de  supprimer  tous   les   travaux vous
appartenant.   Si    vous   &ecirc;tes  root,    tous    les  travaux  sont
supprim&eacute;s.    Pour   supprimer    les   travaux    d'un utilisateur,
sp&eacute;cifiez son nom.</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
     # lprm 1
     dfA001Aa00484 dequeued
     cfA001Aa00484 dequeued
     #
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Le   premier fichier contient les  donn&eacute;es  &agrave; imprimer.  Il a
&eacute;t&eacute; cr&eacute;&eacute;  par  <CODE>lpr</CODE>. Le deuxi&egrave;me
contient des informations que le d&eacute;mon utilise pour savoir que faire
des donn&eacute;es (impression  locale, distante, ...)  Consultez le manuel
en ligne : <CODE>lpd(8)</CODE>.</P>
<P></P>
<H3>La commande lpc</H3>

<P></P>
<P>La commande <CODE>lpc</CODE>  permet de  contr&ocirc;ler  les travaux en  cours
ainsi  que   l'imprimante, et certains     aspects de son   utilisation. En
particulier,  vous pouvez d&eacute;marrer ou  stopper la sortie des travaux
du  spool  pour l'impression,   valider  ou  invalider une   imprimante, et
m&ecirc;me modifier   l'ordre  d'impression des  fichiers.   Les  commandes
suivantes  permettent  d'invalider l'impression sur <CODE>mon_imprimante</CODE>, de
valider le spool sur <CODE>ton_imprimante</CODE>, et  de faire passer le job 37
en d&eacute;but de file:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
     lpc down mon_imprimante
     lpc enable ton_imprimante
     lpc topq 37
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P><CODE>lpc</CODE> peut  fonctionner en interactif  si aucun  param&egrave;tre ne
lui est  pass&eacute;. Vous pouvez  lire les pages  du manuel en ligne pour
obtenir des instructions compl&egrave;tes. A noter que certaines actions de
<CODE>lpc</CODE> sont r&eacute;serv&eacute;es au super-utilisateur (root).</P>
<P></P>

<H2>6.4 <A NAME="ss6.4"></A> Les r&eacute;pertoires importants</H2>

<P></P>
<P>Le r&eacute;pertoire le plus  important est le r&eacute;pertoire de  spool,
dans  lequel  les  donn&eacute;es  vont   &ecirc;tre stock&eacute;es  avant
d'&ecirc;tre   imprim&eacute;es.   Typiquement,    un  syst&egrave;me  sera
configur&eacute;    pour    avoir   un r&eacute;pertoire       de spool par
imprimante. Cela rend la gestion  plus facile.  Sur mon syst&egrave;me, par
exemple,    le       r&eacute;pertoire     <CODE>/usr/spool/lp</CODE> est    le
r&eacute;pertoire   principal. Sous ce   r&eacute;pertoire, on  y trouve le
sous-r&eacute;pertoire     <CODE>lpr0</CODE>, correspondant      &agrave;    la
d&eacute;claration  que   j'ai faite  dans   <CODE>/etc/printcap</CODE> pour le
r&eacute;pertoire de spool de mon imprimante.</P>
<P></P>
<P></P>
<P>NDT: Ce  qui va suivre d&eacute;crit  une fa&ccedil;on de faire pour donner
les   bons     droits    d'acc&egrave;s    aux     r&eacute;pertoires    de
spool.   Diff&eacute;rentes   m&eacute;thodes sont  possibles, sachant que,
comme  sous  Un*x, beaucoup de choses  sont  possibles dans  ce domaine, il
convient de  faire  attention de  ne   pas offrir de failles   &agrave;  la
s&eacute;curit&eacute; de l'ensemble.</P>
<P></P>
<P></P>
<P>Le r&eacute;pertoire de spool doit appartenir &agrave; <CODE>root</CODE>, et au
groupe <CODE>lp</CODE>,   avec  les  droits  de lecture/d'&eacute;criture  pour
utilisateur et groupe, et lecture seule pour le reste du monde.</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
        chmod ug=rwx,o=rx lpr0
        chgrp lp lpr0

     drwxrwxr-x   2 root     lp           1024 Feb 11 10:51 lpr0/
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Un autre  r&eacute;pertoire doit &eacute;galement &ecirc;tre pr&eacute;sent
: <CODE>/usr/spool/lpd</CODE>  avec  les m&ecirc;mes  droits.   Vous aurez plus
d'informations plus avant dans ce document.</P>
<P></P>

<H2>6.5 <A NAME="ss6.5"></A> Les fichiers importants</H2>

<P></P>
<P>En    dehors     des   programmes  que      nous  avons  d&eacute;j&agrave;
&eacute;voqu&eacute;s pr&eacute;c&eacute;demment, quatre  fichiers  doivent
se  trouver   dans chaque r&eacute;pertoire  de  spool.   Avec les versions
r&eacute;centes des  gestionnaires d'impression,  vous n'avez pas  &agrave;
vous soucier de ces fichiers.  Ils sont cr&eacute;&eacute;s automatiquement
s'ils n'existent   pas :  <CODE>.seq</CODE>,  <CODE>errs</CODE>,   <CODE>lock</CODE> et
<CODE>status</CODE>.      Ces     fichiers     doivent     avoir   les   droits
<CODE>-rw-rw-r--</CODE>.  Le  fichier  <CODE>.seq</CODE> contient un compteur  pour
l'affectation des num&eacute;ros de  jobs.  Le fichier <CODE>status</CODE> contient
le  message  devant   &ecirc;tre  &eacute;mis  par   la  commande   <CODE>lpc
stat</CODE>. Le fichier  <CODE>lock</CODE> est utilis&eacute; par le d&eacute;mon
pour qu'il n'imprime qu'un fichier &agrave;  la fois.  Le fichier <CODE>errs</CODE>
contient les erreurs survenues sur l'imprimante.</P>
<P></P>
<P></P>
<P>Le fichier <CODE>errs</CODE> n'est pas obligatoire.  De plus, il peut s'appeler
comme vous le souhaitez, pourvu que son nom soit d&eacute;clar&eacute; dans
le fichier <CODE>/etc/printcap</CODE> que nous d&eacute;crirons dans la suite.</P>
<P></P>

<HR>
<P>
Chapitre <A HREF="Printing-HOWTO-7.html">suivant</A>,
Chapitre <A HREF="Printing-HOWTO-5.html">Pr&eacute;c&eacute;dent</A>
<P>
Table des mati&egrave;res de <A HREF="Printing-HOWTO.html#toc6">ce chapitre</A>,
 <A HREF="Printing-HOWTO.html#toc">Table des mati&egrave;res</A> g&eacute;n&eacute;rale</P>
<P>
<A HREF="Printing-HOWTO.html">D&eacute;but</A> du document,
 <A HREF="#0"> D&eacute;but de ce chapitre</A></P>
</BODY>
</HTML>