I like the unzip action which can unzip the same zip file on both Windows and Linux, which means we only need to build the zip file once for different platforms. But the zip file's compression ratio is not as good as 7z's, so I'm wondering how soon you'll add the unzip of 7z file support.

asked 14 May '12, 15:16

gt8967884's gravatar image

accept rate: 12%

We are currently not considering adding 7z support. InstallBuilder's built-in compression uses LZMA, which is the same algorithm as 7z uses and the compression ratio is comparable. So for most customers, we recommend simply changing InstallBuilder's compression from ZIP to LZMA. It is also more convenient since it is better integrated with the installation progress bar. Is there a reason why you need to use an external archive?

If you want to ship installers for multiple platforms (i.e. on a CD/DVD or USB drive) without having to store payload multiple times, you can use the CDROM mode. You can simply enable <compressPackedFiles>, and then the CDROM mode will build setup-windows.exe, setup-linux.run (and other platform installers) as well as dist file containing payload for all platforms.

It is documented in more details in CDROM Installers section of InstallBuilder user guide.

Also, based on what you described in your additional comments, you may want to have a look ad downloadable components. It provides a way to build an installer with some of the features embedded in it (such as features all users install) and allow choosing which components should be downloaded if needed. You can choose which components are to be made downloadable and the installer will automatically download them and download only the ones that are needed/chosen by user.

Downloadable components support HTTP proxy servers, which are most common solution for locations behind firewall. It also supports username/password based authentication to the proxy server.

It is documented in more details in Downloadable components section of InstallBuilder user guide.

If you need to ship an external archive, you can ship the 7z command line tools and simply use <runProgram> to run 7z command to extract the application.


answered 15 May '12, 04:37

wojciechka's gravatar image

wojciechka ♦♦
accept rate: 26%

I need to use an external archive because our software is huge, can't fit in a single installer file. The CDROM mode doesn't have a clear separation between components. I plan to build our base software (platform dependent) into the main installer, then other feature components (platform independent) into 7z files. Customer only needs to download the main installer plus one or more feature components to make it work. They don't need to install all the features. We can ship 7z, but not sure if 7z supports all the different Linux distributions.

(15 May '12, 14:52) gt8967884

I believe 7z can be built on a platform such as RedHat9 or RHEL/CentOS 3 that is binary compatible with most platforms.

As for what you describe, in this case (if users are going to download things) it seems downloadable components are more appropriate. I have added more details to the original response I sent along with link to documentation on the subject.

(16 May '12, 04:54) wojciechka ♦♦

can the "dist" file created in CDROM mode be extracted by a different intaller? I have a main installer. Can the main installer extract the "dist" file like the "unzip" command?

(21 May '12, 18:24) gt8967884

That is also not possible. What you can do is invoke the other installer from main installer to have it extract the dist file. You can do this by using <runprogram> and passing --mode unattended --installdir "${installdir}" as <programarguments>.

(22 May '12, 03:53) wojciechka ♦♦

Have the zip/unzip utilities been enhanced to use better compression like 7z yet?

(06 Feb, 15:44) danish1
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 14 May '12, 15:16

Seen: 2,206 times

Last updated: 06 Feb, 15:44