Want to create Multi Platform installers, troubleshoot installers, and want to develop custom code.....
Monday, April 27, 2009
HTML Display in InstallAnywhere swing Panel.
Some more InDepth to segmentation fault on UNICES..
- Use gdb to track exact source of problem.
- Make sure correct hardware installed and configured.
- Always apply all patches and use updated system.
- Make sure all dependencies installed inside jail.
- Turn on core dumping for supported services such as Apache.
- Use strace which is a useful diagnostic, instructional, and debugging tool.
- Google and find out if there is a solution to problem.
- Fix your C program for logical errors such as pointer, null pointer, arrays and so on.
- Analyze core dump file generated by your system using gdb
Re: Segmentation Fault
Hi,Generally why does segmentation fault appears in Linux machine when an installer with a huge payload is run. But this does not happen while running a simple project in the same machine with all the java compatibility. I believe this fault will appear when the rules of the Linux machine are violated for exampe: trying to access a resource in the machine which is not available. So, does the large installer tries the scenario like what i have mentioned above? Please explain to me.Thanks for your time.Tony
--
FreshersDirect Team
http://www.freshersdirect.com
Saturday, April 18, 2009
Re: InstallAnywhere details
The reason being, execute run script uses Java Process.getRuntime.exec() thread to run the batch or command passed. Here Process.waitfor() method is used, if the underlying script uses @echo ON inside the script the behavior is very abrupt. Only the first script's 1 to 6th or 7th steps are run after that the script keeps on waiting thereby making the installation hang.
I would suggest to use your own plugin for executing command or batch specifically when the command or script calls another shell to execute the sequence of steps.
In the plugin spawn a thead and dont wait for the thread to complete. here the disadvantage is you will not get the complete the stderr, stdout till the theread completes but its a nice tradeoff done where you want to set gurentee for the underlying command to complete sucessfully.
I have developed a plugin which you can use if you want.
Hi,I am a beginner with IA and I want to know about the Execute Script/Batch action and how it works. I believe the exit code in this action is only for the action and not for the script or the commands it executes. So, how can i get an exit code for the executed script? Please explain to me in a detailed manner.ThanksTony
Friday, April 17, 2009
Re: Help
Wait I will explain in detail
If your requirement is just to find the end users machine architecture
either run a custom java code or run a execute command utility in IA found under Add Action --> General Tab,
The command to run in uname -m, it will return u i386 which is 32 bit,
To find out more about various OS check out this link for determining the OS architecture, http://www.stata.com/support/faqs/win/64bit.html
Regarding running this write a Java class which would determine the OS version and subsiquently the OS architecture. Store the result in a IA variable
Code snippet
<>
class MyCustomCode(InstallerProxy ip) extends IACustomCode
{
/* Run the logic to store the OS tye in a variable say MyOS */
ip.substitute("OS_TYP", MyOS) // here the value of MyOS determined earlier is stored in a IA valiable $OS_TYP$
}
Inside the Install action under ur IDE you can add a compare installanywhere action to install any specific file or folder
e.g $OS_TYP$ equals 64bit then install else move ahead.
I do not have an IDE infront of me right now otherwise I would have sent you some screen shots.
If you are still face the issue I will create a sample project for you...for this logic
****************************************************************************************************
I am trying to download the enterprise version.
But there is still one doubt which is - the panel "get user input" is for the end user not for the developer (who is using InstallAnywhere for making installer e.g. me).
Can u throw some light on it please???
Actually I want InstallAnywehre to prompt me (developer) for taking the input as 32 bit or 64 bit at the time of building the project as shown below as per the requirement of the end user.
Thursday, April 16, 2009
An issue with 32 bit and 64 machine
Problem :
Installerwhich build the application for multiple platforms (targeting Linux, AIX, HP-UX, Solaris and Windows).My application has binaries for above 5 platforms each of 32bit and 64bit (so kind of 10 platforms).
I have a directory structure like below
Application
|
|-----Linux
| |-Linux32
| |-Linux64
|
|-----AIX
| |-AIX32
| |-AIX64
|
|-----HP-UX
| |-HP-UX32
| |-HP-UX64
|
|-----Solaris
| |-Solaris32
| |-Solaris64
|
|-----Windows
| |-Windows32
| |-Windows64
|
Now what required is when I build as shown below my application and check the Linux box it should prompt me to take input as "Linux32" or "Linux64" (user input) so that the Linux installer of 32bit or 64bit is built.
Solution :
Its quite easy to do that, installanywhere has an inbuild functionality to check the OS architecture. You can store the OS architecture in the IA variable and implement your logic once you are known to end users OS architecture.
You will find this feature in Organization settings.
InstallAnywhere buildoutputs are independent to platform architecture, you can build your application for any desired platform with or without VM and run it. At the run time have a user input panel or at rutime decide the architecture of the user machine and cotinue with your installation logic.
Like this
Application ----
Folder 1 <Only if 32 bit>
Folder 2 <Only if 64 bit>
In the install section you can put a rule of compare installAnywhere variable so that it gets installed only when the rule is met.