The article is for the purpose of conversion from RPM to DEB package and installation of Oracle 18c XE on Linux Debian system.
I have been using oracle 11g Express Edition (XE) in the past for many small project implementation on Oracle Linux. Why not Oracle Database Express Edition (XE) Release 18.4.0.0.0 (18c) running on Linux Debian system with computer architectures — 64-bit PC (amd64).
The installation of Debian 10 (Buster) with minimal server requirement with additional package installed and a headless TeamViewer being configure for remote access.
listed my Debian server environment:
# uname -a
Linux demo02 4.19.0–9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux# apt list --installed
linux-image-4.19.0-9-amd64/stable,stable,now 4.19.118-2+deb10u1 amd64
openssh-server/stable,stable,now 1:7.9p1-10+deb10u2 amd64
teamviewer/stable,now 15.7.6 amd64
xorg/stable,stable,now 1:7.7+19 amd64
xpra/buster,now 4.0.2-r26625-1 amd64
xterm/stable,stable,now 344–1 amd64
If you do a google search on “installation Oracle 18c XE on Linux”, same may suggest alternative way such as Oracle 18c XE on Docker, an 18c XE docker images size of 10.3GB, may be too heavy for me, [I’m looking for a lightweight solutions, aka. boost speed and a lot of valuable data to store].
demo:~$ docker logs 18c
demo:~$ docker images log here.
Let do it the Debian Way!
a few links from google search will guide me the conversion of RPM to Debian package using the alien command:
alien --script oracle-database-xe-18c-1.0-1.x86_64.rpm
but the conversion fail with warning and errors messages logs attached here.
long list warning and error messages start with :
“Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY”
to dpkg-shlibdeps messages:
— “unexpected SONAME”
— “can’t extract name and version from library”
— “contains an unresolvable reference to symbol _exit:”
— “unresolvable reference to symbol write:”
— “unresolvable reference to symbol ddttrsb_4dfl”
— “ELF format: ‘elf64-x86–64’ abi: ‘0201003e00000000’; RPATH: ”.
With the verbose on:
alien --script --verbose oracle-database-xe-18c-1.0-1.x86_64.rpm
A long list of missing library can be found in this log file, notice the above missing library. Many of this can be found on the Oracle Linux environment. So let do the conversion of the RPM into Debian package using Oracle Linux 7.8 (listed are my virtual machine server environment) and alien is needed to get the job done.
here is my Oracle Linux environment that successfully do conversion for me:
$ uname -a
Linux demo01 3.10.0-1127.8.2.el7.x86_64 #1 SMP Wed May 13 17:48:48 PDT 2020 x86_64 GNU/Linux$ yum list alien debconf debhelper kernel-3.10.0-1127.13.1.el7
Loaded plugins: langpacks, ulninfo
Installed Packages
alien.noarch 8.95-3.el7 @epel
debconf.noarch 1.5.74-4.el7 @epel
debhelper.noarch 11.4-2.el7 @epel
kernel.x86_64 3.10.0-1127.13.1.el7 @ol7_latestalien --script oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
alien --script oracle-database-xe-18c-1.0-1.x86_64.rpm
The successful build “oracle-database-preinstall-18c_1.0-2_amd64.deb and oracle-database-xe-18c_1.0-2_amd64.deb” can be transfer any to X86_64 architecture of Debian-Based Linux Distributions including Ubuntu or Mint server for installation and conversion log is here.
Successful build deb package are listed here compare to it original RPM package with it file size list:
# ls -l oracle-database-xe-18c*
-rw-r-- r-- demo01 oracle 2521766408 May 20 00:42 oracle-database-xe-18c-1.-1.x86_64.rpm
-rw-r-- r-- demo01 oracle 2404127986 Jun 27 13:04 oracle-database-xe-18c_1.0-2_amd64.deb
“Software Only” installation of Oracle 18c XE on Debian 10 (Buster) start here. [please note the basic prerequisites installation steps]
apt update
apt install libaio*
apt install ./oracle-database-preinstall-18c_1.0-2_amd64.deb
apt install ./oracle-database-xe-18c_1.0-2_amd64.deb
… detail install log here with this messages:
[INFO] Oracle home installed successfully and ready to be configured.
When Oracle 18c XE is installed successfully, a proper setup and configuration is require before creating the database.
- hosts file
- oracle linux group and account
- .bash_profile configuration
- listener.ora and sqlnet.ora may need to be properly configure, a sample configuration available here.
~after the above configuration is completed, start the Oracle listener from terminal using your oracle linux account~
oracle@demo02:~$. $HOME/.bash_profile
oracle@demo02:~$ lsnrctl start
STATUS of the LISTENER
— — — — — — — — — — — —
Alias LISTENER
Version TNSLSNR for Linux: Version 18.0.0.0.0 — Production
Start Date 29-JUN-2020 21:27:59
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/18c/dbhomeXE/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/demo02/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=demo02.abc.net)(PORT=1521)))
The listener supports no services
The command completed successfully
Using Database Configuration Assistant or DBCA to create database
My prefer setup of Oracle database is using DBCA. If you were installing Xorg, Xpra and allow X11-forwarding on SSH them you run it from xterm as screen show from my windows machine:
option for “Advanced configuration”
Go with simple — “Oracle Single Instance database”
Select the Listener that has been previously configure “DEMO02” .
Allow maximum of 2GB (2048MB) memory, always check with Oracle XE FAQ.
Click Finish to create the database the way you prefer.
when DBCA setup completed successfully with final stage to setup your oracle database account password
Your “tnsnames.ora” shall look like this:
DEMO02 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.102)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = demo02)
))
LISTENER_DEMO02 =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.102)(PORT = 1521))
After the DBCA setup has successfully completed you have the proper Oracle 18c XE running on Debian 10 (Buster). you can check the status of the running Oracle with the following command from the terminal.
oracle@demo02:~$ lsnrctl status
LSNRCTL for Linux: Version 18.0.0.0.0 — Production on 28-JUN-2020 21:12:01
Copyright © 1991, 2018, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
— — — — — — — — — — — —
Alias LISTENER
Version TNSLSNR for Linux: Version 18.0.0.0.0 — Production
Start Date 28-JUN-2020 20:21:21
Uptime 0 days 0 hr. 50 min. 40 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/18c/dbhomeXE/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/demo02/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=demo02.abc.net)(PORT=1521)))
Services Summary…
Service “demo02” has 1 instance(s).
Instance “demo02”, status READY, has 1 handler(s) for this service…
Service “demo02XDB” has 1 instance(s).
Instance “demo02”, status READY, has 1 handler(s) for this service…
The command completed successfully
Testing Connection …
my favorite SQL client software application and a database administration tool — DBeaver to connect to Oracle 18c XE database on Debian server.
Let do a quick database connection testing.