Saturday, March 21, 2015

Oracle XE 11g on Oracle Linux 7 installation issues

We were installing Oracle XE (following proper instructions) on a fresh Oracle Linux 7.1 installation and were running into weird issues like this:

# rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:oracle-xe-11.2.0-1.0             ################################# [100%]
Executing post-install steps...
sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `echo ~(unknown)'
You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.

So, we couldn't finish the installation process properly. I did what anybody would do these days: GOOGLE "oracle rpm syntax error near unexpected token" (maybe now you'll get a link to this post?).

Nothing useful came up (it was March 21st 2015).

So we had to do some fixing ourselves. We extracted the installation scripts from the RPM file like this:
# rpm -qp --scripts oracle-xe-11.2.0-1.0.x86_64.rpm
And we tracked down the culprit to these two lines:

loginuser=`who | cut -d' ' -f1 | uniq | sed -n '1p'`
homedir=`sh -c "echo ~$loginuser"`

It turned out that when you issue a who command in this version of Linux, you will get something like this:

# who
(unknown) :0           2015-03-20 17:04 (:0)
root     pts/0        2015-03-21 08:33 (192.168.16.225)
And that explained the "echo ~(unknown)" error we were getting before.

So, what causes the (unknown) user to appear on the who list? It's the graphical interface that's brought up upon boot. So, in order to be able to install Oracle properly all we needed to do was:

# systemctl set-default multi-user.target
Which is equivalent to the good old runlevel 3 we used to set on /etc/inittab.

After that, reboot the system and you will be able to install Oracle XE without further issues.

When you're done, you can go back to get GUI for login on your server by issuing:
# systemctl set-default graphical.target
And rebooting your linux again.

A little bonus track to this post. Create a file called /etc/profile.d/oracle.sh and put this content on it:
 # /etc/profile.d/oracle.sh - set oracle stuff
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/xe
ORACLE_SID=xe
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME ORACLE_BASE ORACLE_SID PATH

12 comments:

  1. Nice post. Oracle is a relational database management system produced by oracle corporation. Nowadays most of the multinational companies used this oracle database for storing and managing their data's and programs. So learning Best Oracle Training in Chennai is one of the best idea to make a bright career.

    ReplyDelete
  2. Thanks for sharing informative article on java application development. Your post helped to understand the career in Java. JAVA Training in Chennai

    ReplyDelete
  3. Very good post how to implement oracle in linux OS. Good one.Oracle Training in Chennai

    ReplyDelete
  4. I'am planning to join Oracle certified course. I want some expert advice whether i should go for it or not.
    oracle training in chennai|oracle training institutes in chennai|FITA Chennai

    complaints

    ReplyDelete
  5. Nice post. This is very useful, Thanks for sharing.

    IELTS classes in Kuwait

    ReplyDelete
  6. Wonderful article with useful and clear explanation. I really enjoyed by reading your blog post. Thanks a lot for sharing this amazing content with us.

    Regards,
    CCNA Training in Chennai | CCNA Training Institute in Chennai | Best CCNA Training in Chennai

    ReplyDelete
  7. Wonderful directory ideas that can help to boost our own web site creating, after i creating web site I will recall these points as well as help make some really good creating.Business Blog

    ReplyDelete
  8. Credit rating score reporting isn't always something however oracle fusion procurement way wherein viable avail with alternatives to provide the client or the economic enterprise agency with all of the credit score and debt facts
    Oracle Fusion procurement Online Training
    Oracle Fusion cloud procurement Online Training

    ReplyDelete
  9. This article is something that will help me with my class assignment. It helped me to better understand another aspect of this topic. Thanks.
    limo service va

    ReplyDelete
  10. I would like to thank you for your nicely written post, its informative and your writing style encouraged me to read it till end. Thanks. limo dc

    ReplyDelete
  11. You need to take part in a contest for one of the finest websites online. I’m going to recommend this web site! Medical scheduling software

    ReplyDelete