La gestione delle stampanti in ambiente GNU/Linux avviene grazie al sottosistema CUPS (acronimo di Common Unix Printing System, Sistema di Stampa Unix Comune). Esso è costituito da un gestore della coda di stampa (spooler), un insieme di filtri atto a tradurre i dati di stampa in istruzioni compatibili con le stampanti usate, ed un modulo che gestisce la comunicazione con le stampanti stesse.
CUPS fu originariamente sviluppato da Micheal Sweet nel 1997 e fu subito adottato dalla maggior parte delle distribuzioni Linux dell'epoca come principale sistema di stampa. Nel 2002, la Apple adottò CUPS come sistema di stampa per Mac OS X. In seguito, nel 2007 Apple acquistò i diritti di proprietà intellettuale da Sweet, pur mantenendo la licenza GPL2/LGPL.
Installazione di CUPS
L'installazione del sistema di stampa avviene grazie all'ormai noto comando apt-get, come mostrato nell'esempio sottostante:
# apt-get install cups
Il comando provvederà al download ed all'installazione di tutti i pacchetti necessari.
Interfaccia web di CUPS
CUPS dispone di una comoda interfaccia web di amministrazione. Grazie ad essa è possibile monitorare lo stato delle code di stampa, delle stampanti connesse al sistema e l'attività di stampa degli utenti. Inoltre, è possibile gestire l'installazione delle stampanti ed i parametri di condivisione delle stesse sulla rete.
Per ragioni di sicurezza, per default l'interfaccia web di CUPS è accessibile solo dal computer in cui CUPS è installato. Sebbene questa impostazione sia corretta in linea di principio, essa può rendere la gestione del sistema di stampa più difficoltosa se non si dispone di un browser installato direttamente sul server. Per ovviare a questo problema, è sufficiente riconfigurare CUPS per consentire l'accesso da un altro computer nella stessa rete.
La configurazione può essere effettuata manualmente, intervenendo sul file /etc/cups/cupsd.conf. In particolare, bisogna cambiare il valore del parametro Listen
da localhost
a 0.0.0.0
per mettere il server CUPS in ascolto su tutte le interfacce di rete del server. Inoltre, le direttive Order
vanno impostate su allow,deny
per consentire l'accesso a client remoti. Come si può notare, il file cupsd.conf adotta la stessa sintassi dei file di configurazione del server web Apache.
Per gli utenti meno esperti, è disponibile un'opzione del comando cupsctl che permette di riconfigurare il server per l'accesso remoto senza richiedere un intervento manuale sul file di configurazione. Basterà digitare:
cupsctl --remote-admin
e quindi riavviare il server CUPS con il comando:
# service cups restart
A questo punto, l'interfaccia web di CUPS sarà accessibile da un qualunque PC connesso alla stessa rete del server, puntando il browser all'indirizzo http://<ip del server>:631, avendo cura di utilizzare l'indirizzo IP effettivo del server. Ad esempio, se l'indirizzo IP del server sulla rete locale è 192.168.1.100, la URL da digitare sarà http://192.168.1.100:631.
Installazione di una stampante
Dall'interfaccia di amministrazione, accediamo alla sezione Administration, quindi clicchiamo su Add Printer per aggiungere una stampante. CUPS elencherà le stampanti direttamente connesse al server e quelle automaticamente riconosciute sulla rete locale.
Affinché CUPS possa riconoscere una stampante già connessa al server, potrebbe essere necessario installare prima i relativi driver. Per farlo, visitiamo il sito web del produttore, ed in particolare la sezione di supporto e download per scaricare il pacchetto con i driver per il proprio modello. Di solito, si tratta di un pacchetto contenente uno script di shell che effettua automaticamente l'installazione. La procedura però potrebbe variare in base al produttore.
Selezioniamo a questo punto la stampante che si vuole aggiungere al server di stampa, quindi clicchiamo su Continue. CUPS chiederà di selezionare il modello esatto della stampante, per poter configurare correttamente i filtri di stampa. Se il modello non è elencato tra quelli disponibili, è possibile caricare manualmente un file PPD (PostScript Printer Descriptor), ovvero un file di testo che indica a CUPS il formato atteso dalla stampante per i comandi di stampa. Questi file sono liberamente scaricabili da Internet e spesso sono forniti insieme ai driver dagli stessi produttori.
Nelle lezioni successive si affronterà il tema della configurazione della condivisione delle stampanti gestite da CUPS.