I've been trying to install 64 bit Zimbra on CentOS 64 bit too. I've tried the install and the subsequent uninstall many times. I've also gone in and looked at the install scripts and I think I understand why its not working on CentOS, why it works on Red Hat 64 bit and probably found a problem with Red Hat 64bit install too.
Zimbra uses a script called get_plat_tag.sh which identifies the OS platform. This script is located in the zcs/bin directory for the install and /opt/zimbra/libexec after the install has started. The script is used by install.sh, the core rpm as well as scripts in the /opt/zimbra directory, presumably post install.
For Red Hat (and CentOS) get_plat_tag.sh examines the file /etc/redhat-release to determine the OS and the level. It also performs a uname -i to determine if the OS is 64bit.
There actually is code in the get_plat_tag.sh to identify CentOS release 4 and even the 64bit version. The problem is that none of the other install scripts is set up to recognize a string CentOS4_64 which is what the script get_plat_tag.sh would return for 64 bit CentOS.
In fact, there even appears to be an issue in the install script for Red Hat 4 64 bit, checking prereqs. The script utilfunc.sh in zcs/util has a tag getPlatformVars() which specifies the prereqs. It checks a value of RHEL4 which works fine for non 64bit. For 64bit Red Hat the value is RHEL4_64 which fall through the logic and checks a different set of prereqs than is actually required for 64 bit Red Hat.
The issue everyone has been seeing on CentOS 64bit occurs during the install of the Zimbra core rpm.
The message is:
Quote:
Preparing packages for installation...
zimbra-core-4.0.1_GA_324.RHEL4_64-20060906185724
Error occurred during initialization of VM
Dumping a shared archive is not supported on the Server JVM.
error: %post(zimbra-core-4.0.1_GA_324.RHEL4_64-20060906185724.x86_64) scriptlet failed, exit status 1
|
In the Zimbra core rpm, get_plat_tag.sh is executed from /opt/zimbra/libexec which has been created as part of the core rpm install (we can't get at it to alter it unless we can somehow alter the rpm). There is logic in the install script that says
Quote:
# 64 bit jvm doesn't support the dump
if [ “x$PLAT” = “xRHEL4_64” ]; then
exit 0
fi
|
A string of “xCentOS_64” drops through and attempts to the jvm dump operation which fails. RedHat 64 bit meets the test and does not attempt the jvm dump.
It is easy to get Zimbra to install on CentOS 64 bit.
1. mv /etc/redhat-release /etc/redhat-release.dist (or whatever you want)
2. create a new redhat-release with the following single line
Quote:
|
Red Hat Enterprise Linux ES release 4 (Nahant Update x)
|
where x is a 2, 3, or 4. If you have CentOS 4.4 then use a 4. For the purposes of the Zimbra install it probably doesn't matter.
3.Run the Zimbra install. (If you've tried the Zimbra install before then you probably want to run a ./install.sh -u before you attempt another install).
I did it this way and Zimbra installed and has run OK on CentOS 64bit (until the next problem which I haven't hit yet).
Zimbra could fix the issue in the the get_plat_tag.sh script if they set the result of the test for CentOS release 4 to RHEL4${i} instead of CentOS${i} .
What I don't know is what other packages will be impacted by changing /etc/redhat-release.