From fb6f8b7db649b6ff00b16ff10fe6a7aa4e3dd434 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Thu, 19 Aug 2021 20:23:48 +0200 Subject: [PATCH] =?UTF-8?q?am=C3=A9liore=20script=20install=20et=20sa=20do?= =?UTF-8?q?c?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 21 +++++++++++++-------- tools/install_debian11.sh | 25 ++++++++----------------- tools/utils.sh | 2 +- 3 files changed, 22 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index bad567f40d..29cbedd44a 100644 --- a/README.md +++ b/README.md @@ -51,29 +51,34 @@ et migrer les données. systemctl stop scodoc - S'assurer qu'il est bien stoppé (`ps auxw`, ...), sans qui la migration va échouer. + S'assurer qu'il est bien stoppé (`ps auxw`, ...), sans quoi la migration va échouer. 3. Renommer le répertoire de ScoDoc 7: sudo su mv /opt/scodoc /opt/scodoc7 -Les données pourront être migrées après installation la nouvelle version, voir plus loin. +Les données pourront être migrées après installation la nouvelle version, voir plus loin. **XXX TODO: script de migration "en place"** (actuellement, seule la migration depuis une _autre_ machine scodoc7 est prévue.) ### Installer ScoDoc Sur un système Linux Debian 11, en tant que `root`: - - Charger la dernière release depuis https://scodoc.org/git/viennet/ScoDoc/releases +Si vous êtes développeur/testeur, partir du code _git_, avec `git clone https://scodoc.org/git/viennet/ScoDoc.git, le +renommer en `/opt/scodoc`et aller directement à l'étape 3. - - Déplacer ou copier le fichier `scodoc-x.y.z.tgz` dans `/opt` et le décomprimer: + 1. Charger la dernière release depuis https://scodoc.org/git/viennet/ScoDoc/releases + + 2. Déplacer ou copier le fichier `scodoc-x.y.z.tgz` dans `/opt` et le décomprimer: sudo su cd /opt; tar xf - ScoDoc-x.y.z.tgz # remplacer x.y.z par votre version + mv nom_du_rep_créé /opt/scodoc - - Lancer le script d'installation: - cd /opt/scodoc/tools - ./install_debian11.sh + 3. Lancer le script d'installation: + + cd /opt/scodoc/ + ./tools/install_debian11.sh ce script crée un compte utilisateur "scodoc" s'il n'existe pas déjà. @@ -178,7 +183,7 @@ Installer le nouveau serveur avec Debian 11 et ScoDoc 9. Charger les données ScoDoc 7: en tant qu'utilisateur "`scodoc`" cd /opt/scodoc - tools/restore_scodoc7_data.sh /tmp/sauvegarde-scodoc7.tgz + ./tools/restore_scodoc7_data.sh /tmp/sauvegarde-scodoc7.tgz (adaptez l'argument si les données ont été copiées ailleurs) diff --git a/tools/install_debian11.sh b/tools/install_debian11.sh index 28bf6136a2..39ab65a512 100755 --- a/tools/install_debian11.sh +++ b/tools/install_debian11.sh @@ -1,11 +1,11 @@ #!/bin/bash # -# ScoDoc 8: install third-party software necessary for our installation +# ScoDoc 9: install third-party software necessary for our installation # starting for a minimal Debian (Buster, 10.0) install. # # E. Viennet, Jun 2008, Apr 2009, Sept 2011, Sept 2013, Nov 2013, Mar 2017, Jul 2017, -# Jun 2019, Oct 2019, Dec 2020, Jul 2021 +# Jun 2019, Oct 2019, Dec 2020, Jul 2021, Aug 21 # set -euo pipefail @@ -36,18 +36,11 @@ fi # ------------ Unix user check_create_scodoc_user -# --- Create empty .../var/ subdir -echo "Creating empty local directories..." -for d in var var/scodoc var/scodoc/archives var/scodoc/photos var/scodoc/tmp var/scodoc/config var/scodoc/config/version var/scodoc/config/depts var/scodoc/config/logos -do - [ -d "$d" ] || mkdir "$d" || die "can't create $d subdirectory" -done - # ------------ Permissions & directories change_scodoc_file_ownership set_scodoc_var_dir -# ------------ LOCALES +# ------------ LOCALES (pour compat bad ScoDoc 7) locname="en_US.UTF-8" outname=$(echo ${locname//-/} | tr '[A-Z]' '[a-z]') if [ "$(locale -a | grep -E -i ^${outname}$ | wc -l)" -lt 1 ] @@ -75,14 +68,12 @@ systemctl start redis # ------------ CREATION DU VIRTUALENV echo "Creating python3 virtualenv..." -python3 -m venv venv || die "can't create Python 3 virtualenv" +su -c "(cd $SCODOC_DIR && python3 -m venv venv)" scodoc || die "can't create Python 3 virtualenv" -# ------------ INSTALL DES PAQUETS PYTHON (3.7) -# ScoDoc8 uses pip in our env -source venv/bin/activate +# ------------ INSTALL DES PAQUETS PYTHON (3.9) +# pip in our env, as user "scodoc" +su -c "(cd $SCODOC_DIR && source venv/bin/activate && pip install wheel && pip install -r requirements-3.9.txt)" || die "Error installing python packages" # pip install --upgrade pip => bug [Errno 39] Directory not empty: '_internal' -pip install wheel -pip install -r requirements-3.9.txt # ------------ SCODOC_RELEASE=$(cat VERSION) @@ -124,7 +115,7 @@ init_postgres_user # --- XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX --- echo -echo "WARNING: version ScoDoc8 expérimentale" +echo "WARNING: version ScoDoc 9 expérimentale" echo "Ne pas utiliser en production !" echo echo "Pour lancer le serveur de développement: voir README" diff --git a/tools/utils.sh b/tools/utils.sh index c3b1f357ee..87db8d4468 100644 --- a/tools/utils.sh +++ b/tools/utils.sh @@ -70,7 +70,7 @@ check_create_scodoc_user() { fi } -# --- Give all ScoDoc files to user "scodoc": +# --- Give all ScoDoc files (/opt/scodoc) to user "scodoc": change_scodoc_file_ownership() { echo "Changing owner of ${SCODOC_DIR} to ${SCODOC_USER}" chown -R "${SCODOC_USER}:${SCODOC_GROUP}" "${SCODOC_DIR}" || die "change_scodoc_file_ownership failed on ${SCODOC_DIR}"