JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
アプリケーションパッケージ開発者ガイド     Oracle Solaris 10 1/13 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  パッケージの設計

2.  パッケージの構築

3.  パッケージの機能の拡張 (タスク)

4.  パッケージの確認と転送

5.  パッケージ作成のケーススタディー

管理者による入力の要求

手法

アプローチ

ケーススタディーのファイル

pkginfo ファイル

prototype ファイル

request スクリプト

インストール時のファイル作成と削除時のファイル保存

手法

アプローチ

ケーススタディーのファイル

pkginfo ファイル

prototype ファイル

space ファイル

i.admin クラスアクションスクリプト

r.cfgdata 削除スクリプト

パッケージの互換性と依存関係の定義

手法

アプローチ

ケーススタディーのファイル

pkginfo ファイル

copyright ファイル

compver ファイル

depend ファイル

標準クラスとクラスアクションスクリプトを使用したファイルの変更

手法

アプローチ

ケーススタディーのファイル

pkginfo ファイル

prototype ファイル

i.inittab インストールクラスアクションスクリプト

r.inittab 削除クラスアクションスクリプト

inittab ファイル

sed クラスと postinstall スクリプトを使用したファイルの変更

手法

アプローチ

ケーススタディーのファイル

pkginfo ファイル

prototype ファイル

sed クラスアクションスクリプト (/etc/inittab)

postinstall スクリプト

build クラスを使用したファイルの変更

手法

アプローチ

ケーススタディーのファイル

pkginfo ファイル

prototype ファイル

構築ファイル

インストール時の crontab ファイルの変更

手法

アプローチ

ケーススタディーのファイル

pkginfo コマンド

prototype ファイル

i.cron インストールクラスアクションスクリプト

r.cron 削除クラスアクションスクリプト

crontab ファイル 1

crontab ファイル 2

手続きスクリプトによるドライバのインストールと削除

手法

アプローチ

ケーススタディーのファイル

pkginfo ファイル

prototype ファイル

request スクリプト

postinstall スクリプト

preremove スクリプト

sed クラスと手続きスクリプトを使用したドライバのインストール

手法

アプローチ

ケーススタディーのファイル

pkginfo ファイル

prototype ファイル

sed クラスアクションスクリプト (/etc/devlink.tab)

postinstall インストールスクリプト

preremove 削除スクリプト

copyright ファイル

6.  パッケージの作成のための高度な手法

用語集

索引

標準クラスとクラスアクションスクリプトを使用したファイルの変更

このケーススタディーでは、標準クラスとクラスアクションスクリプトを使用して、パッケージのインストール中に既存のファイルを変更します。ここでは、3 種類の変更方法のうちの 1 つを使用します。ほかの 2 つの方法については、sed クラスと postinstall スクリプトを使用したファイルの変更」およびbuild クラスを使用したファイルの変更」を参照してください。変更する対象のファイルは、/etc/inittab です。

手法

このケーススタディーでは、インストールおよび削除クラスアクションスクリプトの使用方法を説明します。詳細については、「クラスアクションスクリプトの書き込み」を参照してください。

アプローチ

クラスおよびクラスアクションスクリプトを使用して、インストール中に /etc/inittab を変更するには、次のタスクを完了する必要があります。

このケーススタディーは、次のケーススタディーよりも複雑です。sed クラスと postinstall スクリプトを使用したファイルの変更」を参照してください。2 つではなく 3 つのファイルを作成する必要があり、配信された /etc/inittab ファイルは実際には、挿入するエントリの断片を含んだ可変部分に過ぎません。pkgadd コマンドが i.inittab ファイルに渡すファイルを必要としなければ、これは i.inittab ファイルに組み込まれていたかも知れません。また、削除の手順も別個のファイル (r.inittab) に置く必要があります。この方法はうまく行きますが、複数のファイルをインストールする必要のある非常に複雑なケースに最も向いています。「インストール時の crontab ファイルの変更」を参照してください。

sed クラスと postinstall スクリプトを使用したファイルの変更」で使用されている sed プログラムは、inittab エントリの最後にあるコメントがパッケージのインスタンスに基づいているため、複数のパッケージのインスタンスをサポートします。build クラスを使用したファイルの変更」のケーススタディーでは、インストール中に /etc/inittab を編集するための、より効率的なアプローチが紹介されています。

ケーススタディーのファイル

pkginfo ファイル

PKG=case5
NAME=Case Study #5
CATEGORY=applications
BASEDIR=/opt
ARCH=SPARC
VERSION=Version 1d05
CLASSES=inittab

prototype ファイル

i pkginfo
i i.inittab
i r.inittab
e inittab /etc/inittab ? ? ?

i.inittab インストールクラスアクションスクリプト

# PKGINST parameter provided by installation service
while read src dest
do
# remove all entries from the table that
# associated with this PKGINST
sed -e "/^[^:]*:[^:]*:[^:]*:[^#]*#$PKGINST$/d" $dest >
/tmp/$$itab ||
exit 2
sed -e "s/$/#$PKGINST" $src >> /tmp/$$itab ||
exit 2
mv /tmp/$$itab $dest ||
exit 2
done
if [ "$1" = ENDOFCLASS ]
then
/sbin/init q ||
exit 2
fi
exit 0

r.inittab 削除クラスアクションスクリプト

# PKGINST parameter provided by installation service
while read src dest
do
# remove all entries from the table that
# are associated with this PKGINST
sed -e "/^[^:]*:[^:]*:[^:]*:[^#]*#$PKGINST$/d" $dest >
/tmp/$$itab ||
exit 2
mv /tmp/$$itab $dest ||
exit 2
done
/sbin/init q ||
exit 2
exit 0

inittab ファイル

rb:023456:wait:/usr/robot/bin/setup