Most people will find that installing CAS 3.0.x on RHEL 5 isn't initially as straightforward as they hoped. This is largely in part due to Redhat not officially supporting either the Sun Java Development Kit (JDK). By default, Redhat has bundled RHEL 5 with the GNU Compiler for Java (GCJ) from JPackage, which is equivalent to J2SE 1.4.2 as of July 2007. This can cause code compiled by newer versions of Sun JDK to be incompatible with GCJ. However, it is not only possible but fairly easy to get CAS 3.0.x deployed on RHEL 5.
NOTE: This walkthrough involves the use of precompiled Sun Java 6 and Apache Tomcat 5.5.x binaries rather than keeping RHEL 5 in sync with yum repositories.
NOTE: You can avoid step 1, 3, 4 and 5 and keep your Tomcat package in sync with the Redhat yum repo. However you'll end up with a somewhat mixed environment that may cause some issues. See http://www.ja-sig.org/wiki/display/CASUM/Switching+to+a+Sun+JVM+in+RHEL.
Step 1: Remove pre-installed version of Apache Tomcat 5.5.x
If your installation of RHEL 5 has Apache Tomcat 5.5.x installed by default, then it must be removed. This can be done easily through yum as RHEL 5 saw Redhat replacing up2date with yum as the preferred package management tool.
[root@localhost ~]# yum list installed | grep tomcat
tomcat5.i386 5.5.23-0jpp.1.0.4.el5 rhel-i386-server
tomcat5-common-lib.i386 5.5.23-0jpp.1.0.4.el5 rhel-i386-server
tomcat5-jasper.i386 5.5.23-0jpp.1.0.4.el5 rhel-i386-server
tomcat5-jsp-2.0-api.i386 5.5.23-0jpp.1.0.4.el5 rhel-i386-server
tomcat5-server-lib.i386 5.5.23-0jpp.1.0.4.el5 rhel-i386-server
tomcat5-servlet-2.4-api.i386 5.5.23-0jpp.1.0.4.el5 rhel-i386-server
[root@localhost ~]# yum remove tomcat5.i386
Loading "installonlyn" plugin
Loading "rhnplugin" plugin
Setting up Remove Process
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
...
--> Running transaction check
Setting up repositories
rhel-i386-server-5 100% |=========================| 1.4 kB 00:00
Reading repository metadata in from local files
...
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Removing:
tomcat5 i386 5.5.23-0jpp.1.0.4.el5 rhel-i386-server-5 335 k
Removing for dependencies:
geronimo-specs i386 1.0-0.M2.2jpp.12 rhel-i386-server-5 230 k
geronimo-specs-compat i386 1.0-0.M2.2jpp.12 rhel-i386-server-5 5.5 k
jakarta-commons-fileupload i386 1:1.0-6jpp.1 rhel-i386-server-5 48 k
tomcat5-common-lib i386 5.5.23-0jpp.1.0.4.el5 rhel-i386-server-5 196 k
tomcat5-jasper i386 5.5.23-0jpp.1.0.4.el5 rhel-i386-server-5 981 k
tomcat5-jsp-2.0-api i386 5.5.23-0jpp.1.0.4.el5 rhel-i386-server-5 93 k
tomcat5-server-lib i386 5.5.23-0jpp.1.0.4.el5 rhel-i386-server-5 3.6 M
tomcat5-servlet-2.4-api i386 5.5.23-0jpp.1.0.4.el5 rhel-i386-server-5 150 k
Transaction Summary
=============================================================================
Install 0 Package(s)
Update 0 Package(s)
Remove 9 Package(s)
Is this ok [y/N]:
Once Tomcat is removed, then we can move onto setting up our Sun Java environment!
Step 2: Download and install Sun JDK
NOTE: If you are trying to install the Sun JDK on a remote server, then you will have to download the JDK through a text web browser such as elinks, which is available through yum and usually installed by default. If this is not an option, then you can always download it on another computer and FTP it to the remote server.
In order to download a version of Sun JDK, navigate to Sun's Java website (http://java.sun.com/) and choose either the Java Standard Edition (Java SE) or Java Enterprise Edition (Java EE). After agreeing to Sun's licensing agreement, download the Linux RPM in self-extracting file (jdk-6u2-linux-i586-rpm.bin).
Once you have downloaded the necessary file to the machine it will be installed upon, we can begin the installation process. The RPM must be executable in order for it to be installed, so chmod in the example below and execute the RPM. Several pages of licensing terms will be displayed which you must agree to abide by before the JDK will be installed. By default, the JDK will be installed under the /usr/java directory with sym links to the version installed.
[root@localhost ~]# chmod 755 jdk-6u2-linux-i586-rpm.bin
[root@localhost ~]# ./jdk-6u2-linux-i586-rpm.bin
... Sun JDK installation licensing terms and installation dialog
[root@localhost ~]# cd /usr/java
[root@localhost java]# ls -l
lrwxrwxrwx 1 root root 16 Jun 21 14:56 default -> /usr/java/latest
drwxr-xr-x 9 root root 4096 Jul 26 08:35 jdk1.6.0_02
lrwxrwxrwx 1 root root 21 Jul 26 08:36 latest -> /usr/java/jdk1.6.0_02
[root@localhost java] #
Now that the Sun JDK is installed, we need to set up the necessary environment variables for Java and Tomcat for all users.
Step 3: Set up necessary environment variables
There are two main reasons why we need to set up environment variables for Java:
- Ensure that the Sun JDK executables are used instead of the GCJ executables
- Many Java applications like Apache Tomcat and Ant rely upon standard environment variables for locating the installed package
To set up environment variables for all users, we will edit /etc/profile which affects all users. Open your favorite text or line editor (shameless plug for vim) and add the following block at the top of the file:
export JAVA_HOME=/usr/java/latest
export JRE_HOME=/usr/java/latest/jre
export ANT_HOME=/usr/local/ant
export CATALINA_HOME=/usr/local/tomcat
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH