CUPS (Français)

État de la traduction:
Cet article est la version francophone de
CUPS
. Date de la dernière traduction: 2022-10-03. Vous pouvez aider à synchroniser la traduction s'il y a eu des
changements
dans la version anglaise.
Related articles
CUPS/Printer sharing
CUPS/Printer-specific problems
CUPS/Troubleshooting
Samba
LPRng
CUPS
est le système d'impression open source basé sur des standards, développé par OpenPrinting pour Linux® et autres systèmes d'exploitation de type Unix®.
Arch Linux fournit le
fork OpenPrinting de CUPS
,
pas
le
fork Apple de CUPS
.
Installation
Installez
le paquet
cups
.
En option,
installez
le paquet
cups-pdf
si vous avez l'intention d'"imprimer" dans un document PDF. Par défaut, les fichiers PDF sont stockés dans
/var/spool/cups-pdf/
nom d'utilisateur
/
. L'emplacement peut être modifié dans
/etc/cups/cups-pdf.conf
.
Puis
activez
et
démarrez
cups.service
ou alternativement utilisez l'
activation par socket
pour ne démarrer CUPS que lorsqu'un programme veut utiliser le service.
Activation par socket
cups
fournit une unité
cups.socket
. Si
cups.socket
est
activé
(et
cups.service
est
désactivé
),
systemd
ne démarrera pas CUPS immédiatement ; il écoutera simplement les sockets appropriés. Ensuite, chaque fois qu'un programme tentera de se connecter à l'un de ces sockets CUPS,
systemd
lancera
cups.service
et transmettra de manière transparente le contrôle de ces ports au processus CUPS.
Étapes d'impression
Il est important de savoir comment CUPS fonctionne si l'on veut résoudre des problèmes connexes :
Une application envoie un fichier
PDF
à CUPS lorsque l'option 'imprimer' a été sélectionnée (si l'application envoie un autre format, il est d'abord converti en PDF).
CUPS examine ensuite le fichier PPD (fichier de description de l'imprimante) de l'imprimante et détermine les filtres qu'il doit utiliser pour convertir le fichier PDF dans un langage que l'imprimante comprend (comme PJL, PCL, bitmap ou PDF natif).
Le filtre convertit le fichier PDF dans un format compris par l'imprimante.
Puis il est envoyé au back-end. Par exemple, si l'imprimante est connectée à un port USB, elle utilise le back-end USB.
Interfaces de connexion
Les étapes supplémentaires pour la détection de l'imprimante sont listées ci-dessous pour les différentes interfaces de connexion.
USB
Pour consulter si votre imprimante USB est détectée, assurez-vous que le paquet
usbutils
est installé, puis :
$ lsusb
(...)
Bus 001 Device 007 : ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse
Port parallèle
Pour utiliser une imprimante par port parallèle, les
modules du noyau
lp
,
parport
et
parport_pc
sont nécessaires.
# dmesg | grep -i parport
parport0 : Imprimante, Hewlett-Packard HP LaserJet 2100 Series
lp0 : utilise parport0 (interrogation)
Réseau
Pour découvrir, utiliser des imprimantes découvertes ou partager des imprimantes à l'aide de DNS-SD/mDNS, configurez
résolution des noms d'hôtes .local
avec
Avahi
et
redémarrez
cups.service
.
Note
DNS-SD n'est pris en charge que si vous utilisez
Avahi
. CUPS ne prend pas en charge l'utilisation de
systemd-resolved
pour DNS-SD, consultez
l'incident 5452 de CUPS
.
Pour partager des imprimantes avec
Samba
, par exemple si le système doit être un serveur d'impression pour les clients Windows, le paquet
samba
sera nécessaire.
Pilotes d'imprimante
Les pilotes d'une imprimante peuvent provenir de n'importe quelle source indiquée ci-dessous. Consultez
CUPS/Printer-specific problems
pour une liste incomplète de pilotes que d'autres ont réussi à faire fonctionner.
Pour piloter une imprimante, CUPS a besoin d'un fichier PPD et, pour la plupart des imprimantes, de quelques
filtres
. Pour plus de détails sur la façon dont CUPS utilise les PPDs et les filtres, consultez
[1]
.
La
Liste d'imprimantes OpenPrinting
fournit des recommandations de pilotes pour de nombreuses imprimantes. Elle fournit également des fichiers PPD pour chaque imprimante, mais la plupart sont disponibles via
foomatic
ou le paquet de pilotes recommandé.
Lorsqu'un fichier PPD est fourni à CUPS, le serveur CUPS régénère les fichiers PPD et les enregistre dans
/etc/cups/ppd/
.
Pour tester s'ils fonctionnent avant de créer un
PKGBUILD
, les fichiers PPD peuvent être ajoutés manuellement à
/usr/share/cups/
model
, le pilote devrait être disponible après le prochain redémarrage du service cups.
CUPS
CUPS prend en charge les imprimantes
AirPrint
et
IPP Everywhere
.
Filtres OpenPrinting CUPS
Le groupe de travail OpenPrinting de la Fondation Linux fournit
cups-filters
. Ce sont des back-ends, des filtres et d'autres binaires qui faisaient autrefois partie de CUPS mais qui ont été abandonnés par le projet. Ils sont disponibles dans le paquet
cups-filters
qui est une dépendance de
cups
.
Les imprimantes non-PDF nécessitent l'installation de
ghostscript
. Pour les imprimantes PostScript,
gsfonts
peut également être nécessaire.
Foomatic
Le groupe de travail OpenPrinting de la Fondation Linux
foomatic
fournit des PPD pour de nombreux pilotes d'imprimante, libres ou non. Pour plus d'informations sur ce que fait foomatic, consultez
Foomatic du point de vue du développeur
.
Pour utiliser foomatic, installez
foomatic-db-engine
et au moins un des éléments suivants :
foomatic-db
- une collection de fichiers XML utilisés par foomatic-db-engine pour générer des fichiers PPD.
foomatic-db-ppds
- fichiers PPD pré-construits.
foomatic-db-nonfree
- une collection de fichiers XML provenant de fabricants d'imprimantes sous licences non-libres utilisés par foomatic-db-engine pour générer des fichiers PPD.
foomatic-db-nonfree-ppds
- fichiers PPD pré-construits sous des licences non-libres.
Les PPD de foomatic peuvent nécessiter des filtres supplémentaires, tels que
min12xxw
AUR
.
Gutenprint
Le
Gutenprint project
fournit des pilotes pour les imprimantes Canon, Epson, Lexmark, Sony, Olympus et PCL à utiliser avec CUPS et
GIMP
.
Installez
gutenprint
et
foomatic-db-gutenprint-ppds
.
Note
Lorsque les paquets Gutenprint sont mis à jour, les imprimantes utilisant les pilotes Gutenprint cesseront de fonctionner jusqu'à ce que vous exécutiez
cups-genppdupdate
en tant que root et redémarriez CUPS.
cups-genppdupdate
mettra à jour les fichiers PPD des imprimantes configurées, consultez
cups-genppdupdate(8)
pour plus de détails.
Pilotes spécifiques aux fabricants
De nombreux fabricants d'imprimantes fournissent leurs propres pilotes Linux. Ceux-ci sont souvent disponibles dans les dépôts officiels d'Arch ou dans l'
AUR
.
Certains de ces pilotes sont décrits plus en détail dans
CUPS/Printer-specific problems
.
URI de l'imprimante
Vous trouverez ci-dessous des étapes supplémentaires pour générer manuellement l'URI si nécessaire. Certaines imprimantes ou pilotes peuvent nécessiter un URI spécial, comme décrit dans
CUPS/Printer-specific problems
.
USB
CUPS devrait être capable de générer automatiquement un URI pour les imprimantes USB, par exemple
usb://HP/DESKJET%20940C?serial=CN16E6C364BH
.
Si ce n'est pas le cas, consultez
CUPS/Troubleshooting#USB printers
pour connaître les étapes de dépannage.
Port parallèle
L'URI doit être de la forme
parallel:
device
. Par exemple, si l'imprimante est connectée sur
/dev/lp0
, utilisez
parallel:/dev/lp0
. Si vous utilisez un adaptateur USB vers port parallèle, utilisez
parallel:/dev/usb/lp0
comme URI de l'imprimante.
Réseau
Si vous avez configuré
Avahi
comme dans
#Réseau
, CUPS devrait détecter l'URI de l'imprimante. Vous pouvez également utiliser
avahi-discover
pour trouver le nom de votre imprimante et son adresse (par exemple,
BRN30055C6B4C7A.local/10.10.0.155:631
).
L'URI peut également être généré manuellement, sans utiliser
Avahi
. Une liste des schémas URI disponibles pour les imprimantes en réseau est disponible dans la
documentation CUPS
. Comme les détails exacts des URI diffèrent selon les imprimantes, consultez le manuel de l'imprimante ou
CUPS/Printer-specific problems
.
L'URI pour les imprimantes sur les partages
SMB
est décrit dans la page de manuel
smbspool(8)
.
Note
Tous les caractères spéciaux dans les URI des imprimantes doivent être correctement cités, sinon, si votre nom d'imprimante Windows ou vos mots de passe utilisateur contiennent des espaces, CUPS lancera une erreur
lpadmin : Bad device-uri
.
Par exemple,
smb://BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6
devient
smb://BEN-DESKTOP/HP%20Color%20LaserJet%20CP1510%20series%20PCL6
.
La chaîne de caractères peut être obtenue en exécutant la commande suivante :
$ python -c 'from urllib.parse import quote ; print("smb://" + quote("BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6"))'
Les serveurs d'impression CUPS distants sont accessibles via une URI de la forme
ipp://
hostname
:631/printers/
queue_name
. Consultez
CUPS/Printer sharing#Printer sharing
pour plus de détails sur la configuration du serveur d'impression distant.
Consultez
CUPS/Troubleshooting#Networking issues
pour d'autres problèmes et solutions.
Attention
Évitez de configurer le serveur et le client avec un filtre d'imprimante - la file d'attente d'impression du client ou du serveur doit être 'raw'. Cela évite d'envoyer deux fois un travail d'impression à travers les filtres d'une imprimante (ce qui peut causer des problèmes tels qu'une imprimante partagée qui fonctionne localement mais une machine distante ne parvient pas à imprimer
[2]
). Consultez
#lp*
pour un exemple de configuration d'une file d'attente d'impression en mode 'raw'.
Utilisation
CUPS peut être entièrement contrôlé en utilisant les outils CLI
lp*
et
cups*
. Sinon, l'
#Interface Web
ou l'une des nombreuses
#Interfaces graphiques
peut être utilisée.
Le nom de la
queue
(file d'attente) est un nom court mais descriptif utilisé sur le système pour identifier la queue. Ce nom ne doit pas contenir d'espaces ou de caractères spéciaux. Par exemple, une file d'attente d'impression correspondant à une HP LaserJet 5P pourrait être nommée "hpljet5p". Plus d'une file d'attente peut être associée à chaque imprimante physique.
L'
emplacement
est une description de l'emplacement physique de l'imprimante (par exemple "chambre", ou "cuisine"). Ceci permet de faciliter la gestion de plusieurs imprimantes.
La
description
est une description complète de la file d'attente d'impression. Une utilisation courante est le nom complet de l'imprimante (comme "HP LaserJet 5P").
Outils CLI
Consultez
documentation locale CUPS
pour plus d'informations sur les outils de la ligne de commande.
Note
Les paramètres de ligne de commande ne peuvent pas être groupés.
Utilisez SNMP pour trouver un URI :
$ /usr/lib/cups/backend/snmp
ip_address
lp*
L'utilitaire
lpinfo
liste les périphériques avec le paramètre
-v
, et les modèles avec le paramètre
-m
.
L'utilitaire
lpadmin
crée une nouvelle file d'attente avec
-p
queue_name
. Le paramètre
-E
ajouté à
-p
active et accepte les travaux sur l'imprimante. L'indicateur
-v
spécifie l'URI du périphérique, l'indicateur
-m
spécifie le modèle ou le fichier PPD à utiliser. 
Vous pouvez également utiliser le paramètre
-x
pour supprimer une imprimante (lisez au préalable
la section ci-dessous
).
Exemples :
# lpadmin -p HP_DESKJET_940C -E -v "usb://HP/DESKJET%20940C?serial=CN16E6C364BH" -m drv:///HP/hp-deskjet_940c.ppd.gz
Pour une file d'attente sans pilote (Apple AirPrint ou IPP Everywhere) :
# lpadmin -p AirPrint -E -v "ipp://10.0.1.25/ipp/print" -m everywhere
Pour une file d'attente brute ; sans PPD ni filtre :
# lpadmin -p SHARED_PRINTER -m raw
En spécifiant un PPD au lieu d'un modèle :
# lpadmin -p Test_Printer -E -v "ipp://10.0.1.3/ipp/print" -m pxlmono.ppd
Note
Lorsque vous spécifiez le PPD, utilisez uniquement le nom du fichier et non le chemin complet (par exemple,
pxlmono.ppd
au lieu de
/usr/share/ppd/cupsfilters/pxlmono.ppd
). Le chemin complet peut également être utilisé avec le paramètre de ligne de commande
-P
.
En 2021, de nombreuses imprimantes récentes prennent en charge l'impression sans pilote et lorsque vous spécifiez
-m partout
, comme dans le deuxième exemple ci-dessus, l'imprimante sera définie et un fichier
.ppd
sera créé dans
/etc/cups/ppd/
en interrogeant l'imprimante sur le réseau.
L'utilitaire
lpq
vérifie la file d'attente. Ajoutez le paramètre
-a
pour vérifier toutes les files d'attente.
L'utilitaire
lprm
efface la file d'attente. Ajoutez un
-
pour supprimer toutes les entrées au lieu de seulement la dernière par défaut.
L'utilitaire
lpr
imprime. Utilisez
-#
N
pour imprimer le fichier
N
fois, utilisez le paramètre
-p
pour ajouter un en-tête.
Exemples d'impressions de test avec
lpr
:
$ lpr /usr/share/cups/data/testprint
$ echo 'Hello, world!' | lpr -p
L'utilitaire
lpstat
, utilisé avec le paramètre
-s
, vérifie l'état. Le paramètre
-p
permet de spécifier la file d'attente à vérifier.
L'utilitaire
lpoptions
utilise le même paramètre
-p
queue_name
que
lpadmin
montré ci-dessus. Avec le paramètre
-l
, il liste les options. Le paramètre
-d
définit l'imprimante par défaut avec l'argument
queue_name
. Le paramètre
-o
définit les options à une valeur :
$ lpoptions -p HP_DESKJET_940C -o PageSize=A4
$ lpoptions -p HP_DESKJET_940C -o cupsIPPSupplies=true -o Duplex=DuplexNoTumble
cups*
Les utilitaires
cupsaccept
,
cupsdisable
,
cupsenable
et
cupsreject
exécutent ce pour quoi ils sont nommé en anglais. Respectivement : paramétrer l'imprimante pour accepter des travaux, désactiver une imprimante, activer une imprimante, paramétrer l'imprimante pour rejeter toutes les tâches entrantes.
Pour illustrer leur utilisation, nous allons supprimer proprement une imprimante :
# cupsreject
queue_name
# cupsdisable
queue_name
# lpadmin -x
queue_name
encre
Installez
ink
AUR
pour visualiser les niveaux d'encre.
Note
Consultez
liste des imprimantes prises en charge
.
Ajoutez votre utilisateur au
groupe d'utilisateurs
lp
supplémentaire, déconnectez-vous et reconnectez-vous.
Pour obtenir des informations sur l'utilisation, exécutez
ink
sans options.
Interface Web
Le serveur CUPS peut être entièrement administré via l'interface Web, disponible sur
http://localhost:631/
.
Note
Si une connexion HTTPS à CUPS est utilisée, il peut s'écouler un temps très long avant que l'interface n'apparaisse lors du premier accès. Cela est dû au fait que la première requête déclenche la génération de certificats SSL, ce qui peut prendre beaucoup de temps.
Pour effectuer des tâches administratives à partir de l'interface web, une authentification est nécessaire ; consultez
#Permissions
.
Ajouter une file d'attente
Allez sur la page
Administration
.
Modifier des files d'attente existantes
Allez sur la page
Imprimantes
, et sélectionnez une file d'attente à modifier.
Tester une file d'attente
Allez à la page
Imprimantes
, et sélectionnez une file d'attente.
Interfaces graphiques
Si votre utilisateur ne dispose pas de privilèges suffisants pour administrer CUPS, les applications demanderont le mot de passe root lors de leur démarrage. Pour donner aux utilisateurs des privilèges d'administration sans avoir besoin de l'accès root, consultez
#Configuration
.
Deepin Print Manager
— Interface de configuration de l'imprimante pour le bureau Deepin.
https://github.com/linuxdeepin/dde-printer
||
deepin-printer
GtkLP
— Interface GTK pour CUPS.
https://gtklp.sirtobi.com
||
gtklp
AUR
print-manager
— Outil de gestion des travaux d'impression et des imprimantes (
KDE
).
https://invent.kde.org/plasma/print-manager
||
print-manager
system-config-printer
— Outil de configuration de l'imprimante et applet d'état GTK.
https://github.com/OpenPrinting/system-config-printer
||
system-config-printer
Configuration
La configuration du serveur CUPS se trouve dans
/etc/cups/cupsd.conf
et
/etc/cups/cups-files.conf
. (consultez
cupsd.conf(5)
et
cups-files.conf(5)
). Après avoir modifié l'un ou l'autre de ces fichiers,
redémarrez
cups.service
pour appliquer les changements. La configuration par défaut est suffisante pour la plupart des utilisateurs.
Permissions
Les
groupes d'utilisateurs
ayant des privilèges d'administration d'imprimante sont définis dans
SystemGroup
dans le fichier
/etc/cups/cups-files.conf
. Les groupes
sys
,
root
et
wheel
sont utilisés par défaut.
Les programmes d'aide CUPS sont exécutés sous l'utilisateur et le groupe
cups
. Cela permet aux programmes d'aide d'accéder aux périphériques d'impression et de lire les fichiers de configuration dans
/etc/cups/
, qui appartiennent au groupe
cups
.
Note
Préalablement à
cups
2.2.6-2, le groupe
lp
était utilisé à la place
. Après la mise à jour, les fichiers de
/etc/cups
devraient appartenir au groupe
cups
et
User 209
et
Group 209
définis dans
/etc/cups/cups-files.conf
.
Format de papier par défaut
cups
est compilé avec la prise en charge de
libpaper
et libpaper utilise par défaut le format de papier
Letter
(appelé
PageSize
dans
lpoptions
). Pour éviter d'avoir à changer la taille du papier pour chaque file d'impression que vous ajoutez,
modifiez
/etc/papersize
et définissez le format de papier par défaut de votre système. Consultez
paper(1)
.
Fichiers journaux
Par défaut, tous les journaux sont envoyés vers des fichiers dans
/var/log/cups/
. En changeant les valeurs des directives
AccessLog
,
ErrorLog
, et
PageLog
dans
/etc/cups/cups-files.conf
en
syslog
, CUPS peut être amené à envoyer les journaux dans le
journal de systemd
à la place. Consultez
Fedora:Changes/CupsJournalLogging
pour des informations sur le changement proposé à l'origine.
cups-browsed
This article or section is out of date.
Reason:
cups-browsed.service
n'est pas nécessaire pour découvrir les imprimantes annoncées par DNS-SD, ce qui est fait par
cups.service
. Le service est uniquement nécessaire pour découvrir les imprimantes sur un serveur LDAP et celles utilisant le protocole CUPS traditionnel (serveurs CUPS ≤ 1.5). (Discuss in
Talk:CUPS
)
CUPS peut utiliser la navigation
Avahi
pour découvrir des imprimantes partagées inconnues sur votre réseau. Cela peut être utile dans les grandes installations où le serveur est inconnu. Pour utiliser cette fonctionnalité, configurez
résolution du nom d'hôte .local
et démarrez
avahi-daemon.service
et
cups-browsed.service
. Les travaux sont envoyés directement à l'imprimante sans aucun traitement, de sorte que les files d'attente créées peuvent ne pas fonctionner, mais les imprimantes sans pilote telles que celles prenant en charge
IPP Everywhere
ou
AirPrint
devraient fonctionner d'emblée.
Note
La recherche d'imprimantes réseau
peut augmenter considérablement le temps de démarrage de votre ordinateur
.
cups-browsed.service
n'est nécessaire que pour ajouter et supprimer dynamiquement des imprimantes lorsqu'elles apparaissent et disparaissent d'un réseau. Il n'est pas nécessaire si vous souhaitez simplement ajouter une imprimante réseau prenant en charge le DNS-SD/mDNS à CUPS.
Serveurs d'impression et administration à distance
Consultez
CUPS/Printer sharing
et
CUPS/Printer sharing#Remote administration
.
Autoriser l'authentification de l'administrateur via PolicyKit
PolicyKit
peut être configuré pour permettre aux utilisateurs de configurer les imprimantes à l'aide d'une interface graphique sans le mot de passe administrateur.
Note
Vous devrez peut-être installer
cups-pk-helper
pour faire fonctionner ces règles
Voici un exemple qui permet aux membres du
groupe d'utilisateurs
wheel d'administrer les imprimantes sans mot de passe :
/etc/polkit-1/rules.d/49-allow-passwordless-printer-admin.rules
polkit.addRule(function(action, subject) { 
    si (action.id == "org.opensuse.cupspkhelper.mechanism.all-edit" && 
        subject.isInGroup("wheel")){ 
        return polkit.Result.YES ; 
    } 
}) ;
Sans serveur CUPS local
CUPS peut être configuré pour se connecter directement à des serveurs d'impression distants au lieu d'exécuter un serveur d'impression local. Cela nécessite l'installation du paquet
libcups
. Certaines applications nécessiteront toujours le paquet
cups
pour l'impression.
Note
L'accès aux imprimantes distantes sans serveur CUPS local n'est pas recommandé par les développeurs.
[3]
[
dead link
2025-08-15—HTTP 403]
Pour utiliser un serveur CUPS distant, définissez la
variable
d'environnement
CUPS_SERVER
à
printerserver.mydomain:port
. Par exemple, si vous souhaitez utiliser un serveur d'impression différent pour une seule instance de
Firefox
(remplacez
printserver.mydomain:port
par le nom/port de votre serveur d'impression) :
$ CUPS_SERVER=printserver.mydomain:port firefox
Pour rendre cette configuration permanente, créez le fichier de configuration
/etc/cups/client.conf
et ajoutez-y le nom d'hôte du serveur CUPS distant :
ServerName server
Vous pouvez également spécifier un port personnalisé :
ServerName server:port
Consultez
[4]
pour plus de détails.
Dépannage
Consultez l'article anglais
CUPS/Troubleshooting
.
Voir aussi
Documentation officielle de CUPS
,
installée localement
Wikipedia:CUPS
Page d'accueil OpenPrinting
Guide d'impression d'OpenSuSE Concepts - explique une impression de A à Z
.
«OpenSuSE CUPS in a Nutshell» - un rapide aperçu de CUPS
Gentoo:Printing
portail de l'impression de Debian - guides techniques détaillés
Portail de l'impression de Debian - une vue de base du système d'impression CUPS
.
Liste de diffusion CUPS
[
dead link
2024-11-05—HTTP 404]
Liste de diffusion CUPS (fork d'Apple)
[
dead link
2025-11-16—HTTP 404]
Suivi des problèmes de CUPS
.
Suivi des problèmes de CUPS (fork d'Apple)