Administrar impresoras no es fácil Administración de Sistemas Operativos CUPS: gestionar impresoras en Linux y no sufrir (demasiado) en el intento ● Enorme diversidad: ● Tipo de impresora, tecnología que utiliza, tipos de papel que admite, bandejas de papel, dúplex, color, ... ● Conexión ordenador-impresora ● Lenguaje de la impresora – – USB, TCP/IP, Bluetooth, serie, paralelo, … PCL4, PCL5, PCL6, PostScript, PDF, varios de ellos, ninguno en absoluto Un escenario típico Documento 1 (texto, gráfico, pdf, ...) Documento 2 (texto, gráfico, pdf, ...) · · · Documento n (texto, gráfico, pdf, ...) Diversas necesidades de Impresión Un escenario típico Diversos recursos de impresión Documento 1 (texto, gráfico, pdf, ...) Documento 2 (texto, gráfico, pdf, ...) · · · Documento n (texto, gráfico, pdf, ...) CUPS Sistema de colas (spooling) Conversión a un formato que entienda la impresora (PostScript, PCLx, Raster, ...) Enviar el resultado a una impresora usando la interfaz y el protocolo adecuados a la impresora (USB, Bluetooth, red, serie, …) Principales características de CUPS ● ● ● ● ● ● ● ● ● ● Principales características de CUPS Common Unix Printing System ● Disponible para muchos SO (Unix, Linux, Mac OS X, …) ● Bien documentado Interfaz administrativa vía web fácil de usar (http://localhost:631) ● Soporte para un gran número de impresoras Soporta múltiples formas de comunicación con las impresoras ● Uso de filtros para convertir los documentos a un lenguaje que pueda entender la impresora Implementa IPP (Internet Printing Protocol) ● Autenticación y control de acceso ● Impresión remota segura (TLS/SSL) Implementa las utilidades de impresión tipo lpd (System V) y de lpr (Berkeley) Soporte de cuotas y de contabilidad Funcionamiento básico de CUPS Funcionamiento básico de CUPS CUPS tiene arquitectura cliente/servidor Ejemplo: se desea imprimir dos documentos El servidor gestiona colas (queues) y trabajos de impresión (jobs) Puede recibir peticiones de impresión locales y remotas Envía los ficheros a la cola adecuada, en función de la impresora que el usuario quiere utilizar y los convierte en trabajos de impresión Los trabajos pueden cancelarse o cambiarse de cola lpr -P laserDIS doc1.pdf foto.jpg 1. Se envían ambos documentos a la cola de la impresora laserDIS 2. Cuando la impresora está lista, se saca el primer documento de la cola, se determina su tipo y se comprueba si la impresora es capaz de imprimirlo directamente 3. Si es necesario se convierte a un formato que pueda entender la impresora, mediante el uso de filtros 4. Se envía a la impresora 5. Vuelta al paso 2 Algunas órdenes útiles Resumen de órdenes útiles Las siguientes órdenes pueden resultarte útiles para trabajar desde el shell ● Todas son implementadas por CUPS ● Algunas son propias ● Otras existen por compatibilidad con dos sistemas más antiguos ● Berkeley (BSD) ● System V Servidor CUPS Servidor CUPS: demonio cupsd ● /etc/cupsd.conf : fichero de configuración de CUPS ● /etc/init.d/cupsd start | stop | restart ● ● Si se hacen cambios en la configuración del demonio (no en las impresoras) hay que rearrancarlo Control de la configuración y del funcionamiento del sistema de impresión desde la interfaz web: http://localhost:631 Servidor CUPS ● ● ● KDE y Gnome proporcionan sus propias interfaces alternativas a la interfaz web CUPS usa ficheros PPD (PostScript Printer Definition) para conocer las capacidades y características de las impresoras Además de CUPS, existe mucho software útil para trabajos de impresión: ● Filtros: n-páginas a 1, conversión de formatos de fichero, numeración automática de líneas, resaltado de sintaxis, ... Para saber más ● ● Linux Administration Handbook, 2nd edition, E. Nemeth, et. al., capítulo 23 Si tienes CUPS instalado en tu sistema, http://localhost:631/help ● http://www.cups.org ● http://linuxprinting.org ● http://en.wikipedia.org/wiki/Internet_Printing_Protocol