Gladstone Refresher

I took the opportunity to do a couple of things with Gladstone, the Oracle pre-installer -to deal with issues arising from me testing a bunch of other distros which I haven’t otherwise touched in a while.

First, Gladstone now works on Centos 6.3 and Scientific Linux 6.3. For some reason, I had forgotten to add these new point-releases to the list of “acceptable distros”. Now fixed.

Second, Gladstone now works on Oracle Enterprise Linux 6.3, using the free update repositories provided by Oracle Corporation. Thanks to Ales for hassling me nicely enough (via the comments pages hereabouts) that I felt it might be useful after all:

I have to say I have seldom installed OEL… and I can confidently assert that I am grateful for that, since my eyes would bleed if it were otherwise. Radioactive Red-on-White is the opposite of calm, soothing… or pleasant! Thank God it cools down quite nicely once the thing’s installed and you’re sitting at the Gnome Desktop! But anyway, Gladstone now does for OEL what it does with the other Red Hat Clones -though it assumes you’ve done a “Desktop” installation (Basic Server, the default, doesn’t come with any X or window managers, and Gladstone’s not going to plug that gap).

Third, I realised that whilst Gladstone claimed to work on Linux Mint Debian Edition (LMDE), and did actually do so about 18 months ago, it has been broken for quite a while, since it sought to download a version 18 library for gcc++ which is no longer available. I have thus refreshed the code so that the newest version of that library (version 25) is downloaded instead. Gladstone (and Oracle 11g) therefore works on LMDE once more:

Finally, I haven’t touched Ubuntu in a long while, so Gladstone has not worked on anything Ubuntu-ish since version 10.10, which is an eternity ago. Thanks to the installfest, that’s now changed, and Gladstone now prepares Ubuntu 12.04 for running Oracle 11g effectively:

The Oracle installations on both Ubuntu and Linux Mint Debian Edition both generate an error at link time, similar to the one experienced at the same point by Fedora. This is a feature of the way newer Linuxes do indirect linking. Gladstone deals with this ahead of time by writing a small shell script to your Desktop. When the linking error happens, you just launch that fix-it shell script (by double-clicking, as yourself) and then you can switch back to the Oracle installer and click ‘Retry’: the thing then sails through to completion without further trouble.

I ran into some interesting problems getting Oracle onto these…, er, “niche distros”, the principle one being that quite often their highly-convenient ability to install in ‘Live’ mode means that they don’t prompt you for everything that a standard installer might. Thus, I inadvertently ended up running LMDE with a DHCP-assigned IP address… which wouldn’t have mattered if the IP address used when Gladstone ran (and wrote into the hosts file) was the same IP address the box got assigned after its Gladstone-triggered reboot. Unfortunately, however, it wasn’t. The net result was that my Oracle installation failed at the point where it tries to start a listener …because it was trying to start it on an IP address which was no longer used by the server.

I’ve therefore added a couple of checks into Gladstone regarding networking. First, it checks you have a live Internet connection by counting packet loss when pinging Google: some packet loss is OK, but 100% loss makes it think no Internet connectivity exists at all and it therefore quits.

Second, it checks if you’re using DHCP. Now this is actually very difficult to do (especially if you try to make it work cross-distro). So difficult, in fact, that it’s actually impossible to do it reliably. You can check for the presence of various lease files, or the contents of various interface files… but no such check can be relied on 100%, especially since you can use tools like ifconfig to switch between a static and a DHCP IP address without causing the contents of those files to change at all. So, Gladstone cheats: it tests for the presence of a DHCP client process (dhclient), and if it finds it running, it will warn you and offer to quit. However, since it’s not a 100%-guaranteed test that DHCP was actually used to acquire your current IP address, you can ignore the warning and continue if you like.

Finally, I took the opportunity to tidy up a host of ‘quirks’. The thing is now a lot more consistent and less prone to flooding your terminal with irrelevant garbage messages.

Anyone experiencing difficulties with the script: let me know and I’ll see what can be done.