Build and run Redis Community Edition 8 on AlmaLinux/Rocky Linux 9.5
Redis Community Edition |
---|
Follow the steps below to build and run Redis Community Edition 8 from its source code on a system running AlmaLinux and Rocky Linux 9.5.
Docker images used to produce these build notes:
- AlmaLinux:
- almalinux:9.5
- almalinux:9.5-minimal
- Rocky Linux:
- rockylinux/rockylinux:9.5
- rockylinux/rockylinux:9.5-minimal
1. Prepare the system
For 9.5-minimal, you'll need to install sudo
and dnf
as follows:
microdnf install dnf sudo -y
For 9.5 (regular), you'll need to install sudo
as follows:
dnf install sudo -y
Enable the GoReleaser repository and install required packages:
sudo tee /etc/yum.repos.d/goreleaser.repo > /dev/null <<EOF
[goreleaser]
name=GoReleaser
baseurl=https://repo.goreleaser.com/yum/
enabled=1
gpgcheck=0
EOF
sudo dnf clean all
sudo dnf makecache
sudo dnf update -y
2. Install required packages
Install build dependencies, GCC toolset, Python, and utilities:
sudo dnf install -y --nobest --skip-broken \
pkg-config \
xz \
wget \
which \
gcc-toolset-13-gcc \
gcc-toolset-13-gcc-c++ \
git \
make \
openssl \
openssl-devel \
python3 \
python3-pip \
python3-devel \
unzip \
rsync \
clang \
curl \
libtool \
automake \
autoconf \
jq \
systemd-devel
Create a Python virtual environment:
python3 -m venv /opt/venv
Enable the GCC toolset:
sudo cp /opt/rh/gcc-toolset-13/enable /etc/profile.d/gcc-toolset-13.sh
echo "source /etc/profile.d/gcc-toolset-13.sh" | sudo tee -a /etc/bashrc
3. Install CMake
Install CMake version 3.25.1 manually:
CMAKE_VERSION=3.25.1
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
CMAKE_FILE=cmake-${CMAKE_VERSION}-linux-x86_64.sh
else
CMAKE_FILE=cmake-${CMAKE_VERSION}-linux-aarch64.sh
fi
wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_FILE}
chmod +x ${CMAKE_FILE}
./${CMAKE_FILE} --skip-license --prefix=/usr/local --exclude-subdir
rm ${CMAKE_FILE}
cmake --version
4. Download and extract the Redis source
The Redis source code is available from the Redis GitHub site. 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.
Copy the tar(1) file to /usr/src
.
Alternatively, you can download the file directly using the wget
command, as shown below.
cd /usr/src
wget -O redis-<version>.tar.gz https://github.com/redis/redis/archive/refs/tags/<version>.tar.gz
Replace <version>
with the three-digit Redis release number, for example 8.0.0
.
Extract the source:
cd /usr/src
tar xvf redis-<version>.tar.gz
rm redis-<version>.tar.gz
5. Build Redis
Enable the GCC toolset and compile Redis with TLS and module support:
source /etc/profile.d/gcc-toolset-13.sh
cd /usr/src/redis-<version>
export BUILD_TLS=yes
export BUILD_WITH_MODULES=yes
export INSTALL_RUST_TOOLCHAIN=yes
export DISABLE_WERRORS=yes
make -j "$(nproc)" all
6. (Optional) Verify the installation
Check that Redis was installed successfully:
./src/redis-server --version
./src/redis-cli --version
7. Start Redis
To start Redis, use the following command:
./src/redis-server redis-full.conf
To validate that the available modules have been installed, run the [INFO
]/docs/latest/commands/info/ command and look for lines similar to the following:
./src/redis-cli INFO
...
# Modules
module:name=ReJSON,ver=20803,api=1,filters=0,usedby=[search],using=[],options=[handle-io-errors]
module:name=search,ver=21005,api=1,filters=0,usedby=[],using=[ReJSON],options=[handle-io-errors]
module:name=bf,ver=20802,api=1,filters=0,usedby=[],using=[],options=[]
module:name=timeseries,ver=11202,api=1,filters=0,usedby=[],using=[],options=[handle-io-errors]
module:name=RedisCompat,ver=1,api=1,filters=0,usedby=[],using=[],options=[]
module:name=vectorset,ver=1,api=1,filters=0,usedby=[],using=[],options=[]
...
8. (Optional) Install Redis to its default location
cd /usr/src/redis-<version>
sudo make install