I previously put together instructions for deploying Oracle Enterprise Business Suite (EBS) 11i on Ubuntu 7.04 (Installing Oracle eBusiness Suite on Ubuntu). In this go-round, I am working through the steps to deploy the latest release of Oracle’s ERP (R12) on the latest Ubuntu server platform, 12.04. Although Ubuntu is not an Oracle-supported platform for R12, it is a stable, well-maintained, and popular Linux environment, with tremendous acceptance and community support. This makes it a great candidate for some third-party investigation on the steps required to render it a suitable infrastructure choice for ERP deployment.
I won’t repeat  the mechanism for procuring the install media for R12; this was covered in my original 11i/Ubuntu post. It has all  the instructions for  downloading R12 from the Oracle® E-Delivery Web site (http://edelivery.oracle.com/), as well as how to prepare the staging folder for the R12 install (Installing Oracle eBusiness Suite on Ubuntu – II).

The following  instructions also assume that R12 is being installed on a 32-bit Ubuntu Precise (12.04) server environment. Since this is for demo purposes that uses the preset Oracle EBS Vision instance, I used  a throw-away VirtualBox environment with 400 GB of storage, and 4 GB of RAM allocated. Since the base Ubuntu server install does not have a GUI out of the box, I  installed the ubuntu-desktop package:

$ sudo apt-get install ubuntu-desktop

This permitted me to perform  my installation investigations easily, and then dispose of the environment quickly and easily to stay within Oracle licensing guidelines. So, on to the steps.

Prerequisites

i. Create oracle user in the Ubuntu 12 environment to own the oracle installation.

$ sudo adduser oracle

ii. Create group dba, and add oracle user to the dba group to allow Oracle DBMS system admin login and management of the 11g RDBMS.

 $ sudo adduser oracle dba

iii. Sign in as the new oracle user, and ensure that the stage directory is available. For my purposes, I copied the stage folder into the oracle home  in a sub-directory stage12i.
iv.  Update software and dependent packages for the install:

Unzip

Download unzip version 5.52 from http://launchpadlibrarian.net/12763424/unzip_5.52-10ubuntu1.1_i386.deb

Remove current version using:

oracle@madara:~$ sudo apt-get remove unzip

Then install 5.52 version using:

oracle@madara:~$ sudo dpkg -i ‘unzip_5.52-10ubuntu1.1_i386.deb’

Oracle 11gR2 dependencies

Install the following packages to meet library dependency requirements:

oracle@madara:~$ sudo apt-get install alien binutils build-essential cpp-4.4 debhelper g++-4.4 gawk gcc-4.4 gcc-4.4-base gettext html2text intltool-debian ksh lesstif2 bzip2 lib64z1 libaio-dev libaio1 libbeecrypt7 libc6 libc6-dev libdb4.8 libelf-dev libelf1 libltdl-dev libltdl7 libmotif4 libodbcinstq4-1 libodbcinstq4-1:i386 libqt4-core libqt4-gui libsqlite3-0 libstdc++5 libstdc++6 libstdc++6-4.4-dev lsb lsb-core lsb-cxx lsb-desktop lsb-graphics lsb-qt4 make odbcinst pax po-debconf rpm rpm-common sysstat unixodbc unixodbc-dev libdb1-compat

v. Configure kernel parameters:

First check the current kernel parameter values:

oracle@madara:~$ sysctl -a | grep sem
oracle@madara:~$ sysctl -a | grep shm
oracle@madara:~$ sysctl -a | grep file-max
oracle@madara:~$ sysctl -a | grep ip_local_port_range
oracle@madara:~$ sysctl -a | grep rmem_default
oracle@madara:~$ sysctl -a | grep rmem_max
oracle@madara:~$ sysctl -a | grep wmem_default
oracle@madara:~$ sysctl -a | grep wmem_max

Then edit the /etc/sysctl.conf and add the following lines:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

Run the following command to reload these kernel parameters:

oracle@madara:~$ sudo sysctl -p

vi.  Put in a fake Redhat flag file to fool the installer:

oracle@madara:~$ sudo echo ‘Red Hat Linux release 5’ > /etc/redhat-release

vii. Link expected locations for dependency library files to the source files in Ubuntu:

oracle@madara:~$sudo ln -s /lib/i386-linux-gnu/libgcc_s.so.1 /usr/lib/
oracle@madara:~$sudo ln -s /usr/bin/awk /bin/awk
oracle@madara:~$sudo ln -s /usr/bin/basename /bin/basename
oracle@madara:~$sudo ln -s /usr/bin/rpm /bin/rpm
oracle@madara:~$sudo ln -s /usr/lib/i386-linux-gnu/libc_nonshared.a /usr/lib/
oracle@madara:~$sudo ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/
oracle@madara:~$sudo ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/

viii. Verify shared memory is configured correctly for the 11g database:

Check shared memory device /run/shm with command:

$ df -hk

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/mapper/madara-root 409441664 59198564 329444636 16% /

udev 1553456 4 1553452 1% /dev

tmpfs 624404 948 623456 1% /run

none 5120 0 5120 0% /run/lock

none 1561008 156 1560852 1% /run/shm

cgroup 1561008 0 1561008 0% /sys/fs/cgroup

/dev/sda1 233191 46981 173769 22% /boot

Update /etc/fstab, adding line below to change the shared memory /run/shm/ filesystem from none to tmpfs:

tmpfs /run/shm tmpfs defaults,noexec,nosuid 0 0

ix. Reboot to make sure kernel params and shared memory change are detected.

x. Create the instance directory for the R12 install, setting the permissions so it can be updated by the oracle owner:

oracle@madara:~$ sudo mkdir /d01

oracle@madara:~$ sudo chmod 777 /d01

xi. Run the R12 Rapid Installer:

oracle@madara:~$ cd stage12i/startCD/Disk1/rapidwiz

oracle@madara:~$ ./rapidwiz

Rapid Install Wizard is validating your file system……

4 dvd labels found

Rapid Install Wizard will now launch the Java Interface…..

R12 Rapid Install wizard

R12 Rapid Install wizard

Choose EBS install method

Choose EBS install method

Enter Oracle Support details

Enter Oracle Support details

Enter Express configuration etails (database, domain, home directory)

Enter Express configuration etails (database, domain, home directory)

Install running prerequisite checks (space, network, executables)

Install running prerequisite checks (space, network, executables)

Prerequisite checks confirmed

Prerequisite checks confirmed

Component Installation Review

Component Installation Review

Rapid Installation Progress Dialog

Rapid Installation Progress Dialog

Post-install Checks completed successfully

Post-install Checks completed successfully

R12 Framework main screen

R12 Framework main screen

 

These instructions are in no way a substitute for careful analysis and assessment of the requirements and purpose for a production R12 instance. However,  hopefully this provides some guidance on the technical hurdles and resolutions to deploying R12 on an unsupported Linux variant.

References:

(Instant Client downloads for Linux x86:) http://www.oracle.com/technetwork/topics/linuxsoft-082809.html

(Oracle Database 11g Release 2 on Ubuntu 12.04 HOWTO) http://edin.no-ip.com/comment/418

(Oracle Application R12 (12.1.3) Installation on Red Hat Linux – 64 bit) https://blogs.oracle.com/ptian/entry/oracle_application_r12_12_1

(Oracle EBS Vision Demo Default Application Passwords) http://swimmingpooldotnet.wordpress.com/2011/01/29/oracle-ebs-vision-demo-default-application-passwords/