Installing Oracle Database XE on Debian, Ubuntu, and Kubuntu

By Todd Trichler

What happens when you try to install Oracle Database XE Beta on a new Linux distribution? You learn a whole lot!

Updated August 2007 - LinuxWorld Mexico Installfest

In my day job I get to work with .rpm-based Linux distros quite a bit in the form of RHEL, SLES, and Asianux. Recently I noticed that the Oracle Database XE doc mentions support for Debian. My sum experience with this could best be described as vicarious, having never before installed Oracle on a .deb-based distro.

What follows is one man's walk through the technical steps to install the beta of Oracle Database XE on Kubuntu 5.10 Breezy, a Linux distro based on the .deb package format and KDE. The lessons learned and suggestions also apply to Debian, Ubuntu, and other .deb distros.

If you are interested in the "back story" about this journey from the various PHP developers and people who helped along the way, please read the sidebar.

Update (March 2006): With Oracle Database XE in production, it is even easier to install Oracle on Debian-based distros (thanks to Joel Becker).

There is now an apt-get repository up on for XE. Just add:

deb unstable main non-free

to /etc/apt/sources.list and then:

# wget -O- | sudo apt-key add - # apt-get update # apt-get install oracle-xe 'libaio' and 'bc' are in the repository, so dependancies will pull them in if the user doesn't have them. (Note: You will need to 'sudo' or have 'root' privileges to install XE.)

Catch-all disclaimer: These steps worked for me on my configuration; they might not work on yours.

Download an iso of Kubuntu Breezy version and burn an install disc.

Do a standard install of Kubuntu. When prompted on the partioning choose "Erase entire HD and use LVM".

Do not set any of the kernel parameters because the latest beta versions of XE are supposed to check the parameters and increase them if neccessary. (Note: If you are using an older beta you will want to check those; better still, download the latest version.)

Confirm that the pre-requisite (glibc and libaio equivalent) libraries are installed. On Kubuntu and Ubuntu they are called "libc6" and "libaio1". (I used Adept, the new GUI package management tool, to install libaio1; libc6 was already installed.) As Wim Coekaerts described in his podcast on the subject, currently you need to use Debian unstable to get the equivalent packages, but in the future with Debian sid they would just be included.

As _root_ began installing the latest available Oracle XE beta:

todd@kubuntu:~$ su - root@kubuntu:~# cd /home/todd/Desktop root@kubuntu:/home/todd/Desktop# ls DapperDevStatus02-Feb-2006.pdf oracle-xe_10.2.0.1-0.060128_i386.deb trash.desktop root@kubuntu:/home/todd/Desktop# dpkg -i oracle-xe_10.2.0.1-0.060128_i386.deb Selecting previously deselected package oracle-xe. (Reading database ... 58594 files and directories currently installed.) Unpacking oracle-xe (from oracle-xe_10.2.0.1-0.060128_i386.deb) ... This system does not meet the minimum requirements for swap space. Based on the amount of physical memory available on the system, Oracle Database 10g Express Edition requires 1006 MB of swap space. This system has 799 MB of swap space. Configure more swap space on the system and retry the installation. dpkg: error processing oracle-xe_10.2.0.1-0.060128_i386.deb (--install): subprocess pre-installation script returned error exit status 1 Errors were encountered while processing: oracle-xe_10.2.0.1-0.060128_i386.deb root@kubuntu:/home/todd/Desktop#

Note: I would not recommend using these types of commands to add swap unless you either understand what they are doing, or you trust the person who has recommended the fix and they are familiar with your system. Better still, add enough swap to start with. Well placed sources tell me that by the time Kubuntu 6.04 Dapper goes production (April 2006?), this might not be an issue.

root@kubuntu:/home/todd/Desktop# dpkg -i oracle-xe_10.2.0.1-0.060128_i386.deb (Reading database ... 62016 files and directories currently installed.) Unpacking oracle-xe (from oracle-xe_10.2.0.1-0.060128_i386.deb) ... Setting up oracle-xe ( ... Oracle Database 10g Express Edition is not configured. You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database. Executing Post-install steps... You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.

Although it is installed at this point you still need to configure it :

root@kubuntu:/home/todd/Desktop# /etc/init.d/oracle-xe configure

Oracle Database 10g Express Edition Configuration

Oracle Database XE

Oracle Database XE

This will configure on-boot properties of Oracle Database XE. The following questions will determine whether the database should be starting upon system boot, the ports it will use, and the passwords that will be used for database accounts. Press to accept the defaults. Ctrl-C will abort.

Specify the HTTP port that will be used for Oracle Application Express [8080]: Specify a port that will be used for the database listener [1521]: Specify a password to be used for database accounts. Note that the same password will be used for SYS and SYSTEM. Oracle recommends the use of different passwords for each database account. This can be done after initial configuration: Confirm the password: (* make sure you remember this password *) Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]: y Starting Oracle Net Listener...Done Configuring Database...Done Starting Oracle Database 10g Express Edition Instance...Done Installation Completed Successfully. To access the Database Home Page go to "" root@kubuntu:/home/todd/Desktop#

At this point you can fire up Firefox, login as 'system' with the 'password' you created during the install, and you should see the XE homepage:

Known gotchas and workarounds FAQ:

Q. Hey, if it's installed, where are my menu items? 
A. With this beta you will find XE's lost menu items, in the conveniently named Lost & Found. But before you run off to fix the structure with KDE's menu editor, you might try rebooting. For me, a reboot seemed to refresh the menu structure, offering a more presentable menu.

Q. Minor menu item anomaly after reboot: The refreshed menu still has an extra "Getting Started with XE." Why? 
A. I guess they really want us to get started with XE!

Q. How come my user 'todd' can't start the database using the created menu item? 
Q. How come my user 'todd' can't start the database using the created menu item? 
A. User 'todd' is not a member of the 'dba' group. You can add the user by navigating to the System Settings using the adminstrative mode to add user 'todd' to the 'dba' group.

Q. For some reason, default behavior in Konqueror does not mesh well with XE menu items. 
A. the easiest fix here is to use Adept to install Firefox. They have done some work with Firefox recently and it is getting fairly stable on Kubuntu.

Q. Why do I get a 'bc' when I install on the Kubuntu server version? 
A. The bc errors are because that package is not installed as it is on the dektop version. Either do a#apt-get install oracle-xe from to pull in the 'bc' package or install it manually before installing XE.

Q. When I install XE on the Kubuntu server version, sometimes the XE menu items show up in Lost&Found. Why? 
A. This is because XE expects KDE to be already in place. If you install the Kubuntu server version, first do a #apt-get install kubuntu-desktop firefox and only then install XE ( #apt-get install oracle-xe). The graphical menu items will be correct.

If you have any interesting links about installing XE on other distributions, please post them via the "comments" email. After looking at the differences between the dpkg and .rpm-based systems, my curiousity has gotten the better of me and would like to compare the nuances.


Birth of a .deb Package

When XE came out in 2005 I downloaded the .rpm version and installed it succesfully on RHEL4 and SLES9. Seeing that it also would support Debian-based distros, I decided to try and install it on one. I chose Kubuntu as my target OS, mainly because it is a .deb-based distro that uses my familiar KDE desktop. In my opinion, KDE is easier for newbies and for people with a Windows background. (If you prefer Gnome desktop, you might want to try this on Ubuntu.) The only major problem I have with Kubuntu is that Firefox does not come installed by default.

In November I used the 'alien' tool to create a .deb packge from the .rpm version, and was able to install a rudimentary database with lots of errors and mangled menus. When I asked Wim about the menus, he said that Joel Becker on our Linux kernel team was looking into creating a .deb package.

Developers are "territorial"; they like to "mark their ground" and are the best champions of their chosen technologies. Paul Scott, a IT administrator for a South Africa university was minding his own business, sitting with his laptop in a Frankfurt lobby during the International PHP Conference. On his laptop was a Debian and another sticker I had seen being handed out in conjunction with Ubuntu CDs. Turns out that not only is he familiar with Debian's packaging system, but he has also built packages for Ubuntu64 Linux. At the Installfest we also met Austrian Clemens Fink, who at a previous fest had succesfully installed Oracle Database 10g EE on his own custom-rolled Debian kernel.

Paul and Clemens spent about 4 hours cleaning up the menus on the initial OracleXE.deb alpha version, while I sat marvelling at their ability to navigate the differences between the .rpm menu system that XE had originally been built against and the dpkg system. About 30 minutes into it they had a working version. They then spent the rest of the time "debianizing" it and making sure it was done right or in a "Debian way"—I guess when it is a labor of love and you are working with your chosen technologies, attention to detail comes naturally. Thanks guys!

When I got back to HQ, Joel set up a workspace that we could use to collaborate with them, with Joel getting the latest tar balls from ST. After this six-city, three-continent, multi-culture collaboration and several iterations later, the beta version of oracle-xe_10.2.0.1-0.060128_i386.deb was born.