トップページ » Solaris10 その他 » pkgtransコマンドでパッケージのフォーマット変換
カテゴリー
My Yahoo!に追加
Sun社提供情報
Solarisパッケージダウンロード
Sunマシンは買うには
blogs.sun.com
お勧めサイト
プライベートリンク

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)を指定することで逆変換も簡単に行える。

Solaris10 その他のその他のリンク

Solaris系技術トレーニング一覧

Solaris10システム管理基本コース
Solaris10ネットワーク・インターネットサーバー管理コース
セキュリティ・パフォーマンス管理・トラブルシューティング等
Sun Cluster、ボリューム管理ソフトウェア
仮想化技術全般
シンクライアント、SunRay、デスクトップソフトウェア
アイデンティティマネージメントサービス
アプリケーションサーバーとWebポータル
サーバー(ハードウェア)メンテナンス
Sun Java CAPS
MySQL