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にパッケージが用意されているので、以下のコマンドでインストールできる。
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 Squareフォーラム Linux Tipsカテゴリ別インデックス |
Linux & OSS 記事ランキング
本日
月間