「CUPS」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
13行目: 13行目:
 
[[zh-TW:CUPS]]
 
[[zh-TW:CUPS]]
 
{{Related articles start}}
 
{{Related articles start}}
{{Related|CUPS プリンター共有}}
+
{{Related|CUPS/プリンター共有}}
{{Related|Samba}}
 
{{Related|LPRng}}
 
 
{{Related|CUPS/プリンター別の問題}}
 
{{Related|CUPS/プリンター別の問題}}
 
{{Related|CUPS/トラブルシューティング}}
 
{{Related|CUPS/トラブルシューティング}}
  +
{{Related|Samba}}
  +
{{Related|LPRng}}
 
{{Related articles end}}
 
{{Related articles end}}
   
 
[http://www.cups.org/index.php CUPS のサイト] より:
 
[http://www.cups.org/index.php CUPS のサイト] より:
:"''[[Wikipedia:ja:Common Unix Printing System|CUPS]] は標準ベースの、Apple によって開発されている OS X® やその他の UNIX® ライクなオペレーティングシステム向けのオープンソースの印刷システムです。''"
+
:"''[[Wikipedia:ja:Common Unix Printing System|CUPS]] は標準ベースの、Apple によって開発されている macOS® やその他の UNIX® ライクなオペレーティングシステム向けのオープンソースの印刷システムです。''"
   
  +
== インストール ==
LPRNG など印刷パッケージは他にも存在しますが、使いやすい Common Unix Printing System が最も人気があります。
 
   
  +
{{Pkg|cups}} パッケージを[[インストール]]してください。
== CUPS Linux 印刷ワークフロー ==
 
{{Pkg|cups}} バージョン 1.5.3-3 現在、Arch Linux は新しい pdf ベースの印刷ワークフローを使用します。詳しくは [http://www.linuxfoundation.org/collaborate/workgroups/openprinting/pdfasstandardprintjobformat PDF standard printing job format] を読んで下さい。昔のワークフローは [https://wiki.linuxfoundation.org/en/OpenPrinting/Database/CUPS-Filter-Chart CUPS filtering chart] に載っています。
 
Linux の印刷に関する問題の一般的な説明は [http://www.linuxfoundation.org/collaborate/workgroups/openprinting ここ] にあります。
 
   
  +
PDF 文章に「印刷」したい場合、{{pkg|cups-pdf}} パッケージもインストールしてください。デフォルトでは、PDF ファイルは {{ic|/var/spool/cups-pdf/$USER}} に保存されます。作成場所は {{ic|/etc/cups/cups-pdf.conf}} で変更できます。
プリンターの設定には2つの方法があります。
 
* ネットワーク上で CUPS サーバーが動作していてプリンターが共有されている場合、必要なのはクライアントパッケージをインストールすることだけです。
 
* プリンターがシステムに直接接続されていたり IPP ネットワークプリンターにアクセスできる場合、ローカルの CUPS サーバーをセットアップします。
 
   
  +
インストールしたら {{ic|org.cups.cupsd.service}} を[[起動]]・[[有効化]]してください。
== クライアントパッケージのインストール ==
 
   
  +
== 接続インターフェイス ==
{{Pkg|libcups}} が唯一必要なパッケージです。[[公式リポジトリ]]から[[pacman|インストール]]してください。
 
  +
以下には様々なインターフェイスごとにプリンターを認識させる手順を載せています。
   
  +
{{Note|CUPS ヘルパープログラムは {{ic|lp}} グループと {{ic|daemon}} ユーザーを使って実行されます。これによってヘルパープログラムからプリンターデバイスにアクセスできるようになり {{ic|lp}} グループに属する {{ic|/etc/cups/}} の設定ファイルを読み込めるようになります。ただし、パラレルポートを使用するプリンター以外のデバイスと衝突する可能性があります:
次に CUPS サーバーの IP アドレスかホストネームを {{ic|/etc/cups/client.conf}} の {{ic|ServerName}} の後に加えて下さい。これで終わりです。アプリケーションが CUPS サーバーによって共有されているプリンターをすぐに見つけるはずです。
 
  +
* {{ic|lp}} グループにユーザーを追加することで CUPS ファイルを読み込むことを許可できます。
  +
* CUPS ヘルパーがパラレルポートを使用するプリンター以外のデバイスを使用する権限を得てしまう可能性があります。
  +
必要であれば、[[Udev]] ルールを使用してプリンター以外のパラレルポートデバイスには別のグループを割り当ててください ({{Bug|50009}})。CUPS が使用するグループとユーザーは変えられますが、手動でファイルのパーミッションを修正する必要があります。}}
   
  +
=== USB ===
=== 高度なネットワークセットアップ ===
 
  +
USB プリンターが認識されているかどうか確認するには:
 
  +
{{hc|$ lsusb|
ネットワーク上の未知の共有ドライバを見つけるために Avahi ブラウジングを有効にして cupsd+cups-browsed のインスタンス全体をクライアントで動かすことも可能です。サーバーがこれはわからないような巨大なセットアップで便利になります。
 
  +
(...)
{{Note|この挙動は cups 1.6.x でも変わっていません - 1.5.x までの cupsd との違いは自身の共有プリンターだけをブラウズできるようになったことです。
 
  +
Bus 001 Device 007: ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse
ローカルの cupsd がリモートの cupsd サーバーによって共有されている他のプリンターを認識できるようにするには、Avahi を使ってローカルの (cups-filters 1.0.26 からサポートされている) cups-browsed インスタンスを実行してください。April 2013 に [https://bbs.archlinux.org/viewtopic.php?id=161440 good news] があります (上と合わせる必要があります)。}}
 
  +
}}
 
=== CUPS を32ビットの chroot 環境にインストールする ===
 
 
[[64ビット環境に32ビット環境をインストール|32ビットの chroot 環境]]を使って64ビットのベースインストールをした場合、32ビット環境で明示的に CUPS をインストールする必要はありません。chroot 環境からインストールした CUPS プリンターにアクセスするには、{{ic|/var/run/cups}} ディレクトリを chroot 環境の同じ場所にバインドしなくてはなりません。chroot にディレクトリ (おそらく存在しません) を作り ({{ic|-o bind}} をコマンドに指定して) マウントすれば、32ビット chroot アプリケーションからすぐにプリンターが使えるようになるはずです。
 
 
{{bc|# mkdir /path/to/chroot/var/run/cups
 
# Example: # mkdir /opt/arch32/var/run/cups
 
 
# mount -o bind /var/run/cups /path/to/chroot/var/run/cups}}
 
 
== サーバーパッケージのインストール ==
 
 
以下のパッケージとプリンタードライバが必要になります。[[公式リポジトリ]]から[[pacman|インストール]]してください。
 
 
* {{Pkg|cups}} - CUPS デーモン
 
* {{Pkg|ghostscript}} - (任意) PostScript インタプリタ
 
* {{Pkg|gsfonts}} - GhostScript 標準 Type1 フォント
 
 
ネットワークを介したプリンターブラウジングを有効にしたいのならば、{{Pkg|avahi}} もインストールして [[systemd#ユニットを使う|systemd]] を使って {{ic|avahi-daemon.service}} を有効にしてください。
 
 
[[Samba]] プロトコルを使ってシステムをネットワークプリンターに接続する場合、もしくはシステムを Windows クライアント用の印刷サーバーにする場合、{{Pkg|samba}} もインストールしてください。
 
 
=== プリンタードライバ ===
 
 
以下はドライバパッケージの一部です。プリンターに合わせて適切なドライバを選んで下さい:
 
 
* {{AUR|cndrvcups-lb}} - Canon の UFR2 ドライバーで LBP, iR, MF シリーズのプリンターをサポートしています。パッケージは [[Arch User Repository|AUR]] から利用可能です。
 
* {{AUR|cnijfilter-mg4200}} - Canon MG4200 のプリンタードライバー。
 
* {{Pkg|cups-pdf}} - 送られたジョブから PDF を生成する仮想 PDF プリンターを設定するためのパッケージ。
 
* {{AUR|foo2zjs}} - HP Laserjet 1018 など ZjStream プロトコルを使うプリンターのためのドライバー。[http://foo2zjs.rkkda.com ここ] に詳細があります。パッケージは [[Arch User Repository|AUR]] から利用可能です。
 
* {{Pkg|foomatic-db}}, {{Pkg|foomatic-db-engine}}, {{Pkg|foomatic-db-nonfree}} - Foomatic は Unix でフリーソフトウェアのプリンタードライバをスプーラと統合するデータベース駆動型のシステムです。
 
* {{Pkg|gutenprint}} - Canon, Epson, Lexmark, Sony, Olympus, PCL のプリンターで GhostScript, CUPS, Foomatic, [[アプリケーション一覧/マルチメディア#ラスタ画像|GIMP]] を使うための高品質なドライバのコレクション
 
* {{Pkg|hplip}} - HP の DeskJet, OfficeJet, Photosmart, Business Inkjet と複数の LaserJet プリンター機種、そして多数の Brother プリンター用のドライバーです。
 
* {{AUR|hpoj}} - HP の Officejet を使っているのならば、このパッケージをインストールして指示に従って[https://answers.launchpad.net/hplip/+question/133425 このスレッド]に書かれているような問題を回避する必要があります。パッケージは [[Arch User Repository|AUR]] から利用可能です。
 
* {{AUR|samsung-unified-driver}} - Samsung のプリンターとスキャナー用の統合 Linux ドライバー。ML-2160 などの新しいプリンターで必要になります。パッケージは [[Arch User Repository|AUR]] から利用可能です。
 
* {{Pkg|splix}} - SPL (Samsung Printer Language) プリンターに対応する Samsung のドライバーです。
 
 
どのドライバーパッケージをインストールすればいいかわからなかったり、使っているドライバーが動いているのかどうか不明な場合、全てのドライバーをインストールするのが一番簡単な解決策です。パッケージの名前とは関係ないドライバーが必要になることもあるので注意してください。例えば、Brother HL-2140 には hplip ドライバーをインストールする必要があります。
 
 
==== プリンター PPD のダウンロード ====
 
 
プリンターによっては、この手順は必要ないかもしれません。標準の CUPS にすでに相当数の PPD (Postscript Printer Description) ファイルが含まれているからです。さらに、''foomatic-filters'', ''gimp-print'', ''hplip'' パッケージにも少数の PPD ファイルが入っており CUPS によって自動で検知されます。
 
 
以下は Linux Printing ウェブサイトから引用した PPD ファイルの説明です:
 
:"''全ての PostScript プリンターには、特定のプリンター機種に関するプリンター固有の情報が含まれた PPD ファイルがメーカーによって提供されています: プリンターのカラーやフォント、PostScript レベルなどプリンターの基本的な機能と、用紙サイズや解像度などユーザーが調整できるオプション。''"
 
 
プリンターの PPD が CUPS に''存在しない''時は:
 
*[[Arch User Repository|AUR]] をチェックしてプリンターやメーカーのパッケージが存在しないか確認してください
 
*[http://www.openprinting.org/printers OpenPrinting データベース] にアクセスしてメーカーとプリンターの機種を選択してください
 
*メーカーのサイトに行って GNU/Linux 用のドライバーを配布してないか検索してください
 
 
{{Note|PPD ファイルは {{ic|/usr/share/cups/model/}} に置きます。}}
 
 
==== プリンタードライバーの他のソース ====
 
 
[http://www.turboprint.de/english.html Turboprint] は GNU/Linux でサポートされていないプリンター (例えば Canon i*) 用のプロプライエタリのドライバーです。CUPS とは違って、高品質の印刷にはウォーターマークが加えられたり料金を支払う必要があります。
 
 
== ハードウェアのサポートと設定 ==
 
 
=== USB プリンター ===
 
 
{{Tip|ほとんどの USB プリンターは何も設定しなくても動作します。このセクションをスキップして、あなたのプリンターが動かないとわかったときに読みなおして下さい。}}
 
 
USB プリンターには2つの方法でアクセスが可能です: usblp カーネルモジュールと libusb。前者はクラシックな方法になります。やっていることはシンプルです: シリアルデータストリームとしてデータをデバイスファイルに書き出してプリンターに送信します。同じデバイスファイルを読むことで bi-di アクセスが可能になり、インク残量や状態、プリンタ性能情報 (PJL) を読み出せます。シンプルなプリンタでは問題なく動作しますが、複合機 (プリンタ・スキャナ) には適しておらず HP などのメーカーはバックエンドを提供しています。ソース: [http://lists.linuxfoundation.org/pipermail/printing-architecture/2012/002412.html here]。
 
 
==== usblp のブラックリスト化 ====
 
 
{{Warning|{{Pkg|cups}} バージョン 1.6.0 では、{{ic|usblp}} カーネルモジュールを[[カーネルモジュール#ブラックリスト|ブラックリスト]]に入れる必要はなくなっています。
 
 
ブラックリストを使わないと解決できない問題を発見した時は上流である CUPS のバグトラッカーに報告してください。おそらく Till Kamppeter (Debian の CUPS メンテナ) とコンタクトが取れるはずです。詳しくは [http://cups.org/str.php?L4128 upstream bug] を見て下さい。}}
 
   
  +
=== パラレルポート ===
USB プリンタが動作しない問題がある場合、{{ic|usblp}} [[カーネルモジュール]]のブラックリスト化を試すことができます:
 
  +
パラレルポートプリンターを使うには {{ic|lp}}, {{ic|parport}}, {{ic|parport_pc}} [[カーネルモジュール]]が必要です。
   
  +
{{hc|$ dmesg {{!}} grep -i parport|
{{hc|/etc/modprobe.d/blacklistusblp.conf|
 
  +
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series
blacklist usblp
 
  +
lp0: using parport0 (polling)
 
}}
 
}}
   
  +
=== ネットワーク ===
カスタムカーネルのユーザーは先に進む前に {{ic|usbcore}} [[カーネルモジュール]]を手動でロードする必要があるかもしれません。
 
  +
[[Avahi]] ホストネームを使ってネットワークプリンターを接続するには、[[Avahi#ホスト名の解決|.local ホストネーム解決]]をセットアップして {{ic|org.cups.cupsd.service}} を[[systemd#ユニットを使う|再起動]]してください。
   
  +
[[Samba]] プロトコルを使ってネットワークプリンターに接続する場合や、Windows クライアント用のプリンターサーバーを使う場合、{{Pkg|samba}} パッケージをインストールしてください。
モジュールをインストールしたら、プリンタを接続して次を実行することでカーネルがプリンタを検知したかどうか確認できます:
 
# tail /var/log/messages.log
 
もしくは
 
# dmesg
 
   
  +
== プリンタードライバー ==
{{ic|usblp}} を使っている場合、プリンタが検知されると以下のような出力がされているはずです:
 
  +
プリンターのドライバーは以下のソースのどこかから入手することができます。動作するのが確認されているドライバーのリストは [[CUPS/プリンター別の問題]]を見てください。
Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional
 
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E
 
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920
 
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver
 
   
  +
プリンターを動かすのに、CUPS は PPD ファイルを必要とします。また、大抵のプリンターでは [https://www.cups.org/doc/man-filter.html フィルター] も必要です。CUPS がどうやって PPD やフィルターを使用するのかは [https://www.cups.org/doc/postscript-driver.html] に詳しく書かれています。
{{ic|usblp}} をブラックリストに入れた場合、以下のように表示されます:
 
usb 3-2: new full speed USB device using uhci_hcd and address 3
 
usb 3-2: configuration #1 chosen from 1 choice
 
   
  +
[http://www.openprinting.org/printers OpenPrinting Printer List] は多数のプリンターの推奨ドライバーを教えてくれます。個別のプリンターの PPD ファイルも提供されていますが、大抵の場合は foomatic や推奨されているドライバーパッケージから手に入ります。
=== パラレルポートプリンター ===
 
   
  +
PPD ファイルが CUPS に供給されると、CUPS サーバーは PPD ファイルを再生成して {{ic|/etc/cups/ppd/}} に保存します。
パラレルポートプリンターを使うには {{ic|lp}}, {{ic|parport}}, {{ic|parport_pc}} [[カーネルモジュール]]をロードする必要があります。
 
   
  +
=== CUPS ===
次を実行してセットアップを確認してください:
 
  +
CUPS は何も設定をしなくても動作する PPD やフィルターのバイナリを少数ながらデフォルトで用意しています。
# tail /var/log/messages.log
 
おそらく次のような表示があるはずです:
 
lp0: using parport0 (polling).
 
   
  +
=== Foomatic ===
USB からパラレルポートへの変換器を使っている場合、CUPS はプリンターを検知することができません。対策としては、異なる接続タイプを使ってプリンターを追加し {{ic|/etc/cups/printers.conf}} の DeviceID を変更してください:
 
  +
[https://wiki.linuxfoundation.org/openprinting/database/foomatic foomatic] プロジェクトはフリーであるかを問わず多数のプリンタードライバーの PPD を提供しています。foomatic の活動の詳細は [http://www.openprinting.org/download/kpfeifle/LinuxKongress2002/Tutorial/IV.Foomatic-Developer/IV.tutorial-handout-foomatic-development.html Foomatic from the Developer's View] を見てください。
DeviceID = parallel:/dev/usb/lp0
 
   
  +
foomatic を使用するには、{{pkg|foomatic-db-engine}} と {{pkg|foomatic-db-ppds}}, {{pkg|foomatic-db-nonfree-ppds}}, {{pkg|foomatic-db-gutenprint-ppds}} の最低でもどれかひとつをインストールします。
=== HP プリンター ===
 
{{Warning|hplip ツールスタックは python2 を使っています。おそらく hp-setup の実行中、{{ic|/usr/bin/python}} が {{ic|/usr/bin/python3}} へのシンボリックリンクになっているために構文エラーが発生します。''一時的に'' {{ic|/usr/bin/python}} から {{ic|/usr/bin/python2}} にリンクを張って下さい。セットアップを終了した後は戻すようにしてください。}}
 
HP のプリンターでは HP の Linux セットアップツールを使ってインストールすることも可能です。[[公式リポジトリ]]から {{Pkg|hplip}} をインストールしてください。
 
   
  +
foomatic の PPD は別途でフィルターを必要とすることがあり、{{pkg|gutenprint}} や {{pkg|ghostscript}} などが挙げられます (例えば {{aur|min12xxw}})。{{pkg|ghostscript}} が必要な場合、{{pkg|gsfonts}} もおそらく必須です。
qt フロントエンドで起動するには:
 
# hp-setup -u
 
   
  +
=== メーカー別のドライバー ===
コマンドラインで起動するには:
 
  +
様々なプリンターメーカーが独自の Linux ドライバーを提供しています。中には Arch の公式リポジトリや [[AUR]] からインストールできるドライバーもあります。
# hp-setup -i
 
   
  +
一部のドライバーについては [[CUPS/プリンター別の問題]]に詳しい説明があります。
systray スプールマネージャを起動するには:
 
$ hp-systray
 
   
  +
== プリンター URI ==
PPD ファイルは {{ic|/usr/share/ppd/HP/}} にあります。
 
   
  +
以下では手動での URI の生成について説明しています。
{{Note|依存パッケージの gobject/dbus が欠けているというエラーが表示される場合は、{{Pkg|python2-gobject2}} と {{Pkg|python2-dbus}} をインストールしてください。詳しくは[https://bugs.archlinux.org/task/26666 バグレポート]を見て下さい。}}
 
   
  +
=== USB ===
プロプライエタリの HP プラグインが必要なプリンター (Laserjet Pro P1102w や 1020 など) を使うには、[[Arch User Repository|AUR]] から {{AUR|hplip-plugin}} パッケージをインストールしてください。
 
   
  +
CUPS は USB プリンターの URI を自動的に生成します。例: {{ic|1=usb://HP/DESKJET%20940C?serial=CN16E6C364BH}}。
{{Warning|hplip-setup のバグによって、[[Arch User Repository|AUR]] から前述の {{AUR|hplip-plugin}} パッケージをインストールしても、システムトレイや CUPS のログにエラー {{ic|Print job failed - required plug-in not found. Please run hp-plugin}} が表示される場合があります。修正するには、CUPS のウェブインターフェイスからプリンターを修正してドライバーを手動で選択してください (en,en バージョンが推奨)。その後 CUPS サービスを再起動してください。}}
 
   
  +
生成されない場合、[[CUPS/トラブルシューティング#USB プリンター]]を見てください。
{{Note|
 
{{Pkg|hplip}} は {{Pkg|foomatic-db-engine}} に依存しており、プリンターが CUPS に追加されたときにウェブインターフェイスでドライバーリストが表示されないという問題が起こります (エラー: "Unable to get list of printer drivers")。解決するには、まず {{Pkg|hplip}} をインストールして適切な PPD ファイルを {{ic|/usr/share/ppd/HP/}} から取得してください。次に、{{Pkg|hplip}} を完全に削除します (不必要な依存パッケージも)。最後に、CUPS のウェブ UI を使って手動でプリンターをインストールしてください。先に取得した PPD ファイルを選択して {{Pkg|hplip}} を再インストールします。再起動後、プリンターは完全に動作するようになっているはずです。}}
 
   
== 設定 ==
+
=== パラレルポート ===
   
  +
URI は {{ic|parallel:''device''}} という形式になります。例えば、プリンターが {{ic|/dev/lp0}} で接続されている場合、{{ic|parallel:/dev/lp0}} を使ってください。USB からパラレルポートに変換するアダプタを使っている場合、プリンター URI は {{ic|parallel:/dev/usb/lp0}} を使ってください。
CUPS がインストールされた今、印刷ソリューションを設定する様々なオプションが存在します。いつもどおり、コマンドラインを使う方法は自由に使えます。CUPS にはフル機能のウェブインターフェイスも内蔵されています。同じく、GNOME や KDE などのデスクトップ環境にはプリンターの管理を助ける便利なプログラムが付いています。あなたの必要に応じて、どれか一つの方法を選ぶことが可能です。
 
   
  +
=== ネットワーク ===
コンピュータに直接プリンターを接続するのではなく、ネットワークプリンターに接続するつもりならば、先に [[CUPS プリンター共有]]のページを読んでおくといいかもしれません。GNU/Linux システム間でのプリンターの共有はとても簡単でほとんど設定が必要ありません。他方、Windows と GNU/Linux で共有するにはちょっとした作業が必要になります。
 
   
  +
[[#ネットワーク]]に書かれているように [[Avahi]] を設定することで、CUPS はプリンター URI を探知します。{{ic|avahi-discover}} を使ってプリンターの名前やアドレスを確認することもできます (例: {{ic|BRN30055C6B4C7A.local/10.10.0.155:631}})。
=== CUPS デーモン ===
 
   
  +
[[Avahi]] を使わずに URI を手動で生成することも可能です。ネットワークプリンターで利用可能な URI スキーマのリストは CUPS のドキュメント [https://www.cups.org/doc/network.html#PROTOCOLS] を見てください。プリンターによって URI には細かい違いがあるので、プリンターのマニュアルや [[CUPS/プリンター別の問題]]もチェックしてください。
{{Note|{{Pkg|cups}} 2.0.0 から、サービスの名前が {{ic|cups.service}} から {{ic|org.cups.cupsd.service}} に変更されています。このパッケージは2014年10月31日から extra リポジトリに入りました。バージョン 2.0.0 にアップデートするときは、古いサービスを手動で無効化する必要があります。{{ic|/etc/systemd/system/}} サブディレクトリに壊れたシンボリックリンクが残ってしまい、存在しないサービスがあると systemd によって警告が表示されてしまいます。}}
 
   
  +
リモートの CUPS 印刷サーバーは {{ic|ipp://''hostname'':631/printers/''queue_name''}} という形式の URI でアクセスできます。リモートの印刷サーバーをセットアップする方法は [[CUPS/プリンター共有#GNU/Linux システム間]]を見てください。
CUPS をインストールしたら、[[systemd#ユニットを使う|systemd]] を使って {{ic|org.cups.cupsd.service}} を起動できます。必要に応じて有効にしてください。
 
   
  +
他の問題については [[CUPS/トラブルシューティング#ネットワークの問題]]を見てください。
任意で、CUPS は Avahi のブラウジングを使ってネットワーク上にある共有プリンターを発見することができます。サーバーがどこにあるのかわからないような巨大なセットアップを使っているときに便利です。この機能を使用するには、{{ic|cups-browsed.service}} systemd ユニットを起動してください。
 
   
  +
{{Warning|1=サーバーとクライアントの両方をプリンターフィルターで設定してはいけません。クライアントかサーバーのどちらかの印刷キューが 'raw' である必要があります。フィルターによってプリンターに同じ印刷ジョブを2回送信して問題が発生するのを避けるためです (例: [https://bbs.archlinux.org/viewtopic.php?pid=1589908#p1589908])。印刷キューを 'raw' に設定する例は[[#使用方法]]を見てください。}}
=== ウェブインターフェイスとツールキット ===
 
   
  +
== 使用方法 ==
デーモンが起動したら、ブラウザを開いて次のページに行って下さい: http://localhost:631 ('''''localhost''' は'' {{ic|/etc/hostname}} ''に書かれているホストネームに置き換える必要があるかもしれません'')。
 
   
  +
CUPS はコマンドラインツールの the lp* と cups* を使うことで制御できます。また、ウェブインターフェイスや GUI アプリケーションを利用することも可能です。
ここから、ウィザードに従ってプリンターを追加してください。通常は ''Adding Printers and Classes'' と ''Add Printer'' をクリックしてウィザードを開始します。ユーザー名とパスワードの入力を求められたら、root でログインしてください。プリンターに割り当てられる名前にあまり意味はありません、これは 'location' や 'description' にも同じことが言えます。次に、選択するデバイスのリストが表示されます。プリンターの実際の名前はラベルの横に表示されます (例: USB プリンターなら ''USB Printer #1'' の後)。最後に、適切なドライバを選択すれば設定は完了です。
 
   
  +
* ''queue'' はキューを識別するために使われる短くてわかりやすい名前です。名前に空白・特殊文字を含めることはできません。例えば、HP LaserJet 5P を使用する印刷キューの名前は "hpljet5p" などとします。複数のキューを物理的なプリンターに関連付けることができます。
''Maintenance'' ドロップダウンメニューから ''Print Test Page'' を押して設定をテストしてください。印刷がされなかったり設定が正しく適用されていない場合は、おそらく適切なプリンタードライバが欠けているのが問題です。
 
  +
* ''location'' はプリンターの物理的な場所の説明です (例えば "bedroom" や "kitchen" など)。複数のプリンターを管理しやすくするためにあります。
  +
* ''description'' はプリンターの完全な説明です。大抵はプリンターの正式名称が使われます ("HP LaserJet 5P" など)。
   
  +
=== CLI ツール ===
{{Tip|他のフロントエンドは [[#他の CUPS インターフェイス]] を参照してください。}}
 
{{Note|
 
* USB プリンターを設定するとき、''Add Printer'' ページにプリンターが表示されるはずです。"SCSI printer" オプションしか表示されない場合は、おそらく CUPS がプリンターを認識できていません。
 
* HP の複合機で {{pkg|hplip}} パッケージを使ってワイヤレススキャンを有効にするには、HTTP プロトコルを使ってネットワークプリンターとしてプリンターを追加する必要があります。使用する URI を得るには、{{ic|hp-makeuri}} コマンドを実行してください。}}
 
   
  +
[http://localhost:631/help/options.html CUPS ローカルドキュメント] にはコマンドラインツールに関するヒントが載っています。
==== CUPS の管理 ====
 
   
  +
{{Note|コマンドラインのスイッチはまとめて指定することができません。}}
ウェブインターフェイスでプリンターを管理する時 (例: プリンターを追加・削除する、印刷タスクを停止する) はユーザー名とパスワードが必要になります。デフォルトのユーザー名は ''sys'' グループに割り当てられたユーザー、もしくは root です。他の admin グループ (例: ''printadmin'') は {{ic|/etc/cups/cups-files.conf}} の {{ic|SystemGroup}} 行に追加することができます (この行を新しく加える必要があるかもしれません):
 
   
  +
;デバイスを確認
# Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
 
  +
# lpinfo -v #
<strike>SystemGroup sys root</strike>
 
  +
$ /usr/lib/cups/backend/snmp ''ip_address'' # Use SNMP to find a URI
SystemGroup printadmin
 
   
  +
;ドライバーを確認
グループを作成してください ({{ic|man groupadd}}):
 
  +
$ lpinfo -m
   
  +
;新しい印刷キューを追加
# groupadd printadmin
 
  +
# lpadmin -p ''queue_name'' -E -v ''uri'' -m ''model''
# groupadd lp
 
   
  +
''queue_name'' は適当な名前に置き換えてください。例:
グループにユーザーを追加してください ({{ic|man gpasswd}}):
 
  +
# lpadmin -p HP_DESKJET_940C -E -v "usb://HP/DESKJET%20940C?serial=CN16E6C364BH" -m drv:///HP/hp-deskjet_940c.ppd.gz
  +
# lpadmin -p SHARED_PRINTER -m raw # Raw queue; no PPD or filter
   
  +
;デフォルトプリンターを設定
# gpasswd -a username printadmin # for printer administration
 
  +
$ lpoptions -d ''queue_name''
# gpasswd -a username lp # for printing priviledges
 
   
  +
;オプションを変更
変更を適用するには {{ic|org.cups.cupsd.service}} デーモンを再起動してログインし直す必要があります:
 
  +
$ lpoptions -p ''queue_name'' -l # List the options
  +
$ lpoptions -p ''queue_name'' -o ''option''=''value'' # Set an option
   
# systemctl restart org.cups.cupsd.service
 
 
root アカウントがロックされている (つまり sudo を使っている) と、デフォルトのユーザー名 (root) とパスワードでは CUPS の管理インターフェイスにログインできません。[https://bbs.archlinux.org/viewtopic.php?id=35567 この投稿]を読んで他のユーザーを cups の管理者として追加してください。
 
 
==== ウェブインターフェイスにリモートアクセスする ====
 
 
デフォルトでは、CUPS のウェブインターフェイスは ''localhost'' (インストールしたコンピュータ) からしかアクセスできないようになっています。インターフェイスに外部からアクセスするには、以下の変更を {{ic|/etc/cups/cupsd.conf}} ファイルに加えて下さい。次の行を:
 
Listen localhost:631
 
下のように置き換えてください。
 
Port 631
 
これで CUPS がリクエストを受け取るようになります。
 
 
3つのアクセスレベルを設定することができます:
 
<Location /> #サーバーへのアクセス
 
<Location /admin> #admin ページヘのアクセス
 
<Location /admin/conf> #設定ファイルへのアクセス
 
 
リモートホストに以上のレベルのどれか一つを与えるには、レベルのセクションに {{ic|Allow}} の記述を追加してください。{{ic|Allow}} は以下のような形式で使うことができます:
 
Allow from all
 
Allow from host.domain.com
 
Allow from *.domain.com
 
Allow from ip-address
 
Allow from ip-address/netmask
 
Allow from @LOCAL
 
 
また、{{ic|Deny}} も使うことが可能です。例えば、ローカルネットワークインターフェイス上にあるホスト全てに完全なアクセス権を与えるには、ファイル {{ic|/etc/cups/cupsd.conf}} に以下を記述します:
 
# Restrict access to the server...
 
# By default only localhost connections are possible
 
<Location />
 
Order allow,deny
 
'''Allow from @LOCAL'''
 
</Location>
 
 
# Restrict access to the admin pages...
 
<Location /admin>
 
Order allow,deny
 
'''Allow from @LOCAL'''
 
</Location>
 
 
# Restrict access to configuration files...
 
<Location /admin/conf>
 
AuthType Basic
 
Require user @SYSTEM
 
Order allow,deny
 
'''Allow From @LOCAL'''
 
</Location>
 
 
次の設定も追加する必要があるかもしれません:
 
 
DefaultEncryption Never
 
 
この設定によって次のエラーを止めることができます: 426 - Upgrade Required when using the CUPS web interface from a remote machine。
 
 
=== コマンドライン設定 ===
 
 
コマンドラインからツール (lp* と cups* コマンドファミリー) を使って CUPS を完全に操作することができます。
 
 
Arch Linux では、ほとんどのコマンドはシェルの自動補完をサポートしています。
 
また、コマンドラインのスイッチはグループ化することはできないので注意してください。
 
 
;デバイスを一覧する
 
# lpinfo -v
 
 
;ドライバを一覧する
 
# lpinfo -m
 
 
;新しいプリンターを追加する
 
# lpadmin -p ''printer'' -E -v ''device'' -P ''ppd''
 
 
''printer'' はあなたが自由に設定できます。デバイスは {{ic|lpinfo -v}} コマンドで取得できます。
 
 
例:
 
例:
  +
$ lpoptions -p HP_DESKJET_940C -o PageSize=A4
# lpadmin -p HP_DESKJET_940C -E -v "usb://HP/DESKJET%20940C?serial=CN16E6C364BH" -P /usr/share/ppd/HP/hp-deskjet_940c.ppd.gz
 
   
  +
;状態を確認
以下のコマンドの、''printer'' はあなたが設定したプリンターの名前に置き換えてください。
 
  +
$ lpstat -s
  +
$ lpstat -p ''queue_name''
   
;プリンターから raw ドライバーを使用する
+
;プリンターを無効化
# lpadmin -p ''printer'' -m raw
+
# cupsdisable ''queue_name''
   
;デフォルトのプリンターを設定する
+
;プリンターを有効化
$ lpoptions -d ''printer''
+
# cupsenable ''queue_name''
   
  +
;ジョブを受け取るようにプリンターを設定
;状態をチェックする
 
  +
# cupsaccept ''queue_name''
$ lpstat -s
 
$ lpstat -p ''printer''
 
 
;プリンターを無効にする
 
# cupsdisable ''printer''
 
 
;プリンターを有効にする
 
# cupsenable ''printer''
 
   
;プリンター削除する
+
;プリンター削除
まず印刷要求エントリを全て拒否するように設定してください:
+
まず印刷要求するエントリを全て拒否するように設定してください:
# cupsreject ''printer''
+
# cupsreject ''queue_name''
次にプリンターを無効してください
+
次にプリンターを無効してください:
# cupsdisable ''printer''
+
# cupsdisable ''queue_name''
最後にプリンターを削除してください
+
最後に削除してください:
# lpadmin -x ''printer''
+
# lpadmin -x ''queue_name''
   
;ファイルを印刷する
+
;ファイルを印刷
 
$ lpr ''file''
 
$ lpr ''file''
$ lpr -# 17 ''file'' # ファイルを17部印刷する
+
$ lpr -# 17 ''file'' # print the file 17 times
 
$ echo "Hello, world!" | lpr -p # print the result of a command. The -p switch adds a header.
 
$ echo "Hello, world!" | lpr -p # print the result of a command. The -p switch adds a header.
   
;印刷キューを確認する
+
;印刷キューを確認
 
$ lpq
 
$ lpq
$ lpq -a # on all printers
+
$ lpq -a # on all queues
   
;印刷キューを削除する
+
;印刷キューを消去
# lprm # 最後のエントリを削除
+
# lprm # remove last entry only
# lprm - # 全てのエントリを削除
+
# lprm - # remove all entries
   
=== 他の CUPS インターフェイス ===
+
=== ウェブインターフェイス ===
   
  +
CUPS サーバーはウェブインターフェイスを使って管理することができます。http://localhost:631/ を開いてください。
==== GNOME ====
 
   
  +
{{Note|HTTPS 接続で CUPS を使用する場合、初めてアクセスしたときにインターフェイスが表示されるまで長い時間がかかります。初期設定で行われる SSL 証明書の生成に時間がかかるためです。}}
{{Pkg|system-config-printer}} を[[pacman|インストール]]することでプリンターを設定・管理できます。このプログラムは複数の gnome 依存パッケージを呼びこむことがあります。
 
   
  +
;印刷キューを追加
cups スケジューラを管理するのに必要な特権をユーザーが持っていない場合、system-config-printer は起動時に root パスワードの入力を求めます。以下の設定をすることでこれを回避することが可能です。
 
  +
'''Administration''' ページを開いてください。
   
  +
;既存のキューを編集
1. cups スケジューラを管理するグループを作成してください:
 
  +
'''Printers''' ページを開いて、編集したいキューを選択してください。
   
  +
;キューをテスト
# groupadd lpadmin
 
  +
'''Printers''' ページを開いて、キューを選択してください。
   
  +
=== GUI アプリケーション ===
2. ユーザーを新しく作成したグループに追加してください:
 
   
  +
CUPS を管理するのに十分な権限を持っていない場合、アプリケーションが起動するときに root パスワードが要求されます。root 権限を与えずにユーザーに管理者権限を与える方法は[[#設定]]を見てください。
# usermod -aG lpadmin ''username''
 
   
  +
* {{App|print-manager|印刷ジョブとプリンターの管理ツール ([[KDE]])。|https://projects.kde.org/projects/kde/kdeutils/print-manager|{{Pkg|print-manager}}}}
3. cups が新しく作成したグループを使うように設定してください:
 
  +
* {{App|system-config-printer|CUPS プリンター設定ツール・状態アプレット ([[GNOME]] など)。|http://cyberelk.net/tim/software/system-config-printer/|{{Pkg|system-config-printer}}}}
  +
* {{App|gtklp|CUPS の GTK+ インターフェイス。|http://gtklp.sirtobi.com/index.shtml|{{AUR|gtklp}}}}
   
  +
== 設定 ==
{{hc|/etc/cups/cups-files.conf|
 
...
 
SystemGroup sys root '''lpadmin'''
 
...}}
 
   
  +
CUPS サーバーの設定は {{ic|/etc/cups/cupsd.conf}} と {{ic|/etc/cups/cups-files.conf}} にあります。どちらかのファイルを編集したら、変更を適用するために {{ic|org.cups.cupsd.service}} を[[再起動]]してください。大抵の場合はデフォルト設定で問題ありません。
4. cups を再起動してください:
 
   
  +
プリンターの管理者権限を持つ[[グループ]]は {{ic|/etc/cups/cups-files.conf}} の {{ic|SystemGroup}} で定義されます。デフォルトでは {{ic|sys}} グループが使われます。
# systemctl restart org.cups.cupsd.service
 
   
  +
{{pkg|cups}} は {{pkg|libpaper}} のサポートを有効にしてビルドされており、libpaper はデフォルトの用紙サイズとして '''Letter''' を使います。印刷キューを追加するたびに用紙サイズを変更しなくてもいいように、{{ic|/etc/papersize}} を編集してデフォルトの用紙サイズを設定してください。詳しくは {{man|5|papersize}} を参照。
5. 一度ログアウトしてからログインしなおすか、コンピュータを再起動してください。
 
   
  +
デフォルトでは、全てのログは {{ic|/var/log/cups/}} 内のファイルに送信されます。{{ic|/etc/cups/cups-files.conf}} 内の {{ic|AccessLog}}, {{ic|ErrorLog}}, {{ic|PageLog}} ディレクティブの値を {{ic|syslog}} に変更することで、CUPS から [[systemd#Journal|systemd journal]] にログを吐かせることができます。詳しくは [https://fedoraproject.org/wiki/Changes/CupsJournalLogging fedora wiki] を見てください。
==== KDE ====
 
   
  +
=== cups-browsed ===
[[KDE]] のユーザーはコントロールセンターからプリンターを変更することが可能です。ハードウェアグループにプリンターインターフェイスが現れない時は {{Pkg|kdeutils-print-manager}} パッケージをインストールする必要があるかもしれません。インターフェイスの使用方法など詳しい情報はデスクトップ環境のドキュメントを参照してください。
 
   
  +
CUPS は [[Avahi]] を使ってネットワーク上の未知の共有プリンターを発見することができます。サーバーがどこにあるのかわからないくらい巨大な構成で有用です。この機能を使うには [[Avahi#ホスト名の解決|.local ホストネーム解決]]を設定して、{{ic|avahi-daemon.service}} と {{ic|cups-browsed.service}} の両方を起動してください。ジョブは何も処理されずにプリンターに直接送信されるため、キューの作成が上手く行かない場合もあります。
==== その他 ====
 
   
  +
=== プリンター共有 ===
[[Arch User Repository|AUR]] に {{AUR|gtklp}} があります。
 
   
== PDF 仮想プリンター ==
+
[[CUPS/プリンター共有]]を見てください。
{{Note|GNOME では、PDF や Postscript ファイルに直接プリントすることが可能なため、そのような場合 CUPS-PDF が必要ありません。}}
 
   
  +
=== ローカルの CUPS サーバーを使わない ===
{{Pkg|cups-pdf}} パッケージを使うことで送信されたデータから PDF を作成する仮想プリンターをセットアップすることができます。このパッケージは必須ではありませんが、使うと非常に便利です。
 
   
  +
CUPS ではローカルにプリンターサーバーを立ち上げるかわりにリモートのプリンターサーバーに直接接続するように設定することができます。{{Pkg|libcups}} パッケージの[[インストール]]が必要です。ただし、アプリケーションによってはリモートのサーバーを使用する場合も印刷するのに {{Pkg|cups}} パッケージのインストールを必要とします。
パッケージをインストールした後、他のプリンターと同じようにウェブインターフェイスを使って設定してください。cups の印刷マネージャ http://localhost:631 にアクセスして選択してください:
 
Administration -> Add Printer
 
Select CUPS-PDF (Virtual PDF), choose for the make and driver:
 
Make: Generic
 
Driver: Generic CUPS-PDF Printer
 
   
  +
{{Warning|ローカルの CUPS サーバーを使わずにリモートプリンターにアクセスすることは開発者によって非推奨とされています [http://www.cups.org/pipermail/cups/2015-October/027229.html]。}}
生成された PDF ドキュメントは {{ic|/var/spool/cups-pdf}} のサブディレクトリに置かれます。通常、サブディレクトリにはジョブを実行したユーザーの名前が付けられます。ちょっとした設定で、印刷した PDF ドキュメントをもっと簡単に見つけられるようにできます。{{ic|/etc/cups/cups-pdf.conf}} を編集して、次の行を
 
#Out /var/spool/cups-pdf/${USER}
 
   
  +
リモートの CUPS サーバーを使うには、{{ic|CUPS_SERVER}} [[環境変数]]を {{ic|printerserver.mydomain:port}} に設定してください。例えば、[[Firefox]] で別の印刷サーバーを使いたい場合 ({{ic|printserver.mydomain:port}} は適当な印刷サーバーの名前とポートに置き換えてください):
下のように変更してください
 
   
  +
$ CUPS_SERVER=printserver.mydomain:port firefox
Out ${HOME}
 
   
=== PostScript に印刷する ===
+
==== client.conf ====
  +
  +
{{Note|1={{ic|/etc/cups/client.conf}} は [https://www.cups.org/doc/man-client.conf.html 非推奨] となって久しく、[https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/cups&id=41fefa22ac5189d726e0e35e2f87ad12fa2855f3 cups 2.2.0] で削除されました。}}
  +
  +
{{ic|/etc/cups/client.conf}} を編集して {{ic|ServerName}} ディレクティブを設定する古い方法:
  +
  +
{{hc|/etc/cups/client.conf|
  +
# (Substitute printserver.mydomain with your print server name)
  +
ServerName printserver.mydomain
  +
}}
   
  +
リモート環境のプリンター設定はデフォルトで使用されます。
CUPS-PDF (仮想 PDF プリンター) は実際は PostScript ファイルを作成してから ps2pdf ユーティリティを使って PDF を作成しています。PostScript に印刷するには、印刷ダイアログでプリンターとして "CUPS-PDF" を選択し、"print to file" のチェックボックスを選択して、印刷を押し、filename.ps を入力して保存をクリックするだけです。これはファックスなどで便利です。
 
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
   
[[CUPS/トラブルシューティング]]を見てさい。
+
[[CUPS/トラブルシューティング]]を見てください。
   
 
== 参照 ==
 
== 参照 ==
   
* [http://localhost:631/help 公式 CUPS ドキュメント], ''ローカルにインストールされたドキュメント''
+
* [http://localhost:631/help CUPS 公式ドキュメント], ''ローカルにインストールされたドキュメント''
  +
* [[Wikipedia:CUPS]]
* [http://www.cups.org/ 公式 CUPS ウェブサイト]
 
 
* [http://www.linuxfoundation.org/collaborate/workgroups/openprinting OpenPrinting ホームページ]
 
* [http://www.linuxfoundation.org/collaborate/workgroups/openprinting OpenPrinting ホームページ]
  +
* [https://en.opensuse.org/Concepts_printing OpenSuSE Concepts printing guide - explains the full printing workflow]
* [https://bbs.archlinux.org/ Arch Linux ユーザーフォーラム]
 
  +
* [https://en.opensuse.org/SDB:CUPS_in_a_Nutshell OpenSuSE CUPS in a Nutshell - a quick CUPS overview]
  +
* [https://wiki.gentoo.org/wiki/Printing Gentoo の印刷ガイド]

2016年9月27日 (火) 21:06時点における版

関連記事

CUPS のサイト より:

"CUPS は標準ベースの、Apple によって開発されている macOS® やその他の UNIX® ライクなオペレーティングシステム向けのオープンソースの印刷システムです。"

インストール

cups パッケージをインストールしてください。

PDF 文章に「印刷」したい場合、cups-pdf パッケージもインストールしてください。デフォルトでは、PDF ファイルは /var/spool/cups-pdf/$USER に保存されます。作成場所は /etc/cups/cups-pdf.conf で変更できます。

インストールしたら org.cups.cupsd.service起動有効化してください。

接続インターフェイス

以下には様々なインターフェイスごとにプリンターを認識させる手順を載せています。

ノート: CUPS ヘルパープログラムは lp グループと daemon ユーザーを使って実行されます。これによってヘルパープログラムからプリンターデバイスにアクセスできるようになり lp グループに属する /etc/cups/ の設定ファイルを読み込めるようになります。ただし、パラレルポートを使用するプリンター以外のデバイスと衝突する可能性があります:
  • lp グループにユーザーを追加することで CUPS ファイルを読み込むことを許可できます。
  • CUPS ヘルパーがパラレルポートを使用するプリンター以外のデバイスを使用する権限を得てしまう可能性があります。
必要であれば、Udev ルールを使用してプリンター以外のパラレルポートデバイスには別のグループを割り当ててください (FS#50009)。CUPS が使用するグループとユーザーは変えられますが、手動でファイルのパーミッションを修正する必要があります。

USB

USB プリンターが認識されているかどうか確認するには:

$ lsusb
(...)
Bus 001 Device 007: ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse

パラレルポート

パラレルポートプリンターを使うには lp, parport, parport_pc カーネルモジュールが必要です。

$ dmesg | grep -i parport
 parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series
 lp0: using parport0 (polling)

ネットワーク

Avahi ホストネームを使ってネットワークプリンターを接続するには、.local ホストネーム解決をセットアップして org.cups.cupsd.service再起動してください。

Samba プロトコルを使ってネットワークプリンターに接続する場合や、Windows クライアント用のプリンターサーバーを使う場合、samba パッケージをインストールしてください。

プリンタードライバー

プリンターのドライバーは以下のソースのどこかから入手することができます。動作するのが確認されているドライバーのリストは CUPS/プリンター別の問題を見てください。

プリンターを動かすのに、CUPS は PPD ファイルを必要とします。また、大抵のプリンターでは フィルター も必要です。CUPS がどうやって PPD やフィルターを使用するのかは [1] に詳しく書かれています。

OpenPrinting Printer List は多数のプリンターの推奨ドライバーを教えてくれます。個別のプリンターの PPD ファイルも提供されていますが、大抵の場合は foomatic や推奨されているドライバーパッケージから手に入ります。

PPD ファイルが CUPS に供給されると、CUPS サーバーは PPD ファイルを再生成して /etc/cups/ppd/ に保存します。

CUPS

CUPS は何も設定をしなくても動作する PPD やフィルターのバイナリを少数ながらデフォルトで用意しています。

Foomatic

foomatic プロジェクトはフリーであるかを問わず多数のプリンタードライバーの PPD を提供しています。foomatic の活動の詳細は Foomatic from the Developer's View を見てください。

foomatic を使用するには、foomatic-db-enginefoomatic-db-ppds, foomatic-db-nonfree-ppds, foomatic-db-gutenprint-ppds の最低でもどれかひとつをインストールします。

foomatic の PPD は別途でフィルターを必要とすることがあり、gutenprintghostscript などが挙げられます (例えば min12xxwAUR)。ghostscript が必要な場合、gsfonts もおそらく必須です。

メーカー別のドライバー

様々なプリンターメーカーが独自の Linux ドライバーを提供しています。中には Arch の公式リポジトリや AUR からインストールできるドライバーもあります。

一部のドライバーについては CUPS/プリンター別の問題に詳しい説明があります。

プリンター URI

以下では手動での URI の生成について説明しています。

USB

CUPS は USB プリンターの URI を自動的に生成します。例: usb://HP/DESKJET%20940C?serial=CN16E6C364BH

生成されない場合、CUPS/トラブルシューティング#USB プリンターを見てください。

パラレルポート

URI は parallel:device という形式になります。例えば、プリンターが /dev/lp0 で接続されている場合、parallel:/dev/lp0 を使ってください。USB からパラレルポートに変換するアダプタを使っている場合、プリンター URI は parallel:/dev/usb/lp0 を使ってください。

ネットワーク

#ネットワークに書かれているように Avahi を設定することで、CUPS はプリンター URI を探知します。avahi-discover を使ってプリンターの名前やアドレスを確認することもできます (例: BRN30055C6B4C7A.local/10.10.0.155:631)。

Avahi を使わずに URI を手動で生成することも可能です。ネットワークプリンターで利用可能な URI スキーマのリストは CUPS のドキュメント [2] を見てください。プリンターによって URI には細かい違いがあるので、プリンターのマニュアルや CUPS/プリンター別の問題もチェックしてください。

リモートの CUPS 印刷サーバーは ipp://hostname:631/printers/queue_name という形式の URI でアクセスできます。リモートの印刷サーバーをセットアップする方法は CUPS/プリンター共有#GNU/Linux システム間を見てください。

他の問題については CUPS/トラブルシューティング#ネットワークの問題を見てください。

警告: サーバーとクライアントの両方をプリンターフィルターで設定してはいけません。クライアントかサーバーのどちらかの印刷キューが 'raw' である必要があります。フィルターによってプリンターに同じ印刷ジョブを2回送信して問題が発生するのを避けるためです (例: [3])。印刷キューを 'raw' に設定する例は#使用方法を見てください。

使用方法

CUPS はコマンドラインツールの the lp* と cups* を使うことで制御できます。また、ウェブインターフェイスや GUI アプリケーションを利用することも可能です。

  • queue はキューを識別するために使われる短くてわかりやすい名前です。名前に空白・特殊文字を含めることはできません。例えば、HP LaserJet 5P を使用する印刷キューの名前は "hpljet5p" などとします。複数のキューを物理的なプリンターに関連付けることができます。
  • location はプリンターの物理的な場所の説明です (例えば "bedroom" や "kitchen" など)。複数のプリンターを管理しやすくするためにあります。
  • description はプリンターの完全な説明です。大抵はプリンターの正式名称が使われます ("HP LaserJet 5P" など)。

CLI ツール

CUPS ローカルドキュメント にはコマンドラインツールに関するヒントが載っています。

ノート: コマンドラインのスイッチはまとめて指定することができません。
デバイスを確認
# lpinfo -v # 
$ /usr/lib/cups/backend/snmp ip_address # Use SNMP to find a URI
ドライバーを確認
$ lpinfo -m
新しい印刷キューを追加
# lpadmin -p queue_name -E -v uri -m model

queue_name は適当な名前に置き換えてください。例:

# lpadmin -p HP_DESKJET_940C -E -v "usb://HP/DESKJET%20940C?serial=CN16E6C364BH" -m drv:///HP/hp-deskjet_940c.ppd.gz
# lpadmin -p SHARED_PRINTER -m raw    # Raw queue; no PPD or filter
デフォルトプリンターを設定
$ lpoptions -d queue_name
オプションを変更
$ lpoptions -p queue_name -l # List the options
$ lpoptions -p queue_name -o option=value # Set an option

例:

$ lpoptions -p HP_DESKJET_940C -o PageSize=A4
状態を確認
$ lpstat -s
$ lpstat -p queue_name
プリンターを無効化
# cupsdisable queue_name
プリンターを有効化
# cupsenable queue_name
ジョブを受け取るようにプリンターを設定
# cupsaccept queue_name
プリンターの削除

まず印刷を要求するエントリを全て拒否するように設定してください:

# cupsreject queue_name

次にプリンターを無効化してください:

# cupsdisable queue_name

最後に削除してください:

# lpadmin -x queue_name
ファイルを印刷
$ lpr file
$ lpr -# 17 file            # print the file 17 times
$ echo "Hello, world!" | lpr -p # print the result of a command. The -p switch adds a header.
印刷キューを確認
$ lpq
$ lpq -a # on all queues
印刷キューを消去
# lprm   # remove last entry only
# lprm - # remove all entries

ウェブインターフェイス

CUPS サーバーはウェブインターフェイスを使って管理することができます。http://localhost:631/ を開いてください。

ノート: HTTPS 接続で CUPS を使用する場合、初めてアクセスしたときにインターフェイスが表示されるまで長い時間がかかります。初期設定で行われる SSL 証明書の生成に時間がかかるためです。
印刷キューを追加

Administration ページを開いてください。

既存のキューを編集

Printers ページを開いて、編集したいキューを選択してください。

キューをテスト

Printers ページを開いて、キューを選択してください。

GUI アプリケーション

CUPS を管理するのに十分な権限を持っていない場合、アプリケーションが起動するときに root パスワードが要求されます。root 権限を与えずにユーザーに管理者権限を与える方法は#設定を見てください。

  • print-manager — 印刷ジョブとプリンターの管理ツール (KDE)。
https://projects.kde.org/projects/kde/kdeutils/print-manager || print-manager
  • system-config-printer — CUPS プリンター設定ツール・状態アプレット (GNOME など)。
http://cyberelk.net/tim/software/system-config-printer/ || system-config-printer
  • gtklp — CUPS の GTK+ インターフェイス。
http://gtklp.sirtobi.com/index.shtml || gtklpAUR

設定

CUPS サーバーの設定は /etc/cups/cupsd.conf/etc/cups/cups-files.conf にあります。どちらかのファイルを編集したら、変更を適用するために org.cups.cupsd.service再起動してください。大抵の場合はデフォルト設定で問題ありません。

プリンターの管理者権限を持つグループ/etc/cups/cups-files.confSystemGroup で定義されます。デフォルトでは sys グループが使われます。

cupslibpaper のサポートを有効にしてビルドされており、libpaper はデフォルトの用紙サイズとして Letter を使います。印刷キューを追加するたびに用紙サイズを変更しなくてもいいように、/etc/papersize を編集してデフォルトの用紙サイズを設定してください。詳しくは papersize(5) を参照。

デフォルトでは、全てのログは /var/log/cups/ 内のファイルに送信されます。/etc/cups/cups-files.conf 内の AccessLog, ErrorLog, PageLog ディレクティブの値を syslog に変更することで、CUPS から systemd journal にログを吐かせることができます。詳しくは fedora wiki を見てください。

cups-browsed

CUPS は Avahi を使ってネットワーク上の未知の共有プリンターを発見することができます。サーバーがどこにあるのかわからないくらい巨大な構成で有用です。この機能を使うには .local ホストネーム解決を設定して、avahi-daemon.servicecups-browsed.service の両方を起動してください。ジョブは何も処理されずにプリンターに直接送信されるため、キューの作成が上手く行かない場合もあります。

プリンター共有

CUPS/プリンター共有を見てください。

ローカルの CUPS サーバーを使わない

CUPS ではローカルにプリンターサーバーを立ち上げるかわりにリモートのプリンターサーバーに直接接続するように設定することができます。libcups パッケージのインストールが必要です。ただし、アプリケーションによってはリモートのサーバーを使用する場合も印刷するのに cups パッケージのインストールを必要とします。

警告: ローカルの CUPS サーバーを使わずにリモートプリンターにアクセスすることは開発者によって非推奨とされています [4]

リモートの CUPS サーバーを使うには、CUPS_SERVER 環境変数printerserver.mydomain:port に設定してください。例えば、Firefox で別の印刷サーバーを使いたい場合 (printserver.mydomain:port は適当な印刷サーバーの名前とポートに置き換えてください):

$ CUPS_SERVER=printserver.mydomain:port firefox

client.conf

ノート: /etc/cups/client.conf非推奨 となって久しく、cups 2.2.0 で削除されました。

/etc/cups/client.conf を編集して ServerName ディレクティブを設定する古い方法:

/etc/cups/client.conf
# (Substitute printserver.mydomain with your print server name)
ServerName printserver.mydomain

リモート環境のプリンター設定はデフォルトで使用されます。

トラブルシューティング

CUPS/トラブルシューティングを見てください。

参照