2006年 6月 19日 月曜日
Messages in cipher reflected in the looking glass
(JA) Solaris pkg (Part 2) : mkpkg
ということで第2回目です。
1回目ではSolaris用pkgの作り方を簡単にまとめたわけですが、やはり面倒だなぁ…
ということでシェルスクリプトを書きました。
今回はそのお話です。^-^;
作成したシェルスクリプト群は以下からダウンロードできます。
mkpkg.zip は mkpkg, mkpinfo, mkproto の 3つのシェルスクリプトから構成されます。
それぞれの詳細は後半にありますので、そちらを参照してください。
基本的にフリーです。
たいしたシェルスクリプトでもないし、バイナリでもないので、ライセンスは不要だと思いますが、
敢えて必要というのなら、GPL(V2以降) or CDDL のメタライセンスということにでもしておいてください。^^;
mkpkgコマンドを利用することにより、第1回目で解説したパッケージの作成方法が以下のように簡単化することができます。
- バイナリの作成、(テンポラリディレクトリへの)インストール
- テンポラリディレクトリへの移動
- mkpkg コマンドの実行
たとえば、第1回目で作成した LG3D のパッケージ化はこのような感じになります。
これで lg3d-0.8.0-x86-pkg.gz というファイルが作られます。
# mkdir /tmp/work # cd /tmp/work # gunzip -c lg3d-fcs-rel-0-8-0-solaris-i86pc-0605121113.tar.gz | tar xvf - # # mkpkg lg3d-0.8.0-x86-pkg -p LG3D -n "Project Looking Glass" -v "0.8.0" \ # -a "i86pc" -b "/opt" -vd "lg3d-core team" -g
Solaris用pkg は様々な情報を組み込んだりなど、カスタマイズができますが、
もし大幅にカスタマイズしたパッケージを作成したいのでしたら、このツールは向いていませんので、
自分でがんばって書きましょう。
一応、各コマンドの使い方を載せておきます。
これらは -h オプションを付けて各コマンドを実行した際に表示します。
パッケージングしたいバイナリをインストールしたディレクトリに移動し、 このコマンドを利用することで、1ファイル化したパッケージの作成が行えます。
Usage of mkpkg
> mkpkg output [-g] [-user <username>] [-group <group>]
-p <pkg> -n <name> -v <version> -a <arch> [-c <category>]
[-b <basedir>] [-d <description>] [-vd <vendor>] [-o <flag>...]
output : output file name
[Details of Option]
-g : create gzipped package
-p <pkg> : package name (ex. SUNWgcc)
-n <name> : application name (ex. gcc)
-v <version> : application version (ex. 4.2.0)
-a <arch> : architecuture, i86pc,sun4u...
-c <category> : category of the application (ex. system, application, GNOME2)
(default = appilcation)
-b <basedir> : base directory of the application (default = /)
-d <description> : package description
-vd <vendor> : vendor name (default = unknown)
-o <flag> : if you want to add other flags, please use it
(ex. -o "SUMW_PRODNAME=SunOS" -o "SUNW_PRODVERS=5.10"
mkpkg の内部から呼び出していますが、個別に使用することも可能です。 mkpkg が使えない場合に、pkginfoのひな形を作るという場合くらいでしょうが…。
Usage of mkpinfo
> mkpinfo -p <pkg> -n <name> -v <version> -a <arch> [-c <category>]
[-b <basedir>] [-d <description>] [-vd <vendor>] [-o <flag>...]
[Details of Option]
-p <pkg> : package name (ex. SUNWgcc)
-n <name> : application name (ex. gcc)
-v <version> : application version (ex. 4.2.0)
-a <arch> : architecuture, i86pc,sun4u...
-c <category> : category of the application (ex. system, application, GNOME2)
(default = appilcation)
-b <basedir> : base directory of the application (default = /)
-d <description> : package description
-vd <vendor> : vendor name (default = unknown)
-o <flag> : if you want to add other flags, please use it
(ex. -o "SUMW_PRODNAME=SunOS" -o "SUNW_PRODVERS=5.10"
mkpkgが使えないケースでひな形を作る時くらいですね、使うとしても…。
これも mkpkg の内部から呼び出しています。
Usage of mkproto > mkproto [Option] [Details of Option] Default : User = root, Group = other -u <user> : set user -g <group> : set group
Posted at 03:00午後 6 19, 2006 by Yasuhiro Fujitsuki in Linux & Solaris |