Oracle 19c on RHEL 9: runInstaller exits instantly with no logs

Oracle 19c on RHEL 9: runInstaller exits instantly with no logs

A silent failure that looks like “nothing happens” — caused by mount options preventing execution of installer components.

Read time: ~5 minutes
Tags: Oracle, 19c, RHEL9, Linux, Patching, RU, Troubleshooting

Context

I needed to install Oracle Database 19c on RHEL 9. The request was to deploy it across four servers: two VMs and two Azure instances.

Since the base Oracle 19c binaries are 19.3, and RHEL 9 support requires a newer RU (for my case, at least 19.19), I planned to install the software applying the RU during the installation using -applyRU.

Symptoms

  • runInstaller would immediately return to the prompt (both GUI and silent modes).
  • No relevant errors appeared in the logs (even with -debug).
  • strace didn’t show anything obvious; it looked like the installer “gave up” silently.
  • Installing without -applyRU predictably resulted in multiple errors (19.3 is not supported on RHEL 9).

Why this happens

The Oracle installer executes temporary components during the install process. If the filesystem used for temporary execution is mounted with noexec, Linux will block execution of any binaries/scripts located there. In practice, this can cause runInstaller to exit without producing useful output.

Root Cause

Both /tmp and /dev/shm were mounted with the noexec option. That was the reason the installer could not execute its temporary components and would exit instantly.

How to confirm

Check mount options for /tmp and /dev/shm:

$ mount | egrep ' /tmp | /dev/shm '
$ findmnt -no TARGET,OPTIONS /tmp /dev/shm

If you see noexec in the options, that is very likely your issue.

Fix

Remove noexec and remount. The exact command depends on your system and how those mounts are defined. Here are common examples:

Option A: Temporary fix (remount only)

### /tmp ###
$ sudo mount -o remount,exec /tmp

### /dev/shm (commonly tmpfs) ###
$ sudo mount -o remount,exec /dev/shm

Option B: Permanent fix (edit /etc/fstab)

If noexec is defined in /etc/fstab, remove it from the relevant lines for /tmp and/or /dev/shm (If you don't have the /dev/shm on the fstab no worries, just ignore it and fix the /tmp), then remount (or reboot during a maintenance window).

### After editing /etc/fstab ### 
$ sudo mount -o remount /tmp
$ sudo mount -o remount /dev/shm
Important: In many environments, noexec is a deliberate hardening control. If you must keep it, consider applying the change only during the installation window (temporary remount) and then reverting it afterwards. Always follow your security policy.

Rerun the installation (GUI or silent)

After removing noexec, the installer should run normally. Example silent install (adjust as needed):

$ ${ORACLE_HOME}/runInstaller -ignorePrereq -waitforcompletion        \
-applyRU ${PATCH_TOP}                                          \
-responseFile ${ORACLE_HOME}/install/response/db_install.rsp   \
oracle.install.option=INSTALL_DB_SWONLY                        \
ORACLE_HOSTNAME=${ORACLE_HOSTNAME}                             \
UNIX_GROUP_NAME=oinstall                                       \
INVENTORY_LOCATION=${ORA_INVENTORY}                            \
SELECTED_LANGUAGES=en,en_GB                                    \
ORACLE_HOME=${ORACLE_HOME}                                     \
ORACLE_BASE=${ORACLE_BASE}                                     \
oracle.install.db.InstallEdition=EE                            \
oracle.install.db.OSDBA_GROUP=dba                              \
oracle.install.db.OSBACKUPDBA_GROUP=dba                        \
oracle.install.db.OSDGDBA_GROUP=dba                            \
oracle.install.db.OSKMDBA_GROUP=dba                            \
oracle.install.db.OSRACDBA_GROUP=dba                           \
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false                     \
DECLINE_SECURITY_UPDATES=true

Conclusion

This issue was tricky because it looked like a “silent no-op” and produced no useful logs. In the end, the fix was simple: noexec on /tmp and /dev/shm prevented the Oracle installer from executing required temporary components. Once removed and remounted, runInstaller worked for both GUI and silent installation methods.

Comments

Popular Posts