A tool to unpack installers created by Inno Setup
Inno Setup is a tool to create installers for Microsoft Windows applications.
innoextract allows to extract such installers under non-windows systems without running the actual installer using Wine.
innoextract currently supports installers created by Inno Setup 1.2.10 to 5.5.4.
I originally created
innoextract as a way to extract GOG.com installers and Arx Fatalis patches without relying on Wine (for the Arx Libertatis project). However,
innoextract should be able to extract all installers that were created by Inno Setup. See the list of limitations below.
- Improved compatibility with Windows™ (MinGW and MSVC), Mac OS X and FreeBSD systems
- Fixed extracting very large installers with 32-bit builds
- Added support for preserving timestamps of extracted files (enabled by default)
-d) command-line options
- Various bug fixes and tweaks
The current version of
innoextract is 1.4 (changelog):
innoextract Source Code
innoextract Windows Binaries
Mac OS XThere are no pre-built
innoextractbinaries for OS X.
You can build it yourself by downloading the source code and then following these instructions.
Linux and FreeBSD Packages
Here is a list of
innoextract packages for various Linux distributions: (installation instructions)
|ALT Linux||Sisyphus repository||innoextract||1.4||distro|
|Arch Linux||Arch User Repository||innoextract||1.4||user||Instructions|
|Chakra||Chakra Community Repo||innoextract||1.4||user||Instructions|
|Debian stable (6, 7)||home:dscharrer on OBS||innoextract||1.4||own||Instructions|
|Debian 7 (wheezy)||main||innoextract||1.2+git20120504||distro||Instructions|
|Debian testing (jessie)||main||innoextract||1.3||distro||Instructions|
|Debian unstable (sid)||main||innoextract||1.3||distro||Instructions|
|Fedora||home:dscharrer on OBS||innoextract||1.4||own||Instructions|
|Gentoo Linux||portage tree||innoextract||1.4||distro||Instructions|
|openSUSE||home:dscharrer on OBS||innoextract||1.4||own||Instructions|
|openSUSE||Archiving on OBS||innoextract||1.4||distro||Instructions|
|Ubuntu 12.10 (quantal)||universe||innoextract||1.2+git20120504||distro||Instructions|
|Ubuntu 13.04 (raring)||universe||innoextract||1.3||distro||Instructions|
|Ubuntu 13.10 (saucy)||universe||innoextract||1.3||distro||Instructions|
If your favorite distribution is not listed here, first check the appropriate repositories - maybe someone already created a package for your distribution.
If you create your own packages or find one that isn't listed here, please let me know so that I can add them.
For distributions where no package is available, you can either build from source code or use the following pre-build binaries. While these should work on any modern x86 or amd64 Linux distribution, using a distribution-specific package, if available, is recommended for better integration with the rest of the system.
innoextract Linux Binaries
innoextract FreeBSD Binaries
The above Linux package also includes an experimental ARMELv6j+harfloat+vfp binary - this should for example run on the Raspberry Pi.
The FreeBSD binaries are compiled for FreeBSD 9.1, but will likely also work on older versions.
To extract a setup file to the current directory run:
$ innoextract <file>
A list of available options can be retrieved using
$ innoextract --help
Documentation is also available as a man page:
$ man 1 innoextract
New Inno Setup versions often change the data format, so innoextract cannot provide good future compatibility. The following table lists the compatible versions:
|Inno Setup 5.5.0 to 5.5.4||innoextract 1.3+|
|Inno Setup 1.2.10 to 5.4.3||innoextract 1.0+|
GOG.com installers with a 2.x.x version number on the download page or in the filename use Inno Setup 5.5.0 and cannot be extracted by innoextract 1.2 and older. Older installers use Inno Setup 5.2.3 and usually have no version number in the filename.
innoextractcurrently only supports extracting all the data. There is no support for extracting individual files or components and limited support for extracting language-specific files.
- Included scripts and checks are not executed.
- The mapping from Inno Setup variables like the application directory to subdirectories is hard-coded.
innoextractdoes not check if an installer includes multiple files with the same name and will continually overwrite the destination file when extracting.
- Names for data slice/disk files in multi-file installers must follow the standard naming scheme.
- Encrypted installers are not supported.
Also see the list of planned/requested enhancements on the issue tracker.
A perhaps more complete, but Windows-only, tool to extract Inno Setup files is
- source code repository on GitHub
- ohloh source code statistics
- build logs
- Travis CI page
- developer documentation
- launchpad project