Οδηγός χρήσης του Debian/Εκτύπωση στο Debian

Από Βικιβιβλία

Εγκατάσταση CUPS[επεξεργασία]

Για την εκτύπωση στο Debian χρησιμοποιούμε τον εξυπηρετητή CUPS εγκαθιστώντας το ομώνυμο πακέτo CUPS.

Μετά την εγκατάσταση μπορούμε να ελέγξουμε ότι εκτελείται ο δρομολογητής του CUPS συστήματος , ο cupsd με την εντολή:

 $ ps -aux | grep cupsd
root      1784  0.0  0.0  75244  3116 ?        Ss   Nov05   0:00 /usr/sbin/cupsd -C /etc/cups/cupsd.conf


lpinfo παρέχει μια λίστα με τους οδηγούς και συσκευές που γνωρίζει ο CUPS εξυπηρετητής.

 $ su
 $ lpinfo -v    //διαθέσιμες συσκευές
  direct scsi
 network lpd
 serial serial:/dev/ttyS0?baud=115200
 direct hal:///org/freedesktop/Hal/devices/usb_device_3f0_6d11_MY8BO890WZ04V3_if0_printer_MY8BO890WZ04V3
 network http
 network ipp
 network beh
 network smb
 network socket
 direct usb://HP/Photosmart%20D5400%20series?serial=MY8BO890WZ04V3
 direct hp:/usb/Photosmart_D5400_series?serial=MY8BO890WZ04V3
 
 $lpinfo -m   //διαθέσιμοι οδηγοί


Ρύθμιση cups εξυπηρετητή[επεξεργασία]

Ρύθμιση cups πελάτη[επεξεργασία]

  • Ρυθμίσεις πελατών
    • Εγκαθιστούμε σε κάθε πελάτη τον cups πελάτη. Πχ στο Debian 5 το πακέτο είναι το cups-client.
    • Αν δεν υπάρχει στο gnome το βοήθημα Σύστημα>Διαχείριση συστήματος>Εκτύπωση εγκαθιστούμε #apt-get install system-config-printer [lenny] (gnome-cups-manager [etch])
    • Πρέπει οι χρήστες να είναι μέλη σε κάθε υπολογιστή στις αντίστοιχες ομάδες(groups) ώστε να μπορέσουν να χρησιμοποίησουν τον εξυπηρετητή εκτύπωσης.
    • #touch /etc/cups/client.conf
    • Κάντε τις εξείς αλλαγές στο /etc/cups/client.conf αρχείο.
      • ServerName (ip του διακομιστή εκτύπωσης ή hostname;)
      • Encryption IfRequested
      • Αποθηκεύστε τις αλλαγές.
    • [xubuntu] Εφαρμογές -> Σύστημα -> Εκτύπωση (και αν έχουν γίνει σωστά οι ρυθμίσεις θα δούμε εικονίδια από τους εκτυπωτές του εξυπηρετητή)
    • Ανοίγουμε το βοήθημα Σύστημα>Διαχείριση συστήματος>Εκτύπωση και είτε θα δούμε ότι έχει εμφανιστεί εικονίδιο για τον εκτυπωτή του διακομιστή είτε θα χρειαστεί να προσθέοουμε έναν

εκτυπωτή από τη γραμμή μενού του βοηθήματος εκτύπωση:Επεξεργασία>Νεος εκτυπωτής και από στα παράθυρα διαλόγου αν μας ζητηθεί θα επιλέξουμε εκτυπωτής δικτύου ώστε να γίνει αναζήτηση για τον διακομιστή μας.


Εκτυπώνοντας postscript αρχεία[επεξεργασία]

$lpstat -p -d
  printer HP_Photosmart_D5400_series is idle.  enabled since Κυρ 07 Νοέ 2010 02:13:09 πμ EET
 $ nano helloworld.ps
 %!PS
 /Courier             % name the desired font
 20 selectfont        % choose the size in points and establish 
                     % the font as the current one
 72 500 moveto        % position the current point at 
                    % coordinates 72, 500 (the origin is at the 
                    % lower-left corner of the page)
 (Hello world!) show  % stroke the text in parentheses
 showpage      
$lp -d "HP_Photosmart_D5400_series"  helloworld.ps 


Διαμοιρασμός linux εκτυπωτή με windows[επεξεργασία]

Μια γενική εικόνα[επεξεργασία]

Μια καθόλου τετριμμένη εργασία είναι ο διαμοιρασμός cups εκτυπωτή μέσα samba σε windows πελάτες.

O samba εξυπηρετητής λειτουργεί σαν ενδιάμεσος ανάμεσα στον πελάτη του CUPS και ανάμεσα στον CUPS server. O samba δεν εκτελεί καμιά ενέργεια πάνω στην εργασία εκτύπωσης(print job) . Απλά τα τοποθετεί στο spool αρχείο και καλεί την εντολή που εκκινεί το τοπικό σύστημα εκτύπωσης

Μια επιτυχημένη εκτύπωση από έναν windows πελάτη σε έναν samba εξυπηρετητή εκτύπωσης που εκτελείται σε debian περιλαμβάνει έξι βήματα:

  1. Τα windows ανοίγουν μια σύνδεση με το διαμοιραζόμενο πόρο εκτυπωτή.
  2. Ο samba πιστοποιεί το χρήστη
  3. Τα windows στέλνουν ένα αντίγραφο του αρχείου μέσω του δικτύου στην περιοχή spooling του samba server.
  4. Τα windows κλείνουν τη σύνδεση.
  5. Ο samba εκτελεί την εντολή εκτύπωσης για να αναλάβει το υποσύστημα εκτύπωσης τις περαιτέρω ενέργειες


Δυο τρόποι διαμοιρασμού[επεξεργασία]

Διαβάζωντας σχετικά εγχειρίδια:

  • The Official Samba 3.5.x HOWTO and Reference Guide (Κεφ 22: CUPS Printing Support)
  • Using Samba , 3rd Edition

προκύπτει ότι υπάρχουν δυο τρόποι για να γίνει αυτός ο διαμοιρασμός και το κριτήριο διαχωρισμού είναι πως θα εγκαταστήσει ο win πελάτης τους οδηγούς.

  • raw mode. Η εγκατάσταση των οδηγών του εκτυπωτή μπορεί να γίνει τοπικά από την πλευρά του πελάτη
  • MS-RPC modeή poind and print. Η εγκατάσταση των οδηγών θα γίνει σε ειδικό δ.π του samba διακομιστή ([print$])και από τον πόρο αυτό θα πάρουν οι εκάστατε win πελάτες τον οδηγό που χρειάζονται για να εκτυπώσουν .

Όμως όπως σωστά θα αναρωτηθείτε ' - Εφόσον και στις δύο περιπτώσεις θα γίνει χρήση του windows driver δεν θα έχουμε αποστολή του raw windows job και στις δύο περιπτώσεις; ' Η διαφορά έγκειται στο ότι στην δεύτερη περίπτωση ο εξυπηρετητής μας και ο διαχειριστής έχουν περισσότερο έλεγχο και μπορούν να εφαρμόσουν πολιτικές (quota) , να παράγουν ποιό σωστά στατιστικά χρήσης και να επιβάλουν κεντρικά την έκδοση του windows οδηγού που θα χρησιμοποιείται . Αυτοί οι στόχοι δεν μπορούν να επιτευχθούν στο raw mode.

Ένα ερώτημα είναι είναι αν χρειαστεί να εγκαταστήσουμε στα windows των οδηγό του εκτυπωτή που έχουμε συνδέσει στον debian server. Ο samba υλοποιεί την λειτουργικότητα point and print σύμφωνα με την οποία ένας windows πελάτης όταν συνδεθεί σε έναν δ.π εκτύπωσης θα λάβει από τον εξυπηρετητή και τον οδηγό που θα χρησιμοποιήσει. Αυτό προυποθέτει να υπάρχει ο σχετικός οδηγός προσβάσιμος στον εξυπηρετητή samba. Όμως υπάρχει και η δυνατότητα ο win πελάτης να εγκαταστήσει τοπικά τον οδηγό και να στείλει .

Θεωρητικά δεν είναι τόσο διαφορετικό από το να μοιράζεσαι έναν φάκελο. Αν ο φάκελος στον οποίο θα γράψει ένας πελάτης είναι κατάλογος στο οποίο δέχεται ο cupsd εργασίες τότε αρκεί ένας πελάτης να γράψει στον κατάλογο αυτόν την εργασία του για να εκτυπωθεί.

Έχουμε στον εξυπηρετητή μας εγκατεστημένους τους εξυπηρετητές samba και cups. Θα θέλαμε ο samba να μπορεί να διαμοιράσει έναν cups εκτυπωτή. Για να διαμοιράσουμε έναν εκτυπωτή μπορούμε να χρησιμοποιήσουμε την ειδική ενότητα [printers] ή πρέπει να ορίσουμε έναν εκτυπώσιμο διαμοιράσιμο πόρο. Θα προσπαθήσουμε λοιπόν να ορίσουμε έναν εκτυπώσιμο διαμοιραζόμενο πόρο (χωρίς φιλοξενούμενους) στον οποίο θα έχουν πρόσβαση μόνο οι χρήστες που θα ορίσουμε εμείς .


http://www.samba.org/samba/docs/man/Samba-Guide/happy.html#id2582657

Σχετικές ρυθμίσεις[επεξεργασία]

Οι προκαθορισμένες τιμές μπορεί να αλλάζουν από έκδοση σε έκδοση. Εδώ αναφέρονται για την έκδοση 3.5.6 ($su , #smbd -V)

/etc/samba/smb.conf

  • [printers] [G] Πρόκειται για ειδικό τμήμα του αρχείου που επιτρέπει τη σύνδεση σε οποιονδήποτε εκτυπωτή που ξέρει ο εξυπηρετητής .
  • printing [G] [Προκαθορισμένη τιμή : εξαρτάται από το λειτουργικό . Με testparm -v μαθαίνουμε την τιμή της. Στο debian 5.x η τιμή είναι cups.]
  • printable [S] [Προκαθορισμένη τιμή : printable = no] . Αν τεθεί σε yes τότε οι πελάτες μπορούν να γράψουν και υποβάλουν spool αρχεία στον κατάλογο που καθορίζεται στην ενλόγω υπηρεσία. Αν έχει τιμή no τότε ο δ.π θεωρείται πόρος αρχείων.
  • printer name [S] [Προκαθορισμένη τιμή: καμία ] . Αυτή η παράμετρος καθορίζει το όνομα του εκτυπωτή στον οποίο θα σταλθούν οι κρατημένες στο spool εργασίες.
  • load printers [G] [Προκαθορισμένη τιμή: yes ]

Δεν φτάνει όμως μόνο η ρύθμιση printing = cups.


Διαμοιρασμός σε win98 ,win95[επεξεργασία]

Προσοχή στο όνομα του εκτυπωτή. Δεν πρέπει να είναι πάνω από 8 χαρακτήρες ειδάλλως δεν θα μπορέσει να τον δει το λειτουργικό windows 95-98

Απλή διαμόρφωση samba[επεξεργασία]

Οι ρυθμίσεις που δεν χρησιμοποιούμε μπορεί να έχουν μια προκαθορισμένη τιμή που θα προκαλεί προβλήματα. Οπότε είναι καλό να τις εξετάζουμε με την εντολή $ testparm -v . Οι ρυθμίσεις που καθορίζουμε στο smb.conf υπερισχύουν έναντι τυχών προκαθορισμένων τιμών.

  [global]
  printing = cups
  printcap name = cups
  [printers]
  comment = All Printers
  browseable = no
  path = /var/spool/samba
  printable = yes
  guest ok = no
  read only = yes

Η ρύθμιση printing = cups ίσως δεν χρειάζεται αν είναι προκαθορισμένη. Κατά τ'άλλα οι παραπάνω ρυθμίσεις θα μας επιτρέψουν πρόσβαση από windowsxp αλλά χωρίς point n print λειτουργικότητα. Θα χρειαστεί ο πελάτης να βρεί μόνος του τον οδηγό του εκτυπωτή.

Χρήσιμες εντολές[επεξεργασία]

  • $ lp       // η βασική εντολή εκτύπωσης σε Linux-cups συστήματα [πακέτο cups-client]
    • lp /home/chomwitt/test.txt -d Photosmart_D5400_series       // Παράδειγμα εκτύπωσης. Μπορούμε να στείλουμε και αρχείο γραφικών, και φυσικά postscript, pdf αρχεία.
  • $ lpr       // εκτύπωση αρχείων σε unix-bsd ,παρέχεται από το cups για συμβατότητα [cups-bsd]
    • $ lpd -P destination       // Εμφάνιση της τρέχουσας κατάστασης της ουράς του εκτυπωτή destination.
  • $ lpoptions -l       // εμφάνιση-ρύθμιση των τρέχουσων ρυθμίσεων ενός εκτυπωτή. [cups-client]
  • $ lpstat       // Εντολή εμφάνισης πληροφοριών κατάστασης για τους εκτυπωτές ,τις κλάσεις τους και τις εργασίες. [cups-client]
    • $ lpstat -a [printer(s)]       // Λίστα των εκτυπωτών γνωστών στο cups και την κατάσταση αποδοχής στις ουρές τους (αν δεν προσδιοριστούν εκτυπωτές τότε για εμφάνιση για όλους
    • $ lpstat -p       // Λίστα των εκτυπωτών γνωστών στο cups και κατάσταση λειτουργίας
    • $ lpstat -t       // Εμφάνιση όλων των πληροφοριών κατάστασης την εντολής
    • $ lpstat -ο [destination(s)]       // Εμφάνιση όλων εργασιών προς ολοκλήρωση στους δοθέντες εκτυπωτές. Αν δεν προσδιοριστεί κανένας τότε εμφανίζονται για όλους . Αν θέλουμε να εμφανιστούν οι ολοκληρωμένες εργασίες τότε χρησιμοποιούμε και πριν την επιλογή -o την επιλογή -W completed.
    • $ lpstat -d       // Εμφάνιση προκαθορισμένου (default) εκτυπωτή
  • $lpinfo       // Διαθέσιμοι εκτυπωτές και οδηγοί εκτυπωτών.[cups-client]
  • $ $lpadmin       //Ρύθμιση cups εκτυπωτών (root)[cups-client]
    • $ lpadmin -d Photosmart_D5400_series       // Πχ: θέτωντας τον προκαθορισμένο εκτυπωτή ώστε να μην ώστε να μην χρειάζεται να τον ορίζουμε πχ στην lp ή άλλες εντολές.
  • $ cupsenable destination       // (root) Η βασική παράμετρος destination είναι το όνομα του εκτυπωτή που θέλουμε να απ/ενεργοποιήσουμε προσωρινά. Μπορούμε να δούμε την τρέχουσα κατάσταση του με την lpstat -t [cups-client]
  • $ cupsdisable destination       // (root)[cups-client]
  • $ cupsreject destination       // (root) Η βασική παράμετρος destination είναι το όνομα του εκτυπωτή που θέλουμε να μην δέχεται πλεον εκτυπώσεις. Μπορούμε να δούμε την τρέχουσα κατάσταση του με την lpstat -t . Προσέχτε ότι ένας εκτυπωτής μπόρει να είναι ενεργοποιημένος αλλά να μην δέχεται εκτυπώσεις. Πρακτικά το αποτέλεσμα είναι το ίδιο. Δεν ξέρω για την ώρα τις διαφορές.[cups-client]
  • $ cupsaccept destination       // (root) [cups-client]

Σχετικά αρχεία του CUPS[επεξεργασία]

$ ls /usr/lib/cups/backend
 beh  dnssd  hal  hp  hpfax  http  ipp  lpd  parallel  scsi  serial  smb  snmp  socket  usb


Λεξιλόγιο[επεξεργασία]

  • print queue (ουρά εκτύπωσης)
  • print jop (εργασία εκτύπωσης)