Red Hat Enterprise Linux (RHEL) and AlmaLinux

Supported Releases

This chapter provides additional information for installing OMNeT++ on Red Hat Enterprise Linux (RHEL), RockyLinux and AlmaLinux distributions.

Installing the Prerequisite Packages

Note

You will need Red Hat Enterprise Linux Desktop Workstation for OMNeT++. The Desktop Client version does not contain development tools.

To install the required packages, type in the terminal. You may need sudo privileges for these commands.

First, enable the EPEL (Extra Packages for Enterprise Linux) repository, which provides additional packages:

$ sudo dnf install -y epel-release

Then, install the core development tools and libraries:

$ sudo dnf install -y make ccache clang lld lldb gdb bison flex perl \
    python3-devel python3-pip libxml2-devel zlib-devel graphviz \
    xdg-utils elfutils-devel

Next, install packages for the graphical environment (Qtenv and IDE). If you do not need GUI support, you can skip this step and later configure OMNeT++ with WITH_QTENV=no and WITH_OSG=no.

$ sudo dnf install -y qt6-qttools-devel qt6-qtbase-devel qt6-qtsvg qt6-qtwayland

Warning

3D Visualization (OpenSceneGraph) Support

OpenSceneGraph is generally not available or easily installable on RHEL/AlmaLinux distributions from standard repositories. Therefore, it is strongly recommended to build OMNeT++ without 3D support on these systems.

You should configure OMNeT++ with the WITH_OSG=no option. If you are using the install.sh script, it will prompt you or you can use the --no-3d flag.

Next, set up a Python virtual environment for OMNeT++. In the root directory of your OMNeT++ download:

$ python3 -m venv .venv --upgrade-deps --clear --prompt "omnetpp/.venv"
$ source .venv/bin/activate

Then, install the required Python packages into the virtual environment:

$ python3 -m pip install -r python/requirements.txt

Note

The commands above install Clang as the C++ compiler and LLD as the linker. If you prefer to use GCC and the system’s default linker, you can adjust the package list accordingly (e.g., replace clang with g++ and omit lld) and set the PREFER_CLANG=no and PREFER_LLD=no options in the configure.user file or during the ./configure step. If you skip the GUI packages or due to the lack of OpenSceneGraph, remember to disable the corresponding features (WITH_QTENV=no, WITH_OSG=no) in configure.user or during the ./configure step.

To install additional (optional) packages for parallel simulation, type:

$ su -c 'yum install openmpi-devel'

Note that openmpi will not be available by default, it needs to be activated in every session with the

$ module load openmpi_<arch>

command, where <arch> is your architecture (usually x86_64). When in doubt, use module avail to display the list of available modules. If you need MPI in every session, you may add the module load command to your startup script (.bashrc).

SELinux

You may need to turn off SELinux when running certain simulations. To do so, click on System > Administration > Security Level > Firewall, go to the SELinux tab, and choose Disabled.

You can verify the SELinux status by typing the sestatus command in a terminal.

Note

From OMNeT++ 4.1 on, makefiles that build shared libraries include the chcon -t textrel_shlib_t lib<name>.so command that properly sets the security context for the library. This should prevent the SELinux-related “cannot restore segment prot after reloc: Permission denied” error from occurring, unless you have a shared library which was built using an obsolete or hand-crafted makefile that does not contain the chcon command.