CUPS

Fiche logiciel validé
  • Création ou MAJ importante : 06/03/10
  • Correction mineure : 13/02/12
Mots-clés

CUPS : système d'impression

  • Site web
  • Système : UNIX-like, MacOS X
  • Téléchargement
  • Version évaluée : 1.4.2 stable
  • Langue(s) de l'interface : anglais
  • Licence : GPL, LGPL

    Une partie de CUPS « Common UNIX Printing System »TM, est fournie sous la licence GNU General Public License ("GPL"), une autre partie sous la Library General Public License ("LGPL") Version 2, à l’exception de la distribution cups pour les systèmes Apple, de la partie du code concernant openSSL et Kerberos.

Description
Fonctionnalités générales
  • CUPS est un système d’impression « open source » pour système Linux, Unix et MacOS X qui permet à un PC de se comporter comme un serveur d’impression. Un serveur CUPS prend en charge des travaux d'impression envoyés par des postes clients, les traite et les envoie à l'imprimante qui convient.
  • CUPS permet d’administrer tout type de connexion d’imprimante : sur port USB, port parallèle, ou encore connectée en réseau. L’administration se fait ensuite de la même manière, quel que soit le type de connexion de l’imprimante.
  • Après création d’une imprimante sous CUPS, une “file d’impression” ("queue" dans le jargon informatique) est créée. Cette file sert à administrer l’imprimante : enregistrer son statut (active, libre.. ) et stocker temporairement les pages à imprimer.
  • CUPS fournit des pilotes pour de nombreuses imprimantes disponibles sur le marché. Quand on imprime un document, CUPS convertit le document dans un format compatible avec l’imprimante choisie. Lorsqu’un poste client envoie une page à imprimer à une imprimante, CUPS convertit les pages provenant d’une application (un traitement de texte, une page web etc.) dans un format compréhensible par une imprimante, puis envoie ce document formaté à l’imprimante. Une tache d’impression est placée dans la file d’attente correspondant à l’imprimante. On peut ainsi administrer chaque tâche d’impression par des commandes spécifiques. CUPS gère l’enchaînement des tâches d’impression. Quand la tâche d’impression est terminée CUPS l’enlève de la file d’impression et passe à la tâche suivante.
Autres fonctionnalités
  • Interface graphique : CUPS fournit de façon basique une interface graphique pour administrer le serveur d’impression, les imprimantes et les tâches d’impression. Cette interface graphique est accessible via un navigateur Web sur le porté dédié 631. On accède à cette interface par http://nom_serveur_cups:631
  • CUPS s’interface très bien avec SAMBA ( cf fiche PLUME http://www.projet-plume.org/fiche/samba ) et permet de partager et rendre accessible les imprimantes pour des postes clients sous Windows.
  • Coopération de serveur CUPS : CUPS peut être à la fois serveur ou client. Sur un réseau local les serveurs CUPS coopèrent entre eux. Par le biais de certaines directives dans le fichier de configuration « cupsd.conf », on peut exporter les imprimantes vers d’autres serveurs ou subnet, et définir la portée de l’exportation. Inversement on peut définir si un serveur CUPS importe une liste d’imprimante de la part de tel ou tel serveur. Par exemple un serveur principal maître peut être paramétré pour administrer toutes les imprimantes d’un site. Les autres serveurs CUPS paramétrés en tant que « clients » obtiennent alors la liste des imprimantes de la part du serveur maître. Lorsqu’un serveur CUPS client reçoit une tâche d’impression, il la communique alors au serveur maître.
  • On peut limiter la portée de l’exportation des imprimantes sur un réseau.
  • CUPS supporte IPv6 (dans la mesure ou le système d’exploitation hôte le supporte également).
  • Auto-SSL; CUPS supporte et détecte automatiquement les connexions chiffrées SSL TLS.
  • Découverte d’imprimante réseau : CUPS peut détecter automatiquement les imprimantes sur un réseau local en utilisant SNMP.
Interopérabilité

CUPS tourne sur toutes les distributions Linux et la plupart des Unix commerciaux ainsi que MacOS X.

Contexte d'utilisation dans mon laboratoire/service

Dans mon laboratoire :

  • CUPS est le système d’impression unique de tout le laboratoire. Il met à disposition une vingtaine d’imprimantes pour plusieurs centaines d’utilisateurs. Couplé à Samba, il permet de concentrer et gérer les impressions de tous les postes windows et MacOS du laboratoire sur un serveur unique. Quel que soit le poste client, toutes les impressions sont envoyées vers le serveur CUPS qui gère leur ordre de passage via une « file » d’impression.
  • S’il y a plusieurs serveurs CUPS (provenant de différents PC sous linux) sur le réseau local, les serveurs sont paramétrés de telle manière qu’il n'y ait qu'un seul serveur maître principal qui concentre et gère les impressions que lui envoient les autres serveurs « clients ». Un serveur CUPS peut en effet être paramétré pour agir en tant que client d’un serveur maître. Dans ce cas, il reçoit de la part de ce serveur maître la liste d’imprimantes que gère le serveur maître.
  • En concentrant les impressions sur un serveur unique, CUPS permet d’obtenir des statistiques d’impression imprimante par imprimante et utilisateur par utilisateur
Limitations, difficultés, fonctionnalités importantes non couvertes

CUPS ne gère pas directement les quotas d’impressions ni les statistiques d’impression. Il faut avoir recours à d’autres produits complémentaires comme :

  • pykota : http://www.pykota.com
  • Phpprintanalyser : http://phpprintanalyze.sourceforge.net/

  • Jkota : http://iremia.univ-reunion.fr/jkota/
    jKota permet le contrôle efficace de la quantité d'impressions effectuée, en bloquant les travaux d'impression des utilisateurs dont le quota est dépassé. L'utilisateur est informé en temps réel du nombre de pages qu'il a imprimées. L'administrateur du système a une vue synthétique et détaillée de l'utilisation de son parc d'imprimante.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

La plupart des distributions Linux (dont Mandriva, Redhat, CentOS, Debian) proposent des paquetages de CUPS.

Plates-formes

CUPS tourne sur toutes les distributions Linux et la plupart des Unix commerciaux ainsi que MacOS X.

Logiciels connexes
  • Très bonne interopérabilité de CUPS avec kde et mandriva qui proposent des interfaces graphiques spécifiques comme kdeprint ou kups pour administrer le serveur cups et les imprimantes.
  • PyKota est un système complet, centralisé et internationalisé, de quotas d'impression pour CUPS et LPRng.
Autres logiciels aux fonctionnalités équivalentes

Autre système d’impression : LPRng: http://www.lprng.com/

Environnement de développement
Type de structure associée au développement

CUPS est développé par la société « Easy Software Products » : http://www.easysw.com/about.php

Eléments de pérennité
  • Code source ouvert, développé par une société commerciale. CUPS s’impose peu à peu comme le standard d’impression sous Unix. MacOS X l’a adopté nativement.
  • CUPS fournit un DDK « Driver Development Kit » développé sous licence GPL pour permettre de développer des drivers d’imprimantes.
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

Un grand nombre de listes sont disponibles sur http://lists.easysw.com/mailman/listinfo :

  • Annonce : cups-announce [at] easysw [dot] com
  • Utilisation : cups [at] easysw [dot] com
  • Développeurs : cups-dev [at] easysw [dot] com
Documentation utilisateur

Commentaires

Responsable thématique précédent

Cette fiche a d'abord été suivie par le responsable thématique Jacquelin Charbonnel. Gilian Gambini l'a reprise en février 2012.