Linux Tips

InstallShieldのキャビネットファイルを展開するには

北浦訓行
2006/3/23

 Windowsのキャビネットファイル(CAB)を展開するにはで説明したcabextractでは、展開できないCABファイルが存在する。それは、Windows用のインストーラ開発ツールとして長い歴史を持っているInstallShieldのキャビネットファイルだ。

 InstallShieldで作成されたCABファイルをcabextractで一覧表示または展開しようとすると、以下のようなエラーが発生する。

$ cabextract -l data1.cab
data1.cab: WARNING; found InstallShield header. This is probably 
an InstallShield file.  Use UNSHIELD (http://synce.sf.net) 
to unpack it. data1.cab: no valid cabinets found

All done, errors in processing 1 file(s)

 InstallShieldのCABファイルを展開する場合は、「Unshield」というツールを使う必要がある。Unshieldのtarボールは、http://synce.sourceforge.net/synce/unshield.phpのリンクからダウンロードできる。Fedora Core 4の場合は、Fedora Exrasにパッケージが用意されているので、以下のコマンドでインストールできる。

# yum install unshield

 Unshieldの使用法は、lhaとよく似ている。キャビネットファイルを展開する場合は、xオプションを指定する。

$ unshield x data1.cab
(省略)
  extracting: ./_Engine_SelfRegistering/iuser.dll
  extracting: ./_Engine_Kernel_Placeholder/iKernel.exe
 --------  -------
          12 files

 また、-dオプションで展開するディレクトリを指定することも可能だ。指定されたディレクトリは自動作成される。

$ unshield -d tmp x data1.cab
(省略)
  extracting: tmp/_Engine_SelfRegistering/iuser.dll
  extracting: tmp/_Engine_Kernel_Placeholder/iKernel.exe
 --------  -------
          12 files

 キャビネットファイルにどのようなファイルが入っているかを調べるには、lオプションを指定する。

$ unshield l data1.cab
Cabinet: data1.cab
   595800  Manual Files/hypra10green.lin
   881470  Manual Files/bdic
    31240  Manual Files/c_tbl.bin
(省略)

 Unshieldを使っていくつかInstallShieldのキャビネットファイルを展開してみたが、展開できなかったり、ファイルの一覧が表示できないものがあった。また、ファイルの一覧表示には問題ないものの、展開時に一部のファイルにエラーが出るものもあった。少なくとも現時点では、Unshieldといえども完全とはいかないようだ。

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間