# Mise à jour de ScoDoc
Il est recommandé de mettre à jour très régulièrement votre installation ScoDoc.
Le système Linux doit être correctement maintenu (en particulier, les mises à jour de sécurité de Debian doivent être appliquées quotidiennement).
ScoDoc est actuellement prévu pour fonctionner avec Linux Debian 10.
* Les (rares) mises à jour majeures du logiciel ScoDoc sont annoncées sur la liste [scodoc-annonces](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-annonces).
* Les (fréquentes) mises à jour mineures (corrections de bugs, améliorations) sont annoncées sur la liste [scodoc-devel](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-devel).
*Une mise à jour hebdomadaire (au moins) est recommandée*
Pour appliquer une mise à jour de ScoDoc, se connecter en tant que `root` sur le serveur, puis faire:
```
cd /opt/scodoc/Products/ScoDoc/config
./upgrade.sh
```
La première fois, il faudra accepter un certificat cryptographique, répondre "p (accept (p)ermanently)".
Si un message d'erreur apparaît à la fin de la mise à jour, relancer `./upgrade.sh`.
La mise à jour entraine une déconnexion des utilisateurs (mais pas de pertes de données !).
Note: cette procédure ne change pas de version majeure de ScoDoc, ni du système Linux. Pour cela, voir [MigrationDonneesScoDoc](MigrationDonneesScoDoc.md)) ou plus bas sur cette page.
## Note concernant les anciens systèmes (Debian 9)
En Debian version 9 (et version antérieures), ScoDoc n'utilisait pas `systemd` et n'était pas automatiquement relancé lors de mises à jour de ceertains logiciels, comme la base de données `postgresql`. Sur ces systèmes, il est conseillé de mettre à jour Debian avec le script `/opt/scodoc/Products/ScoDoc/config/upgrade.sh` afin d'éviter d'interrompre le service ScoDoc.
## Mise à jour rapide de Debian 9 à Debian 10
Procédure raccourcie réservée aux personnes à l'aise avec linux. On met à jour Debian mais on réinstalle ScoDoc proprement.
Vérifiez que vous avez assez d'espace disque disponible (`df -h`, au moins 3Go libres sur `/` ou `/opt`).
0. Sauvegardez complètement votre système en lieu sûr. Si la procédure ci-dessous échoue, reprenez la voie normale: [MigrationDonneesScoDoc](MigrationDonneesScoDoc.md).
1. Mettre à jour votre ScoDoc:
cd /opt/scodoc/Products/ScoDoc/config
./upgrade.sh
2. Arrêter le service (en Debian 9 on utilisait *SysV-style init*, à partir de Debian 10 ScoDoc utilise `systemd`):
/etc/init.d/scodoc stop
3. Sauvegarder les données et configurations ScoDoc:
cd /opt/scodoc/Products/ScoDoc/config
./save_scodoc_data.sh /opt/data-scodoc-deb9 # par exemple
4. Mettre à jour Debian: pour les détails voir [https://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.html](https://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.html).
En résumé:
- éditer `/etc/apt/sources.list` et indiquer
```
deb http://deb.debian.org/debian buster main contrib
```
- puis:
```
apt-get remove firehol
apt update
apt-get upgrade
apt full-upgrade
apt autoremove
```
et **rebooter**.
5. Supprimer postgresql 9.6
On enlève carrément l'ancien, le script d'installation de ScoDoc installera la version 11:
apt-get --purge remove postgresql
6. Réinstaller ScoDoc
Déplacer l'ancienne installation de ScoDoc (vous la supprimerez plus tard):
mv /opt/scodoc /opt/scodoc.deb9
Réinstaller un ScoDoc tout neuf, en suivant [GuideInstallDebianDix](GuideInstallDebianDix.md)
La plupart des composants de votre système seront déjà présents, donc répondre en général "non" aux questions du script d'installation.
S'arrêter avant l'initialisation des bases de données.
7. Restaurer la sauvegarde:
cd /opt/scodoc/Products/ScoDoc/config
./restore_scodoc_data.sh /opt/data-scodoc-deb9
Vérifiez et voilà.
- Faire un peu de ménage (supprimer `/opt/scodoc.deb9` quand vous êtes sûr de n'y avoir rien oublié), vérifiez les logs (`/opt/scodoc/log`).
- Vérifier que le nouveau système (et ses bases de données) est bien sauvegardé ([SauvegardesBases](SauvegardesBases.md)).