Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
innoextract(1)		    General Commands Manual		innoextract(1)

NAME
       innoextract - tool to extract installers	created	by Inno	Setup

SYNOPSIS
       innoextract [--extract] [--lowercase] [options] [--] installers ...

       innoextract --list [options] [--] installers ...

       innoextract --test [options] [--] installers ...

DESCRIPTION
       innoextract is a	tool that can extract installer	executables created by
       Inno Setup.

       innoextract will	extract	files from installers specified	on the command
       line.

       To  extract  a  multi-part installer with external data files, only the
       executable (.exe) file needs to be given	as an argument to innoextract.

OPTIONS	SUMMARY
       Here is a short summary of the options available	in innoextract.	Please
       refer to	the detailed  documentation below for a	complete description.

       Generic options:
	       -h --help	       Show supported options
	       -v --version	       Print version information
		  --license	       Show license information

       Actions:
	       -t --test	       Only verify checksums, don't write anything
	       -e --extract	       Extract files (default action)
	       -l --list	       Only list files,	don't write anything
		  --list-languages     List languages supported	by the installer
		  --gog-game-id	       Determine the GOG.com game ID for this installer

       Modifiers:
		  --collisions ACTION  How to handle duplicate files
		  --default-language   Default language	for renaming
		  --dump	       Dump contents without converting	filenames
	       -L --lowercase	       Convert extracted filenames to lower-case
	       -T --timestamps TZ      Timezone	for file times or "local" or "none"
	       -d --output-dir DIR     Extract files into the given directory
	       -g --gog		       Process additional archives from	GOG.com	installers

       Filters:
	       -m --exclude-temp       Don't extract temporary files
		  --language LANG      Extract only files for this language
		  --language-only      Only extract language-specific files
	       -I --include EXPR       Extract only files that match this path

       Display options:
	       -q --quiet	       Output less information
	       -s --silent	       Output only error/warning information
	       --no-warn-unused	       Don't warn on unused .bin files
	       -c --color[=ENABLE]     Enable/disable color output
	       -p --progress[=ENABLE]  Enable/disable the progress bar

OPTIONS
       --     Treat  all arguments after this one as files, even if they begin
	      with a dash.

       --collisions ACTION
	      Inno Setup installers can	contain	duplicate files	with the  same
	      name.  This option tells innoextract what	to do when such	a col-
	      lisions is encountered. Valid actions are:

	      "overwrite"
		     Extract only one of the colliding files.  The  choice  is
		     done  similar  to	how Inno Setup overwrites files	during
		     installation. This	is the default.

	      "rename"
		     Rename files that would be	overwritten using  the	"over-
		     write"  action  by	 appending  a  suffix comprised	of the
		     file's language, the component it	belongs	 to  and/or  a
		     number  to	 make the filename unique. The language	suffix
		     (if applicable) is	also appended to the default file that
		     would have	been extracted with the	"overwrite" action.

	      "rename-all"
		     Rename  all  colliding  files  by appending a suffix com-
		     prised of the file's language, the	component  it  belongs
		     to	 and/or	a number to make the filename unique. The com-
		     plete suffix is appended to both files  that  would  have
		     been  overwritten	using  the  "overwrite"	 action	and to
		     those that	would have overwritten other files.

	      "error"
		     Exit when a collision is detected.

	      Rename rules:

	      1. If the	component is not the same for all files	in the	colli-
	      sion  set	 (all  files  with  the	 same  filename), "#" (without
	      quotes) followed by the component	id is appended	to  all	 files
	      that are specific	to a single component.

	      2.  If  the language is not the same for all files in the	colli-
	      sion set,	"@" (without quotes) followed by the  language	id  is
	      appended	to  all	 files that are	specific to a single component
	      unless that language matches the default language	 specified  by
	      the  --default-language. While the suffix	is omitted for the de-
	      fault language, no numbered suffix is added in it's place	unless
	      needed to	make the filename unique.

	      3. If no suffix was added	by the previous	steps, or if the file-
	      name is not yet unique, "$" (without  quotes)  followed  by  the
	      lowest  integer  (starting  at 0)	to make	the filename unique is
	      appended.

	      With the "rename"	action,	steps 1	and  3	are  only  applied  to
	      files that would have been overwritten by	the "overwrite"	action
	      while "rename-all" applies them to all files  in	the  collision
	      set.

       --default-language LANG
	      Set a language as	the default.

	      With  --collisions=overwrite  (the default) this will change the
	      choice of	which file to keep to always  prefer  the  given  lan-
	      guage.  In effect, --default-language behaves almost like	--lan-
	      guage, except that files are extracted for all languages if they
	      have different names.

	      When  using  the	--collisions=rename option, --default-language
	      chooses a	language for which the files should keep the  original
	      name if possible.

       -c, --color[=ENABLE]
	      By  default  innoextract will try	to detect if the terminal sup-
	      ports shell escape codes and enable or disable color output  ac-
	      cordingly.  Specifically,	 colors	will be	enabled	if both	stdout
	      and stderr point to a TTY	and the	TERM environment  variable  is
	      not set to "dumb". Pass 1	or true	to --color to force color out-
	      put. Pass	0 or false to never output color codes.

       --dump Don't convert Windows paths to UNIX paths	and  don't  substitute
	      constants	in paths.

	      When combining --dump with --extract innoextract will not	ensure
	      that the paths don't point outside  the  destination  directory.
	      Use this option with caution when	handling untrusted files.

       -m, --exclude-temp
	      Don't  extract  files that would have been deleted at the	end of
	      the install process. Such	files are marked with  [temp]  in  the
	      file listing.

	      This option takes	precedence over	--include and --language: tem-
	      porary files are never extracted when using the  --exclude-temp,
	      even if they match the selected language or include expressions.

       -e, --extract
	      Extract  all  files to the current directory. This action	is en-
	      abled by default,	unless either --list or	 --extract  is	speci-
	      fied. You	may only specify one of	--extract and --test.

       -g, --gog
	      Try to process additional	.bin files that	have the same basename
	      as the setup but are not actually	part of	 the  Inno  Setup  in-
	      staller.	This is	the case for newer multi-part GOG.com install-
	      ers where	these .bin files are RAR archives, potential encrypted
	      with  the	MD5 checksum of	the game ID (see the --gog-game-id op-
	      tion).

	      Extracting these RAR archives requires rar, unrar	 or  lsar/unar
	      command-line utilities to	be in the PATH.

	      The  --list,  --test,  --extract	and  --output-dir  options are
	      passed along to unrar/unar, but other options may	be ignored for
	      the  RAR files. For multi-part RAR archives, the --test requires
	      a	writable output	directory for temporary	files.

	      Note that	is option is geared towards GOG.com installers.	 Other
	      installers  may  come  be	bundled	with different extraneous .bin
	      which this option	might not be able to handle.

       --gog-game-id
	      Determine	the ID used by GOG.com for the game contained in  this
	      installer.  This	will  only  work with Galaxy-ready GOG.com in-
	      stallers.

	      This option can be combined with --silent	to print only the game
	      ID  without  additional  syntax  that  would make	consumption by
	      other scripts harder.

	      The --gog-game-id	action can be combined	with  --list,  --test,
	      --extract	and/or --list-languages. If --silent and --gog-game-id
	      are combined with	--list and/or --list-languages,	 the  game  ID
	      (or  an  empty line) will	be printed on it's own line before the
	      file list	but after the language list.

	      For newer	multi-part GOG.com installers the .bin files  are  not
	      part  of	the Inno Setup installer but instead are RAR archives.
	      Some of these RAR	files are encrypted, with the  password	 being
	      the MD5 checksum of the game ID:

		innoextract  --gog-game-id  --silent  setup_....exe | md5sum |
	      cut -d ' ' -f 1

       -h, --help
	      Show a list of the supported options.

       -I, --include EXPR
	      If this option is	specified, innoextract will only process files
	      whose  path  matches EXPR. The expression	can be either a	single
	      path component (a	file or	directory name)	or a series of succes-
	      sive  path components joined by the OS path separator (\ on Win-
	      dows, / elsewhere).

	      The expression is	always matched against one or more  full  path
	      components.  Filtering  by  parts	 of filenames is currently not
	      supported. Matching is done case-insensitively.

	      EXPR may contain one leading path	separator, in which  case  the
	      rest of the expression is	matched	against	the start of the path.
	      Otherwise, the expression	is matched against  any	 part  of  the
	      path.

	      The --include option may be repeated in order allow files	match-
	      ing against one of multiple patterns. If --include is not	 used,
	      all files	are processed.

       --language LANG
	      Extract  only language-independent files and files for the given
	      language.	By default all files are extracted.

	      To also skip language-independent	 files,	 combine  this	option
	      with --language-only.

       --language-only
	      Only extract files that are language-specific.

	      This  option can be combined with	--language to only extract the
	      files of a specific language.

       --license
	      Show license information.

       -l, --list
	      List files contained in the installer  but  don't	 extract  any-
	      thing.

	      This  option  can	 be  combined  with --silent to	print only the
	      names of the contained files (one	per line)  without  additional
	      syntax that would	make consumption by other scripts harder.

	      The  --list  action  can	be  combined  with  --test, --extract,
	      --list-languages and/or --gog-game-id to display	the  names  of
	      the files	as they	are extracted even with	--silent.

       --list-languages
	      List languages supported by the installer.

	      This  option  can	 be  combined  with --silent to	print only the
	      identifiers of the languages (one	per line) followed by a	 space
	      and then the language name, without additional syntax that would
	      make consumption by other	scripts	harder.

	      The --list-languages action can be combined with --list, --test,
	      --extract	 and/or	 --gog-game-id	to  display the	available lan-
	      guages before doing anything else. If --silent  and  --list-lan-
	      guages  are  combined with --list	and/or --gog-game-id, the lan-
	      guages list will be terminated with an empty line	and will  pre-
	      cede both	the game ID and	files list.

       -L, --lowercase
	      Convert  filenames  stored in the	installer to lower-case	before
	      extracting.

       -d, --output-dir	DIR
	      Extract all files	into the given directory. By default,  innoex-
	      tract will extract all files to the current directory.

	      If  the  specified directory does	not exist, it will be created.
	      However, the parent directory  must  exist  or  extracting  will
	      fail.

       -p, --progress[=ENABLE]
	      By  default  innoextract will try	to detect if the terminal sup-
	      ports shell escape codes and enable or disable progress bar out-
	      put  accordingly.	Pass 1 or true to --progress to	force progress
	      bar output. Pass 0 or false to never show	a progress bar.

       -q, --quiet
	      Less verbose output.

       -s, --silent
	      Don't output anything except errors and warnings unless  explic-
	      itly requested.

	      This  option can be combined with	--list to print	only the names
	      of the contained files (one per line) without additional	syntax
	      that would make consumption by other scripts harder.

       -t, --test
	      Test archive integrity but don't write any output	files. You may
	      only specify one of --extract and	--test.

       -T, --timestamps	TZ
	      Inno Setup installers can	contain	timestamps  in	both  UTC  and
	      'local' timezones.

	      The  --timestamps	 option	specifies what timezone	should be used
	      to adjust	these 'local' file times.

	      Valid values are those accepted by tzset in the  TZ  environment
	      variable,	except with the	direction of the time offset reversed:
	      both -T CET and -T GMT+1 will (when DST is in effect)  give  the
	      same result.

	      Besides timezones, two special values are	accepted:

	      "none"  Don't  preserve file times for extracted files, both for
		     UTC and 'local' timestamps. The file times	 wil  be  left
		     the way the OS set	them when creating the output files.

	      "local"  Use the system timezone for 'local' timestamps. This is
		     the normal	Inno Setup behavior, and can be	used  together
		     with the TZ environment variable.

	      The default value	for this option	is UTC,	causing	innoextract to
	      not adjust 'local' file times. File times	marked as UTC  in  the
	      Inno  Setup  file	 will never be adjusted	no matter what --time-
	      stamps is	set to.

       -v, --version
	      Print the	innoextract version number and	supported  Inno	 Setup
	      versions.

	      If combined with the --silent option, only the version number is
	      printed. Otherwise, the output will contain  the	name  (innoex-
	      tract)  followed	by  the	version	number on the first line, and,
	      unless the --quiet options is specified, the range of  suuported
	      Inno Setup installer versions on the second line.

       --no-warn-unused
	      By  default,  innoextract	 will print a warning if it encounters
	      .bin files that look like	they could be part of  the  setup  but
	      are not used. This option	disables that warning.

PATH CONSTANTS
       Paths  in Inno Setup installers can contain constants (variable or code
       references) that	are expanded at	install	time. innoextract expands  all
       such  constants	to  their name	and replaces unsafe characters with $.
       For exmaple {app} is expanded to	app while {code:Example}  is  expanded
       to code$Example.

       There  is  currently no way to configure	this expansion except for dis-
       abling it with the --dump option.

EXIT VALUES
       0      Success

       1      Syntax or	usage error

       2+     Broken or	unsupported setup file,	or input/output	error

LIMITATIONS
       There is	no support for extracting individual  components  and  limited
       support for filtering by	name.

       Included	scripts	and checks are not executed.

       The mapping from	Inno Setup constants like the application directory to
       subdirectories is hard-coded.

       Names for data slice/disk files in multi-file  installers  must	follow
       the standard naming scheme.

       Encrypted installers are	not supported.

SEE ALSO
       cabextract(1), unar(1), unrar(1), unshield(1), tzset(3)

BUGS
       Please report bugs to http://innoextract.constexpr.org/issues.

CREDITS
       innoextract  is distributed under the zlib/libpng license.  See the LI-
       CENSE file for details.

       A website is available at http://constexpr.org/innoextract/.

       This program uses the excellent lzma/xz decompression  library  written
       by Lasse	Collin.

AUTHOR
       Daniel Scharrer (daniel@constexpr.org)

1.6				  2016-03-02			innoextract(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS SUMMARY | OPTIONS | PATH CONSTANTS | EXIT VALUES | LIMITATIONS | SEE ALSO | BUGS | CREDITS | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=innoextract&sektion=1&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help