Reference documentation: [http://dspace.org/technology/system-docs/install.html]

Notes:
* The following step-by-step howto has not been tested thoroughly. If you find any problems, please refer the reference documentation above.
* Most of the installation steps are performed in shell prompt (bash).
* Please help to make corrections. (English is not my primary language)
* This line will be deleted if I finish writing this howto and testing the DSpace system. I write this howto while I am installing DSpace on my Mandriva system. If you subscribe to DSpace-Tech mailing list (dspace-tech@lists.sourceforge.net), questions, comments, corrections, etc. to the list will be appreciated.

It is assumed that
* Linux Mandriva 2007 is already installed. See: [http://www.howtoforge.com/perfect_setup_mandriva_2007]
* The system has been connected to RPM repository (eg. via FTP, by typing at prompt: urpmi.addmedia ..).
* You are familiar with bash sell and text editor vi.

Contents

Install Java Package in Mandriva

In Mandriva 2007.0, you can try Java SE Development Kit from Sun Microsystems, or a 'relatively' compatible Java package in Mandriva 2007.0. Below, the step-by-step howto for both are described. If found problems with the first, just try the second.

Install Java Package Provided by Mandriva 2007.0 Free Edition

Type the following:

urpmi java-devel

that results in the following output:

One of the following packages is needed:
1\- java-1.4.2-gcj-compat-devel-1.4.2.0-40.103.1mdv2007.0.i586 : JPackage development scriptsforGCJ (to install)
2\- kaffe-devel-1.1.8-0.20060723.1mdv2007.0.i586 : Developmentpackagewithstaticlibs and headersforkaffe (to install)
What is your choice? (1-2)

Press '1' that will result in the next choices:

One of the following packages is needed:
1\- xml-commons-resolver10-1.3.03-5.1mdv2007.0.i586 : XmlResolver 1.0 utility from xml-commons (to install)
2\- xml-commons-resolver11-1.3.03-5.1mdv2007.0.i586 : XmlResolver 1.1 utility from xml-commons (to install)
3\- xml-commons-resolver12-1.3.03-5.1mdv2007.0.i586 : XmlResolver 1.2 from xml-commons (to install)
What is your choice? (1-3)

Press '3' that will present the following choices:

One of the following packages is needed:
1\- eclipse-ecj-3.2.0-12.3mdv2007.0.i586 : EclipseCompilerforJava (to install)
2\- ecj-bootstrap-3.2.0-2mdv2007.0.i586 : EclipseCompilerforJava (to install)
What is your choice? (1-2)

Press '1'.

To satisfy dependencies, the following packages are going to be installed:
antlr-2.7.6-4.1mdv2007.0.i586
bouncycastle-1.33-3mdv2007.0.i586
bouncycastle-jdk1.4-1.33-3mdv2007.0.i586
classpath-0.92-3mdv2007.0.i586
classpathx-jaf-1.1.1-1mdv2007.0.i586
classpathx-mail-1.1.1-3mdv2007.0.i586
classpathx-mail-monolithic-1.1.1-3mdv2007.0.i586
eclipse-ecj-3.2.0-12.3mdv2007.0.i586
gcc-java-4.1.1-3mdk.i586
gcj-tools-4.1.1-3mdk.i586
gjdoc-0.7.7-10mdv2007.0.i586
jamvm-1.4.3-3mdv2007.0.i586
java-1.4.2-gcj-compat-1.4.2.0-40.103.1mdv2007.0.i586
java-1.4.2-gcj-compat-devel-1.4.2.0-40.103.1mdv2007.0.i586
jpackage-utils-1.7.0-1.4mdv2007.0.noarch
libgcj7-4.1.1-3mdk.i586 libgcj7-base-4.1.1-3mdk.i586
libgcj7-devel-4.1.1-3mdk.i586
xalan-j2-2.7.0-2.1mdv2007.0.i586
xerces-j2-2.8.0-1mdv2007.0.i586
xml-commons-1.3.03-5.1mdv2007.0.i586
xml-commons-resolver12-1.3.03-5.1mdv2007.0.i586
Proceed with the installation of the 22 packages? (115 MB) (Y/n)

Press 'Y', and it will start installing Java package.

Download and Install Sun Java SE Development Kit

As an alternative of using Java package that is bundled with Mandriva 2007.0 Free Edition, you can download the Java SE Development Kit (JDK) from [http://java.sun.com/javase/downloads/index.jsp]. As stated in the reference documentation, you do not need Java EE (Enterprise Edition). You do not need Java SE with NetBeans, either; just the minimal JDK. As of this writing, the current version is Java SE Development Kit 5.0 Update 9, but in this howto we use JDK 5.0 Update 7, the RPM version (jdk-1_5_0_07-linux-i586-rpm.bin).

After putting the JDK file in the current directory, do the followings:

chmod \+x jdk-1_5_0_07-linux-i586-rpm.bin ./jdk-1_5_0_07-linux-i586-rpm.bin #depends on the JDK version

The License Agreement will be presented to you. Just press space-bar until you are asked to agree the license terms. Type 'yes' and press Enter. The RPM file will be created, eg. jdk-1_5_0_07-linux-i586.rpm. Then, type the following and then press Enter:

rpm \-ivh jdk-1_5_0_07-linux-i586.rpm

If you want to know the files that have been installed on your system, type:

rpm \-ql jdk-1.5.0_07-fcs  #depends on the JDK version; see the message after the command: rpm \-ivh ..

At [http://www.linuxquestions.org/questions/showthread.php?t=214559], someone said that "it's worth installing Sun's J2EE enterprise java package when using tomcat. Just the normal java JRE will not work with Tomcat, because it uses J2EE libraries (jars)". He is right that 'normal java JRE will not work', but I think JDK is enough, so I decided to use Java package above (Java SE SDK). However, if you find problems with Sun JDK above, try to install Java EE SDK instead. It can be downloaded from [http://java.sun.com/javaee/downloads/index.jsp], eg. java_ee_sdk-5-linux.bin.

To install Sun Java EE SDK, follow these steps:

urpmi libstdc++5 ./java_ee_sdk-5-linux.bin

and then follow the instructions.

Choose the Java Package

If you installed both Java packages above, you can switch from one package to another by setting environment variable JAVA_HOME. Just edit /etc/tomcat5/tomcat5.conf after Tomcat5 installation below. If you follow carefully all the steps above, then to make Tomcat use GNU Java, put this line into tomcat5.conf:

JAVA_HOME="/usr/lib/jvm/java"

Alternatively, to make Tomcat use Sun Java, put this line into tomcat5.conf:

JAVA_HOME="/usr/java/jdk"

and replace all java-related program in /usr/bin with the ones from Sun Java. You can do this by moving these files: jar, jarsigner, java, javac, javadoc, javah, javap, java-rmi.cgi, javaws, from /usr/bin/ to another directory, and put symbolic links to Sun Java programs in /usr/bin.

cd /usr/bin
mv jar /another/directory/
mv jarsigner /another/directory/
mv java /another/directory/
.. and so on.
ln \-s /usr/java/jdk1.5.0_07/bin/jar
ln \-s /usr/java/jdk1.5.0_07/bin/jarsigner
ln \-s /usr/java/jdk1.5.0_07/bin/java
.. and so on.

Install Other Prerequisites Available as Mandriva RPMs

Type the followings:

urpmi postgresql urpmi postgresql-server urpmi ant urpmi xml-commons-apis urpmi tomcat5

After the last line (urpmi tomcat5), the console will show the following lines:

To satisfy dependencies, the following packages are going to be installed:
axis-1.2.1-2.2.1mdv2007.0.i586
bcel-5.1-6.1mdv2007.0.i586
jakarta-commons-beanutils-1.7.0-4.2mdv2007.0.i586
jakarta-commons-collections-3.2-1.1mdv2007.0.i586
jakarta-commons-daemon-1.0.1-4.1mdv2007.0.i586
jakarta-commons-dbcp-1.2.1-5.1mdv2007.0.i586
jakarta-commons-digester-1.7-4.1mdv2007.0.i586
jakarta-commons-discovery-0.3-2.1mdv2007.0.i586
jakarta-commons-el-1.0-6.2mdv2007.0.i586
jakarta-commons-fileupload-1.0-5.1mdv2007.0.i586
jakarta-commons-httpclient-3.0.1-1mdv2007.0.i586
jakarta-commons-launcher-1.1-1.1mdv2007.0.i586
jakarta-commons-logging-1.1-3.2mdv2007.0.i586
jakarta-commons-modeler-1.1-7.1mdv2007.0.i586
jakarta-commons-pool-1.3-2.1mdv2007.0.i586
log4j-1.2.13-2.1mdv2007.0.i586
mx4j-3.0.1-4.1mdv2007.0.i586
regexp-1.4-1.2mdv2007.0.i586
tomcat5-5.5.17-3.1.2mdv2007.0.i586
tomcat5-common-lib-5.5.17-3.1.2mdv2007.0.i586
tomcat5-jasper-5.5.17-3.1.2mdv2007.0.i586
tomcat5-jsp-2.0-api-5.5.17-3.1.2mdv2007.0.i586
tomcat5-server-lib-5.5.17-3.1.2mdv2007.0.i586
tomcat5-servlet-2.4-api-5.5.17-3.1.2mdv2007.0.i586
wsdl4j-1.5.2-3.1mdv2007.0.i586
Proceed with the installation of the 25 packages? (36 MB) (Y/n)

Just press 'Y' and you will see installation of Tomcat 5.5 begins.

DSpace will run as a web application at Tomcat, so we have to install tomcat5-webapps.

urpmi tomcat5-webapps

and then press 'Y' and Enter after the following message:

To satisfy dependencies, the following packages are going to be installed:
jakarta-taglibs-standard-1.1.2-2mdv2007.0.i586
tomcat5-webapps-5.5.17-3.1.2mdv2007.0.i586
Proceed with the installation of the 2 packages? (9 MB) (Y/n)

Next,

urpmi tomcat5-admin
To satisfy dependencies, the following packages are going to be installed:
jakarta-commons-validator-1.3.0-1.1mdv2007.0.i586
jakarta-oro-2.0.8-2.3mdv2007.0.i586
rhino-1.6-0.r2.2.1mdv2007.0.i586
struts-1.2.9-3mdv2007.0.i586
tomcat5-admin-webapps-5.5.17-3.1.2mdv2007.0.i586
Proceed with the installation of the 5 packages? (13 MB) (Y/n)

Press 'Y' and Enter.

Configure the Environment

Configure Tomcat5

To ensure that Tomcat has enough memory to run DSpace and uses UTF-8 as its default file encoding for international character support, uncomment and edit 'JAVA_OPTS' environment variable in Tomcat startup script /etc/tomcat5/tomcat5.conf:

vi /etc/tomcat5/tomcat5.conf

and then write the following line:

JAVA_OPTS="-Xmx512M \-Xms64M \-Dfile.encoding=UTF-8"

Please note that the option: '-Xmx512M -Xms64M' will only be understood by Sun Java but not by GNU Java. Please see GNU Java documentation to get the same goal.

To alter Tomcat's default configuration to support searching and browsing of multi-byte UTF-8 correctly, add a configuration option to the <Connector> element in /etc/tomcat5/server.xml.

vi /etc/tomcat5/server.xml

You will see the following lines in that file:

<Connector port="Threads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false"redirectPort="8443"acceptCount="100"
connectionTimeout="20000"disableUploadTimeout="true"/>

Just add 'URIEncoding="UTF-8"' before slash:

<Connector port="8080"maxHttpHeaderSize="8192"maxThreads="150"minSpareThreads="25"maxSpareThreads="75"
enableLookups="false"redirectPort="8443"acceptCount="100"
connectionTimeout="20000"disableUploadTimeout="true"URIEncoding="UTF-8"/>

Summary of the Environment

\[tomcat\] /usr/share/tomcat5
CATALINA_BASE: /usr/share/tomcat5
CATALINA_HOME: /usr/share/tomcat5
CATALINA_TMPDIR: /usr/share/tomcat5/temp
JAVA_HOME: /usr/lib/jvm/java
/# or JAVA_HOME: /usr/java/jdk

Install DSpace

I will write DSpace installation steps here. Visit this page later. However, DSpace installation described in the the reference documentation is clear enough (see the first line of this howto).