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.  パッケージの作成のための高度な手法

用語集

索引

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

このケーススタディーでは、パッケージのインストール中に crontab ファイルを変更します。

手法

このケーススタディーでは、次の手法の実例を示します。

アプローチ

インストール中に複数のファイルを編集する最も効率的な方法は、クラスを定義し、クラスアクションスクリプトを作成することです。build クラスによるアプローチを使用した場合は、編集する crontab ファイルごとに 1 つの build クラススクリプトを作成する必要があります。cron クラスを定義する方法は、より汎用性のあるアプローチとなります。このアプローチで crontab ファイルを編集するには、次の作業を行う必要があります。

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

次に示す i.cron および r.cron スクリプトは、スーパーユーザーによって実行されます。ほかのユーザーの crontab ファイルをスーパーユーザーとして編集すると、予期しない結果が生じる可能性があります。必要な場合は、各スクリプトで次に示すエントリを変更してください。

crontab $user < /tmp/$$crontab ||

から

su $user -c "crontab /tmp/$$crontab" ||

pkginfo コマンド

PKG=case7
NAME=Case Study #7
CATEGORY=application
BASEDIR=/opt
ARCH=SPARC
VERSION=Version 1.0
CLASSES=cron

prototype ファイル

i pkginfo
i i.cron
i r.cron
e cron /var/spool/cron/crontabs/root ? ? ?
e cron /var/spool/cron/crontabs/sys ? ? ?

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

# PKGINST parameter provided by installation service
while read src dest
do
user=`basename $dest` ||
exit 2
(crontab -l $user |
sed -e "/#$PKGINST$/d" > /tmp/$$crontab) ||
exit 2
sed -e "s/$/#$PKGINST/" $src >> /tmp/$$crontab ||
exit 2
crontab $user < /tmp/$$crontab ||
exit 2
rm -f /tmp/$$crontab
done
exit 0

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

# PKGINST parameter provided by installation service
while read path
do
user=`basename $path` ||
exit 2
(crontab -l $user |
sed -e "/#$PKGINST$/d" > /tmp/$$crontab) ||
exit 2
crontab $user < /tmp/$$crontab ||
exit 2
rm -f /tmp/$$crontab
done
exit 

crontab ファイル 1

41,1,21 * * * * /usr/lib/uucp/uudemon.hour > /dev/null
45 23 * * * ulimit 5000; /usr/bin/su uucp -c
"/usr/lib/uucp/uudemon.cleanup" >
/dev/null 2>&1
11,31,51 * * * * /usr/lib/uucp/uudemon.poll > /dev/null

crontab ファイル 2

0 * * * 0-6 /usr/lib/sa/sa1
20,40 8-17 * * 1-5 /usr/lib/sa/sa1
5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 1200 -A

注 - 複数のファイルを編集することにより、ファイルの合計サイズが 10K を超えて増加する場合は、pkgadd コマンドがこの増加に対応できるように、space ファイルを作成してください。space ファイルについては、「ターゲットシステムでの追加領域の予約」を参照してください。