(Answer) (Category) FAQ-O-Matic : (Category) Linux- and Solaris-specific : (Category) Installation :
InstallAnywhere claims my install package is corrupt, but the package is fine.
That message is misleading. It can occur under a number of conditions.

2001-Jan-31 4:31pm gyles19@visi.com
From: Gary Sanders

Folks,

I found a problem with the JB4 _installer_.  The problem manifests
itself as an error message that your download was corrupted, but the
problem is not that the download got corrupted.  The problem is that the
InstallAnywhere script tries to use enormous block sizes, and it
corrupts the files when there isn't enough free memory available on your
system - and increasing the swap or tmp space does NOT resolve the
problem!

The InstallAnywhere installer is actually a script follwed by padding,
followed by the JVM ( as a binary, compressed, tar file ), then followed
by JB4 itself ( also a binary, compressed, tar file ).  The script
portion uses dd with a block size of 32768 to extract the binary, but
that includes some padding or the JB4 file at the end of it so they call
it again, but this time with one huge block size of approx. 16MB to trim
it to it's proper size.  The 32768 makes it really slow, because the
actual block size for most Linux systems is 1024, but it's the approx.
16MB block that "dd" or the Linux kernal barf on.

The solution is simple.  First copy your original "dd" file (
/usr/bin/dd ) to a safe location - you'll want it back later.  Then,
just for the installation of this file, replace "dd" with the script
below ( and don't forget to make it executable ( chmod +x dd )). This
script  looks at the block sizes and count passed in and determines the
total bytes desired.  Then it splits that up into blocks of 1024 with
the appropriate remainder at the end if needed.   Not only does it work,
it even runs faster since the block size is the same as that of the OS
itself.

When the install is finished, be sure to copy your original "dd" back
into place.

#!/usr/bin/perl

foreach $arg ( @ARGV ) {
    ($k,$v) = split( "=", $arg );
    $args{$k}=$v;
}

$totalBytes = $args{'bs'} * $args{'count'};
$skip = $args{'skip'} ;

open( INFILE, $args{'if'} ) || die;
open( OUTFILE, "> $args{'of'}" ) || die;

( seek( INFILE, ( $args{'skip'} * $args{'bs'} ), 0 ) || die )
    if ( $args{'skip'} > 0 );

$tbs = ( $totalBytes > 1024 )? 1024 : $totalBytes;
while ( $r = read( INFILE, $data, $tbs ) ) {
    syswrite( OUTFILE, $data, $r );
    $totalBytes -= $r;
    $tbs = ( $totalBytes > 1024 )? 1024 : $totalBytes;
}

close( INFILE ) || die;
close( OUTFILE ) || die;

2001-Jan-31 4:32pm gyles19@visi.com
[Append to This Answer]
2001-Jan-31 4:32pm
Previous: (Answer) I have Red Hat 7.0 and I'm having difficulties installing/running JBuilder/Java.
Next: (Answer) Where is Borland's Solaris Installation FAQ?
This document is: http://www.visi.com/~gyles19/cgi-bin/fom.cgi?file=77
[Search] [Appearance]
This is a Faq-O-Matic 2.709.
This FAQ administered by gyles19@visi.com.

Other JBuilder Links

Java Community
Java Tools
Code Central
JB OpenTools
Community
Recent
Threads
Borland Chat
Chat FAQ
Feature Matrices
3.0 |  3.5 |  4.0
5.0 |  6.0 |  7.0
Shop for
JBuilder
JBuilder
Downloads
and reg keys
Report Piracy
Online Manuals
4.0 |  5.0 |  6.0
7.0
Borland
DevSupport's
Bug/RFE Form

Quality Central Client
JB Patches &
Updates
JBuilder FAQs TIs
JBuilder
Newsgroups
Tamaracka's
News Archive
Mr. Haki's
JBuilder Machine
JGuru's
JBuilder FAQ
Sun's Bug
Parade
Netring Home - About - Privacy
The
JBuilder Netring Logo
The Borland JBuilder Netring by JBuilder FAQ-O-Matic
[ Join Now | List Sites | Random | << Prev | Next >> ]
[ Previous 5 Sites | Skip Previous | Skip Next | Next 5 Sites ]