{
  "schema_version": 2,
  "id": "operate/oss_and_stack/install/build-stack/almalinux-rocky-9",
  "title": "Build and run Redis Open Source on AlmaLinux/Rocky Linux 9.7+",
  "url": "https://redis.io/docs/latest/operate/oss_and_stack/install/build-stack/almalinux-rocky-9/",
  "summary": "",
  "tags": [
    "docs",
    "operate",
    "stack",
    "oss"
  ],
  "last_updated": "2026-09-21T15:59:08+01:00",
  "page_type": "content",
  "content_hash": "a203fcd15689816ed2fe500c99fd41ac78c40a0599a28a4b98499bdf41d782f3",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "Follow the steps below to build and run Redis Open Source with all data structures from its source code on a system running AlmaLinux 9.7 or later or Rocky Linux 9.7 or later.\n\n> [!NOTE]\n> Docker images used to produce these build notes:\n> - AlmaLinux:\n>     - almalinux:9.7\n>     - almalinux:9.7-minimal\n> - Rocky Linux:\n>     - rockylinux/rockylinux:9.7\n>     - rockylinux/rockylinux:9.7-minimal"
    },
    {
      "id": "1-prepare-the-system",
      "title": "1. Prepare the system",
      "role": "content",
      "text": "> [!NOTE]\n> For 9-minimal, you'll need to install `sudo` and `dnf` as follows:\n>\n> [code example]\n>\n> For 9 (regular), you'll need to install `sudo` as follows:\n>\n> [code example]\n\nEnable the required repositories (`epel-release` and CRB provide some of the `-devel` packages):\n\n[code example]"
    },
    {
      "id": "2-install-required-dependencies",
      "title": "2. Install required dependencies",
      "role": "content",
      "text": "Update your package lists and install the necessary development tools and libraries:\n\n[code example]\n\nEnable the GCC toolset:\n\n[code example]"
    },
    {
      "id": "3-install-cmake",
      "title": "3. Install CMake",
      "role": "content",
      "text": "Install CMake 3.25.1 manually:\n\n[code example]"
    },
    {
      "id": "4-download-and-extract-the-redis-source",
      "title": "4. Download and extract the Redis source",
      "role": "content",
      "text": "The Redis source code is available from [the Redis GitHub site](https://github.com/redis/redis/releases). Select the release you want to build and then select the .tar.gz file from the **Assets** drop down menu. You can verify the integrity of these downloads by checking them against the digests in the [redis-hashes GitHub repository](https://github.com/redis/redis-hashes).\n\nCopy the tar(1) file to `/usr/src`.\n\nAlternatively, you can download the file directly using the `wget` command, as shown below.\n\n[code example]\n\nReplace `<version>` with the three-digit Redis release number, for example `8.0.0`.\n\nExtract the source:\n\n[code example]"
    },
    {
      "id": "5-build-redis",
      "title": "5. Build Redis",
      "role": "content",
      "text": "Enable the GCC toolset, set the necessary environment variables, and build Redis with TLS and module support:\n\n[code example]"
    },
    {
      "id": "6-optional-verify-the-build",
      "title": "6. (Optional) Verify the build",
      "role": "content",
      "text": "Check the built Redis server and CLI versions:\n\n[code example]"
    },
    {
      "id": "7-start-redis",
      "title": "7. Start Redis",
      "role": "content",
      "text": "To start Redis, use the following command:\n\n[code example]\n\n> [!NOTE]\n> Before Redis 8.10, specify `redis-full.conf` instead of `redis.conf`.\n\nTo validate that the available modules have been installed, run the [`INFO`](https://redis.io/docs/latest/commands/info) command and look for lines similar to the following:\n\n[code example]"
    },
    {
      "id": "8-optional-install-redis-to-its-default-location",
      "title": "8. (Optional) Install Redis to its default location",
      "role": "content",
      "text": "[code example]"
    }
  ],
  "examples": [
    {
      "id": "1-prepare-the-system-ex0",
      "language": "bash",
      "code": "> microdnf install dnf sudo -y\n>",
      "section_id": "1-prepare-the-system"
    },
    {
      "id": "1-prepare-the-system-ex1",
      "language": "bash",
      "code": "> dnf install sudo -y\n>",
      "section_id": "1-prepare-the-system"
    },
    {
      "id": "1-prepare-the-system-ex2",
      "language": "bash",
      "code": "sudo dnf install -y epel-release\nsudo dnf config-manager --set-enabled crb",
      "section_id": "1-prepare-the-system"
    },
    {
      "id": "2-install-required-dependencies-ex0",
      "language": "bash",
      "code": "sudo dnf install -y \\\n    pkg-config \\\n    xz \\\n    wget \\\n    which \\\n    gcc-toolset-13-gcc \\\n    gcc-toolset-13-gcc-c++ \\\n    git \\\n    make \\\n    openssl \\\n    openssl-devel \\\n    python3 \\\n    python3-pip \\\n    python3-devel \\\n    unzip \\\n    rsync \\\n    clang \\\n    libtool \\\n    automake \\\n    autoconf \\\n    jq \\\n    systemd-devel",
      "section_id": "2-install-required-dependencies"
    },
    {
      "id": "2-install-required-dependencies-ex1",
      "language": "bash",
      "code": "sudo cp /opt/rh/gcc-toolset-13/enable /etc/profile.d/gcc-toolset-13.sh\necho \"source /etc/profile.d/gcc-toolset-13.sh\" | sudo tee -a /etc/bashrc",
      "section_id": "2-install-required-dependencies"
    },
    {
      "id": "3-install-cmake-ex0",
      "language": "bash",
      "code": "CMAKE_VERSION=3.25.1\nARCH=$(uname -m)\nif [ \"$ARCH\" = \"x86_64\" ]; then\n  CMAKE_FILE=cmake-${CMAKE_VERSION}-linux-x86_64.sh\nelse\n  CMAKE_FILE=cmake-${CMAKE_VERSION}-linux-aarch64.sh\nfi\nwget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_FILE}\nchmod +x ${CMAKE_FILE}\n./${CMAKE_FILE} --skip-license --prefix=/usr/local --exclude-subdir\nrm ${CMAKE_FILE}\ncmake --version",
      "section_id": "3-install-cmake"
    },
    {
      "id": "4-download-and-extract-the-redis-source-ex0",
      "language": "bash",
      "code": "cd /usr/src\nwget -O redis-<version>.tar.gz https://github.com/redis/redis/archive/refs/tags/<version>.tar.gz",
      "section_id": "4-download-and-extract-the-redis-source"
    },
    {
      "id": "4-download-and-extract-the-redis-source-ex1",
      "language": "bash",
      "code": "cd /usr/src\ntar xvf redis-<version>.tar.gz\nrm redis-<version>.tar.gz",
      "section_id": "4-download-and-extract-the-redis-source"
    },
    {
      "id": "5-build-redis-ex0",
      "language": "bash",
      "code": "source /etc/profile.d/gcc-toolset-13.sh\ncd /usr/src/redis-<version>\nexport BUILD_TLS=yes\nexport BUILD_WITH_MODULES=yes\nexport INSTALL_RUST_TOOLCHAIN=yes\nmake -j \"$(nproc)\" all",
      "section_id": "5-build-redis"
    },
    {
      "id": "6-optional-verify-the-build-ex0",
      "language": "bash",
      "code": "cd /usr/src/redis-<version>\n./src/redis-server --version\n./src/redis-cli --version",
      "section_id": "6-optional-verify-the-build"
    },
    {
      "id": "7-start-redis-ex0",
      "language": "bash",
      "code": "cd /usr/src/redis-<version>\n./src/redis-server redis.conf",
      "section_id": "7-start-redis"
    },
    {
      "id": "7-start-redis-ex1",
      "language": "bash",
      "code": "cd /usr/src/redis-<version>\n./src/redis-cli INFO\n...\n# Modules\nmodule:name=ReJSON,ver=20803,api=1,filters=0,usedby=[search],using=[],options=[handle-io-errors]\nmodule:name=search,ver=21005,api=1,filters=0,usedby=[],using=[ReJSON],options=[handle-io-errors]\nmodule:name=bf,ver=20802,api=1,filters=0,usedby=[],using=[],options=[]\nmodule:name=timeseries,ver=11202,api=1,filters=0,usedby=[],using=[],options=[handle-io-errors]\nmodule:name=RedisCompat,ver=1,api=1,filters=0,usedby=[],using=[],options=[]\nmodule:name=vectorset,ver=1,api=1,filters=0,usedby=[],using=[],options=[]\n...",
      "section_id": "7-start-redis"
    },
    {
      "id": "8-optional-install-redis-to-its-default-location-ex0",
      "language": "bash",
      "code": "cd /usr/src/redis-<version>\nsudo make install",
      "section_id": "8-optional-install-redis-to-its-default-location"
    }
  ]
}
