I organize my CustomPKGs into subfolders (01, 02, etc) and in the past this worked great. I just tried building with 1.5rc1 and none of my custom packages installed.
Here is an excerpt from the onscreen information:
Working on folder 03 (11:02:25)
Copying folder ./InstallerFiles/CustomPKG/03 into the target at /private/tmp/package.pzECIL
Installing ATI9600VideoDrivers.pkg from ./InstallerFiles/CustomPKG/03 (03) inside a chroot jail
Installing CharacterPalette.pkg from ./InstallerFiles/CustomPKG/03 (03) inside a chroot jail
Installing Custom Remote Desktop Installer.mpkg from ./InstallerFiles/CustomPKG/03 (03) inside a chroot jail
Installing DeleteAdobeCaches.pkg from ./InstallerFiles/CustomPKG/03 (03) inside a chroot jail
Installing FieryCupsFilter.pkg from ./InstallerFiles/CustomPKG/03 (03) inside a chroot jail
You can see that it copied the folder over, but the individual packages were still running from their original locations – and apparently didn’t install at all.
Is there any information available on how the chroot is working and why it requires the copying of the files?
Or should I just not keep my Custom Installers in subfolders?
I haven’t built any images with the latest build yet, but have had similar issues in the past. Becoming root (sudo -s) before launching the InstaDMG script fixed the problem for me.
So your saying you put each of your individual packages inside a dmg file? I suppose that would work – but that means I have to create 61 individual dmg files…
[QUOTE][u]Quote by: mandebooks[/u][p]I organize my CustomPKGs into subfolders (01, 02, etc) and in the past this worked great. I just tried building with 1.5rc1 and none of my custom packages installed.
Here is an excerpt from the onscreen information:
Working on folder 03 (11:02:25)
Copying folder ./InstallerFiles/CustomPKG/03 into the target at /private/tmp/package.pzECIL
Installing ATI9600VideoDrivers.pkg from ./InstallerFiles/CustomPKG/03 (03) inside a chroot jail
Installing CharacterPalette.pkg from ./InstallerFiles/CustomPKG/03 (03) inside a chroot jail
Installing Custom Remote Desktop Installer.mpkg from ./InstallerFiles/CustomPKG/03 (03) inside a chroot jail
Installing DeleteAdobeCaches.pkg from ./InstallerFiles/CustomPKG/03 (03) inside a chroot jail
Installing FieryCupsFilter.pkg from ./InstallerFiles/CustomPKG/03 (03) inside a chroot jail
You can see that it copied the folder over, but the individual packages were still running from their original locations – and apparently didn’t install at all.
Is there any information available on how the chroot is working and why it requires the copying of the files?
Or should I just not keep my Custom Installers in subfolders?
Thanks for any information.[/p][/QUOTE]
Wait. You have multiple pkg files inside a single subfolder within CustomPKG? I don’t think that’s the way it’s intended to work…. I think as intended, you should have a series of numbered folders within CustomPKG. Inside each numbered folder you have a single .pkg or .mpkg.
What I would recommend in those folders where you need multiple pkg files is to combine them into a .mpkg, with all of the pkg’s required.
I tried it with all my .pkg files in subfolders – no luck. Tried it running as root and still no luck.
I also found an additional log file and got this data out:
Copying folder ./InstallerFiles/CustomPKG/27 into the target at /private/tmp/package.qL2V46
Installing EasyFind.pkg from ./InstallerFiles/CustomPKG/27 (27) inside a chroot jail
installer: Error verifying EasyFind package contents: *** -[NSCFString substringFromIndex:]: Range or index out of bounds
Removing the copied folder: ./tmp/mount_folder.ZemiTx/mount_point.xTdMgF/private/tmp/package.qL2V46
As you can see there is a clear error in “verifying the package” I get this same error for all but a few of my .pkg files. Even the ones that don’t give me this error are not installing properly – I think something is causing the installer.app to go a bit nuts earlier on, but I don’t know.
[size=18]So – I wanted to pose my original question – HOW DOES THE CHROOT JAIL WORK? Can someone please post a document on the process and the methodology used for the CHROOT JAIL?[/size]
Sorry for being so forceful, but my original question was never answered or addressed.
[quote]The chroot command changes its root directory to the supplied directory
newroot and exec’s command, if supplied, or an interactive copy of your
shell.[/quote]
In short, it prevents the installer or any other program to write outside the sparseimage.
Ok, so thats the command, but how about its implementation within the InstaDMG process? If it changes the root why do the files have to be copied into a temp directory on the new disk image? I am trying to understand its implementation and why that would be causing my packages to fail with the new chroot option – even though they work just fine if I turn off the chroot jail.
In short, it prevents the installer or any other program to [b]read or write [/b] outside the sparseimage. This is the reason why the packages have to be copied onto the sparseimage.
This also means that if your packages depend on something that is not available within the package or on the sparseimage, the installation will fail.
So if a package has a preflight script it it that calls for a rm command then that command is going to fail since it can’t run the command from within the sparse-image? This sounds like an in credibly annoying item that needs a seperate implementation item (second folder for packages that you want run within a chroot jail) that way its easy to take advatage of when needed, but also easily avoided.
Comments are closed