Solaris のシステム管理 (印刷)

LP 印刷コマンドによるネットワーク接続されたプリンタの設定

「ネットワーク接続プリンタ」とは、ネットワークに直接接続されているハードウェアデバイスです。このプリンタは、印刷サーバーにケーブルで物理的に接続されていなくても、印刷サーバーからアクセスできます。ネットワーク接続プリンタは専用のシステム名と IP アドレスを持っています。


注意 – 注意 –

印刷サーバーの待ち行列化機能を使用せずにネットワーク接続プリンタを構成する方法はサポートされておらず、プリンタの構成ミスにつながります。

Solaris 印刷マネージャーを使用すると、ネットワーク接続プリンタを正しく構成できます。「新しいネットワークプリンタを設定」オプションを選択します。また、lpadmin コマンドを使用しても、ネットワーク接続プリンタを正しく構成できます。

ネットワーク接続プリンタを追加するときに、lpadmin - p queue-name -s printer-name コマンドまたは Solaris 印刷マネージャーの「プリンタへのアクセスを追加」オプションを使用しないでください。これらの方法は、リモート印刷サーバー上の既存の待ち行列をポイントするときにだけ使用します。印刷サーバーには、ネットワーク接続プリンタに対する待ち行列管理、フィルタリング、印刷管理の各機能が含まれています。ネットワーク接続プリンタに直接印刷するとプリンタの構成ミスが発生し、さまざまな問題が起きる可能性があります。また、コピー、バーストページを使用するかしないか、フィルタなどのジョブオプションも失われます。


ネットワークプリンタは、ベンダー提供の印刷プログラムを必要とする特別なプロトコルを 1 つ以上使用することがあります。ベンダーから提供される印刷プログラムの設定手順は、それぞれ異なることがあります。プリンタにベンダー提供サポートが付いていない場合、ほとんどのデバイスについて Oracle Solaris のネットワーク接続プリンタサポートを使用できます。可能な場合は常に、プリンタのベンダーが提供するソフトウェアを使用します。

ベンダーは、SVR4 プリンタインタフェーススクリプトを提供して標準プリンタインタフェーススクリプトを置き換えている場合があります。その場合、SVR4 インタフェーススクリプトはベンダー提供の印刷プログラムを呼び出して、ジョブをプリンタに送ります。このスクリプトが提供されない場合は、標準インタフェーススクリプトを変更してベンダー提供の印刷プログラムを呼び出す必要があります。この作業は、標準インタフェーススクリプトのプリンタごとのコピーをベンダー提供の印刷プログラムを呼び出すように編集することで実行できます。

ネットワーク接続プリンタ構成で使用する用語を説明します。印刷関連用語の詳細については、用語集を参照してください。

Oracle のネットワークプリンタのサポート

ネットワークプリンタのベンダーがソフトウェアサポートを提供していない場合には、Oracle が提供するソフトウェアを利用できます。このソフトウェアは、ネットワークプリンタの汎用サポートを提供するもののため、必ずしもプリンタで利用できるすべての機能を使用できません。

ネットワーク接続プリンタの追加方法に関する一般的な説明については、「LP 印刷コマンドによるネットワーク接続されたプリンタの設定」を参照してください。次は、Oracle 提供のソフトウェアを使用したプリンタの管理を説明します。

ネットワークプリンタサポートの呼び出し

ネットワークプリンタのソフトウェアサポートは、ネットワークインタフェーススクリプト netstandard を通じて呼び出されます。このスクリプトでネットワーク接続プリンタを構成すると、ネットワーク接続プリンタサポートモジュールが呼び出されます。次に、プリンタをネットワークサポート用に構成するコマンドを示します。


lpadmin -p printer-name -m netstandard 

プリンタノード名の選択

プリンタノード名はシステム管理者が選択します。ネットワーク上のノードと同様に、この名前は一意でなければなりません。プリンタノード名は、プリンタの IP アドレスと関連付けられます。

送信先名 (ネットワークプリンタアクセス名) の選択

印刷サブシステムはプリンタのアクセス情報を必要とします。このサブシステムは、プリンタへのネットワーク接続を行うときに送信先名を使用します。この名前は、システム管理者が lpadmin コマンドで印刷サブシステムに提供します。これは、プリンタ構成データベースの一部になります。プリンタアクセス名はプリンタノード名であり、ポート名で修飾される場合もあります。ポート指定はプリンタベンダー間で異なります。ポート指定については、プリンタのマニュアルを参照してください。

次に、プリンタアクセス名の書式を示します。

printer-node-name[:port-designation]

送信先名は、次の 3 つの形式のいずれかで指定できます。

単独名 (単純名)

(送信先) - 指定された送信先の printer-uri-supported キーと値のペアを printers.conf または printers 構成データベースで検索することによって解決されます。エントリの printer-uri-supported キーが見つからない場合は、エントリの bsdaddr 値がプリンタ URI 形式に変換され、使用されます。

詳細は、printers(4) および printers.conf(4) のマニュアルページを参照してください。

プリンタ URI

(scheme://endpoint) - 完全に解決され、印刷サービスと通信するためのプロトコルと通信エンドポイントを指定します。この送信先名の形式は、ユーザーのシステムの現在の管理ドメインの外部にある印刷サービスにアクセスする場合に役立ちます。名前には印刷サービスとの通信時に使用するプロトコルが含まれるため、RFC-1179 プロトコルよりも機能の豊富なプロトコルを選択できます。

POSIX

(server:queue[:extensions]) - これは完全な形式で、同等のプリンタ URI 形式 lpd://server/printers/queue[#extensions] に解決されます。この形式は下位互換性のためだけに残されています。代わりにプリンタ URI 形式を使用することをお勧めします。


例 5–6 ポート指定 (番号) 付き送信先名 (ネットワークプリンタアクセス名)

TCP の共通ポート指定は 9100 です。プリンタノード名が pn1 で、プリンタベンダーがそのポートを 9100 と定義していた場合、プリンタアクセス名は pn1:9100 になります。この場合にプリンタを構成するには、次のコマンドを使用します。


lpadmin -p printer_name -o dest=pn1:9100


例 5–7 BSD ポート指定 (名前) 付き送信先名 (ネットワークプリンタアクセス名)

BSD プロトコルを使用するとき、ポート指定は番号でなく、プリンタベンダーが定義した名前であることがあります。たとえば xxx _parallel_1 です。プリンタノード名が cardboard の場合、プリンタアクセス名は cardboard:xxx_parallel_1 になります。この場合にプリンタを構成するには、次のコマンドを使用します。


lpadmin -p printer-name -o dest=cardboard:xxx_parallel_1


例 5–8 ポート指定なしの送信先名 (ネットワークプリンタアクセス名)

ポート指定がなく、プリンタノード名が newspaper の場合、プリンタアクセス名はプリンタノード名と同じになります。 newspaper です。この場合にプリンタを構成するには、次のコマンドを使用します。


lpadmin -p printer-name -o dest=newspaper

ネットワーク印刷プロトコルを選択する

LP 印刷サービスはデフォルトで、BSD 印刷プロトコルと生の TCP を使用してプリンタと通信します。プリンタのマニュアルには、使用するプロトコルについての情報が提供されています。一般に、プリンタに使用するのは TCP プロトコルです。


注 –

デバイス URI プロトコルが Solaris 10 5/08 リリースで導入されました。このプロトコルを使用するとリモートプリンタにアクセスできます。lpadmin コマンドまたは Solaris 印刷マネージャーを使用してネットワーク接続プリンタを追加するときに、device-uri を指定できます。


BSD プロトコルを選択するには、次のように入力します。


lpadmin -p printer-name -o protocol=bsd

TCP プロトコルを選択するには、次のように入力します。


lpadmin -p printer-name -o protocol=tcp

選択したプロトコルが BSD 印刷プロトコルの場合、さらにコントロールファイルをプリンタに送信する順番を選択できます。一部のプリンタは、コントロールファイルの後にデータファイルという順番を仮定します。その逆を仮定するプリンタもあります。詳しくは、プリンタベンダーのマニュアルを参照してください。デフォルトでは、コントロールファイルを先に送信します。

順番を選択するには、次のコマンドのいずれかを入力します。


lpadmin -p printer-name -o bsdctrl=first

lpadmin -p printer-name -o bsdctrl=last

タイムアウト値の設定

タイムアウトオプションは、プリンタに接続しようとする試行間で待機する時間 (秒数) を個別に選択するためのものです。ウォームアップ時間が長いプリンタの場合は、タイムアウト値を大きくします。デフォルトは 10 秒です。

タイムアウト値は、印刷プロセスが成功するか失敗するかには影響を与えません。この値は、ソフトウェアが初期タイムアウトカウントとして使用するシード値です。失敗が続くと、このカウントは増えます。プリンタへの接続の試行が連続して失敗すると、メッセージがスプーラに送信されます。このメッセージによって、ユーザーの介入が必要であることをユーザーに警告します。プリンタの電源が入っていなかったり、用紙がなくなっていたりするときにも、このメッセージが生成される可能性があります。たとえば、プリンタがウォームアップしているときに、このようなメッセージが頻繁に生成されるようであれば、タイムアウト値を増やすことで間違ったメッセージを減らすことができます。

システム管理者は最適なタイムアウト値を探してください。タイムアウト値を設定するには次のコマンドを入力してください。


lpadmin -p printer-name -o timeout=n

ネットワーク接続プリンタアクセスの管理

各ネットワーク接続プリンタは、そのプリンタへのアクセスを提供するサーバーを 1 つだけ持っています。この制限によって、サーバーはそのプリンタへのアクセスを管理して、ジョブの一貫性を保つことができます。

ネットワーク接続プリンタのデフォルトデバイスは /dev/null です。プリンタに待ち行列が 1 つしかない場合はこのデバイスで十分です。複数の待ち行列が必要であれば、そのデバイスをファイルに設定します。この設定によって、印刷システムはプリンタへのアクセスを待ち行列間で制限できます。次のコマンドは、デバイスファイルを作成して、ネットワーク接続プリンタデバイスとして構成しています。


touch /path/filename
chmod 600 /path/filename
lpadmin -p printer-name -v /path/filename

次の例では、devtreedown というデバイスファイルを作成しています。


# touch /var/tmp/devtreedown
# chmod 600 /var/tmp/devtreedown
# lpadmin -p treedown -v /var/tmp/devtreedown

ProcedureLP 印刷コマンドを使用して、ネットワークに接続された新しいプリンタを追加する方法

この手順では、プリンタの構成中に PPD ファイルとの関連付けを行える拡張されたプリンタサポートを使って、新しいネットワーク接続プリンタを追加する方法について説明します。この手順のあとに、2 つの例を示します。1 番目の例では、lp コマンドで PPD ファイルを指定して新しいネットワーク接続プリンタを追加する方法を示します。2 番目の例では、lp コマンドで PPD ファイルを指定せずに新しいネットワークプリンタを追加する方法を示します。

次に示すのは、ネットワークプリンタサポートソフトウェアを使用してネットワーク接続プリンタを設定するのに必要な手順です。このソフトウェアは、プリンタにベンダー提供のソフトウェアが付属していない場合に使用します。

  1. プリンタをネットワークに接続して、プリンタの電源を入れます。

    ハードウェアのスイッチとケーブル接続の要件については、プリンタのインストールマニュアルを参照してください。IP アドレスを取得して、プリンタノード名を選択します。この手順は、どのようなノードをネットワークに追加する場合にも共通です。

  2. PPD ファイルを指定して新しいネットワーク接続プリンタを構成するのに必要な情報を収集します。

    • プリンタ名とポートデバイス

    • ネットワークプリンタアクセス名

    • プロトコル

    • タイムアウト

    • ファイル内容形式

    • PPD ファイル

    PPD ファイルを決定するには、まず、プリンタのメーカー、モデル、およびドライバを定義します。

    詳細は、「LP 印刷コマンドによるネットワーク接続されたプリンタの設定」で説明した用語を参照してください。

  3. 印刷サーバーで、ログインしてスーパーユーザーになるか、同等の役割になります。

  4. このプリンタで使用する、プリンタ名、ポートデバイス、ファイル内容形式、および PPD ファイルを定義します。PPD ファイルを指定する場合、ファイル内容形式は通常「PostScript」です。

    1. このプリンタで使用する、プリンタ名、ポートデバイスを指定します。


      # lpadmin -p printer-name -v /dev/null
      

      使用するデバイスは /dev/null です。

      lpadmin コマンドに -s オプションを使用して、印刷サービスホスト名として localhost を指定できます。詳細は、「印刷待ち行列の追加時に localhost をホスト名として指定する方法 (LP 印刷コマンド)」を参照してください。

      -v オプションを使用して device-uri を指定できます。このプロトコルを使用するとリモートプリンタにアクセスできます。詳細は、「Oracle Solaris リリースでの印刷プロトコルの使用」を参照してください。

    2. このプリンタで使用するインタフェーススクリプトを指定します。


      # lpadmin -p printer-name -m netstandard_foomatic 
      

      ネットワーク接続プリンタ用のサポートソフトウェアと一緒に提供されるインタフェーススクリプトは /usr/lib/lp/model/netstandard_foomatic です。

    3. このプリンタで使用するファイル内容形式と PPD ファイルを指定します。

      PPD ファイルを指定する場合、ファイル内容形式は通常「PostScript」です。


      # lpadmin -p printer-name -I content-type -n 
      /path/ppdfile
      

      この PPD ファイルは、/path ディレクトリにあります。


      注 –

      /path がシステム上の PPD ファイルリポジトリでない場合は、PPD ファイルのコピーが user PPD ファイルリポジトリの user ラベルディレクトリに置かれます。詳細は、第 11 章PPD ファイル管理ユーティリティーを使用したプリンタの管理 (作業)を参照してください。


      詳細は、lpadmin(1M) のマニュアルページを参照してください。

    4. プリンタの説明 (備考欄) を指定します。


      # lpadmin -p printer-name -D  "printer-description"
      
  5. プリンタ送信先、プロトコル、およびタイムアウト値を設定します。


    # lpadmin -p printer-name -o dest=access-name:port -o protocol=protocol
    -o timeout=value
    
    -p printer-name

    ネットワークプリンタ名を指定します。

    -o dest=access-name:port

    ネットワークプリンタアクセス名と、プリンタのマニュアルに定義されていれば指定されたプリンタベンダーポートに、プリンタ送信先を設定します。

    -o protocol=protocol

    プリンタとケーブル経由で通信するために使用するプロトコルを設定します。BSD と生の TCP の両方をサポートしています。

    -o timeout=value

    プリンタへの接続の試行間で待機する秒数を表す再試行タイムアウト値を設定します。

  6. (省略可能) フィルタを印刷サーバーに追加します。


    # cd /etc/lp/fd
    # for filter in *.fd;do
        > name=`basename $ filter .fd`
        > lpfilter -f $name -F $ filter
        > done
    
  7. プリンタが印刷要求を受け入れて、印刷できるようにします。


    # accept printer-name
    # enable printer-name
    
  8. プリンタが正しく構成されていることを確認します。


    # lpstat -p printer-name
    
  9. 新しいプリンタへのアクセスをクライアントに追加します。

    プリンタの設定が完了したら、プリンタへのアクセスを印刷クライアントに作成します。詳細は、「LP 印刷コマンドを使用してプリンタアクセスを追加する」を参照してください。ネームサービスを使用して印刷クライアントを定義する方法については、「ネームサービススイッチでの印刷サポート」を参照してください。

  10. オプションの作業を完了します。

    プリンタを設定するときは、オプションの作業がいくつかあります。残りの作業の参照先を確認するには、「インターネット印刷プロトコルの構成 (作業マップ)」を参照してください。ネームサービスを使用して印刷クライアントを定義する方法については、「ネームサービススイッチでの印刷サポート」を参照してください。


例 5–9 PPD ファイルを指定して新しいネットワーク接続プリンタを追加する

この例では、PPD ファイルを指定して新しいネットワーク接続プリンタを追加する方法を示します。-lpadmin コマンドの n オプションを使用すると、PPD ファイルを指定して新しい印刷待ち行列を追加できます。この例のコマンドは、印刷サーバーで実行する必要があります。この例では次の情報を使用しています。実際の状況に合わせて指定する情報を変更してください。

  1. プリンタ名を定義し、デバイスを /dev/null に設定します

  2. ネットワークプリンタ用のインタフェーススクリプトを定義します

  3. 送信先、プロトコル、およびタイムアウトを設定します

  4. プリンタが直接印刷できるファイル内容形式を指定します

  5. 使用する PPD ファイルを指定します

  6. プリンタの説明を追加します

  7. 印刷フィルタを印刷サーバーに追加します

  8. プリンタが印刷要求を受け入れて、印刷できるようにします

  9. プリンタが印刷できる状態にあることを確認します



例 5–10 PPD ファイルを指定せずに新しいネットワーク接続プリンタを追加する

この例では、PPD ファイルを指定せずに新しいネットワーク接続プリンタを追加する方法を示します。これらのコマンドは、印刷サーバー上で実行する必要があります。この例では次の情報を使用しています。


# lpadmin -p luna1 -v /dev/null (1)
# lpadmin -p luna1 -m netstandard (2)
# lpadmin -p luna1 -o dest=nimquat:9100 -o protocol=tcp 
-o timeout=5 (3)
# lpadmin -p luna1 -I postscript -T PS (4)
# lpadmin -p luna1 -D "Room 1954 ps" (5)
# cd /etc/lp/fd
# for filter in *.fd;do	
	   > name =`basename $ filter .fd`	
	   > lpfilter -f $ name -F $ filter	
	   > done (6)
# accept luna1
	destination "luna1" now accepting requests
# enable luna1 (7)
printer "luna1" now enabled 
# lpstat -p luna1 (8)
printer luna1 is idle.enabled since Feb 28 11:21 2003.available.
  1. プリンタ名を定義し、デバイスを /dev/null に設定します

  2. ネットワークプリンタ用のインタフェーススクリプトを定義します

  3. 送信先、プロトコル、およびタイムアウトを設定します

  4. プリンタが直接印刷できるファイル内容形式と、プリンタタイプを指定します

  5. プリンタの説明を追加します

  6. 印刷フィルタを印刷サーバーに追加します

  7. プリンタが印刷要求を受け入れて、印刷できるようにします

  8. プリンタが印刷できる状態にあることを確認します


Procedure印刷サーバーに接続されたリモートプリンタを IPP を使用して設定する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. リモートプリンタを設定するには、次のいずれかの方法を選択します。

    • lpadmin コマンドを使用します。


      # lpadmin -p printer -s ipp://printer-ip-address/printers/printer-name
      
    • lpset コマンドを使用します。


      # lpset -a printer-uri-supported=ipp://printer-ip-address/printers/printer-name
      

      lpset コマンドで -a オプションを使用すると、キー/値のペアを指定できます。上記の出力では、キーとして printer-uri-supported、値として ipp://printer-ip-address/printers/printer-name が指定されています。通常、この値は、プリンタを直接示すのではなく、印刷サーバー上の印刷待ち行列を示すように設定します。

  3. (省略可能) 指定した URI を調べるには、次のコマンドを入力します。


    $ lpstat -p ipp://printer-ip-address/printers/printer-name
    

    lpstat コマンドを使用し、送信先として URI を指定すると、ローカルの印刷構成をバイパスして、ネットワークに接続されているプリンタまたはリモート印刷サーバーに直接接続できます。

プリンタベンダー提供のソフトウェアによる新しいネットワーク接続プリンタの追加

一般に、ネットワークプリンタには、プリンタベンダーから提供されているソフトウェアが必要です。プリンタにベンダー提供のソフトウェアがある場合、可能な限りそれを使用します。プリンタベンダー提供のソフトウェアは、そのプリンタの特性をサポートするように設計されていて、プリンタの能力を最大限に活用します。プリンタのマニュアルをよく読んで、LP 印刷サービスを使用できるように、プリンタをインストールおよび構成してください。

Procedureプリンタベンダー提供のツールを使用してネットワークプリンタを追加する方法

  1. プリンタをネットワークに接続します。プリンタの電源を入れます。

    ハードウェアのスイッチとケーブル接続の要件については、プリンタのインストールマニュアルを参照してください。IP アドレスを取得して、プリンタノード名を選択します。この手順は、どのようなノードをネットワークに追加する場合にも共通です。

  2. プリンタのマニュアルに従って、ネットワーク接続プリンタを追加してください。

    プリンタのマニュアルを使用して、ネットワーク接続プリンタを構成してください。手順は、ベンダーやプリンタに固有です。

  3. 新しいプリンタへのアクセスをクライアントに追加します。

    プリンタを追加したら、次にプリンタへのアクセスを印刷クライアントに作成します。詳細は、「LP 印刷コマンドを使用してプリンタアクセスを追加する」を参照してください。

  4. オプションの作業を完了します。

    ネットワーク接続プリンタを設定するときは、オプションの作業がいくつかあります。これらの作業の参照先を確認するには、「インターネット印刷プロトコルの構成 (作業マップ)」を参照してください。