Dans ce tuto, nous allons voir comment mettre à jour notre serveur Nextcloud installé dans un tuto précédent. Si vous tentez la mise à jour avec l'updater, il y aura un certain nombre d'erreurs qui ne permettront pas de terminer le processus de mise à jour automatique. Certaines de ces erreurs peuvent être corrigées rapidement et facilement, d'autres nécessitent plus de recherches et des compétences que je ne possède pas...
Ainsi, il est préférable de laisser tomber l'update automatique, aussi pratique soit-elle, pour utiliser la méthode manuelle. Ce tuto n'est finalement qu'une traduction de la page de la documentation officielle, avec quelques ajustements pour notre configuration.
1) La bonne pratique veut que nous fassions une mise à jour:
2) Une autre bonne pratique est de créer une image de notre carte sd afin de pouvoir la restaurer facilement en cas de besoin.
Pour ce faire, nous allons arrêter le Raspberry pi, enlever la carte sd, la brancher sur notre Linux préféré et en faire une image. Commençons par éteindre le pi.
Sur notre ordinateur muni d'une distribution Linux (pour les autres OS, débrouillez-vous, c'est tout aussi facile), il faut lister les disques, puis brancher la carte sd puis lister à nouveau les disques. Ainsi, il est facile de voir quel est le disque à cloner.
Le résultat ressemble à "/dev/mmcblk0p1" ou "/dev/sdb1". Le dernier numéro tel que "p1" ou "1" est le numéro de partition. Comme nous voulons une image de la carte entière, il faut utiliser "/dev/mmcblk0" ou "/dev/sdb".
Dans un terminal, taper la commande suivante (à modifier en fonction de l'étape précédente) et attendre, cela peut être assez long en fonction de la taille de la carte:
Voilà, maintenant, quoi qu'il arrive, il est possible de revenir à cette image et de retrouver un système qui fonctionne parfaitement. Passons donc à la mise à jour de Nextcloud.
3) Faire un backup du fichier config.php (éventuellement du dossier contenant les données, ce qui est inutile si les données sont ailleurs que dans le dossier de Nextcloud)
Créer un dossier bkp qui contiendra le backup:
4) Télécharger la dernière version de Nextcloud
5) Maintenant nous entrons dans le vif du sujet, il faut mettre Nextcloud en mode maintenance:
6) Arrêter le serveur apache
7) Renommer le dossier de l'installation courante de Nextcloud, par exemple par nextcould-old.
8) Décompresser l'archive téléchargée à l'étape 4 dans le dossier /var/www.
9) Des fichiers contenus dans l'ancienne installation sont encore utiles. Nous allons les copier de l'ancienne installation vers la nouvelle.
Copier le fichier config.php de l'ancienne installation dans la nouvelle installation.
Si vous avez suivi le tuto précédent pour l'installation, vous n'êtes pas concernés par ce qui suit, passez directement à l'étape 10. Sinon, vérifiez si votre dossier contenant les données est dans votre installation, il faut le copier de l'ancienne installation vers la nouvelle (nextcloud-old/data -> nextcloud/data).
10) Si vous utilisez des applications tierces, et qu'elles ne se trouvent pas dans la nouvelle installation (nextcloud/apps), il faut les copier depuis l'ancienne installation. Une fois fait, vérifiez les permissions afin qu'elles soient identiques à celles de l'ancienne installation. Pour ma part j'utilise les applications calendar et contacts, si vous en utilisez d'autres, il faut répéter l'opération pour chacune d'elle.
11) Il ne reste qu'à définir les permissions et l’appartenance des fichiers.
12) Démarrer le serveur web et se déplacer dans le dossier de la nouvelle version de nextcloud.
13) A présent il faut lancer la mise à jour en utilisant occ.
La mise à jour peut prendre quelques minutes à plusieurs heures en fonction de la taille de l'installation. Si vous suivez ce tutoriel pour le raspberry pi, comptez plutôt quelques minutes... ;) Normalement tout doit bien se passer et un message de réussite s'affiche.
Dans le cas contraire, un message d'erreur vous indiquera ce qui s'est mal passé.
14) En partant du principe que tout s'est bien passé, nous désactiver le mode maintenance.
Nous pouvons à présent nous connecter dans notre nouvelle version de Nextcloud. Une bonne idée serait de se connecter avec un compte admin et de vérifier la version de Nextcloud sur la page d'admin. Se rendre ensuite sur la page des apps et ré-activer les applications.
15) Faisons encore juste un peu de ménage.
Ainsi, il est préférable de laisser tomber l'update automatique, aussi pratique soit-elle, pour utiliser la méthode manuelle. Ce tuto n'est finalement qu'une traduction de la page de la documentation officielle, avec quelques ajustements pour notre configuration.
1) La bonne pratique veut que nous fassions une mise à jour:
sudo apt-get update
sudo apt-get dist-upgrade
2) Une autre bonne pratique est de créer une image de notre carte sd afin de pouvoir la restaurer facilement en cas de besoin.
Pour ce faire, nous allons arrêter le Raspberry pi, enlever la carte sd, la brancher sur notre Linux préféré et en faire une image. Commençons par éteindre le pi.
sudo poweroff
Sur notre ordinateur muni d'une distribution Linux (pour les autres OS, débrouillez-vous, c'est tout aussi facile), il faut lister les disques, puis brancher la carte sd puis lister à nouveau les disques. Ainsi, il est facile de voir quel est le disque à cloner.
df -h(brancher la carte sd)
df -h
Le résultat ressemble à "/dev/mmcblk0p1" ou "/dev/sdb1". Le dernier numéro tel que "p1" ou "1" est le numéro de partition. Comme nous voulons une image de la carte entière, il faut utiliser "/dev/mmcblk0" ou "/dev/sdb".
Dans un terminal, taper la commande suivante (à modifier en fonction de l'étape précédente) et attendre, cela peut être assez long en fonction de la taille de la carte:
sudo dd if=/dev/sdb of=~/SDCardBackup.img
Voilà, maintenant, quoi qu'il arrive, il est possible de revenir à cette image et de retrouver un système qui fonctionne parfaitement. Passons donc à la mise à jour de Nextcloud.
3) Faire un backup du fichier config.php (éventuellement du dossier contenant les données, ce qui est inutile si les données sont ailleurs que dans le dossier de Nextcloud)
Créer un dossier bkp qui contiendra le backup:
cd /var/www
sudo mkdir bkp
sudo cp /var/www/nextcloud/config/config.php /var/www/bkp
4) Télécharger la dernière version de Nextcloud
sudo wget https://download.nextcloud.com/server/releases/nextcloud-[version].zip
5) Maintenant nous entrons dans le vif du sujet, il faut mettre Nextcloud en mode maintenance:
cd /var/www/nextcloud
sudo -u www-data php occ maintenance:mode --on
6) Arrêter le serveur apache
sudo /etc/init.d/apache2 stop
7) Renommer le dossier de l'installation courante de Nextcloud, par exemple par nextcould-old.
sudo mv /var/www/nextcloud /var/www/nextcloud-old
8) Décompresser l'archive téléchargée à l'étape 4 dans le dossier /var/www.
cd /var/www
sudo unzip nextcloud-[version].zip
9) Des fichiers contenus dans l'ancienne installation sont encore utiles. Nous allons les copier de l'ancienne installation vers la nouvelle.
Copier le fichier config.php de l'ancienne installation dans la nouvelle installation.
sudo cp /var/www/bkp/config.php /var/www/nextcloud/config
Si vous avez suivi le tuto précédent pour l'installation, vous n'êtes pas concernés par ce qui suit, passez directement à l'étape 10. Sinon, vérifiez si votre dossier contenant les données est dans votre installation, il faut le copier de l'ancienne installation vers la nouvelle (nextcloud-old/data -> nextcloud/data).
10) Si vous utilisez des applications tierces, et qu'elles ne se trouvent pas dans la nouvelle installation (nextcloud/apps), il faut les copier depuis l'ancienne installation. Une fois fait, vérifiez les permissions afin qu'elles soient identiques à celles de l'ancienne installation. Pour ma part j'utilise les applications calendar et contacts, si vous en utilisez d'autres, il faut répéter l'opération pour chacune d'elle.
sudo cp -r /var/www/nextcloud-old/apps/calendar /var/www/nextcloud/apps/
sudo cp -r /var/www/nextcloud-old/apps/contacts /var/www/nextcloud/apps/
11) Il ne reste qu'à définir les permissions et l’appartenance des fichiers.
sudo chown -R www-data:www-data nextcloud
sudo find nextcloud/ -type d -exec chmod 750 {} \;
sudo find nextcloud/ -type f -exec chmod 640 {} \;
12) Démarrer le serveur web et se déplacer dans le dossier de la nouvelle version de nextcloud.
sudo /etc/init.d/apache2 start
cd /var/www/nextcloud
13) A présent il faut lancer la mise à jour en utilisant occ.
sudo -u www-data php occ upgrade
La mise à jour peut prendre quelques minutes à plusieurs heures en fonction de la taille de l'installation. Si vous suivez ce tutoriel pour le raspberry pi, comptez plutôt quelques minutes... ;) Normalement tout doit bien se passer et un message de réussite s'affiche.
Dans le cas contraire, un message d'erreur vous indiquera ce qui s'est mal passé.
14) En partant du principe que tout s'est bien passé, nous désactiver le mode maintenance.
sudo -u www-data php occ maintenance:mode --off
Nous pouvons à présent nous connecter dans notre nouvelle version de Nextcloud. Une bonne idée serait de se connecter avec un compte admin et de vérifier la version de Nextcloud sur la page d'admin. Se rendre ensuite sur la page des apps et ré-activer les applications.
15) Faisons encore juste un peu de ménage.
sudo rm -r /var/www/bkp
sudo rm -r /var/www/nextcloud-[version].zip
sudo rm -r /var/www/nextcloud-old