「CUPS」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(脱字の修正を行った)
 
(2人の利用者による、間の18版が非表示)
1行目: 1行目:
 
[[Category:プリンター]]
 
[[Category:プリンター]]
  +
[[Category:サーバー]]
[[cs:CUPS]]
 
 
[[de:CUPS]]
 
[[de:CUPS]]
 
[[en:CUPS]]
 
[[en:CUPS]]
[[es:CUPS]]
 
 
[[fr:CUPS]]
 
[[fr:CUPS]]
[[it:CUPS]]
 
[[pl:CUPS]]
 
 
[[ru:CUPS]]
 
[[ru:CUPS]]
[[th:CUPS]]
 
 
[[zh-hans:CUPS]]
 
[[zh-hans:CUPS]]
[[zh-hant:CUPS]]
 
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|CUPS/プリンター共有}}
 
{{Related|CUPS/プリンター共有}}
19行目: 14行目:
 
{{Related articles end}}
 
{{Related articles end}}
   
[https://www.cups.org/ CUPS] は標準ベースのApple によって開発されている macOS® やその他の UNIX® ライクなオペレーティングシステム向けのオープンソース印刷システムです。
+
[https://openprinting.github.io/cups/ CUPS] は、Linux® や他の Unix® ライクなオペレーティングシステムのための標準ベースのオープンソース印刷システムです。OpenPrinting によって開発されています。
  +
  +
Arch Linux では、[https://www.cups.org/ Apple CUPS フォーク]ではなく、[https://openprinting.github.io/cups/ OpenPrinting CUPS フォーク]がパッケージングされています。
   
 
== インストール ==
 
== インストール ==
25行目: 22行目:
 
{{Pkg|cups}} パッケージを[[インストール]]してください。
 
{{Pkg|cups}} パッケージを[[インストール]]してください。
   
  +
{{Note|CUPS では、ドライバは IPP Everywhere に取って代わられる形で非推奨となっているため、印刷を機能させるには {{Pkg|cups-pdf}} をインストールする必要がある場合があります。このパッケージがないと、''client-error-document-format-not-supported'' のようなエラーが発生する場合があります。IPP Everywhere は PDF を直接プリンタに送信するため、印刷したいものをまず PDF に変換するために cups-pdf が必要です。}}
PDF 文章に「印刷」したい場合、{{pkg|cups-pdf}} パッケージもインストールしてください。デフォルトでは、PDF ファイルは {{ic|/var/spool/cups-pdf/$USER}} に保存されます。作成場所は {{ic|/etc/cups/cups-pdf.conf}} で変更できます。
 
   
  +
任意で、PDF ドキュメントに"印刷"したい場合は、{{Pkg|cups-pdf}} パッケージを[[インストール]]してください。デフォルトでは、PDF ファイルは {{ic|/var/spool/cups-pdf/''username''/}} に保存されます。保存場所は {{ic|/etc/cups/cups-pdf.conf}} で変更することができます。
インストールしたら {{ic|cups.service}} を[[起動]]・[[有効化]]してください。
 
  +
  +
そして、{{ic|cups.service}} を[[有効化]]し、[[起動]]してください。または、[[#ソケットアクティベーション|ソケットアクティベーション]]を使用することで、このサービスがプログラムによって必要とされる場合にのみ CUPS を起動させることもできます。
  +
  +
=== ソケットアクティベーション ===
  +
  +
{{Pkg|cups}} は {{ic|cups.socket}} ユニットを提供しています。{{ic|cups.socket}} が有効化されている (かつ、{{ic|cups.service}} が[[無効化]]されている) 場合、''systemd'' は CUPS をすぐには起動せず、適切なソケットをただリッスンします。プログラムがそれらの CUPS ソケットのうちどれかへの接続を試みた時に、''systemd'' は {{ic|cups.service}} を起動し、それらのポートの制御を CUPS プロセスへ透過的に渡します。
  +
  +
=== 印刷の流れ ===
  +
  +
関連する問題を解決したい場合は、CUPS がどう機能するかを知っておくことが重要です:
  +
  +
# '印刷' が選択された際、アプリケーションは [[Wikipedia:ja:PDF|PDF]] ファイルを CUPS に送信します (アプリケーションが他の形式を送信した場合、それらはまず PDF に変換されます)。
  +
# CUPS はプリンタの PPD ファイル (プリンタ記述ファイル) を参照し、PDF ファイルをプリンタの理解できる言語 (PJL、PCL、ビットマップ、ネイティブな PDF など) へ変換するためにどのようなフィルタを使用する必要があるかを調べます。
  +
# フィルタが PDF ファイルをプリンタの理解できる形式へ変換します。
  +
# 最後に、そのデータがバックエンドへ送られます。例えば、プリンタが USB ポートに接続されている場合、USB バックエンドが使用されます。
   
 
== 接続インターフェイス ==
 
== 接続インターフェイス ==
以下には様々なインターフェイスごとにプリンターを認識させる手順を載せています。
 
   
  +
様々なインターフェイスにおける、プリンタを認識させるための追加の手順を以下に載せています。
{{Note|1=<nowiki></nowiki>
 
* CUPS ヘルパープログラムは {{ic|cups}} ユーザー・グループを使って動作します。これによってヘルパープログラムからプリンターデバイスにアクセスできるようになり {{ic|cups}} グループに属する {{ic|/etc/cups/}} の設定ファイルを読み込めるようになります。
 
* {{Pkg|cups}} 2.2.6-2 以前では、{{ic|lp}} グループが使われていました [https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/cups&id=a209bf21797a239c7ddb4614f0266ba1e5238622]。アップグレード後、{{ic|/etc/cups}} のファイルの所有者は {{ic|cups}} グループに設定し、{{ic|/etc/cups/cups-files.conf}} には {{ic|User 209}} と {{ic|Group 209}} を記述する必要があります。
 
}}
 
   
 
=== USB ===
 
=== USB ===
  +
USB プリンターが認識されているかどうか確認するには:
 
  +
USB プリンタが認識されているかどうか確認するには、まず {{Pkg|usbutils}} パッケージがインストールされていることを確認し、以下を実行してください:
  +
 
{{hc|$ lsusb|
 
{{hc|$ lsusb|
 
(...)
 
(...)
45行目: 55行目:
   
 
=== パラレルポート ===
 
=== パラレルポート ===
パラレルポートプリンターを使うには {{ic|lp}}, {{ic|parport}}, {{ic|parport_pc}} [[カーネルモジュール]]が必要です。
 
   
  +
パラレルポートプリンターを使うには、[[カーネルモジュール]] {{ic|lp}}、{{ic|parport}}、そして {{ic|parport_pc}} が必要です。
{{hc|$ dmesg {{!}} grep -i parport|
 
  +
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series
 
  +
{{hc|# dmesg {{!}} grep -i parport|
lp0: using parport0 (polling)
 
  +
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series
  +
lp0: using parport0 (polling)
 
}}
 
}}
   
 
=== ネットワーク ===
 
=== ネットワーク ===
[[Avahi]] を使うことでローカルネットワーク内のプリンターをスキャンできます。[[Avahi]] ホストネームを使ってネットワークプリンターを接続するには、[[Avahi#ホスト名の解決|.local ホストネーム解決]]をセットアップして {{ic|cups.service}} を[[systemd#ユニットを使う|再起動]]してください。
 
   
  +
==== 既知の場所のプリンタを追加する ====
[[Samba]] プロトコルを使ってネットワークプリンターに接続する場合や、Windows クライアント用のプリンターサーバーを使う場合、{{Pkg|samba}} パッケージをインストールしてください。
 
  +
  +
プリンタのアドレスがわかっている場合 (アドレスは、プリンタの画面に表示されたり、他の何らかの方法でネットワークをスキャンしたりなどして得られます)、プリンタを動的に発見する機能 (DNS-SD/mDNS) に頼る必要はありません。CUPS のキューを直接追加することで、プリンタを使用することができます。''lpadmin'' でキューを追加する歩法については、次の章かドキュメント [https://github.com/OpenPrinting/cups/tree/v2.4.7#setting-up-printers Setting up printers] で見られます。
  +
  +
==== プリンタを発見する ====
  +
  +
DNS-SD/mDNS を使ってプリンタを発見、使用、または共有するには、[[Avahi]] を使って [[Avahi#ホスト名の解決|.local ホストネーム解決]]をセットアップして、{{ic|cups.service}} を[[再起動]]してください。
  +
  +
{{Note|DNS-SD は、[[Avahi]] を使用している時にのみ、サポートされています。CUPS は [[systemd-resolved]] を DNS-SD のために使用することをサポートしていません。[https://github.com/apple/cups/issues/5452 CUPS issue 5452] を参照してください。}}
  +
  +
[[Samba]] を使ってネットワークプリンターを共有する場合や、例えばシステムを Windows クライアント用のプリンターサーバーにする場合、{{Pkg|samba}} パッケージが必要です。
   
 
== プリンタードライバー ==
 
== プリンタードライバー ==
プリンターのドライバーは以下のソースのどこかから入手することができます。動作するのが確認されているドライバーのリストは [[CUPS/プリンター別の問題]]を見てください。
 
   
  +
{{Note|訳注: CUPS は PPD とドライバのサポートを廃止し、完全に IPP Everywhere に依存させることを計画しています ([https://github.com/OpenPrinting/cups/issues/103 CUPS issue 103])。英語版の議論ページ [[:en:Talk:CUPS#CUPS printer drivers and backends are deprecated]] も参照してください。}}
プリンターを動かすのに、CUPS は PPD ファイルを必要とします。また、大抵のプリンターでは [https://www.cups.org/doc/man-filter.html フィルター] も必要です。CUPS がどうやって PPD やフィルターを使用するのかは [https://www.cups.org/doc/postscript-driver.html] に詳しく書かれています。
 
   
  +
最近 (2010年以降) のプリンタのほとんどは、AirPrint や IPP_Everywhere を実装しているのでドライバレスでの使用をサポートしています (以下を参照)。
[http://www.openprinting.org/printers OpenPrinting Printer List] は多数のプリンターの推奨ドライバーを教えてくれます。個別のプリンターの PPD ファイルも提供されていますが、大抵の場合は [[#Foomatic|foomatic]] や推奨されているドライバーパッケージから手に入ります。
 
  +
  +
プリンターのドライバーは以下のソースのどこかから入手することができます。動作するのが確認されているドライバーの不完全なリストは [[CUPS/プリンター別の問題]] を見てください。
  +
  +
プリンターを動かすのに、CUPS は PPD ファイルを必要とします。また、大抵のプリンターではいくつかの[https://www.cups.org/doc/man-filter.html フィルター]も必要です。CUPS がどうやって PPD やフィルターを使用するのかは [https://www.cups.org/doc/postscript-driver.html] に詳しく書かれています。
  +
  +
[https://www.openprinting.org/printers OpenPrinting Printer List] は多数のプリンターの推奨ドライバーを教えてくれます。個別のプリンターの PPD ファイルも提供されていますが、大抵の場合は [[#Foomatic|foomatic]] や推奨されているドライバーパッケージから手に入ります。
   
 
PPD ファイルが CUPS に供給されると、CUPS サーバーは PPD ファイルを再生成して {{ic|/etc/cups/ppd/}} に保存します。
 
PPD ファイルが CUPS に供給されると、CUPS サーバーは PPD ファイルを再生成して {{ic|/etc/cups/ppd/}} に保存します。
   
  +
[[PKGBUILD]] を作成する前に PPD ファイルが動作することを確認するために、PPD ファイルを {{ic|/usr/share/cups/''model''}} に手動で追加することができます。cups サービスを再起動したあとに、そのドライバが利用可能になるはずです。
新しいドライバーをインストールした後は cups サービスの再起動が必要です。
 
  +
  +
=== AirPrint と IPP Everywhere ===
  +
  +
CUPS には [[Wikipedia:ja:AirPrint|AirPrint]] と [https://www.pwg.org/ipp/everywhere.html IPP Everywhere] プリンタのサポートが含まれています。そのようなプリンタは自動的に発見されるはずです。
  +
  +
=== OpenPrinting CUPS フィルタ ===
  +
  +
Linux Foundation の OpenPrinting ワークグループは、[https://wiki.linuxfoundation.org/openprinting/cups-filters cups-filters] を提供しています。これらは、かつて CUPS の一部だったがプロジェクトから外されたバックエンド、フィルタ、そしてその他のバイナリです。これらは、{{Pkg|cups}} の依存関係である {{Pkg|cups-filters}} パッケージで利用できます。
   
  +
非 PDF プリンタは、{{Pkg|ghostscript}} をインストールする必要があります。PostScript プリンタは、{{Pkg|gsfonts}} も必要である場合があります。
=== CUPS ===
 
CUPS は何も設定をしなくても動作する PPD やフィルターのバイナリを少数ながらデフォルトで用意しています。また、CUPS は [[wikipedia:ja:AirPrint|AirPrint]] と [http://www.pwg.org/ipp/everywhere.html IPP Everywhere] プリンターにも対応しています。
 
   
 
=== Foomatic ===
 
=== Foomatic ===
[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] を見てください。
 
   
  +
Linux Foundation の OpenPrinting ワークグループの [https://wiki.linuxfoundation.org/openprinting/database/foomatic foomatic] は、多くのプリンタドライバの PPD を (フリーとフリーでないもの両方) 提供しています。foomatic が何をするかに関する詳細は [https://www.openprinting.org/download/kpfeifle/LinuxKongress2002/Tutorial/IV.Foomatic-Developer/IV.tutorial-handout-foomatic-development.html Foomatic from the Developer's View] を参照してください。
foomatic を使用するには、{{pkg|foomatic-db-engine}} と {{pkg|foomatic-db}}, {{pkg|foomatic-db-ppds}}, {{pkg|foomatic-db-nonfree-ppds}}, {{pkg|foomatic-db-gutenprint-ppds}} の最低でもどれかひとつをインストールします。
 
   
  +
foomatic を使うには、{{Pkg|foomatic-db-engine}} と、以下から最低でも1つをインストールしてください:
foomatic の PPD は別途でフィルターを必要とすることがあり、{{pkg|gutenprint}} や {{pkg|ghostscript}} などが挙げられます (例えば {{aur|min12xxw}})。{{pkg|ghostscript}} が必要な場合、{{pkg|gsfonts}} もおそらく必須です。
 
   
  +
* {{Pkg|foomatic-db}} - foomatic-db-engine によって PPD ファイルを生成するために使用される XML ファイルのコレクション。
=== メーカー別のドライバー ===
 
  +
* {{Pkg|foomatic-db-ppds}} — ビルド済み PPD ファイル群。
様々なプリンターメーカーが独自の Linux ドライバーを提供しています。中には Arch の公式リポジトリや [[AUR]] からインストールできるドライバーもあります。
 
  +
* {{Pkg|foomatic-db-nonfree}} — プリンタのメーカーからフリーでないライセンスの XML ファイルのコレクション。foomatic-db-engine によって PPD ファイルを生成するために使用されます。
  +
* {{Pkg|foomatic-db-nonfree-ppds}} — フリーでないライセンスのビルド済み PPD ファイル群。
   
  +
foomatic PPD は追加のフィルタを必要とする場合があります (例: {{AUR|min12xxw}})。
一部のドライバーについては [[CUPS/プリンター別の問題]]に詳しい説明があります。
 
  +
  +
=== Gutenprint ===
  +
  +
[https://gimp-print.sourceforge.net/ Gutenprint プロジェクト]は、CUPS と [[GIMP]] で使うための、Canon、Epson、Lexmark、Sony、Olympus、そして PCL のプリンタ用のドライバを提供しています。
  +
  +
{{Pkg|gutenprint}} と {{Pkg|foomatic-db-gutenprint-ppds}} をインストールしてください。
  +
  +
{{Note|Gutenprint のパッケージが更新された際、{{ic|cups-genppdupdate}} を root として実行し CUPS を再起動するまで、Gutenprint ドライバを使用するプリンタは動作を停止します。''cups-genppdupdate'' は、構成されたプリンタの PPD ファイルを更新します。詳細は {{man|8|cups-genppdupdate}} を参照してください。}}
  +
  +
=== メーカー固有のドライバ ===
  +
  +
多くのプリンタメーカーは独自の Linux ドライバを配布しています。中には Arch の公式リポジトリや [[AUR]] から入手できるものもあります。
  +
  +
これらのドライバのうちいくつかは [[CUPS/プリンター別の問題]] で詳しく説明されています。
   
 
== プリンター URI ==
 
== プリンター URI ==
   
  +
以下は、必要に応じて手動で URI を生成する追加の手順をリストアップしています。一部のプリンタとドライバは、[[CUPS/プリンター別の問題]] で説明されている通り、特殊な URI を必要とする場合があります。
以下では手動での URI の生成について説明しています。
 
   
 
=== USB ===
 
=== USB ===
   
CUPS は USB プリンタの URI を自動的に生成しま例: {{ic|1=usb://HP/DESKJET%20940C?serial=CN16E6C364BH}}。
+
CUPS は USB プリンタの URI を自動的に生成できるはずで (例: {{ic|1=usb://HP/DESKJET%20940C?serial=CN16E6C364BH}})
   
生成されない場合、[[CUPS/トラブルシューティング#USB プリンター]]をてください。
+
生成されない場合、[[CUPS/トラブルシューティング#USB プリンター]] でトラブルシューティングの手順確認してください。
   
 
=== パラレルポート ===
 
=== パラレルポート ===
   
URI は {{ic|parallel:''device''}} という形式になります。例えば、プリンターが {{ic|/dev/lp0}} で接続されている場合、{{ic|parallel:/dev/lp0}} を使ってください。USB からパラレルポートに変換するアダプタを使っている場合、プリンター URI は {{ic|parallel:/dev/usb/lp0}} を使ってください。
+
URI は {{ic|parallel:''device''}} という形式である必要があります。例えば、プリンターが {{ic|/dev/lp0}} で接続されている場合、{{ic|parallel:/dev/lp0}} を使ってください。USB からパラレルポートに変換するアダプタを使っている場合、プリンター URI は {{ic|parallel:/dev/usb/lp0}} を使ってください。
   
 
=== ネットワーク ===
 
=== ネットワーク ===
101行目: 148行目:
 
[[#ネットワーク]]に書かれているように [[Avahi]] を設定することで、CUPS はプリンター URI を探知します。{{ic|avahi-discover}} を使ってプリンターの名前やアドレスを確認することもできます (例: {{ic|BRN30055C6B4C7A.local/10.10.0.155:631}})。
 
[[#ネットワーク]]に書かれているように [[Avahi]] を設定することで、CUPS はプリンター URI を探知します。{{ic|avahi-discover}} を使ってプリンターの名前やアドレスを確認することもできます (例: {{ic|BRN30055C6B4C7A.local/10.10.0.155:631}})。
   
[[Avahi]] を使わずに URI を手動で生成することも可能です。ネットワークプリンターで利用可能な URI スキーマのリストは CUPS のドキュメント [https://www.cups.org/doc/network.html#PROTOCOLS] を見てください。プリンターによって URI には細かい違いがあるので、プリンターのマニュアルや [[CUPS/プリンター別の問題]]もチェックしてください。
+
[[Avahi]] を使わずに URI を手動で生成することも可能です。ネットワークプリンターで利用可能な URI スキーマのリストは [https://www.cups.org/doc/network.html#PROTOCOLS CUPS のドキュメント]を見てください。プリンターによって URI には細かい違いがあるので、プリンターのマニュアルや [[CUPS/プリンター別の問題]]もチェックしてください。
   
  +
[[SMB]] 共有におけるプリンタの URI は、{{man|8|smbspool}} man ページで説明されています。
リモートの CUPS 印刷サーバーは {{ic|ipp://''hostname'':631/printers/''queue_name''}} という形式の URI でアクセスできます。リモートの印刷サーバーをセットアップする方法は [[CUPS/プリンター共有#GNU/Linux システム間]]を見てください。
 
  +
  +
{{Note|プリンタ URI 内の特殊文字は適切に URL エンコードする必要があります。さもないと、Windows プリンタ名やユーザのパスワードに空白が存在する場合、CUPS は {{ic|lpadmin: Bad device-uri}} エラーを投げます。
  +
例えば、{{ic|smb://BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6}} は {{ic|smb://BEN-DESKTOP/HP%20Color%20LaserJet%20CP1510%20series%20PCL6}} となります。
  +
  +
以下のコマンドを実行することで、URL エンコードされた文字列を得ることができます:
  +
  +
$ python -c 'from urllib.parse import quote; print("smb://" + quote("BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6"))'
  +
  +
}}
  +
  +
リモートの CUPS 印刷サーバーは {{ic|ipp://''hostname'':631/printers/''queue_name''}} という形式の URI でアクセスできます。リモートの印刷サーバーをセットアップする方法は [[CUPS/プリンター共有#GNU/Linux システム間]] を見てください。
   
 
他の問題については [[CUPS/トラブルシューティング#ネットワークの問題]]を見てください。
 
他の問題については [[CUPS/トラブルシューティング#ネットワークの問題]]を見てください。
   
{{Warning|1=サーバとクライアントの両方をプリンタフィルタで設定してません。クライアントかサーバのどちらかの印刷キュー 'raw' である必要があります。フィルターによっプリンターに同じ印刷ジョブを2回送信問題発生するのを避けるためで (例: [https://bbs.archlinux.org/viewtopic.php?pid=1589908#p1589908])。印刷キューを 'raw' に設定する例は[[#使用方法]]を見てください。}}
+
{{Warning|1=サーバとクライアントの両方をプリンタフィルタで設定することてください。クライアントかサーバのどちらかの印刷キュー 'raw' であるべきです。こうすることで、フィルタを通して印刷ジョブが2回送信されること防ぐことができます (2回送信されしまうと、共有されたプリンタローカルでは動作するが、リモートマシンでは印刷に失敗してしまうなど問題引き起こす可能性があります [https://bbs.archlinux.org/viewtopic.php?pid=1589908#p1589908])。印刷キューを 'raw' に設定する例は [[#lp*]] を見てください。}}
   
 
== 使用方法 ==
 
== 使用方法 ==
   
CUPS はコマンドラインツールの the lp* と cups* を使うことで制御できます。また、[[#ウェブインターフェイス|ウェブインターフェイス]]や [[#GUI アプリケーション|GUI アプリケーション]]を利用することも可能です。
+
CUPS は ''lp*'' ツール''cups*'' ツールを使って完全に制御できます。また、[[#ウェブインターフェイス]] や [[#GUI アプリケーション]] 使うこともできます。
   
 
* ''queue'' はキューを識別するために使われる短くてわかりやすい名前です。名前に空白・特殊文字を含めることはできません。例えば、HP LaserJet 5P を使用する印刷キューの名前は "hpljet5p" などとします。複数のキューを物理的なプリンターに関連付けることができます。
 
* ''queue'' はキューを識別するために使われる短くてわかりやすい名前です。名前に空白・特殊文字を含めることはできません。例えば、HP LaserJet 5P を使用する印刷キューの名前は "hpljet5p" などとします。複数のキューを物理的なプリンターに関連付けることができます。
119行目: 177行目:
 
=== CLI ツール ===
 
=== CLI ツール ===
   
[http://localhost:631/help/options.html CUPS ローカルドキュメント] にはコマンドラインツールに関するヒントが載っています
+
コマンドラインツールに関するヒントは[http://localhost:631/help/options.html ローカルの CUPS ドキュメント]を参照しください。
   
 
{{Note|コマンドラインのスイッチはまとめて指定することができません。}}
 
{{Note|コマンドラインのスイッチはまとめて指定することができません。}}
   
  +
SNMP を使って URI を見つけるには:
;デバイスを確認
 
# lpinfo -v #
 
$ /usr/lib/cups/backend/snmp ''ip_address'' # Use SNMP to find a URI
 
   
  +
$ /usr/lib/cups/backend/snmp ''ip_address''
;モデルを確認
 
$ lpinfo -m
 
   
  +
==== lp* ====
;新しい印刷キューを追加
 
  +
# lpadmin -p ''queue_name'' -E -v ''uri'' -m ''model''
 
  +
''lpinfo'' コマンドは、{{ic|-v}} オプションを付けるとシステムに接続されているプリンタの URI を一覧表示し、{{ic|-m}} オプションを付けるとシステム上にインストールされている利用可能な全てのドライバ (CUPS 用語では "モデル") を一覧表示します。
  +
  +
''lpadmin'' ユーティリティは、{{ic|-p ''queue_name''}} オプションを付けると新しいキューを作成します。{{ic|-p}} に {{ic|-E}} を加えると、プリンタを有効化し、ジョブを受け入れるようになります。{{ic|-v}} フラグはデバイスの URI を指定します。{{ic|-m}} フラグは、使用するドライバ (CUPS 用語では "モデル") か PPD ファイルを指定します。
  +
  +
{{ic|-x}} フラグを使うことでプリンタを取り除くこともできます (先に [[#cups*]] を読んでください)。
  +
  +
例:
   
''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 HP_DESKJET_940C -E -v "usb://HP/DESKJET%20940C?serial=CN16E6C364BH" -m drv:///HP/hp-deskjet_940c.ppd.gz
# lpadmin -p AirPrint -E -v "ipp://10.0.1.25/ipp/print" -m everywhere # Driverless queue (Apple AirPrint or IPP Everywhere)
 
# lpadmin -p SHARED_PRINTER -m raw # Raw queue; no PPD or filter
 
# lpadmin -p Test_Printer -E -v "ipp://10.0.1.3/ipp/print" -m pxlmono.ppd # Specifying a PPD instead of a model
 
   
  +
ドライバレスのキュー (Apple AirPrint か IPP Everywhere) の場合は:
{{Note|PPD を指定する場合、フルパスではなくファイル名だけ指定してください (例えば {{ic|/usr/share/ppd/cupsfilters/pxlmono.ppd}} ではなく {{ic|pxlmono.ppd}} を指定します)。}}
 
   
  +
# lpadmin -p AirPrint -E -v "ipp://10.0.1.25/ipp/print" -m everywhere
;デフォルトプリンターを設定
 
$ lpoptions -d ''queue_name''
 
   
  +
raw キューの場合 (PPD もフィルタも無し):
;オプションを変更
 
$ lpoptions -p ''queue_name'' -l # List the options
 
$ lpoptions -p ''queue_name'' -o ''option''=''value'' # Set an option
 
   
  +
# lpadmin -p SHARED_PRINTER -m raw
例:
 
$ lpoptions -p HP_DESKJET_940C -o PageSize=A4
 
   
  +
モデルではなく PPD を指定する場合:
;状態を確認
 
$ lpstat -s
 
$ lpstat -p ''queue_name''
 
   
  +
# lpadmin -p Test_Printer -E -v "ipp://10.0.1.3/ipp/print" -m pxlmono.ppd
;プリンターを無効化
 
  +
# cupsdisable ''queue_name''
 
  +
{{Note|
  +
* PPD を指定する場合、フルパスではなくファイル名だけを指定してください (例えば、{{ic|/usr/share/ppd/cupsfilters/pxlmono.ppd}} ではなく {{ic|pxlmono.ppd}})。あるいは、{{ic|-P}} コマンドラインスイッチを使うことでフルパスを使用することもできます。
  +
* 2021年現在、最近のプリンタの多くはドライバレスの印刷セットアップをサポートしており、{{ic|-m everywhere}} を指定すると (上記の例では2番目)、プリンタが定義され、ネットワーク上のプリンタにクエリすることで ''.ppd'' ファイルが {{ic|/etc/cups/ppd/}} 内に作成されます。
  +
}}
  +
  +
''lpq'' ユーティリティはキューのチェックを行います。全てのキューをチェックするには {{ic|-a}} フラグを追加してください。
  +
  +
''lprm'' ユーティリティはキューをクリアします。デフォルトの最後のキューではなく、全てのエントリを削除するには {{ic|-}} を追加してください。
  +
  +
''lpr'' ユーティリティは印刷を行います。ファイルを ''N'' 回印刷するには {{ic|-# ''N''}} を使用してください。ヘッダを追加するには {{ic|-p}} フラグを使用してください。
  +
  +
''lpr'' を使って印刷テストを行う例:
  +
  +
$ lpr /usr/share/cups/data/testprint
  +
$ echo 'Hello, world!' | lpr -p
  +
  +
''lpstat'' ユーティリティは、{{ic|-s}} フラグを付けて使用すると、ステータスをチェックします。{{ic|-p}} フラグを付けると、チェックするキューを指定できます。
  +
  +
''lpoptions'' ユーティリティは、上記の ''lpadmin'' と同じ {{ic|-p ''queue_name''}} フラグを使用します。{{ic|-l}} フラグを付けると、オプションを一覧表示します。{{ic|-d}} フラグは、デフォルトのプリンタを引数 {{ic|''queue_name''}} に設定します。{{ic|-o}} フラグは、オプションに値を設定します:
  +
  +
$ lpoptions -p HP_DESKJET_940C -o PageSize=A4
  +
$ lpoptions -p HP_DESKJET_940C -o cupsIPPSupplies=true -o Duplex=DuplexNoTumble
  +
  +
==== cups* ====
   
  +
ユーティリティ ''cupsaccept''、''cupsdisable''、''cupsenable''、そして ''cupsreject'' は、その名の通りの動作を行います。それぞれの動作は次のとおりです:ジョブを受け入れるようにプリンタを設定する、プリンタを無効化する、プリンタをアクティブ化する、全ての受信タスクを拒否するようにプリンタを設定する。
;プリンターを有効化
 
# cupsenable ''queue_name''
 
   
  +
例として、プリンタをクリーンに取り除いてみましょう:
;ジョブを受け取るようにプリンターを設定
 
# cupsaccept ''queue_name''
 
   
;プリンターの削除
 
まず印刷を要求するエントリを全て拒否するように設定してください:
 
 
# cupsreject ''queue_name''
 
# cupsreject ''queue_name''
次にプリンターを無効化してください:
 
 
# cupsdisable ''queue_name''
 
# cupsdisable ''queue_name''
最後に削除してください:
 
 
# lpadmin -x ''queue_name''
 
# lpadmin -x ''queue_name''
   
  +
==== ink ====
;ファイルを印刷
 
$ 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.
 
   
  +
インクレベルを見るには {{AUR|ink}} を[[インストール]]してください。
;印刷キューを確認
 
$ lpq
 
$ lpq -a # on all queues
 
   
  +
{{Note|[http://libinklevel.sourceforge.net/index.html#supported サポートされているプリンタのリスト]を参照してください。}}
;印刷キューを消去
 
  +
# lprm # remove last entry only
 
  +
ユーザを {{ic|lp}} [[ユーザグループ]]に追加し、一旦ログアウトし、再度ログインしてください。
# lprm - # remove all entries
 
  +
  +
詳細を見るには、オプションを付けずに {{ic|ink}} を実行してください。
   
 
=== ウェブインターフェイス ===
 
=== ウェブインターフェイス ===
   
CUPS サーバはウェブインターフェイスを使って管理することができます。http://localhost:631/ を開いてください
+
CUPS サーバはウェブインターフェイス (http://localhost:631/ で利用可能) から完全に管理することができます。
   
{{Note|HTTPS 接続で CUPS を使用する場合、初めてアクセスしたときにインターフェイスが表示されるまで長い時間がかかります。初期設定で行わ SSL 証明書の生成に時間がかるためです。}}
+
{{Note|CUPS への HTTPS 接続を使用する場合、初アクセス時はインターフェイスがれるまでに非常に長い時間がかかる''場合があります''は、初回リクエスト時に SSL 証明書の生成がトリガーされ、これに時間がかる可能性があるからです。}}
   
ウェブインターフェイスから管理設定を行うには認証が必要です。{{ic|root}} で認証するか、ユーザープリンターの管理権限グループに追加してください。[[#設定]]を参照
+
ウェブインターフェイスから管理を行うには認証が必要です。[[#パーミッション]]参照してください。
   
;印刷キューを追加
+
;キューを追加する
'''Administration''' ページを開いてください。
+
'''Administration''' ('''管理''') ページを開いてください。
   
;既存のキューを編集
+
;既存のキューを編集する
'''Printers''' ページを開いて、編集したいキューを選択してください。
+
'''Printers''' ('''プリンター''') ページを開、編集したいキューを選択してください。
   
;キューをテスト
+
;キューをテストする
'''Printers''' ページを開いて、キューを選択してください。
+
'''Printers''' ('''プリンター''') ページを開、キューを選択してください。
   
 
=== GUI アプリケーション ===
 
=== GUI アプリケーション ===
   
CUPS を管理するのに十分な権限を持っていない場合、アプリケーション起動するときに root パスワード要求されます。root 権限を与えずにユーザに管理権限を与える方法は[[#設定]]を見てください。
+
CUPS を管理するのに十分な権限がユーザに無い場合、アプリケーション起動に root パスワード要求ます。ユーザに root アクセスを要さない管理権限を与える方法は[[#設定]] を見てください。
   
* {{App|print-manager|印刷ジョブとプリンターの管理ツール ([[KDE]])。|https://cgit.kde.org/print-manager.git|{{Pkg|print-manager}}}}
+
* {{App|Deepin Print Manager|Deepin デスクトップのためのプリンタ設定インターフェイス。|https://github.com/linuxdeepin/dde-printer|{{Pkg|deepin-printer}}}}
  +
* {{App|GtkLP|CUPS の GTK インターフェイス。|https://gtklp.sirtobi.com/index.shtml|{{AUR|gtklp}}}}
* {{App|system-config-printer|[[GTK+]] の CUPS プリンター設定ツール・状態アプレット。|http://cyberelk.net/tim/software/system-config-printer/|{{Pkg|system-config-printer}}}}
 
* {{App|gtklp|CUPS の GTK+ インターフェイス。|https://gtklp.sirtobi.com/index.shtml|{{AUR|gtklp}}}}
+
* {{App|print-manager|印刷ジョブとプリンターの管理ツール ([[KDE]])。|https://invent.kde.org/utilities/print-manager|{{Pkg|print-manager}}}}
  +
* {{App|system-config-printer|GTK プリンタ設定ツールと状態アプレット。|https://github.com/OpenPrinting/system-config-printer|{{Pkg|system-config-printer}}}}
   
 
== 設定 ==
 
== 設定 ==
   
CUPS サーバの設定は {{ic|/etc/cups/cupsd.conf}} と {{ic|/etc/cups/cups-files.conf}} にあります ({{man|5|cupsd.conf}} {{man|5|cups-files.conf}} を参照)。どちらかのファイルを編集したら、変更を適用するために {{ic|cups.service}} を[[再起動]]してください。大抵場合はデフォルト設定で問題ありません。
+
CUPS サーバの設定は {{ic|/etc/cups/cupsd.conf}} と {{ic|/etc/cups/cups-files.conf}} にあります ({{man|5|cupsd.conf}} {{man|5|cups-files.conf}} を参照)。どちらかのファイルを編集したら、変更を適用するために {{ic|cups.service}} を[[再起動]]してください。ほとんどユーザにとって、デフォルト設定で問題ありません。
   
  +
=== パーミッション ===
プリンターの管理者権限を持つ[[グループ]]は {{ic|/etc/cups/cups-files.conf}} の {{ic|SystemGroup}} で定義されます。デフォルトでは {{ic|sys}} グループが使われます。
 
   
  +
==== グループ ====
{{pkg|cups}} は {{pkg|libpaper}} のサポートを有効にしてビルドされており、libpaper はデフォルトの用紙サイズとして '''Letter''' を使います。印刷キューを追加するたびに用紙サイズを変更しなくてもいいように、{{ic|/etc/papersize}} を編集してデフォルトの用紙サイズを設定してください。詳しくは {{man|5|papersize}} を参照。
 
   
  +
プリンタの管理権限を持つ[[ユーザグループ]]は {{ic|/etc/cups/cups-files.conf}} 内の {{ic|SystemGroup}} で定義されています。デフォルトでは、{{ic|sys}} グループ、{{ic|root}} グループ、そして {{ic|wheel}} グループが使用されています。
デフォルトでは、全てのログは {{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] を見てください。
 
   
  +
CUPS のヘルパプログラムは、{{ic|cups}} ユーザとグループとして実行されます。これにより、ヘルパプログラムがプリンタデバイスにアクセスしたり、{{ic|/etc/cups/}} 内の設定ファイル ({{ic|cups}} グループによって所有されています) を読み込んだりすることができます。
=== cups-browsed ===
 
 
CUPS は [[Avahi]] を使ってネットワーク上の未知の共有プリンターを発見することができます。サーバーがどこにあるのかわからないくらい巨大な構成で有用です。この機能を使うには [[Avahi#ホスト名の解決|.local ホストネーム解決]]を設定して、{{ic|avahi-daemon.service}} と {{ic|cups-browsed.service}} の両方を起動してください。ジョブは何も処理されずにプリンターに直接送信されるため、キューの作成が上手く行かない場合もあります。[http://www.pwg.org/ipp/everywhere.html IPP Everywhere] あるいは [[wikipedia:ja:AirPrint|AirPrint]] に対応しているドライバー不要のプリンターであれば特に設定をしなくても問題なく動作するはずです。
 
 
{{Note|1=ネットワークプリンターの検索によってコンピュータの起動時間が大幅に遅くなってしまうことがあります [https://bbs.archlinux.org/viewtopic.php?pid=1720219#p1720219]。}}
 
 
=== プリンター共有 ===
 
   
  +
{{Note|{{Pkg|cups}} 2.2.6-2 より前では、{{ic|lp}} グループが[https://gitlab.archlinux.org/archlinux/packaging/packages/cups/-/commit/b6ebb9850aa9a27c27e668fe066d063a7711c15b 代わりに使用されていました]。アップグレード後、{{ic|/etc/cups}} 内のファイルは、{{ic|/etc/cups/cups-files.conf}} 内で設定されている {{ic|cups}} グループ、{{ic|User 209}}、そして {{ic|Group 209}} によって所有されるはずです。}}
[[CUPS/プリンター共有]]と[[CUPS/プリンター共有#リモート管理]]を見てください。
 
   
=== PolicyKit による管理者認証 ===
+
==== PolicyKit による管理者認証を許可する ====
   
[[PolicyKit]] を設定することで管理者パスワードを入力しなくても GUI を使ってユーザーからプリンタを設定できるようにすることができます。
+
[[PolicyKit]] を設定することで、ユーザは管理者パスワードを入力せずに GUI を使ってプリンタを設定できるようになります。
   
{{Note|ルール用するに {{Pkg|cups-pk-helper}} インストール必要な場合があります。}}
+
{{Note|system-config-printer 使用する場合、system-config-printer に PolicyKit を使用させるために {{Pkg|cups-pk-helper}} インストールする必要があります。}}
   
以下は wheel [[グループ]]のメンバーにプリンターの管理を許可する例です:
+
以下はwheel [[ユーザグループ]]のメンバーにパスワード無しでのプリンタ管理を許可する例です:
   
{{hc|/etc/polkit-1/rules.d/49-allow-passwordless-printer-admin.rules|<nowiki>
+
{{hc|/etc/polkit-1/rules.d/49-allow-passwordless-printer-admin.rules|2=
 
polkit.addRule(function(action, subject) {
 
polkit.addRule(function(action, subject) {
 
if (action.id == "org.opensuse.cupspkhelper.mechanism.all-edit" &&
 
if (action.id == "org.opensuse.cupspkhelper.mechanism.all-edit" &&
244行目: 306行目:
 
return polkit.Result.YES;
 
return polkit.Result.YES;
 
}
 
}
});</nowiki>}}
+
});
  +
}}
  +
  +
=== デフォルトの用紙サイズ ===
  +
  +
{{Pkg|cups}} は、{{Pkg|libpaper}} サポートありでビルドされており、libpaper はデフォルトで[[Wikipedia:ja:レターサイズ|レター]]用紙サイズ ({{ic|lpoptions}} では {{ic|PageSize}} と呼ばれています) を使用します。印刷キューを追加するたびに用紙サイズを変更する手間を省くために、{{ic|/etc/papersize}} を[[テキスト編集|編集]]してシステムのデフォルト用紙サイズを設定することができます。{{man|1|paper}} を参照してください。
  +
  +
=== アーカイブ PDF/A ===
  +
  +
以下は、互換性の高い形式で PDF ファイルを保存する方法です (通常、これらは Archival PDF や PDF/A、PDFA、ISO 19005 と呼ばれます)。
  +
  +
現在、オプションはありません。なので、cups によって使用される、''gs'' を呼び出すコマンドに追加する必要があります。
  +
  +
{{Accuracy|{{ic|/etc/cups/cups.conf}} は {{pkg|cups}} パッケージに存在しません。なので、以下の設定例のコメントアウトされているデフォルト引数付きの {{ic|GSCall}} オプションは存在しません。}}
  +
  +
{{hc|/etc/cups/cups.conf|2=
  +
# GSCall %s -q -dCompatibilityLevel=%s -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f %s
  +
  +
# 上記は GSCall を呼び出す際のデフォルト引数です。-dNOPAUSE の前に -dPDFA を追加し、上記をアンコメントすると (デフォルトの設定が変わっているかもしれないので、以下の行を丸々コピペしないでください。あなたのシステム上のデフォルトを使用してください):
  +
  +
GSCall %s -q -dCompatibilityLevel=%s '''-dPDFA''' -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f %s
  +
}}
  +
  +
=== ログファイル ===
  +
  +
デフォルトでは、全てのログは {{ic|/var/log/cups/}} 内のファイルへ送られます。
  +
  +
ログレベルは {{ic|/etc/cups/cupsd.conf}} で変更できます。[https://www.cups.org/doc/man-cupsd.conf.html cupsd.conf ドキュメント]を参照してください。
  +
  +
{{ic|/etc/cups/cups-files.conf}} 内の {{ic|AccessLog}} ディレクティブ、{{ic|ErrorLog}} ディレクティブ、そして {{ic|PageLog}} ディレクティブの値を {{ic|syslog}} に変更することで、CUPS にログを代わりに [[systemd journal]] へ記録させることができます。元の提案された変更に関する情報は [[Fedora:Changes/CupsJournalLogging]] を参照してください。
  +
  +
=== cups-browsed ===
  +
  +
{{Out of date|DNS-SD で広告されたプリンタを発見するために {{ic|cups-browsed.service}} は必要ありません。これは {{ic|cups.service}} によって行われます。{{ic|cups-browsed.service}} は、LDAP サーバや、レガシーな CUPS プロトコル (CUPS サーバ ≤ 1.5) を使用するサーバでプリンタを発見する時にだけ必要になります。}}
  +
  +
CUPS は [[Avahi]] browsing を使ってネットワーク上の未知の共有プリンターを発見することができます。サーバーがどこにあるのかわからないくらい巨大な構成で有用です。この機能を使うには [[Avahi#ホスト名の解決|.local ホストネーム解決]]を設定して、{{ic|avahi-daemon.service}} と {{ic|cups-browsed.service}} の両方を起動してください。ジョブは何も処理されずにプリンターに直接送信されるため、作成されたキューが動作しない場合があります。しかし、[https://www.pwg.org/ipp/everywhere.html IPP Everywhere] や [[Wikipedia:ja:AirPrint|AirPrint]] をサポートするプリンタなど、ドライバレスのプリンタは設定せずに動作するはずです。
  +
  +
{{Note|1=<nowiki/>
  +
* ネットワークプリンタの検索によって[https://bbs.archlinux.org/viewtopic.php?pid=1720219#p1720219 コンピュータの起動時間が大幅に長くなってしまうことがあります]。
  +
* {{ic|cups-browsed.service}} は、プリンタがネットワークに現れたり消えたりしたときに、そのプリンタを動的に追加したり削除したりするときにだけ必要になります。単に DNS-SD/mDNS 対応のネットワークプリンタを CUPS に追加したい場合は、必要ありません。
  +
}}
  +
  +
=== 印刷サーバとリモート管理 ===
  +
  +
[[CUPS/プリンター共有]] と [[CUPS/プリンター共有#リモート管理]] を見てください。
   
 
=== ローカルの CUPS サーバーを使わない ===
 
=== ローカルの CUPS サーバーを使わない ===
250行目: 356行目:
 
CUPS ではローカルにプリンターサーバーを立ち上げるかわりにリモートのプリンターサーバーに直接接続するように設定することができます。{{Pkg|libcups}} パッケージの[[インストール]]が必要です。ただし、アプリケーションによってはリモートのサーバーを使用する場合も印刷するのに {{Pkg|cups}} パッケージのインストールを必要とします。
 
CUPS ではローカルにプリンターサーバーを立ち上げるかわりにリモートのプリンターサーバーに直接接続するように設定することができます。{{Pkg|libcups}} パッケージの[[インストール]]が必要です。ただし、アプリケーションによってはリモートのサーバーを使用する場合も印刷するのに {{Pkg|cups}} パッケージのインストールを必要とします。
   
{{Warning|ローカルの CUPS サーバーを使わずにリモートプリンターにアクセスすることは開発者によって非推奨とされています [http://www.cups.org/pipermail/cups/2015-October/027229.html]}}
+
{{Note|ローカルの CUPS サーバーを使わずにリモートプリンターにアクセスすることは開発者によって非推奨とされています[https://lists.cups.org/pipermail/cups/2015-October/027229.html]}}
   
リモートの CUPS サーバーを使うには、{{ic|CUPS_SERVER}} [[環境変数]]を {{ic|printerserver.mydomain:port}} に設定してください。例えば、[[Firefox]] 別の印刷サーバを使場合 ({{ic|printserver.mydomain:port}} は適当な印刷サーバの名前ポートに置き換えてください):
+
リモートの CUPS サーバーを使うには、{{ic|CUPS_SERVER}} [[環境変数]]を {{ic|printerserver.mydomain:port}} に設定してください。例えば、単一の [[Firefox]] インスタンスにおいて別の印刷サーバを使用した場合 ({{ic|printserver.mydomain:port}} の部分、あたの印刷サーバの名前/ポートに置き換えてください):
   
 
$ CUPS_SERVER=printserver.mydomain:port firefox
 
$ CUPS_SERVER=printserver.mydomain:port firefox
  +
 
To make this configuration permanent create configuration file {{ic|/etc/cups/client.conf}} and add a hostname of the remote CUPS server to it:
+
この設定を永続化するには、設定ファイル {{ic|/etc/cups/client.conf}} を作成し、それにリモート CUPS サーバーのホスト名を追加します:
  +
 
 
ServerName server
 
ServerName server
  +
 
  +
カスタムポートを指定することもできます:
You can also specify a custom port:
 
  +
 
 
ServerName server:port
 
ServerName server:port
  +
 
See [https://www.cups.org/doc/sharing.html#AUTO_IPP] for details.
+
詳細は、[https://www.cups.org/doc/sharing.html#AUTO_IPP] を参照してください。
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
   
[[CUPS/トラブルシューティング]]を見てください。
+
[[CUPS/トラブルシューティング]] と [[CUPS/プリンター別の問題]] を見てください。
   
 
== 参照 ==
 
== 参照 ==
   
* [http://localhost:631/help CUPS 公式ドキュメント], ''ローカルにインストールされたドキュメント''
+
* [http://localhost:631/help 公式 CUPS ドキュメント] (''ローカルにインストールされています'')
* [[Wikipedia:ja:Common Unix Printing System]]
+
* [[Wikipedia:ja:CUPS]]
* [https://www.linuxfoundation.org/collaborate/workgroups/openprinting OpenPrinting ホームページ]
+
* [https://wiki.linuxfoundation.org/openprinting/start OpenPrinting ホームページ]
* [https://ja.opensuse.org/%E5%8D%B0%E5%88%B7%E5%87%A6%E7%90%86%E3%81%AE%E8%80%83%E3%81%88%E6%96%B9 OpenSuSE の印刷処理の考え方 - 印刷ワークフローについての説明]
+
* [https://ja.opensuse.org/%E5%8D%B0%E5%88%B7%E5%87%A6%E7%90%86%E3%81%AE%E8%80%83%E3%81%88%E6%96%B9 印刷処理の考え方 - 印刷ワークフローについての説明]
 
* [https://en.opensuse.org/SDB:CUPS_in_a_Nutshell OpenSuSE CUPS in a Nutshell - a quick CUPS overview]
 
* [https://en.opensuse.org/SDB:CUPS_in_a_Nutshell OpenSuSE CUPS in a Nutshell - a quick CUPS overview]
  +
* [[Gentoo:Printing]]
* [https://wiki.gentoo.org/wiki/Printing/ja Gentoo の印刷ガイド]
 
* [https://wiki.debian.org/Printing Debian の印刷ポータル]
+
* [[debian:Printing|Debian の印刷ポータル - 詳細な技術的ガイド]]
* [https://wiki.debian.org/SystemPrinting Debian の CUPS 印刷システムの概要]
+
* [[debian:SystemPrinting|Debian の印刷の概要 - CUPS 印刷システムの基本的な概要]]
  +
* [https://lists.linuxfoundation.org/pipermail/printing-architecture/ CUPS メーリングリスト]
  +
* [https://lists.cups.org/mailman/listinfo/cups CUPS メーリングリスト (Apple フォーク)]
  +
* [https://github.com/OpenPrinting/cups/issues CUPS 問題トラッカー]
  +
* [https://github.com/apple/cups/issues CUPS 問題トラッカー (Apple フォーク)]
  +
  +
{{TranslationStatus|CUPS|2023-11-02|790537}}

2024年3月19日 (火) 13:59時点における最新版

関連記事

CUPS は、Linux® や他の Unix® ライクなオペレーティングシステムのための標準ベースのオープンソースな印刷システムです。OpenPrinting によって開発されています。

Arch Linux では、Apple CUPS フォークではなく、OpenPrinting CUPS フォークがパッケージングされています。

インストール

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

ノート: CUPS では、ドライバは IPP Everywhere に取って代わられる形で非推奨となっているため、印刷を機能させるには cups-pdf をインストールする必要がある場合があります。このパッケージがないと、client-error-document-format-not-supported のようなエラーが発生する場合があります。IPP Everywhere は PDF を直接プリンタに送信するため、印刷したいものをまず PDF に変換するために cups-pdf が必要です。

任意で、PDF ドキュメントに"印刷"したい場合は、cups-pdf パッケージをインストールしてください。デフォルトでは、PDF ファイルは /var/spool/cups-pdf/username/ に保存されます。保存場所は /etc/cups/cups-pdf.conf で変更することができます。

そして、cups.service有効化し、起動してください。または、ソケットアクティベーションを使用することで、このサービスがプログラムによって必要とされる場合にのみ CUPS を起動させることもできます。

ソケットアクティベーション

cupscups.socket ユニットを提供しています。cups.socket が有効化されている (かつ、cups.service無効化されている) 場合、systemd は CUPS をすぐには起動せず、適切なソケットをただリッスンします。プログラムがそれらの CUPS ソケットのうちどれかへの接続を試みた時に、systemdcups.service を起動し、それらのポートの制御を CUPS プロセスへ透過的に渡します。

印刷の流れ

関連する問題を解決したい場合は、CUPS がどう機能するかを知っておくことが重要です:

  1. '印刷' が選択された際、アプリケーションは PDF ファイルを CUPS に送信します (アプリケーションが他の形式を送信した場合、それらはまず PDF に変換されます)。
  2. CUPS はプリンタの PPD ファイル (プリンタ記述ファイル) を参照し、PDF ファイルをプリンタの理解できる言語 (PJL、PCL、ビットマップ、ネイティブな PDF など) へ変換するためにどのようなフィルタを使用する必要があるかを調べます。
  3. フィルタが PDF ファイルをプリンタの理解できる形式へ変換します。
  4. 最後に、そのデータがバックエンドへ送られます。例えば、プリンタが USB ポートに接続されている場合、USB バックエンドが使用されます。

接続インターフェイス

様々なインターフェイスにおける、プリンタを認識させるための追加の手順を以下に載せています。

USB

USB プリンタが認識されているかどうか確認するには、まず usbutils パッケージがインストールされていることを確認し、以下を実行してください:

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

パラレルポート

パラレルポートプリンターを使うには、カーネルモジュール lpparport、そして parport_pc が必要です。

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

ネットワーク

既知の場所のプリンタを追加する

プリンタのアドレスがわかっている場合 (アドレスは、プリンタの画面に表示されたり、他の何らかの方法でネットワークをスキャンしたりなどして得られます)、プリンタを動的に発見する機能 (DNS-SD/mDNS) に頼る必要はありません。CUPS のキューを直接追加することで、プリンタを使用することができます。lpadmin でキューを追加する歩法については、次の章かドキュメント Setting up printers で見られます。

プリンタを発見する

DNS-SD/mDNS を使ってプリンタを発見、使用、または共有するには、Avahi を使って .local ホストネーム解決をセットアップして、cups.service再起動してください。

ノート: DNS-SD は、Avahi を使用している時にのみ、サポートされています。CUPS は systemd-resolved を DNS-SD のために使用することをサポートしていません。CUPS issue 5452 を参照してください。

Samba を使ってネットワークプリンターを共有する場合や、例えばシステムを Windows クライアント用のプリンターサーバーにする場合、samba パッケージが必要です。

プリンタードライバー

ノート: 訳注: CUPS は PPD とドライバのサポートを廃止し、完全に IPP Everywhere に依存させることを計画しています (CUPS issue 103)。英語版の議論ページ en:Talk:CUPS#CUPS printer drivers and backends are deprecated も参照してください。

最近 (2010年以降) のプリンタのほとんどは、AirPrint や IPP_Everywhere を実装しているのでドライバレスでの使用をサポートしています (以下を参照)。

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

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

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

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

PKGBUILD を作成する前に PPD ファイルが動作することを確認するために、PPD ファイルを /usr/share/cups/model に手動で追加することができます。cups サービスを再起動したあとに、そのドライバが利用可能になるはずです。

AirPrint と IPP Everywhere

CUPS には AirPrintIPP Everywhere プリンタのサポートが含まれています。そのようなプリンタは自動的に発見されるはずです。

OpenPrinting CUPS フィルタ

Linux Foundation の OpenPrinting ワークグループは、cups-filters を提供しています。これらは、かつて CUPS の一部だったがプロジェクトから外されたバックエンド、フィルタ、そしてその他のバイナリです。これらは、cups の依存関係である cups-filters パッケージで利用できます。

非 PDF プリンタは、ghostscript をインストールする必要があります。PostScript プリンタは、gsfonts も必要である場合があります。

Foomatic

Linux Foundation の OpenPrinting ワークグループの foomatic は、多くのプリンタドライバの PPD を (フリーとフリーでないもの両方) 提供しています。foomatic が何をするかに関する詳細は Foomatic from the Developer's View を参照してください。

foomatic を使うには、foomatic-db-engine と、以下から最低でも1つをインストールしてください:

  • foomatic-db - foomatic-db-engine によって PPD ファイルを生成するために使用される XML ファイルのコレクション。
  • foomatic-db-ppds — ビルド済み PPD ファイル群。
  • foomatic-db-nonfree — プリンタのメーカーからフリーでないライセンスの XML ファイルのコレクション。foomatic-db-engine によって PPD ファイルを生成するために使用されます。
  • foomatic-db-nonfree-ppds — フリーでないライセンスのビルド済み PPD ファイル群。

foomatic PPD は追加のフィルタを必要とする場合があります (例: min12xxwAUR)。

Gutenprint

Gutenprint プロジェクトは、CUPS と GIMP で使うための、Canon、Epson、Lexmark、Sony、Olympus、そして PCL のプリンタ用のドライバを提供しています。

gutenprintfoomatic-db-gutenprint-ppds をインストールしてください。

ノート: Gutenprint のパッケージが更新された際、cups-genppdupdate を root として実行し CUPS を再起動するまで、Gutenprint ドライバを使用するプリンタは動作を停止します。cups-genppdupdate は、構成されたプリンタの PPD ファイルを更新します。詳細は cups-genppdupdate(8) を参照してください。

メーカー固有のドライバ

多くのプリンタメーカーは独自の Linux ドライバを配布しています。中には Arch の公式リポジトリや AUR から入手できるものもあります。

これらのドライバのうちいくつかは CUPS/プリンター別の問題 で詳しく説明されています。

プリンター URI

以下は、必要に応じて手動で URI を生成する追加の手順をリストアップしています。一部のプリンタとドライバは、CUPS/プリンター別の問題 で説明されている通り、特殊な 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 のドキュメントを見てください。プリンターによって URI には細かい違いがあるので、プリンターのマニュアルや CUPS/プリンター別の問題もチェックしてください。

SMB 共有におけるプリンタの URI は、smbspool(8) man ページで説明されています。

ノート: プリンタ URI 内の特殊文字は適切に URL エンコードする必要があります。さもないと、Windows プリンタ名やユーザのパスワードに空白が存在する場合、CUPS は lpadmin: Bad device-uri エラーを投げます。

例えば、smb://BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6smb://BEN-DESKTOP/HP%20Color%20LaserJet%20CP1510%20series%20PCL6 となります。

以下のコマンドを実行することで、URL エンコードされた文字列を得ることができます:

$ python -c 'from urllib.parse import quote; print("smb://" + quote("BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6"))'

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

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

警告: サーバとクライアントの両方をプリンタフィルタで設定することは避けてください。クライアントかサーバのどちらかの印刷キューは 'raw' であるべきです。こうすることで、フィルタを通して印刷ジョブが2回送信されることを防ぐことができます (2回送信されてしまうと、共有されたプリンタがローカルでは動作するが、リモートマシンでは印刷に失敗してしまうなどの問題を引き起こす可能性があります [2])。印刷キューを 'raw' に設定する例は #lp* を見てください。

使用方法

CUPS は lp* ツールと cups* ツールを使って完全に制御できます。または、#ウェブインターフェイス#GUI アプリケーション を使うこともできます。

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

CLI ツール

コマンドラインツールに関するヒントはローカルの CUPS ドキュメントを参照してください。

ノート: コマンドラインのスイッチはまとめて指定することができません。

SNMP を使って URI を見つけるには:

$ /usr/lib/cups/backend/snmp ip_address

lp*

lpinfo コマンドは、-v オプションを付けるとシステムに接続されているプリンタの URI を一覧表示し、-m オプションを付けるとシステム上にインストールされている利用可能な全てのドライバ (CUPS 用語では "モデル") を一覧表示します。

lpadmin ユーティリティは、-p queue_name オプションを付けると新しいキューを作成します。-p-E を加えると、プリンタを有効化し、ジョブを受け入れるようになります。-v フラグはデバイスの URI を指定します。-m フラグは、使用するドライバ (CUPS 用語では "モデル") か PPD ファイルを指定します。

-x フラグを使うことでプリンタを取り除くこともできます (先に #cups* を読んでください)。

例:

# lpadmin -p HP_DESKJET_940C -E -v "usb://HP/DESKJET%20940C?serial=CN16E6C364BH" -m drv:///HP/hp-deskjet_940c.ppd.gz

ドライバレスのキュー (Apple AirPrint か IPP Everywhere) の場合は:

# lpadmin -p AirPrint -E -v "ipp://10.0.1.25/ipp/print" -m everywhere

raw キューの場合 (PPD もフィルタも無し):

# lpadmin -p SHARED_PRINTER -m raw

モデルではなく PPD を指定する場合:

# lpadmin -p Test_Printer -E -v "ipp://10.0.1.3/ipp/print" -m pxlmono.ppd
ノート:
  • PPD を指定する場合、フルパスではなくファイル名だけを指定してください (例えば、/usr/share/ppd/cupsfilters/pxlmono.ppd ではなく pxlmono.ppd)。あるいは、-P コマンドラインスイッチを使うことでフルパスを使用することもできます。
  • 2021年現在、最近のプリンタの多くはドライバレスの印刷セットアップをサポートしており、-m everywhere を指定すると (上記の例では2番目)、プリンタが定義され、ネットワーク上のプリンタにクエリすることで .ppd ファイルが /etc/cups/ppd/ 内に作成されます。

lpq ユーティリティはキューのチェックを行います。全てのキューをチェックするには -a フラグを追加してください。

lprm ユーティリティはキューをクリアします。デフォルトの最後のキューではなく、全てのエントリを削除するには - を追加してください。

lpr ユーティリティは印刷を行います。ファイルを N 回印刷するには -# N を使用してください。ヘッダを追加するには -p フラグを使用してください。

lpr を使って印刷テストを行う例:

$ lpr /usr/share/cups/data/testprint
$ echo 'Hello, world!' | lpr -p 

lpstat ユーティリティは、-s フラグを付けて使用すると、ステータスをチェックします。-p フラグを付けると、チェックするキューを指定できます。

lpoptions ユーティリティは、上記の lpadmin と同じ -p queue_name フラグを使用します。-l フラグを付けると、オプションを一覧表示します。-d フラグは、デフォルトのプリンタを引数 queue_name に設定します。-o フラグは、オプションに値を設定します:

$ lpoptions -p HP_DESKJET_940C -o PageSize=A4
$ lpoptions -p HP_DESKJET_940C -o cupsIPPSupplies=true -o Duplex=DuplexNoTumble

cups*

ユーティリティ cupsacceptcupsdisablecupsenable、そして cupsreject は、その名の通りの動作を行います。それぞれの動作は次のとおりです:ジョブを受け入れるようにプリンタを設定する、プリンタを無効化する、プリンタをアクティブ化する、全ての受信タスクを拒否するようにプリンタを設定する。

例として、プリンタをクリーンに取り除いてみましょう:

# cupsreject queue_name
# cupsdisable queue_name
# lpadmin -x queue_name

ink

インクレベルを見るには inkAURインストールしてください。

ノート: サポートされているプリンタのリストを参照してください。

ユーザを lp ユーザグループに追加し、一旦ログアウトし、再度ログインしてください。

詳細を見るには、オプションを付けずに ink を実行してください。

ウェブインターフェイス

CUPS サーバは、ウェブインターフェイス (http://localhost:631/ で利用可能) から完全に管理することができます。

ノート: CUPS への HTTPS 接続を使用する場合、初回アクセス時はインターフェイスが現れるまでに非常に長い時間がかかる場合があります。これは、初回リクエスト時に SSL 証明書の生成がトリガーされ、これに時間が掛かる可能性があるからです。

ウェブインターフェイスから管理を行うには、認証が必要です。#パーミッション を参照してください。

キューを追加する

Administration (管理) ページを開いてください。

既存のキューを編集する

Printers (プリンター) ページを開き、編集したいキューを選択してください。

キューをテストする

Printers (プリンター) ページを開き、キューを選択してください。

GUI アプリケーション

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

  • Deepin Print Manager — Deepin デスクトップのためのプリンタ設定インターフェイス。
https://github.com/linuxdeepin/dde-printer || deepin-printer
  • GtkLP — CUPS の GTK インターフェイス。
https://gtklp.sirtobi.com/index.shtml || gtklpAUR
  • print-manager — 印刷ジョブとプリンターの管理ツール (KDE)。
https://invent.kde.org/utilities/print-manager || print-manager
  • system-config-printer — GTK プリンタ設定ツールと状態アプレット。
https://github.com/OpenPrinting/system-config-printer || system-config-printer

設定

CUPS サーバの設定は /etc/cups/cupsd.conf/etc/cups/cups-files.conf にあります (cupsd.conf(5)cups-files.conf(5) を参照)。どちらかのファイルを編集したら、変更を適用するために cups.service再起動してください。ほとんどのユーザにとって、デフォルトの設定で問題ありません。

パーミッション

グループ

プリンタの管理権限を持つユーザグループ/etc/cups/cups-files.conf 内の SystemGroup で定義されています。デフォルトでは、sys グループ、root グループ、そして wheel グループが使用されています。

CUPS のヘルパプログラムは、cups ユーザとグループとして実行されます。これにより、ヘルパプログラムがプリンタデバイスにアクセスしたり、/etc/cups/ 内の設定ファイル (cups グループによって所有されています) を読み込んだりすることができます。

ノート: cups 2.2.6-2 より前では、lp グループが代わりに使用されていました。アップグレード後、/etc/cups 内のファイルは、/etc/cups/cups-files.conf 内で設定されている cups グループ、User 209、そして Group 209 によって所有されるはずです。

PolicyKit による管理者認証を許可する

PolicyKit を設定することで、ユーザは管理者パスワードを入力せずに GUI を使ってプリンタを設定できるようになります。

ノート: system-config-printer を使用する場合、system-config-printer に PolicyKit を使用させるために cups-pk-helper をインストールする必要があります。

以下は、wheel ユーザグループのメンバーにパスワード無しでのプリンタ管理を許可する例です:

/etc/polkit-1/rules.d/49-allow-passwordless-printer-admin.rules
polkit.addRule(function(action, subject) { 
    if (action.id == "org.opensuse.cupspkhelper.mechanism.all-edit" && 
        subject.isInGroup("wheel")){ 
        return polkit.Result.YES; 
    } 
});

デフォルトの用紙サイズ

cups は、libpaper サポートありでビルドされており、libpaper はデフォルトでレター用紙サイズ (lpoptions では PageSize と呼ばれています) を使用します。印刷キューを追加するたびに用紙サイズを変更する手間を省くために、/etc/papersize編集してシステムのデフォルト用紙サイズを設定することができます。paper(1) を参照してください。

アーカイブ PDF/A

以下は、互換性の高い形式で PDF ファイルを保存する方法です (通常、これらは Archival PDF や PDF/A、PDFA、ISO 19005 と呼ばれます)。

現在、オプションはありません。なので、cups によって使用される、gs を呼び出すコマンドに追加する必要があります。

この記事またはセクションの正確性には問題があります。
理由: /etc/cups/cups.confcups パッケージに存在しません。なので、以下の設定例のコメントアウトされているデフォルト引数付きの GSCall オプションは存在しません。 (議論: トーク:CUPS#)
/etc/cups/cups.conf
# GSCall %s -q -dCompatibilityLevel=%s -dNOPAUSE -dBATCH -dSAFER  -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f %s

# 上記は GSCall を呼び出す際のデフォルト引数です。-dNOPAUSE の前に -dPDFA を追加し、上記をアンコメントすると (デフォルトの設定が変わっているかもしれないので、以下の行を丸々コピペしないでください。あなたのシステム上のデフォルトを使用してください):

GSCall %s -q -dCompatibilityLevel=%s -dPDFA -dNOPAUSE -dBATCH -dSAFER  -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f %s

ログファイル

デフォルトでは、全てのログは /var/log/cups/ 内のファイルへ送られます。

ログレベルは /etc/cups/cupsd.conf で変更できます。cupsd.conf ドキュメントを参照してください。

/etc/cups/cups-files.conf 内の AccessLog ディレクティブ、ErrorLog ディレクティブ、そして PageLog ディレクティブの値を syslog に変更することで、CUPS にログを代わりに systemd journal へ記録させることができます。元の提案された変更に関する情報は Fedora:Changes/CupsJournalLogging を参照してください。

cups-browsed

この記事またはセクションは情報が古くなっています。
理由: DNS-SD で広告されたプリンタを発見するために cups-browsed.service は必要ありません。これは cups.service によって行われます。cups-browsed.service は、LDAP サーバや、レガシーな CUPS プロトコル (CUPS サーバ ≤ 1.5) を使用するサーバでプリンタを発見する時にだけ必要になります。 (Discuss)

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

ノート:
  • ネットワークプリンタの検索によってコンピュータの起動時間が大幅に長くなってしまうことがあります
  • cups-browsed.service は、プリンタがネットワークに現れたり消えたりしたときに、そのプリンタを動的に追加したり削除したりするときにだけ必要になります。単に DNS-SD/mDNS 対応のネットワークプリンタを CUPS に追加したい場合は、必要ありません。

印刷サーバとリモート管理

CUPS/プリンター共有CUPS/プリンター共有#リモート管理 を見てください。

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

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

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

リモートの CUPS サーバーを使うには、CUPS_SERVER 環境変数printerserver.mydomain:port に設定してください。例えば、単一の Firefox インスタンスにおいて別の印刷サーバを使用した場合は (printserver.mydomain:port の部分は、あなたの印刷サーバの名前/ポートに置き換えてください):

$ CUPS_SERVER=printserver.mydomain:port firefox

この設定を永続化するには、設定ファイル /etc/cups/client.conf を作成し、それにリモート CUPS サーバーのホスト名を追加します:

ServerName server

カスタムポートを指定することもできます:

ServerName server:port

詳細は、[4] を参照してください。

トラブルシューティング

CUPS/トラブルシューティングCUPS/プリンター別の問題 を見てください。

参照

翻訳ステータス: このページは en:CUPS の翻訳バージョンです。最後の翻訳日は 2023-11-02 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。