Cups-2.4.6

Introduction à Cups

Le Common Unix Printing System (Cups) (système d'impression Unix général) est un ensemble de tampon d'imprimantes et d'outils associés. Il se base sur l'"Internet Printing Protocol" (protocole d'impression par Internet) et il offre des services d'impression pour la plupart des imprimantes PostScript and raster.

This package is known to build and work properly using an LFS 12.0 platform.

Informations sur le paquet

Dépendances de Cups

Requises

GnuTLS-3.8.1

Recommandées

Facultatives

Avahi-0.8, libpaper-2.1.1, MIT Kerberos V5-1.21.2, PHP-8.2.9 et Python-2.7.18

Requises (Après installation)

cups-filters-1.28.16

Facultatives (Après installation)

Gutenprint-5.3.4 et hplip (imprimantes HP)

Notes des rédacteurs : https://wiki.linuxfromscratch.org/blfs/wiki/cups

Configuration du noyau

[Note]

Note

Il existait un conflit entre le moteur libusb de Cups et le pilote usblp du noyau. Ce n'est plus le cas et cups fonctionnera avec les deux activés.

Si vous voulez utiliser le pilote usblp du noyau (par exemple, si vous voulez utiliser escputil de Gutenprint-5.3.4), activez les options suivantes dans la configuration de votre noyau et recompilez le noyau :

Device Drivers --->
  [*] USB support --->                                             [USB_SUPPORT]
    <*/M> USB Printer support                                      [USB_PRINTER]

Si vous avez une imprimante en port parallèle, activez les options suivantes dans la configuration de votre noyau et recompilez le noyau :

Device Drivers --->
  <*/M> Parallel port support --->                                     [PARPORT]
    <*/M> PC-style hardware                                         [PARPORT_PC]
  Character devices --->
    <*/M> Parallel printer support                                     [PRINTER]

Installation de Cups

Il va falloir ajouter un utilisateur lp car Cups va créer des fichiers qui appartiennent à cet utilisateur (l'utilisateur lp est celui que Cups utilise par défaut, mais on peut mettre un autre utilisateur en passant un paramètre au script configure). Utilisez la commande suivante en tant qu'utilisateur root :

useradd -c "Print Service User" -d /var/spool/cups -g lp -s /bin/false -u 9 lp

Vous aurez également besoin d'un groupe dédié qui contiendra les utilisateurs autorisés à effectuer des tâches administratives de Cups. Ajoutez le groupe en exécutant la commande suivante en tant qu'utilisateur root :

groupadd -g 19 lpadmin

Si vous voulez ajouter un utilisateur au groupe d'administration de Cups, lancez la commande suivante en tant qu'utilisateur root :

usermod -a -G lpadmin <username>

Si vous n'avez pas installé xdg-utils-1.1.3, utilisez le sed suivant pour modifier le navigateur utilisé par défaut pour accéder à l'interface Web de Cups :

sed -i 's#@CUPS_HTMLVIEW@#firefox#' desktop/cups.desktop.in

Remplacez firefox par le navigateur Web de votre choix.

Construisez Cups en exécutant les commandes suivantes :

./configure --libdir=/usr/lib            \
            --disable-systemd            \
            --with-rcdir=/tmp/cupsinit   \
            --with-rundir=/run/cups      \
            --with-system-groups=lpadmin \
            --with-docdir=/usr/share/cups/doc-2.4.6 &&
make

Pour tester les résultats, lancez LC_ALL=C make -k check. Une session graphique active avec une adresse de bus est nécessaire pour lancer les tests. Assurez-vous qu'il n'y a pas d'autre instance de Cups actuellement lancée, sinon au moins 4 tests échoueront avec « adresse déjà utilisée ».

Maintenant, en tant qu'utilisateur root :

make install &&
ln -svnf ../cups/doc-2.4.6 /usr/share/doc/cups-2.4.6

Supprimez le script de démarrage inclus, qui n'est pas compatible avec LFS :

rm -rf /tmp/cupsinit &&

Créez le fichier de configuration de base du client Cups en exécutant la commande suivante en tant qu'utilisateur root :

echo "ServerName /run/cups/cups.sock" > /etc/cups/client.conf
[Note]

Note

Ce paquet installe des fichiers d'icônes dans la hiérarchie /usr/share/icons/hicolor et vous pouvez améliorer les performances du système et l'utilisation de la mémoire en mettant à jour /usr/share/icons/hicolor/index.theme. Pour réaliser la mise à jour vous devez avoir installé GTK+-2.24.33 ou GTK+-3.24.38 puis exécutez la commande suivante en tant qu'utilisateur root :

gtk-update-icon-cache -qtf /usr/share/icons/hicolor

Explication des commandes

--disable-systemd : Systemd n'est pas supporté par cette version de BLFS.

--with-rcdir=/tmp/cupsinit : Ce paramètre dit au processus de construction d'installer les scripts de démarrage inclus dans /tmp au lieu de /etc/rc.d.

--with-rundir=/run/cupsinit : ce paramètre empêche le paquet de se référer au répertoire obsolète /var/run.

--with-system-groups=lpadmin : Ce paramètre assure que seul lpadmin sera utilisé comme groupe d'administration de Cups.

--disable-libusb : Utilisez ce paramètre si vous avez installé libusb-1.0.26, mais souhaitez utiliser le pilote usblp du noyau.

--enable-libpaper : Utilisez ce paramètre si vous avez installé libpaper et souhaitez l'utiliser avec Cups.

Configuration de Cups

Fichiers de configuration

/etc/cups/*

Informations sur la configuration

Normalement, les imprimantes sont initialisées via un navigateur web. Le serveur Cups sera accessible normalement par l'url http://localhost:631. Les imprimantes, les travaux d'impressions, et la configuration du serveur peuvent être initialisés et gérés. L'administration de système à distance peut également être initialisée. La configuration peut également être faite depuis la ligne de commande via les commandes lpadmin, lpoptions, et lpstat.

La configuration de Cups dépend du type d'imprimante et elle peut être complexe. En général, les imprimantes PostScript sont plus simples. Pour des instructions détaillées sur la configuration et l'utilisation de Cups, voir https://www.cups.org/documentation.html.

Pour que des imprimantes non PostScript impriment avec Cups, vous devez installer ghostscript-10.01.2 pour convertir PostScript en images raster et un pilote (comme ceux de Gutenprint-5.3.4) pour convertir les images rasters résultantes sous une forme compréhensible par l'imprimante. Les pilotes de Foomatic utilisent ghostscript-10.01.2 pour convertir du PostScript en forme directement imprimable, mais les développeurs de Cups considèrent cela comme du bricolage.

Configuration de Linux PAM

Si CUPS a été construit avec le support de Linux PAM, vous devez créer un fichier de configuration PAM, pour le rendre fonctionnel correctement avec BLFS.

Tapez la commande suivante en tant qu'utilisateur root pour créer le fichier de configuration pour Linux PAM :

cat > /etc/pam.d/cups << "EOF"
# Begin /etc/pam.d/cups

auth    include system-auth
account include system-account
session include system-session

# End /etc/pam.d/cups
EOF

Script de démarrage

Si vous voulez que le service d'impression Cups démarre automatiquement lors du démarrage du système, installez le script de démarrage inclus dans le paquet blfs-bootscripts-20230824 :

make install-cups

Contenu

Programmes installés: cancel, cupsaccept, cups-config, cupsctl, cupsd, cupsdisable, cupsenable, cupsfilter, cupsreject, cupstestppd, ippeveprinter, ippfind, ipptool, lp, lpadmin, lpc, lpinfo, lpmove, lpoptions, lpq, lpr, lprm, lpstat, ppdc, ppdhtml, ppdi, ppdmerge et ppdpo
Bibliothèques installées: libcupsimage.so et libcups.so
Répertoires installés: /etc/cups, /usr/{include,lib,share}/cups, /usr/share/doc/cups-2.4.6 et /var/{cache,log,run,spool}/cups

Descriptions courtes

cancel

annule les tâches d'impression existantes dans les queues d'impression

cupsaccept

accepte les travaux envoyés à une destination

cups-config

est un outil de configuration pour Cups

cupsctl

met à jour ou interroge le fichier cupsd.conf pour un serveur

cupsd

est le programmeur de tâches du Common Unix Printing System

cupsdisable

arrête les imprimantes et les classes

cupsenable

démarre les imprimantes et les classes

cupsfilter

est une interface avec le sous-système de filtre de Cups qui vous permet de convertir un fichier dans un format spécifique

cupsreject

rejète les travaux envoyés à une destination

cupstestppd

teste la conformité des fichiers PPD

ippeveprinter

est une imprimante IPP Everywhere pour CUPS

ippfind

trouve les imprimantes suivant le protocole d'impression internet

ipptool

envoie des requêtes IPP à l'adresse spécifiée et teste ou affiche les résultats

lp

soumet des fichiers pour qu'ils soient imprimés ou modifie des tâches en attente

lpadmin

configure les queues d'une imprimante ou d'une classe fournies par Cups

lpc

offre un contrôle limité des queues d'imprimante ou de classe fournies par Cups

lpinfo

liste les périphériques ou les pilotes disponibles connus du serveur Cups

lpmove

envoie la tâche spécifiée vers une nouvelle destination

lpoptions

affiche ou règle les options de l'imprimante et ceux par défaut

lpq

affiche le statut actuel de la queue d'impression de l'imprimante mentionnée

lpr

soumet des fichiers pour qu'ils soient imprimés

lprm

annule des tâches d'impression envoyées pour impression vers la queue

lpstat

affiche des informations statutaires sur les classes, les tâches et les imprimantes actuelles

ppdc

compile des fichiers sources PPDC en un ou plusieurs fichiers PPD

ppdhtml

lit le fichier d'informations d'un pilote et donne une page de résumé en HTML qui liste tous les pilotes d'un fichier et les options supportées

ppdi

importe un ou plusieurs fichiers PPD dans un fichier source pour le compilateur PPD

ppdmerge

synchronise deux ou plusieurs fichiers PPD dans un seul fichier PPD multi-langages

ppdpo

extrait des chaînes UI de fichiers source PPDC et met à jour soit un fichier de traduction source d'un catalogue GNU gettext ou de chaînes au format Mac OS X

libcups.so

contient les fonctions de l'API de Cups