---
title: A CUPS használata FreeBSD rendszereken
authors:
- author: Chess Griffin
email: chess@chessgriffin.com
trademarks: ["freebsd", "general"]
---
= A CUPS használata FreeBSD rendszereken
:doctype: article
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:source-highlighter: rouge
:experimental:
:images-path: articles/cups/
ifdef::env-beastie[]
ifdef::backend-html5[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
:imagesdir: ../../../images/{images-path}
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]
ifndef::env-beastie[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
[.abstract-title]
Kivonat
Ez a cikk a CUPS beállítását és használatát mutatja be a FreeBSD operációs rendszeren.
_Fordította: Páli Gábor, utolsó ellenõrzés: 2010.11.28._
'''
toc::[]
[[printing-cups]]
== A Common Unix Printing System (CUPS) rövid bemutatása
A CUPS, avagy _Common UNIX Printing System_ (Egységes UNIX Nyomtatási Rendszer) a UNIX(R) alapú operációs rendszerekhez fejlesztett hordozható nyomtatási réteg. Az Easy Software Products egy szabványos nyomtatási technológiaként alkotta meg a UNIX(R) gyártók és felhasználók számára.
A CUPS az ún. _Internet Printing Protocol_ (IPP, Internetes Nyomtatási Protokoll) megoldásaira támaszkodóan kezeli a nyomtatási feladatokat és sorokat. Emellett még a _Line Printer Daemon_ (LPD), a _Server Message Block_ (SMB) és _AppSocket_ (vagy más néven __JetDirect__) protokollokat is ismeri valamennyire. A CUPS a hétköznapi igényeknek megfelelõ UNIX(R) alapú nyomtatás megteremtéséhez ezenkívül még támogatja a hálózati nyomtatók böngészésének lehetõségét, illetve a _PostScript Printer Description_ (PPD, PostScript Nyomtató Leírás) használatát. Ennek eredményeképpen a CUPS tökéletesen alkalmas nyomtatók megosztására és elérésére FreeBSD, Linux(R) Mac OS(R) X vagy Windows(R) típusú rendszereket vegyesen tartalmazó környezetekben.
A CUPS hivatalos oldala a http://www.cups.org/[http://www.cups.org/] címen érhetõ el.
[[printing-cups-install]]
== A CUPS nyomtatószerver telepítése
A CUPS telepíthetõ portként vagy csomagként. Ha portként szeretnénk telepíteni, akkor ahhoz a következõ parancsot kell kiadnunk rendszergazdaként:
[source,shell]
....
# cd /usr/ports/print/cups && make install clean
....
A CUPS csomagjának telepítését pedig ezzel a paranccsal tudjuk (szintén rendszergazdaként) elvégezni:
[source,shell]
....
# pkg_add -r cups
....
További nem kötelezõen telepítendõ, de határozottan ajánlott csomagok még a package:print/gutenprint-cups[] és a package:print/hplip[], amelyek különbözõ típusú nyomtatókhoz tartalmaznak meghajtókat és segédprogramokat. A CUPS telepítése után a hozzá tartozó konfigurációs állományokat a [.filename]#/usr/local/etc/cups# könyvtárban találhatjuk.
[[printing-cups-configuring-server]]
== A CUPS nyomtatószerver beállítása
A CUPS szerver telepítése után néhány állomány módosításával végezhetjük el a szükséges beállításokat. Elõször is hozzunk létre (ha még nem létezne) vagy nyissuk meg az [.filename]#/etc/devfs.rules# állományt és a `cups` csoport számára adjunk hozzáférést a rendszerünkben található összes nyomtatóra:
[.programlisting]
....
[system=10]
add path 'unlpt*' mode 0660 group cups
add path 'ulpt*' mode 0660 group cups
add path 'lpt*' mode 0660 group cups
add path 'usb/X.Y.Z' mode 0660 group cups
....
[NOTE]
====
Az _X_, _Y_ és _Z_ helyén a nyomtató [.filename]#/dev/usb# könyvtárban szereplõ értékeit adjuk meg. A nyomtatóhoz tartozó eszközleírót a man:dmesg[8] kimenetében találjuk meg [.filename]#ugenX.Y# néven, amely egy szimbolikus link a [.filename]#/dev/usb# könyvtárban található megfelelõjére.
====
Ezután az [.filename]#/etc/rc.conf# állományba még vegyük fel a következõ két sort:
[.programlisting]
....
cupsd_enable="YES"
devfs_system_ruleset="system"
....
Az iménti bejegyzések gondoskodnak a CUPS nyomtatószerver beüzemelésérõl a rendszer indítása során, illetve töltik be az elõbbi lépésben létrehozott helyi devfs szabályokat.
Bizonyos Microsoft(R) Windows(R) rendszert használó kliensekkel csak akkor fogunk tudni nyomtatni a CUPS esetében, ha a [.filename]#/usr/local/etc/cups/mime.types# és [.filename]#/usr/local/etc/cups/mime.convs# állományokban kivesszük a megjegyzésbõl ezt a sort:
[.programlisting]
....
application/octet-stream
....
Miután végrehajtottuk ezeket a módosításokat, az alábbi parancsok használatával vagy az operációs rendszerrel együtt indítsuk újra a man:devfs[8] és CUPS szolgáltatásokat:
[source,shell]
....
# /etc/rc.d/devfs restart
# /usr/local/etc/rc.d/cupsd restart
....
[[printing-cups-configuring-printers]]
== Nyomtatók beállítása a CUPS nyomtatószerveréhez
A CUPS sikeres telepítését és beállítását követõen elkezdhetjük a nyomtatószerverhez kapcsolódó helyi nyomtatók hozzáadását. Ez nagyon hasonló, ha nem is teljesen megegyezõ más UNIX(R) alapú rendszerek, például Linux(R) esetén a nyomtatók beállításához.
A CUPS szerver irányítása és mûködtetése elsõsorban az általa felkínált webes felületen történik, amelyet a http://localhost:631[http://localhost:631] címen keresztül tudunk elérni. Amennyiben a CUPS egy másik számítógépen fut, akkor a címben természetesen a `localhost` (saját gépünk) helyén az adott gép IP-címét kell megadnunk. A CUPS webes felületén meglehetõsen könnyen lehet tájékozódni, külön menüket találunk a nyomtatók és nyomtatási sorok beállítására, a felhasználók hitelesítésére és a többi. Ezeken felül még az "Administration" képernyõ jobb oldalán különbözõ jelölõnégyzetekkel tudunk egyszerûen dönteni a gyakori beállításokról, például a szerverhez csatlakozó nyomtatókat megosztjuk-e a hálózaton keresztül, engedünk-e további felhasználókat hozzáférni a szolgáltatásokhoz, kinek milyen engédelyei legyenek a nyomtatókra és nyomtatási sorokra.
A nyomtatók hozzáadásához elegendõ a CUPS webes felületén az "Administration" menün belül az "Add Printer" gombra vagy valamelyik "New Printers Found" gombra kattintani. A "Device" legördülõ menü megjelenése után egyszerûen válasszuk ki belõle a megfelelõ helyileg csatlakoztatott nyomtatót, majd folytassuk a telepítését. Ha telepítettük a korábban ajánlott package:print/gutenprint-cups[] és package:print/hplip[] programokat, akkor ennek során a hozzájuk tartozó meghajtók is meg fognak jelenni, amelyek esetleg többet tudnak vagy megbízhatóbbak.
[[printing-cups-clients]]
== A CUPS kliensek beállítása
A CUPS szerver beállítása, illetve a nyomtatók telepítése és megosztása után a kliensek, vagyis a CUPS által kínált szolgáltatásokat elérni kívánó gépek beállítása következik. Ha csupán egyetlen gépünk van, amely egyszerre szerver és kliens, akkor az itt szereplõ információk nagy részére nem lesz szükségünk.
[[printing-cups-clients-unix]]
=== UNIX(R) kliensek
A UNIX(R) kliensek esetében is a CUPS használatára lesz szükségünk. Miután rájuk is telepítettük, a CUPS által hálózaton megosztott nyomtatókat maguktól fel is ismerik a különbözõ munkakörnyezetek, például a GNOME vagy KDE nyomtatókezelõi. Emellett a szerverhez hasonlóan a kliensen is el tudjuk érni a http://localhost:631[http://localhost:631] címen a CUPS helyi felhasználói felületét, ahol az "Administration" menüben az "Add Printer" gombbal tudunk felvenni a szervernél tapasztalt módon hasonlóhoz. Amikor viszont megjelenik a "Device" legördülõ menü, akkor válasszuk az automatikusan felismert hálózati CUPS nyomtatót, vagy az `ipp` és `http` elemek valamelyikén keresztül adjuk meg a hálózati CUPS nyomtató IPP vagy HTTP alapú egységes forrásazonosítóját (URI) a következõ formák valamelyikében:
[.programlisting]
....
ipp://szervernév-vagy-ip/printers/nyomtatónév
....
[.programlisting]
....
http://szervernév-vagy-ip:631/printers/nyomtatónév
....
Ha a CUPS kliensek valamiért nem látnák a hálózaton megosztott nyomtatókat, akkor próbáljuk meg hozzáadni a [.filename]#/usr/local/etc/cups/client.conf# állományhoz a következõ sort:
[.programlisting]
....
ServerName szerver-ip
....
Ahol a _szerver-ip_ helyére írjuk be a hálózatunkon található CUPS szerver helyi IP-címét.
[[printing-cups-clients-windows]]
=== Windows(R) kliensek
A Windows(R) XP elõtti változatai nem képesek együttmûködni a hálózaton megosztott IPP alapú nyomtatókkal. A Windows(R) XP rendszertõl kezdõdõen azonban már rendelkeznek a szükséges támogatással, ezért itt már nagyon könnyû beállítani a CUPS nyomtatókat. Ehhez rendszeradminisztrátorként futtassuk a Windows(R) a nyomtatók hozzáadásához tartozó varázslóját, ahol válasszuk a "Hálózati nyomtató" típust, majd a következõ formában töltsük ki az eszköz forrásazonosítóját:
[.programlisting]
....
http://szervernév-vagy-ip:631/printers/nyomtatónév
....
Ha az IPP támogatását még nem tartalmazó régebbi Windows(R) változatunk van, akkor a CUPS szolgáltatásait a package:net/samba3[] szerveren keresztül tudjuk elérhetõvé tenni, azonban ennek bemutatásával itt most nem foglalkozunk.
[[printing-cups-troubleshooting]]
== Hibakeresés
A CUPS használata során tapasztalható problémák többségét az engedélyek helytelen beállítása okozza. Elõször tehát, ha valami nem mûködik rendesen, akkor ellenõrizzük újra az elõbb felvázolt man:devfs[8] beállításokat. Ezután gyõzõdjünk meg arról is, hogy az állományrendszerben ténylegesen keletkezõ eszközök engedélyei megfelelõek. Továbbá segíthet megoldani a problémát, ha felvesszük a felhasználónkat a korábban tárgyalt `cups` csoportba. Ha a CUPS felhasználói felületének "Administration" képernyõjén található beállítások látszólag hatástalanok, akkor érdemes úgy próbálkoznunk, hogy elõször készítünk egy bizonsági másolatot a [.filename]#/usr/local/etc/cups/cupsd.conf# állományról és kézzel módosítgatva kísérletezünk különféle konfigurációs lehetõségek kombinációival. Ehhez találhatunk itt egy példát. Ezzel kapcsolatban azonban megjegyezzük, hogy a bemutatott [.filename]#cupsd.conf# állomány inkább áttekinthetõ mintsem biztonságos módon tárgyalja a lehetõségeket. Ezért javasoljuk, hogy miután sikerült elérnünk a CUPS szervert és beállítani a klienseket, nézzük át alaposan a mintául szolgáló opciókat és korlátozzuk le minél jobban a hozzáférést.
[.programlisting]
....
# Általános információk naplózása. Ha hibát keresünk, írjuk az
# "info" helyett a "debug" értéket.
LogLevel info
# A rendszergazdák csoportja.
SystemGroup wheel
# A 631-es porton várjuk a kliensek kapcsolódását.
Port 631
#Listen localhost:631
Listen /var/run/cups.sock
# A helyi hálózaton megosztott nyomtatók mutatása.
Browsing On
BrowseOrder allow,deny
#BrowseAllow @LOCAL
BrowseAllow 192.168.1.* # Adjuk meg a helyi hálózatunkat.
BrowseAddress 192.168.1.* # Adjuk meg a helyi hálózatunkat.
# Alapértelmezett hitelesítési módszer, amikor szükség van rá.
DefaultAuthType Basic
DefaultEncryption Never # Vegyük ki ezt a sort, ha titkosítani akarunk.
# A szervert a helyi hálózaton bármelyik gép elérheti.
Order allow,deny
#Allow localhost
Allow 192.168.1.* # Adjuk meg a helyi hálózatunkat.
# A helyi hálózatról el tudjuk érni az adminisztrációs felületet.
#Encryption Required
Order allow,deny
#Allow localhost
Allow 192.168.1.* # Adjuk meg a helyi hálózatunkat.
# A helyi hálózatunkról el tudjuk érni a konfigurációs állományt.
AuthType Basic
Require user @SYSTEM
Order allow,deny
#Allow localhost
Allow 192.168.1.* # Adjuk meg a helyi hálózatunkat.
# Az alapértelmezett nyomtatási és feladatkezelési házirendek.
# A feladatokat kizárólag csak a tulajdonosaik vagy a rendszergazda
# képesek elvégezni.
Require user @OWNER @SYSTEM
Order deny,allow
# A karbantartást csak megfelelõ hitelesítés után végezhetünk.
AuthType Basic
Require user @SYSTEM
Order deny,allow
# A feladatokat csak a tulajdonosaik és a rendszergazda tudják törölni.
Require user @OWNER @SYSTEM
Order deny,allow
Order deny,allow
....
[[printing-cups-ports-knobs]]
== A CUPS portok finomhangolása
Ha a CUPS lesz az elsõdlegesen használt nyomtatási rendszer, akkor az [.filename]#/etc/make.conf# állományban érdemes lehet még további olyan változókat beállítanunk, amelyek elõtérbe helyezik a CUPS használatát a többi nyomtatási lehetõséggel szemben. Ezek közül most szót ejtünk néhányról:
[.programlisting]
....
WITH_CUPS=YES
CUPS_OVERWRITE_BASE=YES
WITHOUT_LPR=YES
....
Elsõként a `WITH_CUPS` látható, amely hatására a portok telepítésük során lehetõség szerint a CUPS megoldásaira fognak építkezni. Másodikként a `CUPS_OVERWRITE_BASE` szerepel, amely megadásával a telepítés során a FreeBSD alapértelmezett nyomtatási rendszere, az LPR szimbolikus linkjei és állományai cserélõdnek le, illetve megakadályozza, hogy ez visszaforduljon a rendszer egy késõbbi frissítésekor. A harmadik, a `WITHOUT_LPR` az LPR használatának mellõzésére utasítja az érintett portokat.