Neuvième système du catalogue, et le seul dont aucune distribution ne publie d'image cloud : celle d'un tiers est épinglée et sa somme vérifiée à chaque téléchargement. Son seed diffère aussi — networkd prend la clé d'un bloc pour un NOM d'interface là où netplan honore un « match: », et sshd refuse un compte dont le shell n'existe pas, d'où /bin/sh. Ses dépendances se DÉCLARENT dans conf/nixos/erplibre.nix : envfs répond à /usr/bin/env, nix-ld donne aux roues manylinux leur chargeur. Vérifié sur une VM : le verrou de 362 paquets s'installe et Odoo répond. --- EN --- Ninth system of the catalogue, and the only one no distribution publishes a cloud image for: a third party's is pinned and its sum verified at every download. Its seed differs too — networkd reads a block's key as an interface NAME where netplan honours a "match:", and sshd refuses an account whose shell does not exist, hence /bin/sh. Its dependencies are DECLARED in conf/nixos/erplibre.nix: envfs answers /usr/bin/env, nix-ld gives manylinux wheels their loader. Checked on a VM: the 362-package lock installs and Odoo answers. Assisted-by: Claude Opus 5
71 lines
3.7 KiB
Bash
Executable file
71 lines
3.7 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Le code de retour du script de distribution DOIT remonter : il est aujourd'hui
|
|
# la derniere commande executee, donc propage par accident. « set -e » le rend
|
|
# explicite, et update_env_version.py:818 s'en sert pour arreter l'installation
|
|
# au lieu d'enchainer sur un systeme sans compilateur.
|
|
set -e
|
|
|
|
# « $OSTYPE » ne decrit PAS le systeme : bash le fige au triplet avec lequel il
|
|
# a ete compile. openSUSE batit bash en « x86_64-suse-linux » et le renseigne
|
|
# donc a « linux », la ou Debian et Fedora donnent « linux-gnu ». Le test
|
|
# echouait, sans else, donc sans une ligne de sortie ni code d'erreur : AUCUNE
|
|
# dependance systeme n'etait posee, install_system() rendait 0, et
|
|
# l'installation s'arretait une heure plus tard sur « [Errno 2] ... 'cc' ».
|
|
# « uname -s » interroge le noyau et ne depend pas de la facon dont bash a ete
|
|
# bati. install_dev_extra_ubuntu.sh garde OSTYPE : il ne vise qu'Ubuntu.
|
|
OS_KERNEL="$(uname -s)"
|
|
|
|
if [[ "${OS_KERNEL}" == "Linux" ]]; then
|
|
source /etc/os-release
|
|
if [[ "${ID}" == "ubuntu" ]]; then
|
|
# 20.04 et 22.04 retirees : leur chaine d'outils ne suffit plus a ERPLibre
|
|
# (pikepdf exige qpdf >= 12.2, en C++20, quand focal livre GCC 9). Les
|
|
# versions intermediaires EOL (22.10, 23.04, 23.10, 25.04) partent avec.
|
|
if [[ "${VERSION_ID}" == "24.04" || "${VERSION_ID}" == "25.10" || "${VERSION_ID}" == "26.04" ]]; then
|
|
echo "\n---- linux-gnu installation process started ----"
|
|
./script/install/install_debian_dependency.sh
|
|
else
|
|
echo "Your version is not supported, only support 24.04, 25.10, 26.04 : ${VERSION_ID}"
|
|
exit 1
|
|
fi
|
|
elif [[ "${ID}" == "linuxmint" ]]; then
|
|
if [[ "${VERSION_ID}" == "22.3" ]]; then
|
|
echo "\n---- linux-gnu installation process started ----"
|
|
./script/install/install_debian_dependency.sh
|
|
else
|
|
echo "Your version is not supported, only support 22.3 : ${VERSION_ID}"
|
|
fi
|
|
elif [[ "${ID}" == "debian" ]]; then
|
|
./script/install/install_debian_dependency.sh
|
|
elif [[ "${ID}" == "arch" ]]; then
|
|
./script/install/install_arch_linux.sh
|
|
elif [[ "${ID}" == "nixos" ]]; then
|
|
# NixOS ne pose pas de paquets : il applique une declaration. Sans cette
|
|
# branche, l'aiguillage tombait dans le « else » et appelait le script
|
|
# Debian, qui sortait en erreur des la detection du systeme -- avant meme
|
|
# d'essayer apt-get, absent de toute facon.
|
|
echo "\n---- NixOS installation process started ----"
|
|
./script/install/install_nixos_dependency.sh
|
|
elif [[ "${ID}" == opensuse* || "${ID_LIKE}" == *"suse"* ]]; then
|
|
# openSUSE Tumbleweed / Leap, SLES : gestionnaire zypper.
|
|
echo "\n---- SUSE installation process started ----"
|
|
./script/install/install_suse_dependency.sh
|
|
elif [[ "${ID}" == "fedora" || "${ID_LIKE}" == *"fedora"* || "${ID_LIKE}" == *"rhel"* ]]; then
|
|
# AlmaLinux et Rocky declarent ID_LIKE="rhel centos fedora" : elles passent
|
|
# donc par ce meme script, qui aiguille dnf.
|
|
echo "\n---- Fedora/RHEL installation process started ----"
|
|
./script/install/install_fedora_dependency.sh
|
|
else
|
|
./script/install/install_debian_dependency.sh
|
|
echo "Your Linux system is not supported, only support Ubuntu 24.04, 25.10, 26.04, Linux Mint 22.3, Debian, Fedora, AlmaLinux, Rocky Linux, openSUSE, Arch, NixOS."
|
|
fi
|
|
elif [[ "${OS_KERNEL}" == "Darwin" ]]; then
|
|
echo "\n---- Darwin installation process started ----"
|
|
./script/install/install_OSX_dependency.sh
|
|
else
|
|
# Un aiguillage muet qui rend 0 est le pire des cas : l'installation continue
|
|
# sur un systeme depourvu de tout. Meme sans savoir quoi poser, on le dit et
|
|
# on arrete.
|
|
echo "Systeme non reconnu (uname -s = ${OS_KERNEL}) : aucune dependance installee."
|
|
exit 1
|
|
fi
|