environment/os/centos-9.sh
Rama master · réplica de lectura del repositorio original.
#!/bin/bash
set -Eeuo pipefail
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
source "$DIR/lib.sh"
TOOLCHAIN_BUILD_DEPS=(
wget # used by gcc download_prerequisites
curl-minimal # used for archive download (EL9 ships the curl binary as curl-minimal)
coreutils-common gcc gcc-c++ make # generic build tools
# NOTE: Pure libcurl conflicts with libcurl-minimal
libcurl-devel # cmake build requires it
gnupg2 # used for archive signature verification
tar gzip bzip2 xz unzip # used for archive unpacking
zlib-devel # zlib library used for all builds
expat-devel xz-devel python3-devel texinfo libbabeltrace-devel # for gdb
readline-devel # for cmake and llvm
libffi-devel libxml2-devel # for llvm
libedit-devel pcre-devel pcre2-devel automake bison # for swig
file
openssl-devel
gmp-devel
gperf
diffutils
patch
custom-rust # for mgcxx
libtool # for protobuf
openssl-devel pkgconf-pkg-config # for pulsar
cyrus-sasl-devel # for librdkafka
python3-pip # for conan
)
TOOLCHAIN_RUN_DEPS=(
make # generic build tools
tar gzip bzip2 xz # used for archive unpacking
zlib # zlib library used for all builds
python3 # llvm helper scripts; gdb ships its own python via the sysroot
)
MEMGRAPH_BUILD_DEPS=(
git # source code control
gcc-c++ libstdc++-devel libstdc++-static # conan tool builds (ninja links -static-libstdc++)
make cmake pkgconf-pkg-config # build system
wget tar gzip # for downloading and unpacking libs (curl binary ships via curl-minimal)
perl # conan openssl's Configure
gperf # conan libseccomp source build
readline-devel # optional readline support (manual tests)
# MAGE's query-module python deps (torch/PyG/DGL wheels) are python 3.12
# only, so memgraph embeds python 3.12 here (built with
# -DMG_PYTHON_VERSION=3.12) rather than the distro-default 3.9. Needs the
# 3.12 dev headers/libs to link against, plus the interpreter + pip to
# install the module deps at package time.
python3.12-devel python3.12 python3.12-pip python3.12-pyyaml # for query modules
python3-devel # for build tooling that still targets the system python
patchelf # POST_BUILD step rewrites memgraph's DT_NEEDED for Python abi3 portability
openssl-devel # for mgconsole (cloned + built at package time)
python3 python3-pip python3-virtualenv # for conan (runs in a venv) and build tooling
custom-rust
rpm-build rpmlint # for RPM package building
which # needed by various build and test scripts
autoconf # for jemalloc code generation
libtool # for protobuf code generation
ninja-build
krb5-devel # for building python gssapi (kerberos auth module)
)
# Extra packages on top of MEMGRAPH_BUILD_DEPS needed to run the test suites.
MEMGRAPH_TEST_DEPS=(
nmap-ncat lsof # for qa, macro_benchmark and stress tests
custom-node # for driver tests
libatomic # node >= 26 links against libatomic.so.1, not pulled in by these base images
nodejs golang custom-golang # for driver tests
zip unzip java-25-openjdk java-25-openjdk-devel custom-maven # for driver tests (JDK 17 required) and neo4j (macro benchmarks)
xmlsec1-devel xmlsec1-openssl-devel # pip xmlsec (SAML SSO) builds from source; no wheels since 1.3.15
sudo # stress tests set up passwordless sudo for mg (iptables)
)
MEMGRAPH_RUN_DEPS=(
logrotate openssl python3 libseccomp
python3.12 # embedded interpreter for query modules (see MEMGRAPH_BUILD_DEPS)
krb5-libs # runtime for python gssapi (kerberos auth module)
)
setup_repos() {
dnf config-manager --set-enabled crb
# Enable EPEL for additional packages
dnf install -y epel-release epel-next-release
# enable rpm fusion
dnf install --nogpgcheck -y https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-9.noarch.rpm
}
main "$@"