9    pdmakedb

9.1    名称

pdmakedb - プリント・システムのスーパバイザまたはスプーラで使用するオブジェクト・データベースを作成します。

9.2    形式

pdmakedb [-v] [-n server_name
[-A access-control-list] [-t server-type]
[-R server-runtime-directory] [-r authentication-type
[-O sourceOID-directory] [-D sourceODB-directory
[-d ODB-directory] [-s spool-directory

次のコマンドで pdmakedb のヘルプが表示されます。

pdmakedb -h

9.3    機能説明

pdmakedb ユーティリティは,オブジェクト・データベースを作成します。オブジェクト・データベースは,そのデータベースを使用するサーバを起動する前に作成しておく必要があります。稼働中のサーバのデータベースを pdmakedb ユーティリティで作成しようとすると,エラー・メッセージが表示されて,ユーティリティは終了します。

pdmakedb が作成するオブジェクト・データベースには,単一サーバ・オブジェクトが格納されます。pdmakedb は,データベースの作成時に,省略時のサーバ属性とユーザ指定属性をサーバ・オブジェクトに追加します。

アクセス・レベル

管理者

9.4    オプション

pdmakedb でサポートされるオプション,関連する引数,および属性は以下のとおりです。

9.4.1    -v

コマンド行属性の確認中にメッセージを表示します。

たとえば,コマンド行に -A (後述),-r (後述),および -v スイッチを指定すると,次のようなメッセージが表示されます。

Validating requested server attributes: 
Checking attribute: access-control-list 
Checking attribute: cfg-rpc-auth-type 
All requested server attributes are valid

-v スイッチを指定すると,オブジェクト・データベースの作成完了後に,すべてのサーバ属性のすべての値も出力されます。たとえば,次のようになります。

Current server attributes are:  
achilles_spl: server-state = ready 
achilles_spl: server-internal-state = 2 
achilles_spl: object-classes-supported = server 
achilles_spl: enabled = FALSE 
achilles_spl: conformance-levels-supported = level-1
                                             level-1M
                                             level-2
                                             level-2M 
achilles_spl: cfg-src-odb-path = /usr/pd/share/odb 
achilles_spl: cfg-src-oid-path = /usr/pd/share/oid 
achilles_spl: cfg-server-runtime-dir = /spool/pd/achilles_spl 
achilles_spl: cfg-acct-log-file-path = /pd/acct/achilles_spl 
achilles_spl: access-control-list = administrator:sysadmin 
achilles_spl: server-type = spooler 
achilles_spl: cfg-rpc-auth-type = SYS 
achilles_spl: cfg-max-log-backups = 4 
achilles_spl: cfg-days-to-keep-acct-logs = 3 
achilles_spl: cfg-safe-size-for-acct-logs = 1000000 
achilles_spl: cfg-time-for-new-acct-log = 03:15:00

メモ

構成属性は,主として,通常はアクセスされない内部属性です。

-v スイッチを省略すると,pdmakedb はエラー・メッセージのみを表示します。

9.4.2    -n server-name

新規のデータベース作成時にサーバ名を指定するために使用します。

ここで指定する名前はサーバの名前にもなるため,255 文字以下の正規の UNIX ファイル名にする必要があります (pdmakedb ユーティリティは,この名前を使用してファイル・システムに 1 つまたは複数のディレクトリを作成します)。

-n スイッチを省略すると,作成されたデータベースに省略時の名前が付きます。省略時の名前は,pdmakedb ユーティリティが動作しているホストの名前と,作成するのがスーパバイザ・データベースかスプーラ・データベースかによって決まります。スプーラなら <hostname>_spl,スーパバイザなら <hostname>_sup となります。

たとえば,achilles という名前のホスト上にスプーラ・データベースを作成するときに -n スイッチを指定しなければ,データベース名は achilles_spl となります。これがスーパバイザ・データベースであれば,achilles_sup となります。サーバがスプーラ・データベースかスーパバイザ・データベースかは,-t スイッチ (後述) で指定します。

-n スイッチで指定したデータベースが既に存在している場合,またはサーバ名を省略したときに省略時の名前のサーバが既に存在している場合,pdmakedb はエラー・メッセージを表示して終了します。

9.4.3    -A

access-control-list パラメータで指定された値を持つサーバ access-control-list 属性を作成します。

access-control-list パラメータの形式は,次のとおりです。

name name-type

このとき,name および name-type は,付録 A の access-control-list のパラメータ定義に従って指定する必要があります。

-A スイッチの name-type の省略時の値は group です。-A スイッチには access-control-list の privilege-level 構成要素は含まれません。これは,このスイッチ自体が管理者の特権レベルを指定するものだからです。

-A スイッチを省略すると,省略時のアクセス制御リスト (ACL) が作成されます。省略時の ACL には次の 2 つの値が設定されます。

1. name-type=all-users; privilege-level=end-user 2. name=sysadmin; name-type=group; privilege-level=administrator

サーバの作成時に,サーバの ACL にこれら 2 つの値が設定されます (ただし,スタートアップ・オプションで administrator-value ACL を設定していない場合)。ドメインに sysadmin という名前のグループが存在しない場合,ローカル・ルート・ユーザは,サーバの ACL をローカルでの正しい値に設定する必要があります。

メモ

-A スイッチによって,そのサーバ・オブジェクトの初期の管理者が指定されます。サーバが動作し,クライアントの要求に応答した後に,オペレータとユーザだけでなく,管理者についても他の値を追加できます。

9.4.4    -t server-type

作成するオブジェクト・データベースのタイプとして,スプーラ・データベースまたはスーパバイザ・データベースのいずれかを指定します。

これらのデータベースには,互いに他の一方には格納できないオブジェクトが格納されます (たとえば,論理プリンタとキューはスプーラ・データベースだけに格納され,物理プリンタはスーパバイザ・データベースだけに格納されます)。

作成するオブジェクト・データベースのタイプは,そのデータベースを使用するサーバのタイプに合わせて指定する必要があります。server-type に指定できる値は,スプーラなら SPL,スーパバイザなら SUP です。省略時の値は SPL です。したがって,-t スイッチを省略するとスプーラ・データベースが作成されます。指定したサーバ・タイプは,サーバ・オブジェクトの server-type 属性に設定されます。

9.4.5    -R server-runtime-directory

サーバの実行時ディレクトリの場所を指定します。

サーバは,起動時にサーバの実行時ディレクトリに移動します。相対パスはすべて,サーバの実行時ディレクトリからのパスと解釈されます。

サーバのコアダンプ・ファイルは実行時ディレクトリにあります。

実行時ディレクトリとして,任意の正規 UNIX ディレクトリ・パス名を指定できます。指定するディレクトリが,pdmakedb 実行時に存在しなくてもかまいません。サーバの起動時に,(可能なら) サーバによってそのディレクトリが作成されます。

-R スイッチを省略すると,実行時ディレクトリの省略時の値は /var/spool/pd/server-name になります。

9.4.6    -r authentication-type

サーバで使用する RPC 認証タイプを指定します。authentication-type に指定できる値は,NONE または SYS です。省略時の値は SYS です。

9.4.7    -O source-OID-directory

OID データベースの場所を指定します。

pdmakedb およびサーバでは,OID データベースを使用して特定の属性の特性をチェックします。source-OID-directory には正規の OID データベースを参照するパス名を指定する必要があります。指定した場所に OID データベースが存在しない場合,pdmakedb はエラー・メッセージを表示して終了します。

-O スイッチを省略すると,ソース OID パス名の省略時の値は,/usr/pd/share/oid になります。正しくインストールされたシステムでは,このパス名に正規の OID データベースが格納されています。指定したソース OID パス名は,サーバ・オブジェクトの cfg-src-oid-path 属性に設定されます。

9.4.8    -D source-ODB-directory

ソース ODB データベースの場所を指定します。

ソース ODB は,オブジェクト・データベースを作成するためのテンプレートを提供します。pdmakedb では,ソース ODB データベースがなければオブジェクト・データベースを作成できません。source-ODB-directory には空のソース ODB データベースを参照するパス名を指定する必要があります。以前に作成された ODB を参照することはできません。指定した場所に ODB ソース・データベースが存在しない場合,またはデータベースが空でない場合は,pdmakedb はエラー・メッセージを表示して終了します。

-D スイッチを省略すると,ソース ODB ディレクトリ名の省略時の値は,/usr/pd/share/odb になります。

9.4.9    -d destination-ODB-directory

オブジェクト・データベース・ファイルの作成場所を指定します。

実行するユーザ ID には,ODB パスに対する書き込み許可が設定されている必要があります。指定したディレクトリが存在しない場合,またはユーザに書き込み許可がない場合は,pdmakedb はエラー・メッセージを表示して終了します。

-d スイッチを省略すると,オブジェクト・データベース・ファイルの作成先ディレクトリが,省略時のディレクトリ /var/pd/odb に作成されます。正しくインストールされたシステムでは,/var/pd/odb は既に存在しています。

9.4.10    -s spool-directory

印刷するドキュメントをサーバがスプールする場所を指定します。

spool-directory には任意の正規 UNIX ディレクトリ・パス名を指定できます。spool-directory が指すディレクトリは,pdmakedb 実行時に存在しなくてもかまいません。サーバの起動時に,(可能なら) サーバによってそのディレクトリが作成されます (ただし,指定したディレクトリの親ディレクトリがない場合,サーバがそれらの親ディレクトリを作成することはありません)。

-s スイッチを省略すると,省略時のスプール・ディレクトリは /var/spool/pd/server-name になります。

9.4.11    -h

使い方のメッセージを表示します。

-h スイッチを指定すると,他のスイッチを指定していても,使い方のメッセージが表示されるだけでその他の処理は何も行われません。

9.5    使用例

  1. 省略時のオプションを使用してスプーラ・データベースを作成します。

    pdmakedb -t SPL

  2. 使用できる各オプションに値を指定して,データベース achilles_spl を作成します。

    pdmakedb -v -n achilles_spl -A username -t SPL \ -R /var/spool/pd/achilles_spl -r SYS -O /usr/pd/share/oid \ -D /usr/pd/share/odb -d /var/pd/odb -s /var/spool/pd/achilles_spl