erplibre/script/install/install_dev.sh
Mathieu Benoit fce1d5b00b [ADD] qemu : NixOS déployable, de son image à ses dépendances
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
2026-09-16 21:31:03 -04:00

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