pkgtransコマンドでパッケージのフォーマット変換
ここではpkgtransコマンドでパッケージのフォーマットを変換する方法を紹介する。
【検証環境】
#
cat /etc/release
Solaris 10 3/05 s10_74L2a SPARC
Copyright
2005 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 22 January 2005
まず、パッケージのフォーマットにはディレクトリフォーマットとストリームフォーマットの2種類がある。
Sun提供のCD-ROMなどに入っているSUNW***などというパッケージはディレクトリフォーマットである。
例えば以下がディレクトリフォーマットのパッケージだ。
#
ls -ld SUNWzsh
drwxr-xr-x 5 root
root 512 6月
15日 15:35 SUNWzsh
#
ls -l SUNWzsh
合計 122
drwxr-xr-x 2 root
root 512 6月
15日 15:35 archive
drwxr-xr-x 2 root
root 512 6月
15日 15:35 install
-rw-r--r-- 1 root
root 444 6月
15日 15:35 pkginfo
-rw-r--r-- 1 root
root 58248 6月 15日 15:35
pkgmap
drwxr-xr-x 3 root
root 512 6月
15日 15:35 reloc
そんでもって、
sunfreeware.com
から入手できるパッケージは以下のようにストリームフォーマットになっている。
#
gunzip john-1.6-sol9-sparc-local.gz
#
file *
SUNWzsh: ディレクトリ
john-1.6-sol9-sparc-local: パッケージのデータストリーム
ディレクトリフォーマットとストリームフォーマットではpkgaddコマンドの構文が微妙に違うがローカルマシンにパッケージをインストールする分には大
した違いはない。ただし、以下のようにパッケージをWebサーバーに持たせてHTTPアクセスでインストールする場合には、パッケージをストリームフォー
マットにしておく必要がある。
(⇒
カスタムJumpStartインストールでの指定方法はこちら)
#
pkgadd -d
http://instserv/pkg/john-1.6-sol9-sparc-local
というわけでパッケージの変換がしたい局面も出てくるわけだ。
そこでpkgtransコマンドの使い方の紹介する。
◆ ディレクトリフォーマット⇒ストリームフォーマット
#
pkgtrans . SUNWzsh.pkg SUNWzsh
Transferring <SUNWzsh> package instance
#
file SUNWzsh.pkg
SUNWzsh.pkg: パッケージのデータストリーム
上記のように第1引数にパッケージディレクトリ(
. )、第2引数にストリームフォーマットのパッケージ名(SUNWzsh.pkg)、第3引数にパッケー
ジ名(SUNWzsh)を指定すると、ストリームフォーマットのパッケージを作成することができる。
なお、パッケージを複数指定すると、1つのストリームフォーマットのパッケージに複数のパッケージを組み込むこともできるので、まとめてパッケージを適用
する場合に非常に便利だ。
◆ ストリームフォーマット⇒ディレクトリフォーマット
ストリームフォーマットのパッケージはテキスト形式なのでheadコマンドでファイルの先頭部分を読み取りパッケージ名を入手する。
#
head -5 john-1.6-sol9-sparc-local
# PaCkAgE DaTaStReAm
SMCjohn 1 1680
# end of header
NAME=john
ARCH=sparc
そこで以下のようにpkgtransコマンドを実行する。
#
pkgtrans
john-1.6-sol9-sparc-local . SMCjohn
Transferring <SMCjohn> package instance
#
file *
SMCjohn:
ディレクトリ
SUNWzsh: ディレクトリ
SUNWzsh.pkg: パッケージのデータストリーム
john-1.6-sol9-sparc-local: パッケージのデータストリーム
#
ls -l SMCjohn
合計 8
-rw-r--r-- 1 10
staff 171 5月 5日
2003年 pkginfo
-rw-r--r-- 1 10
staff 1309 5月 5日 2003年
pkgmap
drwxr-xr-x 4 10
staff 512 6月 15日
15:54 reloc
上記のように、第1引数にストリームフォーマットのパッケージファイル名(john-1.6-sol9-sparc-local)、第2引数にパッケージ
格納ディレクトリ(
. )、第3引数にディレクトリフォーマットのパッケージ名(SMCjohn)を指定することで逆変換も簡単に行える。
Solaris系技術トレーニング一覧