diff --git a/.github/data/build-matrix.json b/.github/data/build-matrix.json
index 427819b250..b066311f34 100644
--- a/.github/data/build-matrix.json
+++ b/.github/data/build-matrix.json
@@ -81,6 +81,11 @@
       "artifact_key": "opensuse15.2",
       "rmjsonc": "zypper rm -y libjson-c-devel"
     },
+    {
+      "distro": "oraclelinux:8",
+      "artifact_key": "oraclelinux8",
+      "rmjsonc": "dnf remove -y json-c-devel"
+    },
     {
       "distro": "ubuntu:21.10",
       "artifact_key": "ubuntu21.10",
diff --git a/.github/scripts/pkg-test.sh b/.github/scripts/pkg-test.sh
index 7124d7b82a..196fefa999 100755
--- a/.github/scripts/pkg-test.sh
+++ b/.github/scripts/pkg-test.sh
@@ -98,7 +98,7 @@ case "${DISTRO}" in
   debian | ubuntu)
     install_debian_like
     ;;
-  fedora)
+  fedora | oraclelinux)
     install_fedora_like
     ;;
   centos)
diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml
index 446ac34bee..80c14e24b1 100644
--- a/.github/workflows/packaging.yml
+++ b/.github/workflows/packaging.yml
@@ -70,6 +70,8 @@ jobs:
           - {distro: opensuse, version: "15.2", pkgclouddistro: opensuse/15.2, format: rpm, base_image: opensuse/leap, platform: linux/arm64/v8, arch: arm64}
           - {distro: opensuse, version: "15.3", pkgclouddistro: opensuse/15.3, format: rpm, base_image: opensuse/leap, platform: linux/amd64, arch: amd64}
           - {distro: opensuse, version: "15.3", pkgclouddistro: opensuse/15.3, format: rpm, base_image: opensuse/leap, platform: linux/arm64/v8, arch: arm64}
+          - {distro: oraclelinux, version: "8", pkgclouddistro: ol/8, format: rpm, base_image: oraclelinux, platform: linux/amd64, arch: amd64}
+          - {distro: oraclelinux, version: "8", pkgclouddistro: ol/8, format: rpm, base_image: oraclelinux, platform: linux/arm64/v8, arch: arm64}
       # We intentiaonally disable the fail-fast behavior so that a
       # build failure for one version doesn't prevent us from publishing
       # successfully built and tested packages for another version.
diff --git a/.github/workflows/repoconfig-packages.yml b/.github/workflows/repoconfig-packages.yml
index d778a7fe28..c132ec8b52 100644
--- a/.github/workflows/repoconfig-packages.yml
+++ b/.github/workflows/repoconfig-packages.yml
@@ -30,6 +30,7 @@ jobs:
           - {distro: fedora, version: "35", pkgclouddistro: fedora/35, format: rpm, base_image: fedora, platform: linux/amd64, arch: amd64}
           - {distro: opensuse, version: "15.2", pkgclouddistro: opensuse/15.2, format: rpm, base_image: opensuse/leap, platform: linux/amd64, arch: amd64}
           - {distro: opensuse, version: "15.3", pkgclouddistro: opensuse/15.3, format: rpm, base_image: opensuse/leap, platform: linux/amd64, arch: amd64}
+          - {distro: oraclelinux, version: "8", pkgclouddistro: ol/8, format: rpm, base_image: oraclelinux, platform: linux/amd64, arch: amd64}
       # We intentiaonally disable the fail-fast behavior so that a
       # build failure for one version doesn't prevent us from publishing
       # successfully built and tested packages for another version.
diff --git a/packaging/installer/install-required-packages.sh b/packaging/installer/install-required-packages.sh
index e236340bf2..6eeda53c0d 100755
--- a/packaging/installer/install-required-packages.sh
+++ b/packaging/installer/install-required-packages.sh
@@ -198,7 +198,7 @@ get_os_release() {
   eval "$(grep -E "^(NAME|ID|ID_LIKE|VERSION|VERSION_ID)=" "${os_release_file}")"
   for x in "${ID}" ${ID_LIKE}; do
     case "${x,,}" in
-      alpine | arch | centos | clear-linux-os | debian | fedora | gentoo | manjaro | opensuse-leap | rhel | sabayon | sles | suse | ubuntu)
+      alpine | arch | centos | clear-linux-os | debian | fedora | gentoo | manjaro | opensuse-leap | ol | rhel | sabayon | sles | suse | ubuntu)
         distribution="${x}"
         version="${VERSION_ID}"
         codename="${VERSION}"
@@ -345,7 +345,7 @@ user_picks_distribution() {
     if [ "${REPLY}" = "yum" ] && [ -z "${distribution}" ]; then
       REPLY=
       while [ -z "${REPLY}" ]; do
-        if ! read -r -p "yum in centos, rhel or fedora? > "; then
+        if ! read -r -p "yum in centos, rhel, ol or fedora? > "; then
           continue
         fi
 
@@ -353,11 +353,14 @@ user_picks_distribution() {
           fedora | rhel)
             distribution="rhel"
             ;;
+          ol)
+            distribution="ol"
+            ;;
           centos)
             distribution="centos"
             ;;
           *)
-            echo >&2 "Please enter 'centos', 'fedora' or 'rhel'."
+            echo >&2 "Please enter 'centos', 'fedora', 'ol' or 'rhel'."
             REPLY=
             ;;
         esac
@@ -438,6 +441,17 @@ detect_package_manager_from_distribution() {
       fi
       ;;
 
+    ol*)
+      package_installer=
+      tree="ol"
+      [ -n "${dnf}" ] && package_installer="install_dnf"
+      [ -n "${yum}" ] && package_installer="install_yum"
+      if [ "${IGNORE_INSTALLED}" -eq 0 ] && [ -z "${package_installer}" ]; then
+        echo >&2 "command 'yum' or 'dnf' is required to install packages on a '${distribution} ${version}' system."
+        exit 1
+      fi
+      ;;
+
     suse* | opensuse* | sles*)
       package_installer="install_zypper"
       tree="suse"
@@ -501,6 +515,8 @@ check_package_manager() {
       package_installer="install_dnf"
       if [ "${distribution}" = "centos" ]; then
         tree="centos"
+      elif [ "${distribution}" = "ol" ]; then
+        tree="ol"
       else
         tree="rhel"
       fi
@@ -554,6 +570,8 @@ check_package_manager() {
       package_installer="install_yum"
       if [ "${distribution}" = "centos" ]; then
         tree="centos"
+      elif [ "${distribution}" = "ol" ]; then
+        tree="ol"
       else
         tree="rhel"
       fi
@@ -791,6 +809,7 @@ declare -A pkg_libz_dev=(
   ['gentoo']="sys-libs/zlib"
   ['sabayon']="sys-libs/zlib"
   ['rhel']="zlib-devel"
+  ['ol']="zlib-devel"
   ['suse']="zlib-devel"
   ['clearlinux']="devpkg-zlib"
   ['macos']="NOTREQUIRED"
@@ -807,6 +826,7 @@ declare -A pkg_libuuid_dev=(
   ['gentoo']="sys-apps/util-linux"
   ['sabayon']="sys-apps/util-linux"
   ['rhel']="libuuid-devel"
+  ['ol']="libuuid-devel"
   ['suse']="libuuid-devel"
   ['macos']="NOTREQUIRED"
   ['freebsd']="e2fsprogs-libuuid"
@@ -821,6 +841,7 @@ declare -A pkg_libmnl_dev=(
   ['gentoo']="net-libs/libmnl"
   ['sabayon']="net-libs/libmnl"
   ['rhel']="libmnl-devel"
+  ['ol']="libmnl-devel"
   ['suse']="libmnl-devel"
   ['clearlinux']="devpkg-libmnl"
   ['macos']="NOTREQUIRED"
@@ -878,6 +899,7 @@ declare -A pkg_netcat=(
   ['gentoo']="net-analyzer/netcat"
   ['sabayon']="net-analyzer/gnu-netcat"
   ['rhel']="nmap-ncat"
+  ['ol']="nmap-ncat"
   ['suse']="netcat-openbsd"
   ['clearlinux']="sysadmin-basic"
   ['arch']="gnu-netcat"
@@ -922,6 +944,7 @@ declare -A pkg_pkg_config=(
   ['gentoo']="virtual/pkgconfig"
   ['sabayon']="virtual/pkgconfig"
   ['rhel']="pkgconfig"
+  ['ol']="pkgconfig"
   ['suse']="pkg-config"
   ['freebsd']="pkgconf"
   ['clearlinux']="c-basic"
@@ -953,6 +976,7 @@ declare -A pkg_python_mysqldb=(
 
   # exceptions
   ['fedora-24']="python2-mysql"
+  ['ol-8']="WARNING|"
 )
 
 declare -A pkg_python3_mysqldb=(
@@ -963,6 +987,7 @@ declare -A pkg_python3_mysqldb=(
   ['gentoo']="dev-python/mysqlclient"
   ['sabayon']="dev-python/mysqlclient"
   ['rhel']="WARNING|"
+  ['ol']="WARNING|"
   ['suse']="WARNING|"
   ['clearlinux']="WARNING|"
   ['macos']="WARNING|"
@@ -994,6 +1019,7 @@ declare -A pkg_python_psycopg2=(
   ['gentoo']="dev-python/psycopg"
   ['sabayon']="dev-python/psycopg:2"
   ['rhel']="python-psycopg2"
+  ['ol']="python-psycopg2"
   ['suse']="python-psycopg2"
   ['clearlinux']="WARNING|"
   ['macos']="WARNING|"
@@ -1008,6 +1034,7 @@ declare -A pkg_python3_psycopg2=(
   ['gentoo']="dev-python/psycopg"
   ['sabayon']="dev-python/psycopg:2"
   ['rhel']="WARNING|"
+  ['ol']="WARNING|"
   ['suse']="WARNING|"
   ['clearlinux']="WARNING|"
   ['macos']="WARNING|"
@@ -1017,6 +1044,7 @@ declare -A pkg_python3_psycopg2=(
   ['centos-8']="python38-psycopg2"
   ['rhel-7']="python3-psycopg2"
   ['rhel-8']="python38-psycopg2"
+  ['ol-8']="python3-psycopg2"
 )
 
 declare -A pkg_python_pip=(
@@ -1047,6 +1075,7 @@ declare -A pkg_python_pymongo=(
   ['suse']="python-pymongo"
   ['clearlinux']="WARNING|"
   ['rhel']="WARNING|"
+  ['ol']="WARNING|"
   ['macos']="WARNING|"
   ['default']="python-pymongo"
 )
@@ -1060,6 +1089,7 @@ declare -A pkg_python3_pymongo=(
   ['suse']="python3-pymongo"
   ['clearlinux']="WARNING|"
   ['rhel']="WARNING|"
+  ['ol']="WARNING|"
   ['freebsd']="py37-pymongo"
   ['macos']="WARNING|"
   ['default']="python3-pymongo"
@@ -1068,6 +1098,7 @@ declare -A pkg_python3_pymongo=(
   ['centos-8']="python3-pymongo"
   ['rhel-7']="python36-pymongo"
   ['rhel-8']="python3-pymongo"
+  ['ol-8']="python3-pymongo"
 )
 
 declare -A pkg_python_requests=(
@@ -1103,6 +1134,7 @@ declare -A pkg_python3_requests=(
   ['centos-8']="python3-requests"
   ['rhel-7']="python36-requests"
   ['rhel-8']="python3-requests"
+  ['ol-8']="python3-requests"
 )
 
 declare -A pkg_lz4=(
@@ -1206,6 +1238,7 @@ declare -A pkg_valgrind=(
 declare -A pkg_ulogd=(
   ['centos']="WARNING|"
   ['rhel']="WARNING|"
+  ['ol']="WARNING|"
   ['clearlinux']="WARNING|"
   ['gentoo']="app-admin/ulogd"
   ['arch']="ulogd"
@@ -1235,6 +1268,7 @@ declare -A pkg_libelf=(
   ['fedora']="elfutils-libelf-devel"
   ['centos']="elfutils-libelf-devel"
   ['rhel']="elfutils-libelf-devel"
+  ['ol']="elfutils-libelf-devel"
   ['clearlinux']="devpkg-elfutils"
   ['suse']="libelf-devel"
   ['macos']="NOTREQUIRED"
@@ -1544,6 +1578,30 @@ validate_tree_freebsd() {
   fi
 }
 
+validate_tree_ol() {
+  local opts=
+  if [ "${NON_INTERACTIVE}" -eq 1 ]; then
+    echo >&2 "Running in non-interactive mode"
+    opts="-y"
+  fi
+
+  if [[ "${version}" =~ ^8(\..*)?$ ]]; then
+    echo " > Checking for CodeReady Builder ..."
+    if ! run ${sudo} dnf repolist | grep -q codeready; then
+      if prompt "CodeReady Builder not found, shall I install it?"; then
+        cat > /etc/yum.repos.d/ol8_codeready.repo <<-EOF
+	[ol8_codeready_builder]
+	name=Oracle Linux \$releasever CodeReady Builder (\$basearch)
+	baseurl=http://yum.oracle.com/repo/OracleLinux/OL8/codeready/builder/\$basearch
+	gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
+	gpgcheck=1
+	enabled=1
+	EOF
+      fi
+    fi
+  fi
+}
+
 validate_tree_centos() {
   local opts=
   if [ "${NON_INTERACTIVE}" -eq 1 ]; then