GOAL

Installing Oracle on Linux has always been a marathon in typing, if nothing else. There are new users, OS groups and directories a-plenty to create; kernel parameters by the bucket-load to set; and so on and on. I long ago grew very tired of having to type all that lot in, just to get a database installed and working… and so I decided to automate the process.

The ‘Dizwell Oracle Reliable Installation Script’ (Doris, to her friends) was the first outcome of that automation exercise: a simple shell script that, when run as root, would do all of the Oracle-recommended configuration steps, accurately and without further manual intervention. The nice thing about Doris is she catered for those whose choice of distro was somewhat less than, er, mainstream. Mandriva, Fedora and PCLinuxOS users could make use of her, for example. But she was a monster to maintain, and I decided she had to be bumped off. She can still be downloaded, though, if you feel the need to install Oracle 10g or 11g onto 32-bit distros or any of those weird distros just mentioned! It’s just that she won’t be updated any more, so she’ll get progressively more and more out-of-date and less and less useful.

The Graphical Oracle All-in-one Loader (GOAL) is Doris’ replacement. GOAL was designed to run only on 64-bit operating systems, since the days of trying to run Oracle meaningfully in less than 4GB of RAM seem, mercifully, to be behind us. She was also designed to be run as an ordinary user (though she asks for the root password to start with) and as a graphical tool, rather than a dull command-line-only affair. GOAL’s other main design principle was to ditch the silly distros: originally, she worked only for Red Hat Enterprise Linux 5 (and its Centos/Scientific Linux/Oracle Enterprise Linux cousins). These days, however, GOAL variants exist to ensure Oracle 10gR2, 11gR1 and 11gR2 (all current Oracle versions, basically) can be installed onto three other “mainstream” distros: openSuse 11.1, Ubuntu 9.04 and Fedora 11. Rather than bundling everything into one unmaintainable script as I did with Doris, however, there are separate GOAL scripts for each of these distros.

Here then is the current GOAL matrix (which I’ll update as necessary as new distros and new Oracle releases come along):

Distro Installation Notes

oellogo

GOAL is appropriate only for Oracle Enterprise Linux 5.3 and above (tested on 5.3 and 5.4)


  • Installation is flawless for all Oracle versions. No errors of any kind appear for either 10gR2, 11gR1 or 11gR2 installations.
  • The script will use the free Oracle yum repositories: no support contract with Oracle is required. A completely free Oracle installation on an Oracle OS is thus possible.
centos-logo GOAL is appropriate only for Centos 5.3 and above (tested on 5.3 and 5.4) It may work on the equivalent Red Hat Enterprise Server versions. Do not use this version of the script with Oracle Enterprise Linux, however: that has its own script above.


  • Installation is mostly flawless for all Oracle versions. No errors of any kind appear for either 10gR2 or 11gR1 installations.
  • During an 11gR2 installation, the Oracle Universal Installer may report a missing ‘pdksh’ package during the prerequisites check, but selecting the ‘Ignore All’ option to skip past that will result in a completely successful installation with no linking errors of any kind.
opensuselogo GOAL is appropriate only for openSuse 11.1 and above (tested on 11.1 and 11.2). Note that 11.2 uses KDE as a default desktop: I strongly suggest selecting the Gnome one instead. However, GOAL *has* been tested on KDE, and works fine.


  • Launching the 10gR2 installer will generate an error along the lines of “Could not execute auto check for display colors”. You are offered the chance to continue (by typing ‘y’), however, and if you do that, the Oracle Universal Installer will run correctly. Some prerequisite checks might fail (such as the one for networking setup), but if you manually ‘user verify’ those, all will be fine. A linking error at 65% for ins_emdb.mk will occur, but click Continue at that point and the installation will continue through to successful database creation.
  • No errors are produced for an 11gR1 installation at all, either with launching or running the installer all the way through to successful database creation.
  • If installing 11gR2, the prerequisites check page will report a long list of missing packages. Click ‘Ignore All’ to proceed, however, and the installation will be fine. No linking errors will be produced at all.
  • Note that if using the default KDE desktop in 11.2, you will first need to zypper -n in zenity as root, at a command prompt, before the GOAL script can be run at all.
ubuntulogo GOAL is only appropriate for Ubuntu 9.04 (“Jaunty”) and above (tested on 9.04 and 9.10).


  • It may work on other *buntu derivatives (like Kubuntu), but those have not been tested. The GOAL progress bar when fetching software has been known to become periodically invisible, but it does actually do the job successfully, even when it can’t be seen!
  • The 10gR2 installation generates a linking error for the ins_emdb.mk makefile. Click Continue, however, and the installation will proceed to a successful completion.
  • If installing 11gR1, a linking error at 65% for the ins_emdb.mk makefile will be produced. Click Continue when prompted, however, and the rest of the installation will proceed to successful completion without any (apparent!) loss of functionality.
  • If installing 11gR2, the prerequisites check page will report a long list of missing packages. Click ‘Ignore All’ to proceed, however, and the installation will complete successfully, without linking errors of any kind.
fedoralogo GOAL is only appropriate for Fedora 11 and above (tested on 11 and 12).


  • The 10gR2 installation produces a linking error for ins_emdb.mk, but selecting ‘Continue’ to ignore it allows the installation to complete successfully, with no obvious detrimental effects.
  • The 11g R1 prerequisite check will complain that a compat-libstdc++-33.i386 package is not installed. This can be user-verified (i.e., ignored) since GOAL has installed the i586 version of that package. The rest of the installation is flawless: no linking errors arise.
  • The 11g R2 prerequisite checks will complain that a half-dozen or so packages are missing. In fact they are not missing at all, so clicking the ‘Ignore All’ option allows the installation to proceed to a completely successful conclusion. There are no linking errors of any kind.

Instructions:

  • Click a distro logo to download the GOAL version appropriate for that distro.
  • Once the shell script has been saved (say, onto your desktop), just right-click the file and select Properties.
  • Select the Permissions tab and click the Allow executing as program option.
  • Then click Close.
  • Now just double-click the downloaded file.
  • When prompted, click the Run in Terminal option.
  • Follow the prompts thereafter, and you should be good to go!
  • Once Oracle has been installed and a database created, you will need to read the last two paragraphs of this post if you want to automate database startups whenever the server itself bounces.

Postscripts:

  • I first intended to call this script the ‘graphical all-in-one oracle loader’, but I guess you can see why the acronym for that wouldn’t have worked out so well -at least if you know your English spellings!)
  • There will never be a version of GOAL for Fedora or any other distro you care to name. Probably. You are welcome to take GOAL and make it support such other distros by your own efforts, provided you include the appropriate attributions in the resulting script.
  • There will never be a version of GOAL for installing onto any 32-bit distro. As far as running a serious database goes, 32 bits are, these days, dead in the water.
  • No significant errors are generated in any of the installations except for openSuse+10gR2, Fedora+10gR2 and Ubuntu 10gR2 & 11gR1 (all three generate a linking error for the ins_emdb.mk makefile). I don’t consider any of those errors to be serious enough to warrant further investigation by me (especially since they all involve older versions of Oracle whereas the newest version install flawlessly onto all three distros), but if you do happen to have a fix, I’d be more than happy to hear about it. The main thing is that for all distros and using all three Oracle versions, the installations will complete with a successful starter database creation.
  • GOAL expects to run on a brand new installation with no prior software updates having been applied. If updates have been applied, GOAL will still probably work, but that configuration will not have been tested and results may therefore be unpredictable.
  • GOAL also expects you to have installed your distro using all the defaults provided by the distro packager, with three exceptions: you must be using a fixed IP address, not DHCP; you must have SELinux disabled (or switched to ‘permissive’ mode) if SELinux is offered as an installation option; and you must have disabled any firewall the distro may offer to enable. Failure to achieve all three of these requirements as part of your initial distro install means GOAL likely won’t work properly (these are all standard Oracle requirements, anyway, not specific to GOAL). If your distro doesn’t give you the choice (Ubuntu, for example, doesn’t let you configure either SELinux or a firewall by default), then you need not worry about those requirements. You should, however, always specify a fixed IP address, no matter what distro you’re using (Oracle basically gets very upset if it’s installed with one IP address which then one day changes. Things break badly!)
  • Doris/GOAL have variously been criticised for (a) invalidating Oracle Support and (b) not doing very much that’s original. I go with (b) myself. All these scripts do is automate the implementation of the instructions contained within the official Oracle documentation. They don’t improvise around that, so they really aren’t doing anything excitingly ‘original’ -and I hope you wouldn’t want anything excitingly original when it comes to installing a piece of server-class software! I guess my point is that if (b) is true, (a) cannot be. Besides which, if you’re installing onto OpenSuse, Ubuntu or Centos you don’t have any Oracle support to be invalidated anyway! Additionally, Oracle support is only ever interested in what your system’s settings are, not how they once came to be that way.
  • If you are the kind of person that likes typing in a bucket-full of stuff before achieving anything, on the mostly-spurious grounds that by doing so you are ‘really learning something’,try to remember that you are not compelled to use these scripts; on the contrary, you are quite free to behave as though they don’t exist at all. Meanwhile, for the remaining 99.99% of sentient humanity, the scripts are in plain text -so, you are free to look at them and see what they do and the way that they do them. If you object to running third-party scripts for security reasons, for example, I quite understand… but you are not thereby prevented from executing the same commands that Doris or GOAL would have executed and thereby achieving the same results. You just need to read the scripts. You might even learn something about bash shell scripting by doing so!