[buug-l] Buug-Ticker: Thema Praxistip - ein neuer Artikel

buug-t-omat buug-ticker at buug.de
Mit Mar 24 10:29:39 CET 2004


Florian Cramer hat am 2004-03-24 10:29:39 folgenden
Artikel auf buug.de veroeffentlicht.
---------------------------------------------------------------------
Praxistip: 
Subject: Praxistip: Einfach und sicher drucken mit pdq und ssh

Zu den traditionellen Horrorecken von Unix/GNU/Linux/BSD gehört neben
dem klassischen Sendmail die Konfiguration von Druckern mittels
lpr/lprng und printcap-Dateien. Die Alternative CUPS verbessert die
Situation nur scheinbar, indem sie die separaten Komponenten eines
Drucksystems (Spooling, Postscript-Aufrasterung, Netzwerkkommunikation,
Jobkontrolle, Druckertreiber) in eine Allround-Software
gießt, die unter ihrer Haube nicht minder schwer zu durchschauen und zu
konfigurieren ist als lpr/lprng. Jüngstes Zeugnis davon gibt Eric S.  Raymond in
seinem Praxisbericht "The Luxury of Ignorance - An Open Source Horror
Story" (http://www.catb.org/~esr/writings/cups-horror.html). Unschön ist
ferner, daß Cups Netzwerkports nach außen öffnet und einen eigenen http-Server
laufen läßt.

Mit dem Drucksystem pdq (Homepage: http://pdq.sourceforge.net/, aus der
Distribution installierbar u.a. in Debian GNU/Linux) gibt es eine simple
Alternative speziell für Client-PCs und Workstations, die sich mit Hilfe von ssh
aber auch im Netz nutzen läßt.

pdq installiert einen lokalen Druckerspooler, der Druckaufträge im
Verzeichnis .printjobs/ unterhalb des Benutzer-Homeverzeichnis
zwischenspeichert. Die Konfiguration geschieht über eine systemweite,
weitgehend selbsterklärende Datei /etc/pdq/printrc; aber auch Benutzer
können eigene Drucker in einer lokalen ~/.printrc konfigurieren.
Dabei könne sowohl lokal angeschlossene Drucker angesprochen werden, als
auch Netzwerkdrucker, die das lpd-Protokoll sprechen.  Zur Einbindung
von Druckertreiber bzw. -Konfigurationsdateien für pdq gibt es eine
ausführliche Anleitung auf (http://www.linuxprinting.org/pdq-doc.html).

Bis zur erfolgreichen Beendingung wird für jeden Druckauftrag eine
Log-Datei, eine Status-Datei sowie Dateien für rohe und gefilterte
Druckdaten abgelegt. Die ersteren beiden lassen sich problemlos mit
klassischen Kommandozeilen-Werkzeugen lesen, bearbeiten und parsen.
Alternativ kann auch das einfache Konfigurations- und Monitor-GUI xpdq
benutzt werden, das Teil der pdq-Distribution ist.

Das Druckkommando "pdq" nimmt Postscript-, PDF- und Ascii-Daten
entgegen; zum Ausdruck anderer Dateiformate kann ein Filter wie a2ps
vorgeschaltet werden. "pdq" ist dabei ein normales Shellkommando. Das
Drucksystem kommt gänzlich ohne ständig im Hintergrund laufende Dämonen
und Netzwerkdienste aus, die Größe des für x86 kompilierten
pdq-Binaries beträgt lediglich 65 Kilobyte. 

Obwohl pdq für Client-Rechner konzipiert ist, können lokal an einen PC
angeschlossene und per pdq angesteuerte Drucker als Netzwerkdrucker
genutzt werden, indem die Druckdaten vom entfernten Rechner per ssh an
das lokal laufende pdq auf Druckrechner geschickt werden, etwa so:

cat druckdaten.ps | ssh user at xy.org pdq

Diese Methode funktioniert natürlich auch mit Rechnern, auf denen lpr
bzw. ein lpr-Wrapper wie ihn cupsys-bsd bereitsstellt als Druckbefehl
eingerichtet ist; dann allerding muß am Ende der Pipe "lpr" statt "pdq"
stehen.


-F