「CUPS」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎設定: 同期)
251行目: 251行目:
 
== 設定 ==
 
== 設定 ==
   
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 ===
 
   
  +
{{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 は [[Avahi]] を使ってネットワーク上の未知の共有プリンターを発見することができます。サーバーがどこにあるのかわからないくらい巨大な構成で有用です。この機能を使うには [[Avahi#ホスト名の解決|.local ホストネーム解決]]を設定して、{{ic|avahi-daemon.service}} と {{ic|cups-browsed.service}} の両方を起動してください。ジョブは何も処理されずにプリンターに直接送信されるため、キューの作成が上手く行かない場合もあります。[http://www.pwg.org/ipp/everywhere.html IPP Everywhere] あるいは [[wikipedia:ja:AirPrint|AirPrint]] に対応しているドライバー不要のプリンターであれば特に設定をしなくても問題なく動作するはずです。
 
   
  +
==== PolicyKit による管理者認証を許可する ====
{{Note|1=ネットワークプリンターの検索によってコンピュータの起動時間が大幅に遅くなってしまうことがあります [https://bbs.archlinux.org/viewtopic.php?pid=1720219#p1720219]。}}
 
   
  +
[[PolicyKit]] を設定することで、ユーザは管理者パスワードを入力せずに GUI を使ってプリンタを設定できるようになります。
=== プリンター共有 ===
 
   
  +
{{Note|system-config-printer を使用する場合、system-config-printer に PolicyKit を使用させるために {{Pkg|cups-pk-helper}} をインストールする必要があります。}}
[[CUPS/プリンター共有]]と[[CUPS/プリンター共有#リモート管理]]を見てください。
 
   
  +
以下は、wheel [[ユーザグループ]]のメンバーにパスワード無しでのプリンタ管理を許可する例です:
=== PolicyKit による管理者認証 ===
 
   
  +
{{hc|/etc/polkit-1/rules.d/49-allow-passwordless-printer-admin.rules|2=
[[PolicyKit]] を設定することで管理者パスワードを入力しなくても GUI を使ってユーザーからプリンターを設定できるようにすることができます。
 
 
{{Note|ルールを適用するには {{Pkg|cups-pk-helper}} のインストールが必要な場合があります。}}
 
 
以下は wheel [[グループ]]のメンバーにプリンターの管理を許可する例です:
 
 
{{hc|/etc/polkit-1/rules.d/49-allow-passwordless-printer-admin.rules|<nowiki>
 
 
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" &&
283行目: 277行目:
 
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}} を参照してください。
  +
  +
=== ログファイル ===
  +
  +
デフォルトでは、全てのログは {{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 サーバーを使わない ===
289行目: 311行目:
 
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
  +
 
 
この設定を永続化するには、設定ファイル {{ic|/etc/cups/client.conf}} を作成し、それにリモート CUPS サーバーのホスト名を追加します:
 
この設定を永続化するには、設定ファイル {{ic|/etc/cups/client.conf}} を作成し、それにリモート CUPS サーバーのホスト名を追加します:
  +
 
 
ServerName server
 
ServerName server
  +
 
 
カスタムポートを指定することもできます:
 
カスタムポートを指定することもできます:
  +
 
 
ServerName server:port
 
ServerName server:port
  +
 
 
詳細は、[https://www.cups.org/doc/sharing.html#AUTO_IPP] を参照してください。
 
詳細は、[https://www.cups.org/doc/sharing.html#AUTO_IPP] を参照してください。
   

2023年7月11日 (火) 14:03時点における版

関連記事

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 ファイル (printer description file) を参照し、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 を使ってプリンタを発見、使用、または共有するには、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 も参照してください。

プリンターのドライバーは以下のソースのどこかから入手することができます。動作するのが確認されているドライバーの不完全なリストは 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 の生成について説明しています。

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 はコマンドラインツールの 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 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
ノート: PPD を指定する場合、フルパスではなくファイル名だけ指定してください (例えば /usr/share/ppd/cupsfilters/pxlmono.ppd ではなく pxlmono.ppd を指定します)。
デフォルトプリンターを設定
$ 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 証明書の生成に時間がかかるためです。

ウェブインターフェイスから管理設定を行うには認証が必要です。root で認証するか、ユーザーをプリンターの管理権限グループに追加してください。#設定を参照。

印刷キューを追加

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

既存のキューを編集

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

キューをテスト

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

GUI アプリケーション

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

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

設定

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) を参照してください。

ログファイル

デフォルトでは、全てのログは /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 サーバーを使わずにリモートプリンターにアクセスすることは開発者によって非推奨とされています。[4]

リモートの 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

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

トラブルシューティング

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

参照