Prérequis système
L'installation de GROMACS 2023 sur CentOS 7.6 nécessite de résoudre plusieurs incompatibilités liées aux versions par défaut des outils de compilation. Le système embarque nativement GCC 4.x et Python 2.x, ce qui est insuffisant pour compiler GROMACS. Il est impératif de disposer au minimum de GCC 5.x (idéalement 9.x), CMake ≥ 3.18.4 et Python 3.x.
Mise à niveau du compilateur GCC
Plutôt que de reconstruire GCC depuis les sources — une opération longue et gourmande en espace disque — on exploite les collections logicielles Red Hat (SCL) pour installer une version récente de GCC de manière temporaire :
# Ajout du dépôt SCL
sudo yum install -y centos-release-scl
# Installation de GCC 9 et du compilateur C++ associé
sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++
# Activation de l'environnement devtoolset-9 dans la session courante
source /opt/rh/devtoolset-9/enable
# Vérification de la version active
gcc --version
La sortie attendue doit indiquer une version 9.x de GCC. Cette activation n'est pas permanente : chaque nouveau terminal nécessitera de relancer la commande source /opt/rh/devtoolset-9/enable.
Installation d'une version récente de CMake
Les dépôts CentOS 7 proposent une version trop ancienne de CMake. Il convient d'installer manuellement une version compatible :
# Téléchargement de CMake 3.25.1
cd /tmp
wget -q https://cmake.org/files/v3.25/cmake-3.25.1-linux-x86_64.tar.gz
# Extraction dans un répertoire dédié
sudo mkdir -p /opt/cmake
sudo tar -xzf cmake-3.25.1-linux-x86_64.tar.gz -C /opt/cmake
# Ajout au PATH via un script d'environnement
cat <<'EOF' | sudo tee /etc/profile.d/cmake_path.sh
export PATH=/opt/cmake/cmake-3.25.1-linux-x86_64/bin:$PATH
EOF
# Rechargement du profil et vérification
source /etc/profile
cmake --version
Installation de Python 3
Les dépendances de build de Python 3 doivent être installées au préalable :
sudo yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel \
sqlite-devel readline-devel tk-devel libffi-devel
# Récupération et extraction des sources de Python 3.7
cd /tmp
wget -q https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz
tar -xzf Python-3.7.12.tgz
cd Python-3.7.12
# Configuration avec un préfixe personnalisé
./configure --prefix=/usr/local/python3 --enable-optimizations
# Compilation parallèle et installation
make -j$(nproc)
sudo make altinstall
On crée ensuite des liens symboliques pour un accès simplifié depuis la ligne de commande :
sudo ln -sf /usr/local/python3/bin/python3.7 /usr/bin/python3
sudo ln -sf /usr/local/python3/bin/pip3.7 /usr/bin/pip3
python3 --version
Compilation et installation de GROMACS 2023
Télécharger l'archive depuis le serveur officiel :
cd /tmp
wget -q https://ftp.gromacs.org/gromacs/gromacs-2023.3.tar.gz
tar -xzf gromacs-2023.3.tar.gz
cd gromacs-2023.3
Créer un répertoire de construction hors-sources et lancer la configuration :
mkdir compilation_dir && cd compilation_dir
cmake .. \
-DGMX_BUILD_OWN_FFTW=ON \
-DREGRESSIONTEST_DOWNLOAD=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local/gromacs \
-DGMX_GPU=OFF
L'option GMX_BUILD_OWN_FFTW=ON permet à CMake de télécharger et compiler automatiquement la bibliothèque FFTW. L'option REGRESSIONTEST_DOWNLOAD=ON récupère les jeux de tests de régression.
Procéder à la comiplation et aux vérifications :
# Compilation (le temps dépend du nombre de cœurs disponibles)
make -j$(nproc)
# Exécution des tests de régression
make check
# Installation dans le répertoire cible
sudo make install
Après l'installation, il faut charger l'environenment GROMACS dans la session courante :
source /usr/local/gromacs/bin/GMXRC
# Vérification du bon fonctionnement
gmx --version
Le résultat des tests devrait indiquer un taux de réussite de 100%. Si des tests échouent, il convient de vérifier que le compilatuer et les dépendances sont correctement configurés avant de relancer la compilation.
Pérenniser l'environnement
Pour éviter de devoir réactiver manuellement les outils à chaque session, ajouter les lignes suivantes dans le fichier ~/.bashrc :
# Activation de GCC 9
source /opt/rh/devtoolset-9/enable
# Chemin vers CMake
export PATH=/opt/cmake/cmake-3.25.1-linux-x86_64/bin:$PATH
# Environnement GROMACS
source /usr/local/gromacs/bin/GMXRC
Exécuter source ~/.bashrc pour appliquer les modifications immédiatement.