Macos – Installing Oracle 11g on OSX

jdevelopermacosoracle11gosbsoa

I would like to run a complete SOA/OSB development environment on OSX.
Unfortunately, Oracle 11g (SOA and OSB) is missing OSX installers.

Is it possible to run a native development environment on OSX ?

I need Oracle Enterprise Pack Extensions, OSB extension, jDeveloper and SOA composites to work natively.

Best Solution

Yes! The fact that Oracle doesn't provide a OSX installer doesn't mean these product shouldn't work natively. Most of them are actually 100% Java.

Please follow the instructions below to install you development environment.

Instructions are for 11g 11.1.1.4.0 but were also tested with 11.1.1.5.0. The trick is to run the installer via a Linux VM and migrate the files to OSX.

Linux VM Installation

It doesn't really matter if you get a 32 or 64 bits Linux distribution. However, the installation folder should be the same on Linux and MacOS.

  1. Download VirtualBox and create a Virtual Machine for Linux. Since we are dealing with Oracle products, rather user their linux distribution: look for this file on google OracleLinux-R5-U7-Server-i386-dvd.iso
  2. With the VM installed, up and running, boot into Linux.
  3. Install JDK 1.6 for Linux 32 bits

Download the following software, oracle offers native installers for windows and Linux. However you should stick to generic downloads as much as possible. Some of these packages come in several zips, extract files according to oracle directions.

  • Weblogic & coherence: wls1034_generic.jar
  • OEPE: oepe-helios-all-in-one-11.1.1.6.1.201010012100-win32-x86_64.zip
  • jDeveloper: jdevstudio11114install.jar
  • OSB: ofm_osb_generic_11.1.1.4.0
  • SOA: soa_generic_11.1.1.4.0

Install the software in the following order

  1. Weblogic & Coherence: run with java -Xmx1024m -jar -Dos.name=unix wls1034_generic.jar
  2. OEPE extract act in a folder called /oepe
  3. OSB Disk1/runInstaller - Make sure OSB IDE extensions are being installed (in OEPE)
  4. SOA Disk1/runInstaller
  5. jDeveloper

OSX Installation

Middleware

Here comes the trick, copy the oOracle Middleware folder from your Linux VM to OSX. Make sure the location is the same. For instance if you installed under /Oracle/Middleware on Linux, you should copy to /Oracle/Middleware on OSX.

Fix JVM

For some obscure reasons, Oracle installers don't recognize the Apple JVM. While not mandatory, it is good practices to fix the issue with the following script.

 $ sudo mkdir -p /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/jre/lib
 $ cd /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/jre/lib
 $ sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/classes/classes.jar rt.jar

OEPE

  1. Download the following software (64bits please!) oepe-helios-all-in-one-11.1.1.6.2.201111102323-macosx-cocoa-x86_64.zip
  2. Extract the file into /oepemac
  3. Right click on Eclipse.app
  4. On the opened menu, choose “Show Package Contents”
  5. Edit file “/Contents/MacOS/eclipse.ini”, append the following lines

    -Dweblogic.home=/Oracle/Middleware/wlserver_10.3
    -Dharvester.home=/Oracle/Middleware/Oracle_OSB1/harvester
    -Dosb.home=/Oracle/Middleware/Oracle_OSB1
    -Dosgi.bundlefile.limit=750
    -Dosgi.nl=en_US

  6. Now copy the file oracle.osb.ide.link from the folder “oepe/dropins” to “oepemac/dropins” (both under your middleware home).

Oracle XE

Oracle_XE is unfortunately not supported on OSX. we will need to run it via a VirtualBox appliance. The good news is that Oracle provides a easy to install RPM.

  1. Download oracle-xe-10.2.0.1-1.0.i386.rpm
  2. Under Linux, as root, run 'rpm -i oracle-xe-10.2.0.1-1.0.i386.rpm'
  3. Next step is to download and run Oracle RCU to prepare the data model, please refer to the next section for directions.

For reference, we allocated 1cpu, 600MB of ram to our Linux/OracleXE VM.

Next Steps

Configure your web logic development domain. Please refer to this document for instructions. Quick Start Guide for Oracle® SOA Suite 11gR1 (11.1.1.5.0).pdf

Fix startup scripts

Finally, you will need to fix domain startup script as follows

------------- user_projects/domains/DEVdomain/bin/setDomainEnv.sh -------------

index f74490c..8d75c6c 100755
@@ -108,7 +108,7 @@ else
    else
        JAVA_VENDOR="Unknown"
        export JAVA_VENDOR
-       JAVA_HOME="/usr/java/jdk1.6.0_21"
+       JAVA_HOME=`/usr/libexec/java_home`
        export JAVA_HOME
    fi
 fi

------------ user_projects/domains/DEVdomain/bin/setSOADomainEnv.sh ------------

index 8c6743b..b92cfa4 100755
    @@ -144,6 +144,15 @@ case ${PLATFORM_TYPE} in
         fi
         export USER_MEM_ARGS
         ;;
    +#-----------------------------------------------------
    +# OSX
    +#-----------------------------------------------------
    +Darwin)
    +
    +  USER_MEM_ARGS="${PORT_MEM_ARGS}"
    +  export USER_MEM_ARGS
    +
    +  ;;

       #-----------------------------------------------------
       # Sun OS
Related Question