I'm trying to create a simple installer which includes the entire directory tree. The directory has about 48000 files, 9400 folders, 3.38GB total in size. My project just has one component which points to the top-level directory. The installbuild reports a "Fatal Error in Installer" - "unable to alloc 547138217 bytes".

Initially I used a machine that has 8GB ram with 4GB available. Later I used a machine that has 73GB ram with 63GB available, but got the same error, and almost the same number bytes (on 8GB machine, it says "unable to alloc 547083421 bytes".

Is there a limitation with InstallBuilder as how many files/folders it can build? I'm using BitRock InstallBuilder for Qt 8.2.0 (Professional evaluation version)

asked 12 May '12, 04:00

gt8967884's gravatar image

gt8967884
101747678
accept rate: 12%


The limit for output size of an installer is 2GB. For some platforms (such as Windows), this is the maximum file size for a binary file, so in general it is not a good idea to create native installers that are more than 2GB in size.

What you can do is use CDROM builds, where the installer binaries do not contain payload and all the files to be distributed can be packed in a single dist file. You can simply set media size appropriately - for example to 20GB:

<project>
  ...
  <compressPackedFiles>1</compressPackedFiles>
  <cdromFirstDiskSize>20000000000</cdromFirstDiskSize>
  ...
</project>

The <compressPackedFiles> option enables compressing all files into the dist file.

You can find more information in CDROM Installers section of InstallBuilder User Guide.

Another alternative is to use downloadable components - since their contents is also not included in the installer, you can create some or all of the content downloadable. This would cause the installer binary to be smaller (i.e. below 2GB) and allow things such as optional content to be downloadable. It is documented in Downloadable Components section of InstallBuilder User Guide.

Choosing between CDROM, downloadable components or using both solutions depends on how your customers receive your application - CDROM mode is better for shipping on a physical media (i.e. CD, DVD Blu-Ray disks or USB drives), downloadable components are more natural for applications that are downloaded.

link

answered 14 May '12, 05:07

wojciechka's gravatar image

wojciechka ♦♦
7.8k61122
accept rate: 26%

For my app the total compressed size is only 430MB, so it is not the output size that is caused the problem. It is definitely due to the number of files or folders. InstallBuilder can't handle that large number of files or folders?

I tried the CDROM mode, it worked, but it is not ideal as it is generating multiple files. We're not shipping DVD, so a single-file installer is preferred.

"downloadable components" is a good solution, but customers often have different firewall settings, I don't think InstallBuilder can handle all the variants of firewalls. What kind of proxies does IB support?

(14 May '12, 18:02) gt8967884

As for number of files, it should not be an issue. We have successfully run InstallBuilder with much more files (i.e. over 100000 files). Are you using LZMA or ZIP compression? Does changing the option from one to the other change the behavior?

Are you building from GUI? If so, can you try building from CLI (i.e. bin/builder build path/to/project.xml or binbuilder-cli.exe on Windows) and see if this changes the behavior?

Also, can you try the CD-ROM mode or moving all components as downloadable to see if this resolves the issue?

(15 May '12, 04:28) wojciechka ♦♦

If it is not number of files, it may be the number of folders that caused the crash. I'm using LZMA. Will try ZIP. I tried both GUI and CLI, it gave the same crash. As I said earlier "downloadable components" probably is not a good choice as our customers often have complex firewall settings, are you sure InstallBuilder can support all the firewalls?

(15 May '12, 14:18) gt8967884

Tried with ZIP compression, it worked, which means your LZMA compression has a bug.

(15 May '12, 19:07) gt8967884

Could you give us more information about platform you built on? If you are using Linux, is it 32bit or 64bit Linux? Is the InstallBuilder 32bit or 64bit builder?

Could you also send a full file list (result of find -ls command or ls -lR) contact us on support@bitrock.com so we can try to reproduce it?

(16 May '12, 05:00) wojciechka ♦♦

I'm using WinXP 64-bit.

(18 May '12, 15:27) gt8967884

I used WinXP 64bit.

(18 May '12, 21:11) gt8967884

In that case, ls and find commands are not available. However, can you send us a result of dir /S command for the directory you are packaging to support@bitrock.com? This will list that directory and all of its subdirectories.

Unfortunately without being able to reproduce the issue, we are not able to proceed with this.

(21 May '12, 04:02) wojciechka ♦♦

Just sent the entire filelist generated from "find" command to support@bitrock.com. Please check. Thanks.

(21 May '12, 14:45) gt8967884
showing 5 of 9 show all
Your answer
toggle preview

Follow this question

By Email:

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

By RSS:

Answers

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

Tags:

×6
×3
×2

Asked: 12 May '12, 04:00

Seen: 1,611 times

Last updated: 21 May '12, 14:45