Installing software on Ubuntu usually entails using Synaptic or by using an apt-get command from the terminal. Unfortunately, there are still a number of packages out there that are only distributed in RPM format.
There’s a utility called Alien that converts packages from one format to the other. This doesn’t always mean that an rpm will work on your system, though. You will need to install some prerequisite software packages in order to install alien, however. These packages include gcc and make.
1. Run this command to install alien and other necessary packages:
sudo apt-get install alien dpkg-dev debhelper build-essential
2. Convert RPM package format to DEB package format (that is used by Ubuntu) using the command:
$ sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm oracle-xe_11.2.0-2_amd64.deb generated
3. Create the required chkconfig script using the command:
sudo pico /sbin/chkconfig
The pico text editor is started and the commands are shown at the bottom of the screen. Now copy and paste the following into the file and save:
#!/bin/bash
# Oracle 11gR2 XE installer chkconfig hack for Ubuntu
file=/etc/init.d/oracle-xe
if [[ ! `tail -n1 $file | grep INIT` ]]; then
echo >> $file
echo '### BEGIN INIT INFO' >> $file
echo '# Provides: OracleXE' >> $file
echo '# Required-Start: $remote_fs $syslog' >> $file
echo '# Required-Stop: $remote_fs $syslog' >> $file
echo '# Default-Start: 2 3 4 5' >> $file
echo '# Default-Stop: 0 1 6' >> $file
echo '# Short-Description: Oracle 11g Express Edition' >> $file
echo '### END INIT INFO' >> $file
fi
update-rc.d oracle-xe defaults 80 01
Note: In pico editor, Ctrl+o to save, ctrl+x to exit
4. Change the permission of the chkconfig file using the command:sudo chmod 755 /sbin/chkconfig
5. Set kernel parameters. Oracle 11gR2 XE requires additional kernel parameters which you need to set using the command:sudo pico /etc/sysctl.d/60-oracle.conf
6.
Copy the following into the file and save:# Oracle 11g XE kernel parameters fs.file-max=6815744 net.ipv4.ip_local_port_range=9000 65000 kernel.sem=250 32000 100 128 kernel.shmmax=536870912
7.
Verify the change using the command:sudo cat /etc/sysctl.d/60-oracle.conf
8.
You should see what you entered earlier. Now load the kernel parameters:sudo service procps start
output:
procps stop/waiting9.
Verify the new parameters are loaded using:sudo sysctl -q fs.file-max
output: fs.file-max = 6815744
You should see the file-max value that you entered earlier.10. Set up /dev/shm mount point for Oracle. Create the following file using the command:sudo pico /etc/rc2.d/S01shm_load
11. Copy the following into the file and save.#!/bin/sh case "$1" in start) mkdir /var/lock/subsys 2>/dev/null touch /var/lock/subsys/listener rm /dev/shm 2>/dev/null mkdir /dev/shm 2>/dev/null *) echo error exit 1 ;; esac
12.
Change the permissions of the file using the command:sudo chmod 755 /etc/rc2.d/S01shm_load
13.
Now execute the following commands:sudo ln -s /usr/bin/awk /bin/awk sudo mkdir /var/lock/subsys sudo touch /var/lock/subsys/listener
Now, Reboot Your System