Tag Archives: unix

Installing Oracle on Redhat 7

Introduction

The subject at hand is really much wider than just Redhat 7.x, especially as more recent distributions are following Redhats lead and are now including glibc 2.2 also. I have no reason to believe that this process will not work with newer versions of SuSE, Debian, etc.

The other point to note is that I have not tried the procedure outlined here. I have migrated my box from Debian 2.2 to RedHat 7.2 and can testify that Oracle still works, but I have not actually performed an installation. I have, however, recieved a good number of emails confirming that it works, so don’t worry!

Most of the following material comes from two people, who are the real people you should thank if it works for you. They are John Smiley and Max McClanahan.

The process

The problem is that Oracle 8.1.x needs glibc 2.1.3. It will link without error with glibc 2.2, but when you try to run dbassist or create a database from scratch, there are problems (dbassist hangs, ‘End of file on communication channel’, etc.)

Here is a step-by-step process for getting Oracle 8.1.6 or 8.1.7 working on systems with glibc 2.2 (don’t bother with 8.1.5 if you can help it). Note that 9i requires glibc 2.2 and will not work with earlier versions:

  1. Install the compat-glibc RPM for 2.1.3. The exact filename will vary depending on your version of RedHat or other distribution. Many people (Fernando Boaglio, Peter Whysall, Jose T. Martin Prior amongst others) have noted that Oracle provide a patch (glibc-2.1.3-stubs.tar.gz) that provides the same functionality. I prefer the RPM’s personally, but this will certainly work.
  2. Execute the following command: . /usr/i386-glib21-linux/bin/i386-glibc21-linux-env.sh
  3. Type “export LD_ASSUME_KERNEL=2.2.5”
  4. Type: cd $ORACLE_HOME/bin
  5. Run the following command from the UNIX prompt: relink all

All of the Oracle software, including the assitants, will work fine now.

This technique will work on RedHat 7.0 with the 2.2.16 kernel, as well as the 2.4.0 and 2.4.1-pre11 kernels.

The rest

John Smiley also asked me to point out that Oracle have issues some patches (ftp://205.227.44.220/server/patchsets/unix/LINUX/8161/bug1467074/) that are required in order for them to consider your machine ‘certified’:

Operating System: Intel Based Server LINUX Version:Red Hat 7.0
Oracle Server - Enterprise Edition Version: 8.1.7 (8i)
N/A Version: N/A
Status: Certified
Oracle Server - Enterprise Edition Version: 8.1.7 (8i)
Bug Number: 1467074
REDHAT 7.0/ORA-3113 ISSUE (GLIBC 2.1.94 AND LATER)
Patch for bug 1467074 is mandatory for this certification.

RedHat even have a bug report on this issue, which may be worth a look: Bugzilla report from Redhat.

Oracle Comedy Errors Home

Welcome to the Oracle Comedy Errors Page!

This page is dedicated to all those frustrating hours that you have to spend fiddling about with Oracle just to get it working as it says it does on the box.

These are just things that have happened to me and the projects that I have been involved in. To make a really complete Oracle Comedy Errors Page we need your input.

For those that have already contributed, there is always this page. It also catalogues the projects and Oracle software that I’ve used to build up this list.

Why is this page here?

There seems to be a great number of people who are only too eager to bash Microsoft, but only a few who seem to hate Oracle. Looking at their products, I thought that there must be at least a few sympathetic souls on the net. A quick search on HotBot and Altavista seems to indicate otherwise.

To rectify this shameless situation, I aim to produce, if not the first, then the definitive list of Oracle cock-ups and anecdotes. Naturally, I can’t do this all on my own; there are others.

I can supply the TAR numbers if you don’t believe me…

Content

Installing Oracle 8i R3

I have recently installed Oracle 8i R3 (8.1.7) on my Celeron 466 machine. I found the installation to be very straight-forward compared with both 8.1.5 and the experiences of many people.

My machine is well below the specification that would be required to do real work on, especially if you have a number of developers. It does work, albeit rather slowly. Creating my initial database, for example, took around eight hours.

It currently runs RedHat 7.2 with a few minor patches (including a more recent kernel). I installed just about everything, including the full development kit and “glibc-compat”.

My secret to success, I believe, were these two commands:

  1. . /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
  2. export LD_ASSUME_KERNEL=2.2.5

After this, the installation ran exactly to plan.

Oracle Server Comedy Errors

Oracle, the company, was founded back in the late seventies as a company that produced an SQL database. Its entire reputation has been built on this product and it is, therefore, no surprise that it is very good.

That’s not to say that there have been no problems…

  • To perform dodgy ‘system’ operations on a database, you need access to a user called ‘internal.’ In theory, you need to be in the UNIX ‘dba’ group to be able to connect. That is unless you belong to rather a lot of groups, in which case it doesn’t seem to work. (We’ve not actually called this through, so there may be a simple explanation.) (7.1)
  • When creating a new database, you have to run a file called ‘catalog.sql’ to finish the job. At the end of this file is the following message: ‘THIS IS THE END OF THIS FILE – IF I AM NOT HERE THEN RCS HAS TRUNCATED FILE‘ (7.3)
  • I’m not entirely sure that this counts, but an installation program that requires more resources than that product that it’s installing demands at least an honorable mention. (8i)

LyX 0.12.0

Introduction

When I was at university, a software engineering class had a huge argument with a lecturer. It wasn’t about any high flying computer science ideal, just how people do their word processing.

My lecturer maintained that people were interested in the text and the text alone. People should be willing to use standard text mode editors to lay down the text and then use a text formatter such as TeX to print it. The text and the formatting, she said, were completely separate.

Most students in the lecture agreed that while, say, Emacs could handle much larger files than Microsoft Word, most people were unprepared to hack around with command lines and obscure key-strokes just to write a letter. Most ‘normal’ people agree with us.

Unfortunately, the former approach has many advantages when writing long, structured documents. What we could do with is a compromise. What You See Is Almost What You Get perhaps.

LyX, as you may have guessed, is just that compromise.

What does it do?

In short: long documents. Okay, it’s quite happy letting you edit a letter, in fact it comes with a number of templates to allow you to do just that, but this is not what it excels at.

To test out LyX, I converted a long document that I’ve been using Microsoft Word to edit until now (don’t get too excited, this was a manual process!). Word wasn’t having too much difficulty with the size, but I was starting to have problems with styles and cross-references.

The first thing to note is that you have to be organized. It’s tempting in Word to just change the font or its size directly, but this is a big no-no in Lyx. You should create a style for every type of paragraph that you need. In my case I used the defaults that came with LyX and applied them to my text.

All this was incredibly straight-forward and very Windows-like. You can high-light the text by dragging the mouse over it (it turns cyan), delete text with the delete or back-space key and all the usual conventions — not something to be taken for granted in Linux.

Then I hit a bit of a problem. In Word, I had all my lines of code numbered. How could I replicate this in LyX?

To cut a long story short, while I’m sure that you can do it, I have no idea how. I suspect it has something to do with the style-sheets (like in Word), but I couldn’t figure out how to change it graphically and I have no inclination to start hacking around in the TeX source files.

In fact this is the most damning criticism of the program as a whole: you still need to know about TeX. If I’d wanted to know about that I might have stuck to Emacs! It is still a very useful program, but to get the full flexibility of the system you’ll need to get your hands dirty!

From bad to worse

Having found my first problem, things started getting even worse. I couldn’t get the cross-referencing to work either. I’m pretty sure that this time it’s because I’ve been brain-washed with nearly eight years of using Word for Windows. When I say that I want a cross-reference, I expect to be able to say which heading I want to reference and how I want it to be displayed (i.e. the text or the section number or the page number, or some combination of them). In LyX what I get is a box with five buttons and a message saying “No labels found in document.”

I managed to partly solve this by creating a number of labels which I could create cross-references to. However, this was nowhere near as flexible as Word. Do I have to create a label at the source of every cross-reference? (This looks like something else that’s been carried over from its TeX heritage.)

User Interface

Taking a step back from my difficulties, what’s it like?

LyX uses the XForms library, which some purists hate as you can’t get the source code for. In its favour, it does look very smart. The menu’s are a bit more ‘sticky’ than I’d like, but there’s nothing wrong with them. It makes LyX look like a modern Windows application, and I mean that as a compliment.

However, it’s not quite as intuitive as it might be. For example, many of the keyboard short-cuts are non-standard. What’s wrong with Ctrl-I to start and stop italic mode? How do I change the formatting of a style? How do I create a blank line?

It’s also fair to say that the configuration isn’t as easy as it could be. As has been mentioned before, I tend to use TrueType fonts rather than those that come with XFree86 and I wasn’t too upset to learn that I’d have to configure LyX to use them. It was good to see ‘Screen Fonts…’ under the Options menu; it was equally good to see that changing ‘times’ to ‘times new roman’ had immediate effect. What was not so good to see was that it had forgotten the setting next time I started. It turns out that the best way to keep the settings is to edit the ‘lyxrc’ file in the LYX_DIR directory. Okay, we can’t expect LyX to make global changes, but why not local changes?

Overall

As someone that writes many more structured, technical documentation than letters (sorry Mum), Lyx is just the kind of thing that I’m looking for.

It’s not as easy to use or well integrated with the print system or print preview program as Microsoft Word, but it is much better at handling tables and equations, not as though I use many of the latter.

However, for my purposes I think I’ll stick to dual-booting and Word 95. LyX shows a lot of promise and is very good at what it already does. However, I think that you’d have to be a TeX guru to get the best out of it, and that rules me out.

Linux 2.1.131

Introduction

It’s a long time since I used a development kernel. In fact, I don’t think I’ve ever just downloaded the source and built it myself. The last time I was on the cutting edge, it came as part of an installation of Slackware. I think it was 1.1.59, and seemed to be no less stable than the real thing. So maybe it’s a little surprising that since I moved up to a Pentium I’ve always stuck with the stable 2.0.x series?

Not really. I’m a coward, firmly fitting into the ‘if it ain’t broke, don’t fit it’ mould. Not only was I on a faster machine, but 2.0 was faster than 1.2. Why would I risk breaking things for a few extra percent?

In a sense, I think I was right. But I’m getting ahead of myself, let’s get the thing installed…

Quick Aside

I expect that most people reading this will already know about Linux’s version numbering conventions. If you fall into this category, you may as well jump to the next section.

If you’re still with me you may be wondering what all the fuss about Linux 2.2 is and why there aren’t any Linux 2.2 betas.

The reason is simple: way back when Linux 1.0 was released, Linus Torvalds decided that all stable, ‘release’ versions would have even version numbers. In the case of release 1.0.9, ‘1’ is the major version number, ‘0’ is the version and ‘9’ is the patch number. Since ‘0’ is even it is considered a stable, usable by ‘normal’ people version.

The version I tested was 2.1.131. ‘1’ is odd so this is a development kernel, usable by people that are prepared to accept the occasional glitch. Note, however, that the kernel is now in a ‘feature freeze’ which means that only bug-fixes are being added. Put another way, even this development version should be, and is, fairly stable.

Upgrade

Linux sits very much at the heart of your system, and any upgrade to it shouldn’t be taken lightly. That’s why, for pretty much the first time in history, I took a look at the documentation.

make config ; make dep ; make clean ; make zdisk ; make modules ; make modules_install

What could be easier?

Well, after being cushioned by using RedHat for a number of years it was a little confusing to be expected know which options I needed to set. Nothing I couldn’t deal with — and nothing unexpected — but I just want to make it even clearer that this isn’t something that someone who has difficulty installing a Windows 95 application would want to do.

I must confess, however, that it wasn’t as difficult as I’d expected. It only made me happier when I rebooted my machine and it started, apparently, without problem.

In Use

In use it doesn’t feel at all different to 2.0. Running some unscientific benchmarks I find that it is, indeed, slightly faster and it does use slightly less memory, but I don’t think that’s the point. The point is that it now runs on even more machines, from i386’s to Acorn Archimedes, in even more configurations, from SMP to X.25. The point is that it now optimizes for many of the Intel compatible CPUs and handles many of their bugs.

However, it’s not all rosy. The PPP daemon from RedHat 5.0 doesn’t work out of the box. You need to download and compile a new version. I found this more difficult than building the kernel! (The problem was that it expected to be built at /usr/src and failed anywhere else with screens of not very obvious errors.)

And I’ve not managed to get my 64AWE Gold working yet, either. This is more laziness than anything else, the instructions look fairly straight-forward.

More seriously, one of the main new features seems not to work on my machine: the graphical console drivers. Normally this wouldn’t matter too much. I spend almost all the time in X anyway, so some memory uselessly set aside just for the sake of being cutting-edge is not really worth it. However, one main benefit of the graphical console is the Tux logo when Linux is booting…

Actually, it is useful. It means that there’s a standard interface across all Linux platforms, from i386 to SPARC. But not, apparently, if your video card doesn’t support the VESA 2.0 standard. I would have thought that this is relatively rare. My machine is less than three years old but only supports VESA 1.2.

Other bits and pieces

Looking at Joseph Pranevich’s excellent “The Wonderful World of Linux 2.2” in this months Linux Journal (December 1998), it would seem that my ‘aging’ hardware is unable to take advantage of most of the fancy new stuff.

For example, if you have a multi-processor box, 2.2 will work much better. There’s improved support for non-x86 architecture machines and there are optimizations for non-Intel x86 machines, too.

Overall

The new development kernel is smaller and faster than the current stable version and still appears to be rock solid. I’m not sure how the development team keep managing it when the millions of dollars that Microsoft invest seems only to increase bloat.

However, the features that have been added seem to be there to please ever more niche markets.

In summary: the best has managed to get even better.