# Procédure pour la mise à jour vers Debian 12 et ScoDoc 9.6 Cette page documente la mise à jour d'un serveur ScoDoc 9.4 ou 9.5 tournant sous Linux Debian 11 vers la version suivante: ScoDoc 9.6 sous Debian 12. On commence par mettre à jour normalement le système Debian, puis on change la version de la base de données postgresql puis on met à jour ScoDoc. ## Upgrade Debian 11 vers Debian 12 La documentation officielle est là: [DebianUpgrade](https://wiki.debian.org/DebianUpgrade). Elle couvre tous les cas, mais en général notre serveur ScoDoc est plus simple: résumé ci-dessous ### Sauvegarder Avant tout, sauvegarder vos données et l'ensemble de votre serveur. Vérifiez que vous avez assez d'espace disque disponible (par exemple avec la commande `df -h`). Prévenez les utilisateurs et arrêtez le service: `systemctl stop scodoc9` ### Mettre à jour Debian Dans la suite, on suppose que vous avez un shell root. Sinon, utilisez `sudo`. #### Vérifier qu'on est à jour ```bash apt-get update apt-get upgrade apt-get full-upgrade ``` #### Modifier les sources de mise à jour Si vous savez le faire, éditer le fichier `/etc/apt/sources.list` (par exemple avec la commande `nano /etc/apt/sources.list`) et remplacer le mot `bullseye`par `bookworm`. Sinon, il peut être plus simple de reprendre ce contenu: ```txt deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware deb http://security.debian.org/debian-security bookworm-security main deb-src http://security.debian.org/debian-security bookworm-security main deb http://deb.debian.org/debian/ bookworm-updates main deb-src http://deb.debian.org/debian/ bookworm-updates main ``` #### Mettre à jour ```bash apt-get clean apt-get update ``` Les deux commandes suivantes sont longues, surtout ne pas les interrompre. Répondre "oui" (ou la réponse par défaut) aux diverses question, ou dire que vous conservez les versions locales modifiées de vos fichiers de configuration (lorsqu'un texte long s'affiche, taper 'q' puis "entrée"...). ```bash apt-get upgrade # # Puis: apt-get full-upgrade ``` Un petit nettoyage: ```bash apt-get autoremove ``` Et un redémarrage ```bash shutdown -r now ``` Après reconnexion, vous avez un serveur Debian 12. Reste à s'occuper de la base de données et de ScoDoc. D'abord, s'assurer que le service n'a pas redémarré: ```bash systemctl stop scodoc9 ``` ## En cas de problème avec proxmox Pour l'instant on ne nous a pas signalé de problèmes, mais au cas où ce lien peut servir: [Debian 12 et proxmox](https://www.abyssproject.net/2023/07/retex-sur-mes-upgrades-vers-debian-12-et-proxmox-ve-8) ## Upgrade Postgresql Debian 12 est livré avec Postgresql 15, tandis que l'installation précédente tournait sous Postgresql 13. Il est donc nécessaire de migrer les données en base vers la nouvelle version. Procédure inspirée de [ce tuto en français](https://wiki.fiat-tux.fr/books/administration-syst%C3%A8mes/page/migration-d%E2%80%99une-version-majeure-de-postgresql-%C3%A0-une-autre) Toujours dans un shell root, copier/coller les commandes suivantes: ```bash service postgresql stop pg_dropcluster --stop 15 main pg_upgradecluster -m upgrade 13 main systemctl start postgresql su -c "/usr/lib/postgresql/15/bin/vacuumdb --all --analyze-in-stages" postgres pg_dropcluster 13 main --stop apt-get autoremove --purge postgresql-13 postgresql-client-13 ``` ## Passage de ScoDoc 9.5 (ou 9.4) à 9.6 ### Modification des sources de paquets Debian - Supprimer l'ancien fichier: ```bash rm /etc/apt/sources.list.d/scodoc* ``` - Ajouter le dépot scodoc: copier ce fichier scodoc.list dans `/etc/apt/sources.list.d/` ou bien l'éditer pour qu'il contienne juste cette ligne: ```text # contenu du fichier /etc/apt/sources.list.d/scodoc.list deb http://scodoc.org/deb/bookworm bookworm main ``` ### Mise à jour du paquet scodoc9 ```bash apt update && apt upgrade ``` devrait installer `scodoc9.6.x`. ### Migration des absences vers les assiduités Le nouveau module de gestion des assiduité (absences/présences/justificatifs) permet d'importer les anciennes "absences" (et justificatifs). Pour cela, lancer les commandes suivantes: ```bash systemctl stop scodoc9 # le service DOIT etre stoppé ! su scodoc cd /opt/scodoc source venv/bin/activate flask migrate-abs-to-assiduites ``` Le traitement est assez long et peut prendre plusieurs dizaines de minutes, suivant le nombre d'absences et la vitesse de votre serveur. ### Démarrage du service Comme d'habitude, en tant que `root`: ```bash systemctl start scodoc9 ```