Debian és Windows megosztott nyomtatás mini-HOGYAN

Ian Ward


ian at excess dot org
    

2002.12.01

Verziótörténet
Verzió: 1.42004.01.05Átdolgozta: iw
Szavak javítása.
Verzió: 1.32003.11.18Átdolgozta: iw
Az lpadmin -h helytelen használata törölve.
Verzió: 1.22003.10.03Átdolgozta: iw
Megjegyzés a woody-ról és a gs-esp-ről, ütközés a bash enable parancsával, javítás az XP/2000 kliensekhez.
Verzió: 1.12003.06.26Átdolgozta: iw
Hozzáadva a jelszó megadása megosztott windowsos nyomtatónál, javítások.
Verzió: 1.02003.05.15Átdolgozta: tmm
Első kiadás, az LDP átnézte.
Verzió: 0.82003.04.11Átdolgozta: iw
LaTeX-ről konvertálva.

Tartalomjegyzék
1. Bevezetés
2. Alapok
2.1. Linux nyomtatási komponensek
2.2. Szükséges csomagok
2.3. CUPS helyi nyomtató beállítás
2.4. Linux nyomtatási alapok
3. Nyomtatás windowsos számítógépre
3.1. Kapcsolódás a Windowshoz
3.2. A CUPS beállítása
4. Linuxos nyomtatók megosztása windowsos számítógépekkel
4.1. Megosztási alapfogalmak
4.2. Samba beállítások
4.3. CUPS beállítások
5. Hibaelhárítás
5.1. Nem lehet elérni a windowsos nyomtatókat
5.2. Egyéb hibák
6. Licenc
7. Magyar fordítás

1. Bevezetés

A Debian GNU/Linux (http://www.debian.org) az első önkéntesek által támogatott Linux disztribúció. Sajnos Debianban a nyomtatóbeállítás nem mindig egyszerű feladat. Nehéz találni olyan Windows és Linux közötti nyomtatómegosztást lépésenkét leíró dokumentumot, amelyben a legújabb programeszközöket használják fel. Ez a HOGYAN mindkét probléma megoldását célozza meg.

Ez a HOGYAN bemutatja, miként lehet beállítani Debian rendszerben a nyomtatást parancssoros eszközök segítségével. Kifejti, hogyan lehet Linuxból dokumentumokat küldeni windowsos nyomtatókra, és hogyan lehet linuxos nyomtatókat Windowszal felszerelt számítógépekkel megosztani. Néhány gyakori probléma megoldására is mutatunk példát.

Ezen dokumentum legfrissebb változata megtalálható a http://excess.org/docs/linux_windows_printing.html honlapon. Ezen dokumentumhoz kapcsolódó Docbook/XML és az EPS fájlok letölthetők a http://excess.org/docs/src/ webhelyről. Kérjük, hogy a dokumentummal kapcsolatos hibajelentéseket, javításokat és javaslatokat az ian@excess.org e-mail címre küldjétek.


2. Alapok

2.1. Linux nyomtatási komponensek

A legfőbb komponensek, amiket használni fogunk:

  • CUPS

    Az Egységes UNIX Nyomtatási Rendszer (Common UNIX Printing System; http://www.cups.org) egy nyomtatási sorkezelő, valamint a nyomtatóhasználatot és adminisztrációt segítő programok gyűjteménye.

  • Samba

    A Samba (http://www.samba.org) egy olyan program, amely a Windows fájl- és nyomtatómegosztási protokollok implementálásával lehetővé teszi a nem Windowst futtató számítógépek számára, hogy egy hálózaton windowsos gépként viselkedjenek.

  • Nyomtató eszközmeghajtók

    A LinuxPrinting.org (http://www.linuxprinting.org) webhelyen a legtöbb nyomtatóhoz található eszközmeghajtó, itt egy adatbázisban tárolják a Linux alatt használható nyomtatók listáját. A Linux alatt használni kívánt nyomtatók minden típusához le kell tölteni egy eszközmeghajtót. Egy nyomtató eszközmeghajtó egy PPD fájlból és egy szűrő programból áll, PostScript nyomtatók esetén pedig csak egy PPD fájlból.


2.2. Szükséges csomagok

Minden szükséges program és programkönyvtár része a szabványos Debian rendszernek. Ezek a csomagok a megszokott Debian csomagkezelőkkel letölthetők és telepíthetők. A következő csomagokra van szükség:

A következő parancsok segítségével telepítheted ezeket a csomagokat:

apt-get update
apt-get install cupsys cupsys-bsd cupsys-client foomatic-bin samba smbclient 
gs-esp a2ps

Bizonyos nyomtatókhoz esetleg további csomagok is szükségesek. Például a HP InkJet nyomtatók helyes működéséhez a hpijs csomagot is telepítened kell.


2.4. Linux nyomtatási alapok

Dokumentumokat a nyomtatási sorba az lpr vagy az lp paranccsal vehetsz fel, a parancs után megadva a fájl nevét. A nyomtatási sort megtekintheted és a nyomtató állapota ellenőrizheted az lpstat -o illetve az lpstat -p parancs használatával. Egy nyomtatási feladat törléséhez a cancel vagy az lprm parancsot használd, megadva utána a feladat azonosítóját.

A CUPS nyomtatási sorkezelő démon neve cupsd. Ez a dokumentumokat először PostScript formátumra, majd pedig a nyomtató saját formátumára konvertálja (1 Ábra). A PostScriptet nem ismerő nyomtatók egy raszteres vagy bittérképes dokumentum formátumot használnak. A raszteres formátum mérete az eredeti PostScript formátumúnál sokkal nagyobb lehet, és elküldése a nyomtatóhoz több időt vesz igénybe.

A szűrők (filters) olyan programok, amelyek a dokumentumokat egyik formátumról egy másikra konvertálják. A CUPS nyomtatási sorkezelő mindent megtesz, hogy az elküldött dokumentumok számára találjon egy megfelelő szűrőt. Ha nincs olyan szűrő telepítve, amellyel a dokumentumot konvertálni lehetne, egy ehhez hasonló hibaüzenettet kapsz: lpr: unable to print file: client-error-document-format-not-supported.

Sok alkalmazás nem tartalmaz szűrőket a saját dokumentum formátumaihoz. Ezekkel az alkalmazásokkal készített dokumentumok csak magából az alkalmazásból nyomtathatók ki, hacsak nem mented el a dokumentumot PostScript vagy más szabványos formátumba.


3. Nyomtatás windowsos számítógépre

3.1. Kapcsolódás a Windowshoz

Az SMB és a CIFS, a Windows fájl- és nyomtatómegosztási protokollja. A Samba szervert használhatod arra, hogy ezekkel a protokollokkal kommunikálj a Windowst futtató számítógépekkel. A CUPS konfigurálása előtt meg kell győződnöd arról, hogy kapcsolódni tudsz a Samba SMB/CIFS kliensével, az smbclient programmal a windowsos számítógéphez (2 Ábra).

Íme egy példa windowsos számítógéppel való kapcsolat létrehozására:
/usr/bin/smbclient -L rice -U fred

added interface ip=10.6.7.234 bcast=10.6.7.255 nmask=255.255.255.0
Got a positive name query response from 10.6.7.8 ( 10.6.7.8 )
Password: (not shown)

Sharename  Type  Comment
PRINTER$   Disk
INKJET     Printer
STUFF      Disk
IPC$       IPC    Remote Inter Process Communication

A bemutatott parancs a "rice" nevű windowsos számítógép azon megosztott erőforrásainak listáját kéri le, melyekhez a "fred" nevű felhasználó hozzáférhet. Ez az "INKJET" elnevezésű nyomtatót jeleníti meg.

Ha a Windows névszolgáltatása nem érhető el, meg kell adnod a windowsos számítógép IP címét az -I kapcsoló segítségével:
/usr/bin/smbclient -I 10.6.7.8 -L rice -N

További információkért az smbclient használatával kapcsolatban olvasd el a Samba dokumentációját.


4. Linuxos nyomtatók megosztása windowsos számítógépekkel


4.2. Samba beállítások

Ha a nyomtatóhoz az anonim (anonymous) hozzáférés engedélyezve van, akkor a távoli nyomtatási feladatok elvégzéséhez létre kell hoznod egy új felhasználót:
/usr/sbin/adduser --system --disabled-password smbprint

Ez a parancs létrehoz egy "smbprint" nevű felhasználót. Bizonyosodj meg arról, hogy a /home/smbprint könyvtárban, az "smbprint" nevű felhasználó munkakönyvtárában (home) elegendő lemezterület áll rendelkezésre a nyomtatási sor kezeléséhez. Ellenőrizd, hogy az "smbprint" nevű felhasználónak ne legyen jogosultsága a rendszer működésében fontos szerepet játszó fájlok és könyvtárak olvasásához vagy módosításához. Ha a CUPS beállítása csak bizonyos felhasználóknak teszi lehetővé a nyomtatást, az "smbprint" nevű felhasználó számára engedélyezned kell azon nyomtatókhoz való hozzáférést, amelyeket meg akarsz osztani.

Az /etc/samba/smb.conf a Samba konfigurációs fájl. A következő példa egy konfigurációs fájl, amely a CUPS-t az "smbprint" nevű felhasználó számára állítja be:
[global]
  printcap name = cups
  printing = cups
  security = share
[printers]
  browseable = yes
  printable = yes
  public = yes
  create mode = 0700
  guest only = yes
  use client driver = yes
  guest account = smbprint
  path = /home/smbprint

Jegyezd meg, hogy ez a beállítás mindenki számára engedélyezi a nyomtatást, aki hálózati kapcsolatot tud létesíteni számítógépünkkel, és ezért nem ajánlott használni olyan, nem megbízható hálózatra csatlakozó gépek esetén, mint például közvetlen Internet hozzáféréssel rendelkező számítógépek. Ha a hozzáférést szabályozni szeretnéd, akkor szúrj be a security = user vagy a security = domain sort, és további információkért olvasd el a Samba kézikönyv oldalait.

Ha a Samba konfigurációs fájlhoz hozzáadtad a fenti beállításokat, újra kell indítanod a Samba szervert a következő parancs segítségével:
/etc/init.d/samba restart


4.3. CUPS beállítások

A windowsos eszközmeghajtók egy meghatározott formátumra alakítják a nyomtatónak küldött kimenetüket, mielőtt a hálózatra küldik azt. Az /etc/cups/mime.convs fájl következő sorának elején lévő megjegyzés-karakter törlésével be kell állítanod a CUPS-t, hogy fogadja az előre formázott kimenetet:
application/octet-stream   application/vnd.cups-raw   0
-

Az /etc/cups/mime.types fájl következő sorának elejéről szintén távolítsd el a megjegyzés karaktert:
application/octet-stream

Most pedig állítsd be a CUPS-t, hogy engedélyezze a kapcsolódást a hálózat többi gépe számára. Az /etc/cups/cupsd.conf fájlhoz add hozzá ezeket a sorokat:
<Location /printers>
 AuthType None
 Order Deny,Allow
 Deny From None
 Allow From All
</Location>
Ahogy a Samba beállítások esetén, ez a konfiguráció is engedélyezi a nyomtatóhoz való hozzáférést bármilyen számítógép számára, ezért nem ajánlott biztonsági szempontból megbízhatatlan hálózatokra csatlakozó számítógépek esetén. A nyomtatókhoz való hozzáférés szabályozásával kapcsolatos információkért olvasd el a cupsd.conf kézikönyv oldalait és a CUPS dokumentációt.

Végül indítsd újra a CUPS-t a következő paranccsal:
/etc/init.d/cupsys restart

Ha minden jól ment, a linuxos nyomtatók most már meg vannak osztva a helyi hálózat windowsos gépei számára. Windowsos számítógépek esetén hálózati nyomtató hozzáadása a szokásos módon történik, és ne felejts el tesztoldalt nyomtatni.


5. Hibaelhárítás


5.2. Egyéb hibák

Ide tartozik az, ha nem lehet nyomtatni egy helyi nyomtatóra, és ha a nyomtatási feladatok anélkül tűnnek el a nyomtatási sorból, hogy nyomtatásra kerülnének. Esetleg olyan elbizonytalanító hibaüzeneteket is láthatsz, mint például a Child process 2384 exited with status 32. üzenet.

A CUPS naplózását "debug" szintre beállítva több üzenetet láthatsz arról, hogy mi történik mielőtt egy nyomtatási feladat hibát jelezve megszűnik.

  1. Nyisd meg a CUPS elsődleges konfigurációs fájlját, az /etc/cups/cupsd.conf fáljt egy ASCII szövegszerkesztővel.

  2. Írd be a "LogLevel warn" sor helyett a "LogLevel debug" sort.

  3. Mentsd el a konfigurációs fájlt és lépj ki a szövegszerkesztőből.

  4. Indítsd újra a CUPS szervert a következő paranccsal:
    /etc/init.d/cupsys restart
    

A CUPS naplózását a következő paranccsal követheted nyomon:
/usr/bin/tail -f /var/log/cups/error_log

Léteznie kell a Scheduler shutting down due to SIGTERM sornak. Ez azt jelenti, hogy a CUPS szerver sikeresen leállt.

A nyomtatási feladatot küldd el újra, és keress a kiírt nyomkövetési üzenetek (debug messages) között valami hasznavetőt. A GNU Ghostscript 7.05: Can't start ijs server 'hpijs'. egy ilyen hasznos nyomkövetési üzenet. Ez esetben a megoldás a "hpijs" csomag telepítése.

Ha nem tudod meghatározni a hiba okát, a kapott hibaüzenetek kulcsszavaira az Interneten keress rá. Valószínű, hogy valaki már korábban megoldotta a problémát. Meg lehet próbálni a 2.2 fejezetben felsorolt csomagok legújabb verzióra történő frissítését is.


6. Licenc

Copyright © 2003 Ian Ward.

Ez a kézikönyv egy szabad szoftver; továbbterjeszthető és/vagy módosítható a Free Software Foundation (Szabad Szoftver Alapítvány) által közzétett GNU General Public License feltételei szerint; a GNU GPL2 vagy későbbi változata alapján.

Annak reményében került közzétételre, hogy hasznosnak bizonyul, de mindenféle garancia nélkül; beleértve a eladhatóságot vagy egyéb célokra való használhatóságot Olvasd el a GNU GPL-t a további részleteket illetőlen.

A GNU GPL másolata megtalálható a /usr/share/common-licenses/GPL könyvtárban a Debian GNU/Linux összeállítás esetén, vagy a WEB-en a http://www.gnu.org/copyleft/gpl.html honlapon. Megkaphatod postai úton is, ha írsz a Szabad Szoftver Alapítványnak a következő címre: Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.


7. Magyar fordítás

A magyar fordítást Mócza Zsolt készítette (2002.09.09). A lektorálást Daczi László végezte el (2003.09.15). Utoljára frissítve 2004.04.16-án. A dokumentum legfrissebb változata megtalálható a Magyar Linux Dokumentációs Projekt honlapján.