CUPS
Imprimer facilement avec cups
Introduction
Voici une nouvelle façon d'imprimer sous linux simplement avec cups, gimp-print et ghostscript. Nous disposons avec ceux-ci d'une configuration en mode graphique des plus réussie.
Note: toutes les installations qui seront décrites ici, le seront depuis les sources. Ce n'est pas forcément la méthode la plus simple. Si cela vous semble complexe, préférez installer les 'paquets' de votre distribution (ghostscript, cups et gimp-print sont présents dans toutes les distributions récentes), de cette façon votre gestionnaire de paquets saura que cups est installé et saura surement le mettre à jour tout seul en cas de problème lié, par exemple, à la sécurité.
Installer Gimp-Print
Dans presque toutes les distributions gimp-print est installé par défault. Mais si sur la votre ce n'est pas le cas, voici la marche à suivre pour mener à bien la compilation des sources:
Récupérez les sources ici.
Décompressez-les:
   ou
Puis compilez-les:
abba@localhost:~$ ./configure && make && su -c "make install"
Remarque: Vous pouvez aussi faire simplement make install en tant que root.
Cups va utiliser gimp-print comme driver pour votre imprimante. Mais si celui-ci ne reconnait pas la votre, il va être possible de fournir directement des ppd à cups, nous y reviendrons plus tard.
Installer ESP Ghostscript
Cette étape est très importante car j'avais, moi même, Ghostscript installé sur ma slackware lors de l'installation. Mais cups n'a pas voulu marcher et me demandait si j'avais bien installé esp ghostscript. En fait, il faut que Ghostscript soit installé/compilé avec un driver spécial : pstoraster. Ce driver est compilé par défaut avec la version esp ghostscript, mais pas avec la version GNU. Il faut alors, si vous souhaitez utiliser les sources GNU, lire le contenu du répertoire pstoraster des sources de cups et recompiler ghostscript en suivant les 'instructions' de ce répertoire (qui est dans les sources de cups). Le plus simple est d'installer esp ghostscript.
Remarque: Il est utile pour débugguer le processus de savoir que le fichier qui regroupe toutes les erreurs de cups est: /var/log/cups/errors.log
Télécharger les sources de esp ghostscript ici.
Puis compilez-les comme suit :
abba@localhost:~$ cd espg-xxx
abba@localhost:~$ ./configure && make && su -c "make install"
Maintenant vous pouvez installer cups.
Installer Cups
Récupérez les sources sur le site de cups : www.cups.org
Puis, installez les sources:
abba@localhost:~$ cd cups-xxx
abba@localhost:~$ ./configure --sysconfdir=/etc && make && su -c "make install"
Mais voila tout ceci n'est pas fini : cups ne pourra pas encore imprimer une page de texte. En effet, ghostscript ne trouvera pas les polices de caractères (fontes) qui vont lui permettre de le transformer pour le rendre imprimable. Donc nous devons installer ces polices.
Installer les polices
Il faut pour cela les télécharger et les copier dans le répertoire où ghostscript va pouvoir les trouver.
Récupérer les : ici.
Je conseille de les télécharger toutes (gnu-gs-fonts-std et gnu-gs-fonts-other) même si seules les polices standard (gnu-gs-fonts-std) sont obligatoires.
Maintenant pour savoir où il faut les copier faites :
Ce qui donne une liste de répertoires où installer les polices, choisissez-en un dans la liste fournie sachant que si ce répertoire est dans /home/qqu il ne sera accessible que par qqu. Chez moi, dans liste, il y a : /usr/local/share/ghostscript/fonts. C'est un bon choix. Tout comme : /usr/share/ghostscript/fonts.
Donc nous allons les copier dedans. Pour cela :
abba@localhost:~$ cd /usr/local/share/ghostscript/
abba@localhost:~$ su -c "tar xvzf gnu-gs-fonts-std-6.0.tar.gz"
Remarque: Je ne copie pas les archives dans le dossier /usr/local/share/ghostscript/fonts car ce dernier va être créé quand on décompresse les archives.
Maintenant nous allons pouvoir configurer et tester notre imprimante.
Activer Cups
Il nous faut maintenant activer les daemons cups. Lors de l'installation de cups, celui-ci a installé (si vous avez suivi la démarche proposée, mais aussi si vous avez utilisé un paquet de votre distribution) : /etc/init.d/cupsd ou /etc/rc.d/init.d/cupsd. C'est ce script qui va être chargé de démarrer cups. Ici le mode d'activation dépend de votre distribution.
Mandrake/RedHat
Debian
Slackware
Je ne sais pas ...
Gentoo
Si vous avez installez cups via :
Il suffit alors de faire :
Sinon, il faut alors modifier le script /etc/init.d/cupsd pour qu'il s'adapte au fonctionnement de gentoo, ce n'est pas trés complexe, mais ce n'est pas le but de cet article.
Configurer Cups
Pour cela l'équipe de cups a mis à notre disposition un outil très utile et accessible depuis un navigateur web comme mozilla, konqueror et bien d'autres. Cet outil peut être rendu accessible à une machine distante et/ou à certains utilisateurs. Pour cela vous lirez la documentation de cups Lancez votre navigateur préféreré, et fournissez-lui l'url :
Remarques:
- Si vous avez défini le français comme langue principale pour votre navigateur web vous aurez cups en français.
- Si vous avez changé le hostname de votre machine, http://mamachine:631
Allez à présent dans la partie "Administration" afin de vous identifier. Logguez-vous en root.
Ensuite, cliquez dans le menu qui se trouve en haut de la fenêtre sur "Printers", si vous êtes revenu à l'accueil vous pouvez aussi cliquer sur "Manage Printers".
Comme aucune imprimante n'a encore été installée, il va falloir en ajouter une. Cliquez sur "Add Printers".
Vous devez ensuite renseigner trois champs décrivant votre imprimante. Mais seul le premier ("Name") est important car il va donner le nom de votre imprimante : retenez-le !
Ensuite, vous aurez à choisir sur quel port est connecté votre imprimante. Pour cela vous avez le choix entre réseau par samba ; ports Parrallèle ; ports usb... Si quand vous avez démarré votre ordinateur, elle était allumée, alors sûrement que sera indiqué le nom de votre imprimante en face du port où elle est connectée.
Puis vient le choix de la marque de l'imprimante. Si la votre a été détectée au démarage cette étape est quand même obligatoire.
Ensuite, vient le choix du driver. Je vous conseille de choisir celui qui convient bien à votre modèle ou d'essayer un pilote générique si vous ne trouvez rien d'autre. Et si c'est possible (cas où vous avez compillé gimp-print à la main) vous aurez peut-être le choix de la langue du pilote.
Une fois ces étapes terminées, votre imprimante apparait dans la section "Printers" ou "Manage Printers", il ne vous reste plus qu'à choisir le format du papier, ... En cliquant sur "Configure Printers".
Le tour est joué, testez en imprimant une page de test. Votre pinguin imprime !
Drivers PPD
Normalement si gimp-print reconnaît votre imprimante un fichier ppd portant le nom que vous lui avez attribué est stocké dans le répertoire /etc/cups/ppd. Ce fichier donne toutes les informations nécessaires à ghostscript pour imprimer sur votre imprimante.
Si gimp-print n'a pas de drivers pour votre imprimante, il y a un moyen de la faire fonctionner quand même. Allez sur le site www.linuxprinting.org/printer_list.cgi. Sélectionnez la marque et le modèle de votre imprimante. Et faites générer un ppd correspondant, d'une part à votre imprimante, d'autre part au driver que vous comptez utilisez (il y en a en général plusieurs possible). Préférez les drivers gimp-print. Sauf si le site conseille autre chose. Attention, il peut être nécessaire d'installer un programme complémentaire, comme pour les imprimantes [../hardware/hpijs.php3 HP].
Puis, stockez le dans /usr/local/share/cups/model (si vous avez installé cups depuis les sources) ou /usr/share/cups/model (si vous avez utilisé un paquet de votre distribution). Enfin recommencez l'installation de votre imprimante en choisissant le driver que vous venez d'installer.
Outils d'impression
La plupart des débutants sont repoussés par l'aspect ligne de commande de Linux (Note[Léa]: moi j'aime bien la ligne de commande).
Aujourd'hui, pour imprimer, il suffit de lancer une impression depuis votre logiciel de traitement de texte ou autre en choisissant comme ligne de commande d'impression :
où nom est le nom que vous avez donné à votre imprimante et que je vous ai dit de retenir.
Si vous utilisez KDE, vous pouvez lui dire que vous utilisez cups (voir pour cela kcontrol), puis utiliser comme ligne de commande d'impression (dans tous les logiciels qui utilise habituellement lpr) :
ou (ça dépend de l'application, la plupart de celles que j'ai testées utilise cette dernière forme) :
Si maintenant vous avez besoin d'imprimer à partir d'une console, cups vous le permet à travers les commandes habituelles d'impression qui sont lp et lpr. Cette commande supporte presque tous les types de fichiers.
Si vous l'avez installé, le programme xpp fournit le même type de service que kprinter. Il s'utilise de manière similaire.
Administration de CUPS
cups permet un contrôle assez fin des droits d'impression. Je ne vais pas détailler ici toutes les possibilités. Mais certaines sont bien pratiques. Je vais en décrire certaines.
Tout ce que je vais dire s'applique au fichier : /etc/cups/cupsd.conf.
Vous pouvez diriger les 'logs' de cups vers un fichier particulier, il suffit de modifier la variable AccessLog :
par exemple (c'est la valeur par défaut).
Vous pouvez vouloir déplacer l'endroit où cups stocke ses données :
DataDir /usr/share/cups
# les fichiers en instance d'impression :
RequestRoot /var/spool/cups
pour placer les données de cups dans /usr/share/cups.
Il est possible de fixer la langue par défaut dans laquelle cups s'exprime :
pour qu'il s'exprime en français par défaut.
Pour autoriser une autre machine à administrer les imprimantes reliées à celle-ci, il faut que cups écoute les requêtes sur un autre nom que localhost. Par exemple si votre machine s'appelle gandalf.tux vous pouvez ajouter :
Port gandalf.tux:631
Cela peut aussi servir à faire écouter le serveur sur un autre port que celui par défaut (631).
Lorsque vous utiliserez l'interface web pour administrer vos imprimantes, vous verrez que l'url change. Chacune des urls peut être protégée par une série de directives qui ressemble aux directives d'apache. Par exemple, pour limiter l'accès de l'url : gandalf.tux:631/admin à une personne du groupe "lp" connecté depuis ganfalf.tux, frodon.tux ou localhost, il faut ajouter :
<Location /admin>
AuthType Basic
AuthClass System
Order Deny,Allow
Deny From All
Allow From gandalf.tux
Allow From frodon.tux
Allow From 127.0.0.1
#Encryption Required
</Location>
J'arrête là, mais il existe de multiples possibilités, le mieux est encore de lire complètement la documentation de cups.
Copyright
Copyright © 10/03/2003, abba
![]() ![]() ![]() ![]() |
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique, Contexte non commercial 2.0 : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ |