Go to TOP Page
Google:


□Solaris でパッケージ


○再インストールしたい時には便利かなぁ?

linux なんかだと、 rpm とかってゆーパッケージ管理の方法があるようで、 ソフトのインストールの楽になったもんです。実は、Solaris にも rpm に よるパッケージ管理の方法があるようなのですが、ここは、ヤハリ、Solaris 自前の pkgadd を使ったパッケージ管理で利用可能なのを作っちゃおう ってことです。


□最初はパッケージ元の Build から


○練習してみやぅ!

練習用に、 gzip を使いましょう。まずは、 gzip のソースをげっちゅー してくらはい。

SunSite Japan

アタリからゲッチューしてくれば良いでしょう。 gzip-1.3.tar.gz が げっちゅーできると思います。アーカイブをデコードしておいてね。

んで、そのままフツーにコンパイル & インストールして /usr/local アタリにインストールされてしまうとアツイので、パッケージを作る 専用のディレクトリにインストールしておくようにしてくらはい。

今回の例では、 ${HOME}/gzip-1.3_pkg にパッケージ用のバイナリを 一時的にインストールするようにしておきます。

./configure のオプションなんかは、ソフトによって変わってくると 思うので、適宜、最適なオプションにしてくらはい。

--prefix オプションだけ、一時インストールのとこを指定してもらえれば良い です。ソフトによっては、手作業でインストール後の処理が必要になってくる 場合がありますが、その場合は、そーゆースクリプトを書いておいてくらさい。


□pkginfo を作るぞっ!


○意外と手間がかかりますだ

インストールが終わったら、一例の /home/hoge/gzip-1.3_pkg をカレントに してくらはい。

今更、インストールされてなかったとかゆーなよなっ!

で、pkginfo ファイルを記述します。ファイルネームは、 "pkginfo" ぢゃないとイヤンみたいです。んで、 pkginfo に記述する中身はこんな 感じ、

pkginfo に記述
PKG=gzip
NAME=gzip 1.3
VERSION=1.3
ARCH=sun4u Solaris 8
CATEGORY=application
VENDOR=hogehoge<hoge@hoge.local.co.jp>
EMAIL=hoge@hoge.local.co.jp
BASEDIR=/usr/local

ってな感じです。記述内容は、なんとなく解るよねっ?


□prototype を作るぞっ!


○ファイルの数が多くなるとヘコむカモ

prototype ってのは、パッケージの一覧が記述されているファイルらしーです。

で、prototype の元を作ってくらさい。んで、prototype をチョコっと 書き換えます。 gzip-1.3_pkg の場合、こんな prptptype になりました。

gzip-1.3_pkg の prptptype
d none bin 0755 hoge staff
f none bin/gunzip 0755 hoge staff
l none bin/gzip=gunzip
f none bin/gzexe 0755 hoge staff
f none bin/zdiff 0755 hoge staff

(途中省略)

f none man/man1/zmore.1 0644 hoge staff
f none man/man1/znew.1 0644 hoge staff
f none pkginfo 0644 hoge staff
f none prototype 0644 hoge staff

ファイルのオーナーや、グループが Build した人のまんまっつーのも マズイと思うので、root と bin アタリに変更しておきましょう。 変更後はこんなかんぢね。あと、削除しておくエントリもあります。

削除しておくエントリ
d none bin 0755 root bin
f none bin/gunzip 0755 root bin
l none bin/gzip=gunzip
f none bin/gzexe 0755 root bin
f none bin/zdiff 0755 root bin

(途中省略)

f none man/man1/zmore.1 0644 root bin
f none man/man1/znew.1 0644 root bin
f none pkginfo 0644 root bin ←削除
f none prototype 0644 root bin ←削除

ってなかんじです。この他、インストール後に手作業で設定しないと マズイ ことがある場合なんかには、その設定方法を記述したスクリプトを書いてお きましょう。このスクリプトの名前は、一般に postinstall ってしておくよ うです。んで、この postinstall のエントリを prototype に追加します。

prototype に追加
d none bin 0755 root bin
f none bin/gunzip 0755 root bin
l none bin/gzip=gunzip
f none bin/gzexe 0755 root bin
f none bin/zdiff 0755 root bin

(途中省略)

f none man/man1/zmore.1 0644 root bin
f none man/man1/znew.1 0644 root bin
i postinstall=postinstall

です。モチロン、 postinstall を使わない場合は、prototype には追加 しないんだよ。


□prototype にぢゃっかん、追加


○もう少しっ!

./prototype ファイルに必ず追加しなくっちゃいけないエントリがあります。 pkginfo のエントリっす。追加の仕方は、カンタンで、

./prototype 編集
i pkginfo=pkginfo ←追加
d none bin 0755 root bin
f none bin/gunzip 0755 root bin
l none bin/gzip=gunzip
f none bin/gzexe 0755 root bin
f none bin/zdiff 0755 root bin

(途中省略)

f none man/man1/zmore.1 0644 root bin
f none man/man1/znew.1 0644 root bin

で、おっけーです。postinstall を使う場合は、

postinstall を使う場合
i pkginfo=pkginfo
i postinstall=postinstall ←必要に応じて
f none bin/gunzip 0755 root bin
l none bin/gzip=gunzip
f none bin/gzexe 0755 root bin
f none bin/zdiff 0755 root bin

(途中省略)

と、ゆーふーに、 postinstall のエントリも追加してくらさい。


□パッケージを作るぞっ!


○ここまでできれば、作るのはカンタン

とかやると、 /tmp/gzip ってディレクトリができてませんかっ? これがパッケージの実体になります。さらに、 cpio フォーマット のファイルに変換します。

そーすると、 /tmp/gzip-1.3.pkg ってパッケージファイルができて ないかなー?あとは、compress gzip-1.3.pkg とかして、さらに ファイルサイズを小さくするもよし。あ、パッケージの追加は、 pkgadd -d gzip-1.3.pkg だよ。




go back    next
Copyright(c) ORATORIO-TANGRAM.com 2001-2007 All Rights Reserved.
Total:counter