【2】新しい印刷システムCUPSの仕組みと設定手順を把握しておく
CUPSは多様なプリンタ、多様なファイル形式に対して標準的なインターフェイスを持ち、モジュール化された印刷システムです。標準の印刷プロトコルは新しいIPP(Internet Printing Protocol)ですが、LPDやSMBもサポートしています。
コマンドラインインターフェイスとして、BSD系やSystem V系とほぼ同等なコマンドラインインターフェイスを提供しています。米Easy Software Productsによって開発され、GPLで配布されています。
テキストファイルが非PostScriptプリンタに送られるまでの処理は次のようになります。
テキストファイル |
↓ |
ファイルのMIMEタイプに対応したフィルタ(CUPSフィルタあるいはCUPS対応GhostScript。PPDファイルを参照して処理を行う) |
↓ |
CUPSバックエンド |
↓ |
プリンタ |
PPD(Postscript Printer Description)は、プリンタの機能記述ファイルです。非PostScriptプリンタであっても、CUPSフィルタあるいはCUPS対応GhostScriptから参照されます (注)CentOS 5.2のGhotsScript8.15.2は米Easy Software ProductsからリリースされたCUPS対応のGhostScriptです |
CUPSバックエンドはフィルタプログラムによって加工されたファイルをプリンタに送る作業を行います。バックエンドプログラムには、http、ipp、lpd、parallel、serial、smb、socket、usbなどがあります。
設定ファイル: | /etc/cups/printers.conf、/etc/cups/cupsd.conf (注)/etc/printcapもlpd対応アプリケーションのために生成されます |
サーバプロセス: | cupsd |
スプールディレクトリ: | /var/spool/cups |
フィルタディレクトリ: |
/usr/lib/cups/filter |
model(PPD)ディレクトリ: | /usr/share/cups/model |
バックエンドディレクトリ: | /usr/lib/cups/backend |
ログファイル: | /var/log/cups/access_log、/var/log/cups/error_log |
管理コマンド: |
CUPSコマンド:cupsenable、cupsdisable、lpinfo、lpoptions BSD系:lpc、lpq、lprm System V系:lpadmin、lpstat、accept、reject、cancel |
プリントコマンド: | BSD系:lpr System V系:lp |
CUPSのサーバは/usr/sbin/cupsdです。次のようにして起動します。
/etc/init.d/cups start |
プリンタの設定と管理には、Webブラウザベースの設定、GUIツール、lpadminコマンド(System V系)の3通りの方法があります。
(1)Webブラウザベースの設定
Webブラウザを立ち上げ、http://localhost:631/にアクセスします(図1)。
(2)GUIツールによる設定
メニューから、[システム] ⇒[管理] ⇒ [印刷]を選択します(図2)。
(3)lpadminコマンドによる設定
主なオプション |
|
-p | 作成するプリンタ名を指定する |
-E | プリンタジョブの受け付けを開始する |
-v | デバイスURIを指定する |
-m | modelディレクトリ/usr/share/cups/modelの下のPPDファイル名を指定する。(「lpinfo -m」でPPDファイルの一覧表示) |
-P | PPDファイル名を指定する |
PostScript対応プリンタであるネットワークプリンタ(ホスト名netprint)へ出力する、ローカルなCUPSサーバとして設定します。バックエンドにlpdを使用します。
# lpadmin -p lp1 -E -v lpd://netprint/lp1 \ -P /usr/share/cups/model/postscript.ppd.gz |
PostScript対応プリンタであるネットワークプリンタ(ホスト名netprint)へ出力する、ローカルなCUPSサーバとして設定します。バックエンドにsocketを使用します。
# lpadmin -p lp2 -E -v socket://netprint/9100 \ -P /usr/share/cups/model/postscript.ppd.gz |
ローカルなファイル/dev/printerへ出力する、ローカ ルなCUPSサーバとして設定します。
# lpadmin -p lp3 -E -v file:///dev/printer \ -P /usr/share/cups/model/postscript.ppd.gz |
PPDファイル名の一覧は、lpinfo -mで表示できます。この中から使用するプリンタに合ったPPDファイルを選びます。標準的なPostScriptプリンタのドライバは次のようにして探すとよいでしょう。
# lpinfo -m | grep ^postscript postscript.ppd.gz Generic postscript printer |
-Pで指定したPPDファイルは解凍され、-pで指定したプリンタ名をファイル名として、/etc/cups/ppdディレクトリの下に置かれます。-Pの代わりに、modelディレクトリの下のPPDファイルを、-m postscript.ppd.gzのように指定することもできます。
以下のように設定ファイルが更新されます。
<DefaultPrinter lp1> <Printer lp2> <Printer lp3> |
FileDevice Yes <= ファイルに出力する場合は追加 Listen localhost:631 Listen 172.16.1.1:631 <= リモートクライアントにサービスするために追加 (172.16.1.1はサーバのIPアドレスの例) Listen /var/run/cups/cups.sock |
lp1|lp1:rm=linux0:rp=lp1: lp2|lp2:rm=linux0:rp=lp2: lp3|lp3:rm=linux0:rp=lp3: |
LPD印刷システムを利用するアプリケーションとの互換性のために、自動更新されます。CUPSは/etc/printcapは参照しません。
上記で設定したリモートCUPSサーバlinux0のクライアントに設定します。
# lpadmin -p rlp1 -E -v ipp://linux0/printers/lp1 |
<DefaultPrinter lp1> <Printer lp2> <Printer lp3> |
BSD系コマンドのlpcは次のような管理ができます。
# lpc lpc> ? abort enable disable help restart status topq ? clean exit down quit start stop up lpc> status プリンタ名 ・・・ キューの表示 enable プリンタ名 ・・・ キューへの入力を許可 disable プリンタ名 ・・・ キューへの入力を禁止 start プリンタ名 ・・・ キューからプリンタへの出力を許可 stop プリンタ名 ・・・ キューからプリンタへの出力を禁止 |
ただし、CUPSのlpcコマンドにはキューを表示する機能しかありません。
# lpc lpc> ? exit help quit status ? lpc> # lpc status lp1 lp1: printer is on device 'ipp' speed -1 queuing is enabled printing is disabled 2 entries daemon present キューの表示:lpq # lpq -P lp1 lp1 is not ready Rank Owner Job File(s) Total Size 1st root 116 fstab 1024 bytes 2nd root 117 inittab 2048 bytes キュー中のジョブの削除:lprm # lprm ジョブ番号 |
SystemV系のコマンドでは次のような管理ができます。
キューへの入力の許可:accept # accept プリンタ名 キューへの入力の禁止:reject # reject プリンタ名 キューからのプリンタへの出力の許可:cupsenable # cupsenable プリンタ名 キューからのプリンタへの出力の禁止:cupsdisable # cupsdisable プリンタ名 キューの表示:lpstat # lpstat lp1-116 root 1024 Wed Sep 24 11:54:23 2008 lp1-117 root 2048 Wed Sep 24 12:02:23 2008 # lpstat -t scheduler is running system default destination: lp1 device for lp1: ipp://linux0/printers/lp printer lp1 disabled since Tue Sep 23 23:59:55 2008 - Paused lp1-116 root 1024 Wed Sep 24 11:54:23 2008 lp1-117 root 2048 Wed Sep 24 12:02:23 2008 キュー中のジョブの削除:cancel # cancel ジョブ番号 |
# lpr ファイル名…… | デフォルトプリンタへの打ち出し |
---|---|
# lpr -P lp2 ファイル名…… | プリンタlp2への打ち出し |
# lpr -#2 ファイル名…… | デフォルトプリンタへファイルを2部打ち出し |
# lp ファイル名…… | デフォルトプリンタへの打ち出し |
---|---|
# lp -d lp2 ファイル名…… | プリンタlp2への打ち出し |
# lp -n 2 ファイル名…… | デフォルトプリンタへファイルを2部打ち出し |
cups-libs-1.2.4-11.18.el5 cups-1.2.4-11.18.el5 hal-cups-utils-0.6.2-5.2.el5 libgnomecups-0.2.2-8 foomatic-3.0.2-38.1.el5 ghostscript-8.15.2-9.1.el5_1.1 system-config-printer-0.7.32.8-1.el5 |
Copyright © ITmedia, Inc. All Rights Reserved.
髢セ�ェ陋サ�ス蟋カ騾。�・驕千坩�ゥ�カ隰� 髫ェ蛟�スコ荵斟帷ケ晢スウ郢ァ�ュ郢晢スウ郢ァ�ー