====== CUPS : serveur d'impression et impression en réseau ====== * Objet : Administrer son imprimante avec CUPS * Niveau requis : {{tag>débutant avisé}} * Commentaires : //Installation et utilisation du système d'impression CUPS.// * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) * Suivi : {{tag>à-placer}} * Création par [[user>sylvain]] le 09/09/2013 * Testé par <...> le <...> * Partie consacrée à print-task-server déclarée obsolète par [[user>--gilles--]] le 02/09/2021 * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=7369 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) ===== Introduction ===== **CUPS**, pour //Common Unix Printing System//, est selon le site officiel, « le système d'impression open source basé sur les standards et développé par Apple Inc. pour macOS et autres systèmes d'exploitation de type UNIX. CUPS utilise le protocole d'impression Internet (IPP, //Internet Printing Protocol//) pour prendre en charge l'impression sur les imprimantes locales et en réseau. » Une des grandes nouveautés de Debian **10**, est l'impression sans pilote avec CUPS 2.2.10.((Lire à ce sujet, [[https://www.debian.org/releases/buster/amd64/release-notes/ch-whats-new.fr.html#driverless-printing|2.2.8. Imprimer sans pilote avec CUPS 2.2.10]]. //Notes de publication pour Debian 10 %%(« Buster »)%%//)) Tentez donc, dans un premier temps du moins, de n'installer que le paquet //cups// (et ses dépendances, bien sûr). Notez toutefois que les commandes et paquets mentionnés sur cette page restent disponibles. ===== Installation ===== **Attention, le paquet task-print-server n'existe plus à partir de Debian 11 ! //Vous pouvez toujours installer les paquets dépendances et recommandés équivalents en version Debian 11, la liste de ces paquets est ici et il y a CUPS dans la liste : [[https://packages.debian.org/buster/task-print-server]] //** **Ce qui suit immédiatement ne concernera que les versions inférieures à Debian 11** Avant tout, si ce n'est déjà fait, installez **CUPS** via le méta-paquet //task-print-server// : apt-get update && apt-get install --install-recommends task-print-server Notez que l'installation des paquets recommandés est implicite, sur un système Debian officiel, et que de très nombreux pilotes d'imprimantes (Epson, Gutenprint, HPLIP, etc.) seront installés en même temps que le serveur d'impression : apt-cache depends task-print-server task-print-server Dépend: tasksel Dépend: cups Dépend: cups-client Dépend: cups-bsd Recommande: foomatic-db-engine Recommande: printer-driver-all Recommande: hplip Recommande: hp-ppd Recommande: openprinting-ppds **Fin de la partie du tuto devenue obsolète depuis Debian 11** ---- Pour savoir si votre imprimante est prise en charge « nativement » par CUPS, vous pouvez exécuter : /usr/sbin/lpinfo --make-and-model "truc" -m Où "truc" est la marque/le modèle de votre imprimante ; exemples sous Debian __9__ : /usr/sbin/lpinfo --make-and-model "m12w" -m lpinfo: client-error-not-found L'imprimante HP LaserJet Pro M12w **n'est pas** prise en charge **nativement**. Hélas. /usr/sbin/lpinfo --make-and-model "8210" -m postscript-hp:0/ppd/hplip/HP/hp-officejet_pro_8210-ps.ppd HP OfficeJet Pro 8210 Postscript (recommended) Par contre, l'imprimante HP OfficeJet Pro 8210, **est** prise en charge — //hplip// installé. Si votre imprimante n'est pas listée, cherchez un pilote (libre ou non) sur le site de son constructeur. Les méthodes varient d'un constructeur à l'autre : * pour Brother : https://support.brother.com/g/b/productsearch.aspx?c=fr&lang=fr&content=dl * pour Canon : https://www.canon.fr/support/ * pour Epson : https://download.ebz.epson.net/dsc/search/01/search/?osCode=LX * pour HP : commencez par tenter l'installation du paquet //hplip// du dépôt backports (**[[doc:materiel:imprimante-hp|wiki dédié]]**) ===== Utilisation ===== Pour administrer votre imprimante avec CUPS vous pouvez utiliser 3 méthodes différentes : * via votre navigateur internet, * via un frontal, * ou bien avec le terminal. Cette page a pour but de présenter les 3 méthodes. À la fin du tuto se trouvent des astuces qui vous aideront, je l'espère, si vous rencontrez des problèmes d'impression. ==== Première méthode : avec votre navigateur internet préféré ==== * Cliquez sur le lien suivant : http://localhost:631/printers Normalement votre imprimante apparaît. {{/file-R2cfea98475cda55764299a70da0cbbc4.png?500x1000}} * En cliquant sur l'onglet administration vous pouvez administrer votre imprimante. {{/file-R393778e04576f86a11b4269a1e1e7dff.png?500x1000}} * Mais pour cela il va falloir vous identifier, * on vous demande un nom d'utilisateur : root * et un mot de passe : celui de root. {{/file-R96527a8e34ceb064162d32de7ed7dda9.png?300}} * Dans le cas d'une configuration utilisant sudo, vous tapez le nom d'utilisateur principal et son mot de passe. * Si votre imprimante n’apparaît pas, vous pouvez tenter de la rajouter manuellement en cliquant sur "Ajouter une imprimante". * Il y a aussi une aide en ligne bien pratique, en particulier la section "Man Pages". {{/file-R63a643dd424a640154152de4d4f5a8cf.png?300}} ==== Seconde méthode (1) : avec le frontal GtkLP ==== * Installez le paquet //gtklp// : apt-get install gtklp GtkLP est un frontal de CUPS pour GNOME qui est seulement accessible à partir du terminal. * Une fois installé, lancez-le en écrivant simplement dans votre terminal : gtklp Vous pouvez dès à présent gérer vos paramètres d'impression. {{/file-R6920f5a8fca8c2ee63bc8f09a18f4530.png?300}} {{/file-R92542b04657542a58733b5cc37147051.png?300}} {{/file-R5538f5f51446f32987c4dea21f1f87f8.png?300}} Cette méthode permet une gestion poussée de CUPS tout en restant très simple d'utilisation :-P ==== Seconde méthode (2) : avec le frontal system-config-printer ==== Ce frontal est livré avec Debian dès l'installation, selon votre gestionnaire graphique les chemins d'accès sont différents. * Pour y accéder depuis votre terminal entrez la commande suivante : system-config-printer * Pour gérer votre imprimante faites un petit tour dans les paramètres : {{/file-R9e654b3bf416d0649bba2095e33b7c34.png?300}} * Et n'oubliez pas de visiter l'aide en cas de soucis : {{/file-Rc99aee8920844db0560e8ae5c78078fd.png?300}} ==== Troisième méthode : en ligne de commande ==== L'administration uniquement en ligne de commande (pour les barbus ! LOL) Toutes les informations qui suivent sont prises sur le site [[http://doc.gnu-darwin.org/fr/sam.html#2_7]]. N'hésitez pas à y aller ça vaut le détour. En voici un petit résumé ;-) : Pour connaître l'adresse de votre imprimante (obligatoire pour ajouter une imprimante) utilisez la commande suivante en tant que super-utilisateur : lpinfo -v Pour installer une imprimante, exécutez la commande ''lpadmin'' avec l'option ''-p'' :  lpadmin -p imprimante -E -v périphérique -m ppd Une série d'exemples pour comprendre :\\ Pour une imprimante HP DeskJet connectée au port parallèle, la commande serait : lpadmin -p DeskJet -E -v parallel:/dev/lp1 -m deskjet.ppd De la même manière, une imprimante HP LaserJet utilisant une interface réseau de type JetDirect à l'adresse IP 11.22.33.44 serait ajoutée avec la commande : lpadmin -p LaserJet -E -v socket://11.22.33.44 -m laserjet.ppd Maintenant que l'imprimante est installée, passons à l'administration proprement dite : La commande ''lpadmin'' vous permet d'effectuer la plupart des tâches d'administration d'imprimantes depuis la ligne de commande. Vous trouverez ''lpadmin'' dans le répertoire /usr/sbin. === Ajouter et modifier des imprimantes === Exécutez la commande ''lpadmin'' avec l'option ''-p'' pour ajouter ou modifier une imprimante. lpadmin -p imprimante options Les arguments options peuvent être n'importe lesquels parmi : ''-c classe''\\ Ajoute l'imprimante nommée à la classe d'imprimantes classe. Si la classe d'imprimantes n'existe pas alors elle est créée. ''-i interface''\\ Copie le script pour l'interface vers l'imprimante. Les scripts d'interface sont utilisés par les pilotes d'imprimantes System V. Étant donné que tous les filtres sont désactivés lorsque les scripts d'interface sont employés, les scripts ne devraient normalement jamais être utilisés à moins qu'il n'y ait aucun autre pilote pour l'imprimante. ''-m modèle''\\ Indique un pilote d'imprimante standard qui est généralement un fichier PPD. Une liste de tous les modèles disponibles peut être affichée au moyen de l'option -m de la commande ''lpinfo'' (cf. [[#installation|supra]]). ''-r classe''\\ Retire l'imprimante spécifiée de la classe d'imprimantes classe. Si la classe qui en résulte est vide, elle est supprimée. ''-v uri-périphérique''\\ Indique le périphérique à employer pour dialoguer avec l'imprimante. Si un travail d'impression est actuellement en cours d'édition sur l'imprimante spécifiée, il est relancé et envoyé au nouveau périphérique. ''-D info''\\ Fournit une description textuelle de l'imprimante, par exemple "Imprimante personnelle de Marcel". ''-E''\\ Active l'imprimante et accepte les travaux d'impression. Cette option équivaut à exécuter les commandes enable(1) et accept(8). ''-L emplacement''\\ Fournit une description textuelle de l'emplacement de l'imprimante, par exemple "Salle informatique n°5". ''-P fichier-ppd''\\ Indique un fichier PPD local pour le pilote d'imprimante. === Supprimer des imprimantes === Exécutez la commande ''lpadmin'' avec l'option ''-x'' pour supprimer une imprimante : lpadmin -x imprimante === Choisir l'imprimante implicite === Exécutez la commande ''lpadmin'' avec l'option ''-d'' pour définir l'imprimante standard : lpadmin -d imprimante L'imprimante standard peut-être outrepassée par l'utilisateur au moyen de la commande ''lpoptions''. === Démarrer et arrêter des imprimantes === Les commandes ''cupsenable'' et ''cupsdisable'' démarrent et arrêtent les files d'impression, avec les syntaxes respectives suivantes : cupsenable imprimante cupsdisable imprimante Les imprimantes qui sont désactivées peuvent toujours accepter les travaux d'impression mais n'en imprimeront effectivement aucun tant qu'elles ne seront pas réactivées. Cela est utile si une imprimante fonctionne mal et que vous avez besoin de corriger le problème (bourrage). Tout travail d'impression mis en file d'attente est imprimé dès que la l'imprimante est réactivée. === Accepter et rejeter les travaux d'impression === Les commandes ''cupsaccept'' et ''cupsreject'' permettent respectivement d'indiquer à une imprimante qu'elle doit accepter ou rejeter les nouveaux travaux d'impression : cupsaccept imprimante cupsreject imprimante Comme indiqué ci-dessus, une imprimante peut être configurée pour ne plus accepter de nouveaux travaux d'impression. Une imprimante peut aussi rejeter les nouveaux travaux d'impression bien qu'elle soit en train de terminer le traitement de ceux qui ont été mis en file d'attente avant que celle-ci soit désactivée. Ceci est utile si vous avez besoin d'effectuer des opérations de maintenance sur l'imprimante et que vous ne voulez pas qu'elle soit disponible pour les utilisateurs pendant une longue période. ===== Petites astuces utiles en cas de problèmes avec votre imprimante ===== * Les pilotes sont généralement conçus pour fonctionner avec un système 32 bits, si vous êtes en 64 bits vous devez contrôler que vous avez bien les paquets : //ia32-libs// ou //lib32stdc++6// (FIXME) * Si vous ne pouvez pas accéder à la configuration de votre imprimante, essayez de vous ajouter au groupe administrateur, dans un terminal root : #remplacez username par votre nom d'utilisateur adduser username lpadmin * Si vous avez plusieurs imprimantes installées : lpstat -t permet de savoir quelle imprimante est installée par défaut. * Si vous voulez obtenir des infos sur le pilote que vous avez vous-même installé (par ex. pilotes Brother), la commande : dpkg -l | grep Brother vous listera les paquets contenant le mot "Brother" (remplacez Brother par Epson, Canon, etc. selon le cas), ensuite vous pouvez contrôler le bon fonctionnement de ces paquets avec la commande : apt-cache show paquet pensez à regarder en particulier la ligne concernant les dépendances. * Pour vider la liste des impressions en attente, utilisez la commande : lprm * Pour avoir la liste des options de votre imprimante : lpoptions -l ===== Pour aller plus loin ===== Je ne saurais trop vous conseiller d'aller faire un petit tour sur ces sites : * Manuel de l'administrateur (v1.1.14, 2002) : [[http://doc.gnu-darwin.org/fr/sam.html|HTML]] / [[http://doc.gnu-darwin.org/fr/sam.pdf|PDF]] * Manuel de l'utilisateur (v1.1.14, 2002) : [[http://doc.gnu-darwin.org/fr/sum.html|HTML]] / [[http://doc.gnu-darwin.org/fr/sum.pdf|PDF]] * [[https://www.cups.org/documentation.html|Documentation - CUPS.org]] (en anglais) * [[http://localhost:631/help|Aide en ligne]] (machine locale, en anglais) * [[https://www.openprinting.org/printers|Printer List | OpenPrinting - The Linux Foundation]] (anglais) ===== Remerciements ===== Je tiens à remercier **captnfab**, **deuchdeb** et **smolski** pour l'aide apportée à l'élaboration de cette page.\\ Bien sûr je n'oublie pas **MaTTuX_** sans qui il n'y aurait pas d'images dans la doc.\\ Merci aussi à toutes les personnes qui ont fait ou feront un retour sur le forum pour l'amélioration de ladite page, et bien sûr à toi, lecteur, mon semblable, mon frère (comprenne qui pourra, j'ai des envolées lyriques des fois ;-)), qui aura pris la peine de lire ce tuto jusqu'au bout.