2006年 10月 26日 木曜日
やっぱり Sun がスキ!
Solaris パッケージを作ろう!
オープンソースのソフトウェアを Solaris にインストールする際、コンパイル
済みパッケージが見つからないと、"./congifure;make;make install" という
呪文を使いますよね。
この呪文で入れたソフトってバージョンアップや削除が面倒ではないですか?
それではいっその事、Solaris パッケージまで作ってしまいましょう。
パッケージ形式にしてインストールすると、いらなくなったら pkgrm で簡単 に削除できますし、他のマシンにインストールする際も pkgadd だけで済みます。
また、/var/sadm/install/contents ファイルにどのパッケージがどんなファイル をどこに入れたか記録されますので、ファイルを探すのにも便利です。
それでは早速パッケージの作成をしてみましょう。
この呪文で入れたソフトってバージョンアップや削除が面倒ではないですか?
それではいっその事、Solaris パッケージまで作ってしまいましょう。
パッケージ形式にしてインストールすると、いらなくなったら pkgrm で簡単 に削除できますし、他のマシンにインストールする際も pkgadd だけで済みます。
また、/var/sadm/install/contents ファイルにどのパッケージがどんなファイル をどこに入れたか記録されますので、ファイルを探すのにも便利です。
それでは早速パッケージの作成をしてみましょう。
用意する物:
- "./configure;make" まで終わったファイル群
- pkginfo ファイル(自分で書きます)
- depend ファイル(自分で書きます)
- copyright ファイル(自分で書きます)
- prototype ファイル(コマンドで作ります)
- "./configure;make" まで終わったファイル群
- pkginfo ファイル(自分で書きます)
- depend ファイル(自分で書きます)
- copyright ファイル(自分で書きます)
- prototype ファイル(コマンドで作ります)
手順:
1. 以下の内容を記述した pkginfo という名前のファイルを作成
※ (<=== 以降は説明のためファイルには記載しないで下さい)
※ これが、パッケージの説明になります。
2. 以下の内容を記述した depend ファイルを作成
※ このパッケージをインストールする為に必要となるパッケージ情報を書きます。
3. copyright ファイルはフリーフォーマットで書きましょう。
4. prototype ファイルの作成
prototype は、どのファイルをどこにどういった所有者でどんなパーミッション を持たせてインストールするかを記述したファイルです。
この作成の為に、一旦 "make install" をしますが、何をインストールしたかを 確認出来るように timestamp ファイルを作成することがポイントです。
timestamp ファイルを作成するとそのファイル以降にコピーされたファイルを find コマンドで抜き出す事が出来ます。
prototype 作成の手順は以下の通り。
5. pkgmk コマンドでパッケージを作成
これで、/var/spool/pkg に、MYw3m というパッケージを作成出来ました。
このまま、以下のコマンドでインストールすると、"make install" でコピー されたファイルが全て上書きされますので、pkgrm コマンドだけで、すべて のファイルを削除できます。
尚、/var/spool/pkg/MYw3m は、パッケージディレクトリ形式ですが、以下の コマンドで、1 つのパッケージファイルにする事が出来ます。
お好きな形式をご利用下さい。
意外に簡単にパッケージが作成できますので皆さんも是非試してみて下さい。
1. 以下の内容を記述した pkginfo という名前のファイルを作成
※ (<=== 以降は説明のためファイルには記載しないで下さい)
※ これが、パッケージの説明になります。
PKG=MYw3m <=== パッケージの名前 NAME=w3m - cli web browser <=== パッケージに収められるソフトの名前 ARCH=i386 <=== パッケージに収められるバイナリの形式 (sparc or i386 or all) CATEGORY=application <=== application or system VERSION=0.5.1 <=== バージョン番号 VENDOR=http://w3m.sourceforge.net/index.ja.html <=== ソフトの作成元 HOTLINE=on your risk <=== このパッケージをサポートする人 EMAIL=on your risk <=== サポートする人の E-Mail アドレス DESC= <=== 解説
2. 以下の内容を記述した depend ファイルを作成
※ このパッケージをインストールする為に必要となるパッケージ情報を書きます。
P MYgc GC - need for w3m
3. copyright ファイルはフリーフォーマットで書きましょう。
4. prototype ファイルの作成
prototype は、どのファイルをどこにどういった所有者でどんなパーミッション を持たせてインストールするかを記述したファイルです。
この作成の為に、一旦 "make install" をしますが、何をインストールしたかを 確認出来るように timestamp ファイルを作成することがポイントです。
timestamp ファイルを作成するとそのファイル以降にコピーされたファイルを find コマンドで抜き出す事が出来ます。
prototype 作成の手順は以下の通り。
# touch /tmp/timestamp # make install # cd /tmp/w3m-pkg # ls copyright depend pkginfo # echo "i pkginfo" > prototype # echo "i depend" >> prototype # echo "i copyright" >> prototype # find /opt/mysoft -newer /tmp/timestamp | pkgproto >> prototype # more prototype i pkginfo i depend i copyright d none /opt/mysoft 0755 root root d none /opt/mysoft/bin 0755 root root f none /opt/mysoft/bin/w3m 0755 root root f none /opt/mysoft/bin/w3mman 0755 root root d none /opt/mysoft/libexec 0755 root root d none /opt/mysoft/libexec/w3m 0755 root root d none /opt/mysoft/libexec/w3m/cgi-bin 0755 root root f none /opt/mysoft/libexec/w3m/cgi-bin/w3mbookmark 0755 root root f none /opt/mysoft/libexec/w3m/cgi-bin/w3mhelperpanel 0755 root root f none /opt/mysoft/libexec/w3m/cgi-bin/dirlist.cgi 0755 root root f none /opt/mysoft/libexec/w3m/cgi-bin/w3mhelp.cgi 0755 root root f none /opt/mysoft/libexec/w3m/cgi-bin/w3mmail.cgi 0755 root root f none /opt/mysoft/libexec/w3m/cgi-bin/multipart.cgi 0755 root root f none /opt/mysoft/libexec/w3m/cgi-bin/w3mman2html.cgi 0755 root root f none /opt/mysoft/libexec/w3m/w3mimgdisplay 0755 root root f none /opt/mysoft/libexec/w3m/inflate 0755 root root f none /opt/mysoft/libexec/w3m/xface2xpm 0755 root root d none /opt/mysoft/share 0755 root root d none /opt/mysoft/share/w3m 0755 root root f none /opt/mysoft/share/w3m/w3mhelp.html 0644 root root f none /opt/mysoft/share/w3m/w3mhelp-funcdesc.en.pl 0644 root root f none /opt/mysoft/share/w3m/w3mhelp-funcdesc.ja.pl 0644 root root f none /opt/mysoft/share/w3m/w3mhelp-funcname.pl 0644 root root d none /opt/mysoft/man 0755 root root d none /opt/mysoft/man/man1 0755 root root f none /opt/mysoft/man/man1/w3m.1 0644 root root f none /opt/mysoft/man/man1/w3mman.1 0644 root root d none /opt/mysoft/man/ja 0755 root root d none /opt/mysoft/man/ja/man1 0755 root root f none /opt/mysoft/man/ja/man1/w3m.1 0644 root root # ls copyright depend pkginfo prototype
5. pkgmk コマンドでパッケージを作成
# pkgmk -r / -a `uname -p`
## prototype ファイルから pkgmap を作成中です。
## pkginfo ファイルを処理中です。
警告: のディレクトリ項目がありません。
警告: パラメータ の値は "turion6420061025170455" に設定されます。
警告: パラメータ の値は "none" に設定されます。
## pkgmap の 30 個の項目をボリューム単位で分割しようとしています。
第 1 部-- 2826 ブロック, 28 エントリ
## 1 部をパッケージ処理中です。
/var/spool/pkg/MYw3m/pkgmap
/var/spool/pkg/MYw3m/pkginfo
/var/spool/pkg/MYw3m/root/opt/mysoft/bin/w3m
/var/spool/pkg/MYw3m/root/opt/mysoft/bin/w3mman
/var/spool/pkg/MYw3m/root/opt/mysoft/libexec/w3m/cgi-bin/dirlist.cgi
/var/spool/pkg/MYw3m/root/opt/mysoft/libexec/w3m/cgi-bin/multipart.cgi
/var/spool/pkg/MYw3m/root/opt/mysoft/libexec/w3m/cgi-bin/w3mbookmark
/var/spool/pkg/MYw3m/root/opt/mysoft/libexec/w3m/cgi-bin/w3mhelp.cgi
/var/spool/pkg/MYw3m/root/opt/mysoft/libexec/w3m/cgi-bin/w3mhelperpanel
/var/spool/pkg/MYw3m/root/opt/mysoft/libexec/w3m/cgi-bin/w3mmail.cgi
/var/spool/pkg/MYw3m/root/opt/mysoft/libexec/w3m/cgi-bin/w3mman2html.cgi
/var/spool/pkg/MYw3m/root/opt/mysoft/libexec/w3m/inflate
/var/spool/pkg/MYw3m/root/opt/mysoft/libexec/w3m/w3mimgdisplay
/var/spool/pkg/MYw3m/root/opt/mysoft/libexec/w3m/xface2xpm
/var/spool/pkg/MYw3m/root/opt/mysoft/man/ja/man1/w3m.1
/var/spool/pkg/MYw3m/root/opt/mysoft/man/man1/w3m.1
/var/spool/pkg/MYw3m/root/opt/mysoft/man/man1/w3mman.1
/var/spool/pkg/MYw3m/root/opt/mysoft/share/w3m/w3mhelp-funcdesc.en.pl
/var/spool/pkg/MYw3m/root/opt/mysoft/share/w3m/w3mhelp-funcdesc.ja.pl
/var/spool/pkg/MYw3m/root/opt/mysoft/share/w3m/w3mhelp-funcname.pl
/var/spool/pkg/MYw3m/root/opt/mysoft/share/w3m/w3mhelp.html
/var/spool/pkg/MYw3m/install/copyright
/var/spool/pkg/MYw3m/install/depend
## 制御スクリプトの妥当性検査中です。
## パッケージ処理は完了しました。
これで、/var/spool/pkg に、MYw3m というパッケージを作成出来ました。
このまま、以下のコマンドでインストールすると、"make install" でコピー されたファイルが全て上書きされますので、pkgrm コマンドだけで、すべて のファイルを削除できます。
尚、/var/spool/pkg/MYw3m は、パッケージディレクトリ形式ですが、以下の コマンドで、1 つのパッケージファイルにする事が出来ます。
お好きな形式をご利用下さい。
# pkgtrans -s /var/spool/pkg /tmp/MYw3m.pkg MYw3m
意外に簡単にパッケージが作成できますので皆さんも是非試してみて下さい。
欄外:
prototype は、実は手書きでも問題ありません。
pkginfo, depend, copyright, prototype ファイルと、prototype ファイル に記載されたファイル群が実際に存在すればパッケージは作成出来ます。
なので、ソフトウェアに限らず、OS インストール後に必ず作るファイル群 をまとめてパッケージにするのも面白いかもしれません。
prototype は、実は手書きでも問題ありません。
pkginfo, depend, copyright, prototype ファイルと、prototype ファイル に記載されたファイル群が実際に存在すればパッケージは作成出来ます。
なので、ソフトウェアに限らず、OS インストール後に必ず作るファイル群 をまとめてパッケージにするのも面白いかもしれません。
Posted at 04:22午後 10 26, 2006 by Naoyuki Yamada in Sun | 投稿されたコメント[1]
Posted by thaniwa on 10月月 26日, 2006年 at 07:04 午後 JST #