Trusted Solaris 開発ガイド

ソフトウェアパッケージの作成

System V Release 4 のアプリケーションバイナリインタフェース (ABI) は、システム管理者により統合されるソフトウェアパッケージを作成する「ソフトウェアのパッケージ化」と呼ばれるソフトウェア配布モデルを指定します。ABI モデルを使用して配布されるソフトウェアはすべて、あらゆる ABI 準拠システムへのインストールが保証されています。

ソフトウェアパッケージを作成する場合、パッケージのインストール手続きに使用するオプションの tsolinfo(4) ファイル (以下を参照) にセキュリティ属性情報を指定します。このファイルがオプションなのは、パッケージのインストールの際、デフォルトのセキュリティ属性が割り当てられるのは、セキュリティ属性情報がパッケージに提供されていないときだからです。

パッケージファイル

パッケージは、パッケージオブジェクトと制御ファイルから構成されます。パッケージオブジェクトはインストールされるファイルであり、制御ファイルは、パッケージがインストールされるかどうか、インストールされる場合にはいつ、どこで、どのように行われるかを制御するファイルです。システム上のインストール済みパッケージについての情報は、/var/sadm/install/contents 内のソフトウェアインストールデータベースに格納されています。

次に、ABI 準拠のソフトウェアパッケージの作成とインストールを行う Solaris 7 コマンドを示します。

pkginfo(1)

ソフトウェアパッケージ情報を表示する 

pkgparam(1)

パッケージのパラメータ値を表示する 

pkgask(1M)

要求スクリプトを作成する 

installf(1M)

ソフトウェアインストールデータベースにエントリを追加する 

removef(1M)

ソフトウェアインストールデータベースからエントリを削除する 

パッケージを作成するには、次のファイルを設定します。

pkgmk(1) は、pkginfo(4)prototype(4) を使用して、ソフトウェアパッケージを構築します。オプションのスクリプトは、インストールのカスタマイズとパッケージの削除を行います。

MAC セキュリティ属性

tsolinfo(4) ファイルは、特殊なセキュリティ属性を必要とするパッケージオブジェクトに対応したエントリを含みます。対応する tsolinfo エントリがパッケージオブジェクトに含まれない場合には、パッケージの最終的なインストール先であるファイルシステムのデフォルトのセキュリティ属性セットが割り当てられます。このファイルは、次のフォーマットで、パッケージオブジェクトごとに 1 つ以上のエントリを含むことができます。フォーマット内のフィールドは、各エントリごとに必要です。

attribute_name object_name attribute_value

次に、使用できる属性名、それらの意味、および指定方法を示します。

属性名 

内容 

属性値 

forced_privs 

パッケージオブジェクトは強制された特権 

コンマで区切られた特権リスト 

allowed_privs 

パッケージオブジェクトは許容された特権 

コンマで区切られた特権リスト 

public 

パッケージオブジェクトは public 

属性値なし 

mld 

パッケージオブジェクトはマルチレベルディレクトリ 

属性値なし 

次の例、tsolinfo(4) ファイルエントリは、sendmail(1M) パッケージオブジェクトのセキュリティ属性を指定します。

属性名 

パッケージオブジェクト名 

属性値 

mld

var/spool.mail

 

mld

var/mail

 

mld

var/tmp

 

allowed_privs

usr/lib/sendmail

all

forced_privs

usr/lib/sendmail

file_mac_write、 file_nofloat

label

etc/security/tsol

admin_high[admin_high]

内容

既存のパッケージの編集

既存のパッケージの検索と編集を行うには、grep(1) コマンドを使用してそのソフトウェアインストールデータベースを検索します。返される情報は、パッケージ名を含みます。

machine_name% cat /var/sadm/install/contents | grep /usr/lib/object

パッケージ名を取得すると、そのパッケージのパッケージ定義を検索し、tsolinfo(4) ファイルを編集できます。tsolinfo ファイルが存在しない場合には、ファイルを 1 つ作成します。tsolinfo ファイルを作成する場合、それを prototype ファイルに加え、pkgmk(1) コマンドが tsolinfo ファイルを見つけることができるようにします。

新しいパッケージの追加

新しいパッケージを追加するには、パッケージの作成の詳細が述べられた Solaris 7 の『Application Packaging Developer's Guide』 (英語版) を参照してください。この節では、内容と手順の概要を述べます。

次に、新しいソフトウェアパッケージを作成する Solaris 7 コマンドを示します。

pkginfo(1)

ソフトウェアパッケージ情報を表示する 

pkgparam(1)

パッケージのパラメータ値を表示する 

pkgmk(1)

ソフトウェアパッケージを作成する 

pkgproto(1)

pkgmk(1) に対する入力用のプロトタイプファイルを生成する 

pkgtrans(1)

パッケージの転送または変換、あるいはその両方を行う 

次の図は、作成すべきファイル、pkgmk(1) コマンドの役割、生成されるディレクトリ構造またはパッケージを示します。

図 A-1 新しいパッケージの追加

Graphic

必須ファイルの作成

  1. マニュアルページを使用して、pkginfo(4) ファイルを作成します。

  2. マニュアルページを使用して、prototype(4) ファイルを作成します。

    pkgproto(1) コマンドを使用して、prototype(4) ファイルテンプレートを生成します。

オプションのファイルとスクリプトの作成

  1. マニュアルページを使用して、tsolinfo(4) ファイルを作成します。

    pkgmk(1) コマンドが tsolinfo ファイルを検索できるように、tsolinfo がプロトタイプファイルにリストされていることを確認します。

  2. 必要に応じ、オプションのパッケージ情報ファイルを作成します。

  3. 必要に応じ、オプションのパッケージ化スクリプトを作成します。

パッケージの作成

  1. pkgmk(1) コマンドを実行します。

  2. パッケージを記憶メディアに保存します。

  3. インストールのため、記憶メディアをシステム管理者に渡します。

プロトタイプファイル

プロトタイプファイルは、任意のエディタで作成できます。パッケージ構成要素ごとに、1 つのエントリが必要です。次に、tsolinfo ファイルのエントリを含むプロトタイプファイル例を示します。tsolinfo ファイルの前の文字 i は、このファイルが情報ファイルであることを示します。文字 f は、標準の実行可能ファイルまたはデータファイルを示します。詳細は、prototype(4) のマニュアルページを参照してください。

# Package "prototype" file for the bbp device driver.
 # Bidirectional Parallel Port Driver for SBus Printer Card.
 #
 i pkginfo
 i request
 i copyright
 i postinstall
 i tsolinfo
 f none bbp.kmod 0444 root sys
 f none bbp_make_node 0555 root sys
 f none bbp_remove_node 0555 root sys