Install Oracle-XE on incus/debian13
Install Oracle-XE on incus/debian13
TL;DR
wget https://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe_10.2.0.1-1.1_i386.deb
dpkg --add-architecture "i386"
apt-get update
apt install libc:i386
wget http://http.us.debian.org/debian/pool/main/liba/libaio/libaio1_0.3.113-4_i386.deb
apt install ./libaio1_0.3.113-4_i386.deb
/etc/init.d/oracle-xe configure
Intro
I had to install on some local incus instance an oracle db server. Just to test a storage procedure behavior with a Springboot(c) backend. I remembered had already done that years ago on a local debian box to test my vscode plugin but didn’t figure out the details anymore. So I’ve searched and find out the (great) post of Todd Trichler on oracle.com/articles and I immediatly recognized the one I’d followed at hte time to succeed in. So I mark it now as personal reference.
My first attempt to install a db oracle Free (sic - it still seems weird to place oracle and free in the same sentence) lead me to this two websites:
The first is still distributed at this time under rpm packages for redhat/CentOS, oralinux or suze.
For a quick test, the express edition appeared perfect.
Download packages
So I downloaded the package:
root@ora:~# wget https://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe-universal_10.2.0.1-1.1_i386.deb
--2025-12-09 12:13:07-- https://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe-universal_10.2.0.1-1.1_i386.deb
Resolving oss.oracle.com (oss.oracle.com)... 138.1.117.31
Connecting to oss.oracle.com (oss.oracle.com)|138.1.117.31|:443... connected.
HTTP request sent, awaiting response... 200 OK
Syntax error in Set-Cookie: HttpOnly;Secure at position 9.
Length: 262441286 (250M) [application/vnd.debian.binary-package]
Saving to: ‘oracle-xe-universal_10.2.0.1-1.1_i386.deb’
oracle-xe-universal_10.2.0.1-1.1_i386.deb 100%[========================================================================================>] 250.28M 11.2MB/s in 23s
2025-12-09 12:13:31 (10.7 MB/s) - ‘oracle-xe-universal_10.2.0.1-1.1_i386.deb’ saved [262441286/262441286]
and I temped a first try.
root@ora:~# apt install ./oracle-xe-universal_10.2.0.1-1.1_i386.deb
Note, selecting 'oracle-xe-universal:i386' instead of './oracle-xe-universal_10.2.0.1-1.1_i386.deb'
Solving dependencies... Error!
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
Unsatisfied dependencies:
oracle-xe-universal:i386 : Depends: libc6:i386 (>= 2.3.2) but it is not installable
Depends: libaio:i386 (>= 0.3.96) but it is not installable or
libaio1:i386 (>= 0.3.96) but it is not installable
Error: Unable to correct problems, you have held broken packages.
Error: The following information from --solver 3.0 may provide additional context:
Unable to satisfy dependencies. Reached two conflicting decisions:
1. oracle-xe-universal:i386=10.2.0.1-1.1 is selected for install
2. oracle-xe-universal:i386 Depends libc6:i386 (>= 2.3.2)
but none of the choices are installable:
[no choices]
Needed libraries
So I’ve first just gone with a search for that libraries:
root@ora:~# apt search ^libc6.i386
libc6-i386/stable 2.41-12 amd64
GNU C Library: 32-bit shared libraries for AMD64
libc6-i386-amd64-cross/stable 2.41-11cross1 all
GNU C Library: 32-bit shared libraries for AMD64 (for cross-compiling)
libc6-i386-cross/stable 2.41-11cross1 all
GNU C Library: Shared libraries (for cross-compiling)
libc6-i386-x32-cross/stable 2.41-11cross1 all
GNU C Library: 32-bit shared libraries for AMD64 (for cross-compiling)
and install them, But Still the same error. Oops effectively I didn’t notice in my hurry the i386 mention that mean I have to to activate the multiarch option. As described here in the wiki multi arch.
Switch to multiarch
dpkg --add-architecture "i386"
apt-get update
apt install -y libc6:i386
I didnt get result for libai:i386 so I downloaded the package directly
wget http://http.us.debian.org/debian/pool/main/liba/libaio/libaio1_0.3.113-4_i386.deb
--2025-12-09 12:30:01-- http://http.us.debian.org/debian/pool/main/liba/libaio/libaio1_0.3.113-4_i386.deb
Resolving http.us.debian.org (http.us.debian.org)... 208.80.154.139, 64.50.233.100, 64.50.236.52, ...
Connecting to http.us.debian.org (http.us.debian.org)|208.80.154.139|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 13504 (13K) [application/vnd.debian.binary-package]
Saving to: ‘libaio1_0.3.113-4_i386.deb’
libaio1_0.3.113-4_i386.deb 100%[========================================================================================>] 13.19K --.-KB/s in 0.001s
2025-12-09 12:30:01 (12.1 MB/s) - ‘libaio1_0.3.113-4_i386.deb’ saved [13504/13504]
root@ora:~# apt install ./libaio1_0.3.113-4_i386.deb
Note, selecting 'libaio1:i386' instead of './libaio1_0.3.113-4_i386.deb'
Installing:
libaio1:i386
Summary:
Upgrading: 0, Installing: 1, Removing: 0, Not Upgrading: 0
Download size: 0 B / 13.5 kB
Space needed: 37.9 kB / 205 GB available
Get:1 /root/libaio1_0.3.113-4_i386.deb libaio1 i386 0.3.113-4 [13.5 kB]
Selecting previously unselected package libaio1:i386.
(Reading database ... 12898 files and directories currently installed.)
Preparing to unpack .../libaio1_0.3.113-4_i386.deb ...
Unpacking libaio1:i386 (0.3.113-4) ...
Setting up libaio1:i386 (0.3.113-4) ...
Processing triggers for libc-bin (2.41-12) ...
Notice: Download is performed unsandboxed as root as file '/root/libaio1_0.3.113-4_i386.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
Install oracle-xe
Then the installation just works.
apt install ./oracle-xe_10.2.0.1-1.1_i386.deb
Note, selecting 'oracle-xe:i386' instead of './oracle-xe_10.2.0.1-1.1_i386.deb'
Installing:
oracle-xe:i386
Summary:
Upgrading: 0, Installing: 1, Removing: 0, Not Upgrading: 0
Download size: 0 B / 221 MB
Space needed: 405 MB / 204 GB available
Get:1 /root/oracle-xe_10.2.0.1-1.1_i386.deb oracle-xe i386 10.2.0.1-1.1 [221 MB]
Selecting previously unselected package oracle-xe:i386.
(Reading database ... 28060 files and directories currently installed.)
Preparing to unpack .../oracle-xe_10.2.0.1-1.1_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 1024 MB of swap space. This system has 0 MB
of swap space. Configure more swap space on the system and retry the installation.
/var/lib/dpkg/tmp.ci/preinst: 167: [: Illegal number: 18446744073692774399
/var/lib/dpkg/tmp.ci/preinst: 179: [: Illegal number: 18446744073692774399
Unpacking oracle-xe:i386 (10.2.0.1-1.1) ...
Setting up oracle-xe:i386 (10.2.0.1-1.1) ...
Executing Post-install steps...
-e You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.
Configure it
and to configure, we have to answer few questions. I have to search which config file I have to set to avoid this step. It will be useful for my ansible role.
/etc/init.d/oracle-xe configure
Oracle Database 10g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 10g Express
Edition. 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 <Enter> 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:
Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [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 "http://127.0.0.1:8080/apex"
Notes
ssh with X-Forwarding
So to connect remotely to your http://127.0.0.1:8080/apex
On the remote server:
- create user -ie
ora- as root on remote server instanceuseradd -m ora - install openssh-server
- install browser -ie firefox-
then on your local desktop
- connect with ssh -XC
@ - Verify there is a .Xauth
xauth add $(xauth list)
ssh -XC ora@10.233.67.184
The authenticity of host '10.233.67.184 (10.233.67.184)' can't be established.
ED25519 key fingerprint is SHA256:+Ii6d979mV+S7RYsqjfYVTdHpd9ADR4iL3IQKMTe89s.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.233.67.184' (ED25519) to the list of known hosts.
ora@10.233.67.184's password:
Linux ora 6.12.57+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.57-1 (2025-11-05) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
/usr/bin/xauth: file /home/ora/.Xauthority does not exist
$ ls -al ~/.Xauthority
-rw------- 1 ora ora 49 Dec 9 12:51 .Xauthority
$ xauth list
ora/unix:10 MIT-MAGIC-COOKIE-1 56fcc66d04ab701f835cc10c2c45d496
xauth add ora/unix:10 MIT-MAGIC-COOKIE-1 56fcc66d04ab701f835cc10c2c45d496
to avoid error message about libpci and libEGL
install libs: apt install libpci-dev; apt install libEGL