Solarisのpackageを作る

日本語のよい資料が無かったので,とりあえず自分用にメモ。
1) cd ~/tmp
2) ダウンロードする
3) 展開する

tar zxvf hoge.tar.gz

4) cd hoge
5) 仮インストールする

ruby install.rb config --prefix=~/lib
ruby install.rb setup
ruby install.rb install

6) cd ~/lib/hoge
7) prototypeを作る

pkgproto > prototype

8) prototypeを編集する

  • i pkginfoを先頭に追加
  • オーナー/グループをroot/rootに変更
  • prototype自身が含まれていれば削除

9) pkginfoを作る
こんな感じのファイル。

PKG=HOGEr168-hoge
NAME=Hoge
VERSION=0.7.1
ARCH=sparc
DESC=Hoge interface for Ruby
BASEDIR=/usr/local
CLASSES=none
CATEGORY=library
VENDOR=hoge
EMAIL=ma2@hoge

BASEDIRはインストール先なので重要。たいていは/usr/localでいいはず。仮インストールのときに usr ディレクトリから作っておいて,BASEDIR=/ でもできるが,あまりやらない方がいいらしい。
10) pkgmkする

pkgmk -r . -d ~/tmp

こうすると~/tmpにpkginfoのPKGの名前のディレクトリができる。-d を省略すると /var/spool/pkgにできる(その方がいいかもしれない)
11) cd ~/tmp
12) pkgtransする

pkgtrans -s ~/tmp HOGEr168-hoge.pkg HOGEr168-hoge

pkgtrans -s [pkgmkした結果がおいてあるディレクトリ] [これから作るパッケージ名] [ディレクトリの中のどのパッケージを対象にするか]
pkgtransは,パッケージ前のディレクトリが,特定のディレクトリにたくさんおいてあるような構成を前提にしてあるらしい。
13) pkgadd する
できたパッケージを確認

pkgadd -d HOGEr168-hoge.pkg

これでインストールできたか見ればよい。