No subject

Thu Mar 12 03:15:03 EDT 2009



cabextract is Free Software for extracting Microsoft cabinet files,
also called .CAB files, on UNIX or UNIX-like systems. cabextract is
distributed under the GPL license. It is based on the portable LGPL
libmspack library. cabextract supports all special features and all
compression formats of Microsoft cabinet files.
Quick links

Microsoft cabinets vs InstallShield cabinets

    * Bundled extras
    * Using cabextract
    * Changes since 0.6
    * FAQs
    * CAB History
    * Credits

Microsoft cabinet files are used by Microsoft and others to distribute
all kinds of data and software: core Web fonts, Longhorn videos,
operating system updates and video codecs, to give some examples.
Microsoft cabinets are also used as the installation format for
Windows CE software. Some people would pay $10.95 to extract this
format, you can have it for free.
Downloading and installing cabextract

In most cases, cabextract has already been packaged for your operating
system. You should consult your OS documentation on how to obtain and
install packages. However, as cabextract version 1.0 has only recently
been released, you may have to download the source code and compile it
yourself to get the latest version.
Platform =09Version =09Download
All: cabextract source code =091.0 =09cabextract-1.0.tar.gz
RPM-based Linux distributions
(Red Hat, SuSE, etc.) =091.0 =09cabextract-1.0-1.i386.rpm
Debian GNU/Linux =091.0 =09cabextract package
Gentoo Linux =091.0 =09cabextract package
Slackware Linux =091.0 =09cabextract package
NetBSD =091.0 =09cabextract package
FreeBSD =091.0 =09cabextract package
OpenBSD =090.6 =09cabextract package
Amiga (GeekGadgets) =090.6 =09cabextract [readme] package
BeOS =090.6 =09M$CAB Extract package
Mac OS X =090.6 =09cabextract package for Fink
Microsoft Windows=E2=84=A2 =090.6 =09cabextract package for Cygwin
HP/UX, Solaris, IRIX, ... =090.6 =09binary tarballs from wwexptools

Please let me know of any additions or changes to the list above. Old
source distributions of cabextract are still available: 0.6, 0.5, 0.4,
0.3, 0.2, 0.1.

To install an existing cabextract package, consult your operating
system's documentation. To install the RPM, use the command rpm -i
cabextract-1.0-1.i386.rpm. To install from the source code tarball:

$ gzip -cd < cabextract-1.0.tar.gz | tar xf -
$ cd cabextract-1.0
$ ./configure
$ make
# make install

More detailed instructions are included in the INSTALL file found in
the cabextract-1.0 directory.
Bundled extras

The cabextract source tarball contains extra documentation and
software that is not installed by default. If you use a
distribution-specific package, these extras may or may not be

    * doc/ja/cabextract.1: the Japanese manual page for cabextract.
    * doc/magic: Some magic entries for the file command, describing
Microsoft cabinet files, InstallShield cabinet files and Windows CE
install cabinet header files.
    * doc/wince_cab_format.html: a technical specification of the
Windows CE install cabinet file format. This is also available online.
    * src/cabinfo: A program for dumping the raw data fields of
Microsoft cabinet files.
    * src/wince_info: A perl script for dumping the raw data fields of
a Windows CE install cabinet header file.
    * src/wince_rename: A perl script for renaming the files of an
extracted Windows CE install cabinet to their true installed names,
and extracting the registry entries made by the cabinet.

Using cabextract

Enter man cabextract to read the cabextract manual page. Also, running
the cabextract command with the --help option gives a brief summary of

In regular usage, just enter cabextract and the name of the cabinet or
executable file you want to extract. cabextract will extract all files
in all cabinets to the current directory, preserving any internal
directory structure, file permissions and file dates. To list files
rather than extract them, use the --list option.

cabextract automatically searches files for embedded cabinets, and
extracts all of them. If any multi-part cabinets are present,
cabextract automatically searches for those parts and links them in.
To suppress this behaviour, use the --single option.

cabextract can repair some kinds of corrupt cabinet files. Perhaps a
better word for this is "salvage", as the corrupted data is lost
forever. Using the --fix option, lost data will be replaced with
zeroes, and cabextract will attempt to continue to later data blocks,
which are hopefully not corrupt.

You can make cabextract extract files into a specific directory with
the --directory option, and you can force extracted filenames to
lowercase with the --lowercase opetion. You can control which files
are extracted using the --filter option. For example, cabextract
--filter '*.wav' will extract only '.wav' files from
Changes since cabextract 0.6

    * The cabextract source has been refactored and rewritten into a
portable, extensible, robust library called libmspack. Now cabextract
is just a UNIX-specialised command line application using the
OS-agnostic libmspack CAB decompressor. Any developers who were
considering using cabextract in their own software should now look at
libmspack first.
    * Many bugs in the decompressers were squashed after refactoring.
More than three gigabytes of real CAB files from the wild were used in
testing. Corrupt cabinets that crashed cabextract 0.6 are now
correctly reported as corrupt, without crashing.
    * cabextract now alerts you if you try and use it to unpack
InstallShield cabinet files. This is the number one FAQ saver.
    * cabextract no longer gets "/" and "\" mixed up.
    * cabextract now ignores cabinet files listed on the command line
that have already been used as part of a multi-part set. You can now
type cabextract *.cab on a big multi-part set, cabextract will not
extract all the files several times over.
    * cabextract now lists files with the same filenames it would use
if it were extracting them. This includes always showing UNIX
directory separators in the listing.
    * cabextract now correctly lowercases cabinet files with Unicode filena=
    * cabextract has the new --filter, --single and --pipe options.
    * The cabextract package now includes experimental wince_info and
wince_rename scripts.
    * The definition of Microsoft cabinet files in doc/magic has been
fixed, and a definition of Windows CE install cabinet header files has
also been added.

Frequently Asked Questions

Q: I can't extract this DATA1.CAB file...
A: There are two different "cabinet" file formats in popular use. Some
are Microsoft cabinets, which can be unpacked with cabextract. Others
are InstallShield cabinets, which can be unpacked with unshield. You
can distinguish the two files like so:

   1. InstallShield cabinets are normally called and have a
matching data1.hdr file.
   2. InstallShield cabinets begin with the magic ID "ISc(". Microsoft
cabinets begin with the magic ID "MSCF".
   3. Unpacking an InstallShield cabinet with cabextract 0.6 gives the
error message "not a Microsoft cabinet file". cabextract 1.0 gives the
warning "WARNING; found InstallShield header. This is probably an
InstallShield file. Use UNSHIELD ( to unpack it."
and the error message "no valid cabinets found".

More information about the ut2004 mailing list