Matériel: Raspberry Pi à la maison Version de YunoHost: 11.2.9.1 (stable) J’ai accès à mon serveur : En SSH | Par la webadmin | Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : non
Si votre requête est liée à une applicatio, précisez son nom et sa version: Roucube de 1.6.0~ynh4 à 1.6.6~ynh1
Description du problème
Bonjour,
J’ai voulu mettre à jour Roundcube sans succès. Il semblerait qu’il y ait eu un problème avec le script d’installation et plus précisément composer.
De mon analyse le merge entre le fichier .json et le .lock ne se fait pas et il y a une différence de version sur le paquet guzzlehttp/guzzle qui empêche la mise à jour.
Je ne suis pas un spécialiste, c’est ce que j’ai pu en déduire en regardant les logs.
ci après la partie qui pose problème:
2024-01-27 14:47:41,591: DEBUG - + COMPOSER_HOME=/var/www/roundcube/.composer
2024-01-27 14:47:41,591: DEBUG - + COMPOSER_MEMORY_LIMIT=-1
2024-01-27 14:47:41,591: DEBUG - + php8.1 /var/www/roundcube/composer.phar install --no-dev -d /var/www/roundcube --no-interaction --no-ansi
2024-01-27 14:47:41,959: DEBUG - Composer plugins have been disabled for safety in this non-interactive session. Set COMPOSER_ALLOW_SUPERUSER=1 if you want to allow plugins to run as root/super user.
2024-01-27 14:47:41,960: DEBUG - Do not run Composer as root/super user! See https://getcomposer.org/root for details
2024-01-27 14:47:42,275: DEBUG - Installing dependencies from lock file
2024-01-27 14:47:42,278: DEBUG - Verifying lock file contents can be installed on current platform.
2024-01-27 14:47:42,291: DEBUG - Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`.
2024-01-27 14:47:42,296: DEBUG - - Required package "guzzlehttp/guzzle" is in the lock file as "6.5.8" but that does not satisfy your constraint "^7.3.0".
2024-01-27 14:47:42,296: DEBUG - - Required package "bacon/bacon-qr-code" is not present in the lock file.
2024-01-27 14:47:42,297: DEBUG - This usually happens when composer files are incorrectly merged or the composer.json file is manually edited.
2024-01-27 14:47:42,297: DEBUG - Read more about correctly resolving merge conflicts https://getcomposer.org/doc/articles/resolving-merge-conflicts.md
2024-01-27 14:47:42,298: DEBUG - and prefer using the "require" command over editing the composer.json file directly https://getcomposer.org/doc/03-cli.md#require-r
2024-01-27 14:47:42,320: DEBUG - + ynh_die '--message=Unable to install core dependencies with Composer.'
2024-01-27 14:47:42,381: WARNING - Unable to install core dependencies with Composer.
2024-01-27 14:47:42,382: DEBUG - + ynh_exit_properly
2024-01-27 14:47:42,383: DEBUG - + [[ upgrade =~ ^install$|^upgrade$|^restore$ ]]
2024-01-27 14:47:43,881: ERROR - Could not upgrade roundcube: An error occurred inside the app upgrade script
Je vous joins également le lien avec les logs complets:
2024-01-27 17:15:07,443: DEBUG - Verifying lock file contents can be installed on current platform.
2024-01-27 17:15:07,511: DEBUG - Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`.
2024-01-27 17:15:07,512: DEBUG - - Required package "guzzlehttp/guzzle" is in the lock file as "6.5.8" but that does not satisfy your constraint "^7.3.0".
2024-01-27 17:15:07,512: DEBUG - - Required package "bacon/bacon-qr-code" is not present in the lock file.
2024-01-27 17:15:07,513: DEBUG - This usually happens when composer files are incorrectly merged or the composer.json file is manually edited.
Problème de version du paquet guzzlehttp/guzzle et absence de bacon/bacon-qr-code dans le lockfile ?
=> revoir le script d’upgrade pour ne pas demander la version 7.3 du premier package et le second, et forcer l’update/install de ces deux paquets ?
@ericg : Pas de maintenainers dans le manifest, mais je vois que tu as récemment commité.
Un contournement qui pour moi a fonctionné (sur plusieurs serveurs). renommer le fichier composer.lock en composer.lock.bkp, et lancer l’upgrade reconstruit ce fichier avec les mises à jour.
Un petit backup avant si ça vous fait peur
Je viens d’effectuer le petit contournement que tu viens de proposer, et voici le souci :
Oops… something went wrong!
An internal error has occurred. Your request cannot be processed at this time.
For administrators: Please check the application and/or server error logs for more information.
Voici le log de l’upgrade :
Info : Mise à jour de roundcube…
Info : Creating a safety backup prior to the upgrade
Info : Collecte des fichiers devant être sauvegardés pour roundcube…
Info : Loading installation settings…
Info : Declaring files to be backed up…
Info : Backing up the MySQL database…
Info : Backup script completed for roundcube. (YunoHost will then actually copy those files to the archive).
Info : Création d’une archive de sauvegarde à partir des fichiers collectés …
Info : L’archive contiendra environ 57.6MB de données.
Succès ! Sauvegarde créée : roundcube-pre-upgrade1
Info : Provisioning sources…
Info : Updating system_user…
Info : Updating install_dir…
Info : Provisioning permissions…
Info : Provisioning apt…
Info : Provisioning database…
Info : […] > Ensuring downward compatibility…
Info : [+…] > Upgrading source files…
Info : [#+…] > Upgrading PHP-FPM configuration…
Info : [##…] > Reconfiguring Roundcube…
Info : [##++++++++…] > Updating dependencies with Composer…
Info : [##########+++++++…] > Upgrading additional plugins…
Info : [#################+…] > Updating roundcube configuration…
Attention : In Factory.php line 697:
Attention : The HOME or COMPOSER_HOME environment variable must be set for composer to
Attention : run correctly
Attention : update [–with WITH] [–prefer-source] [–prefer-dist] [–prefer-install PREFER-INSTALL] [–dry-run] [–dev] [–no-dev] [–lock] [–no-install] [–no-audit] [–audit-format AUDIT-FORMAT] [–no-autoloader] [–no-suggest] [–no-progress] [-w|–with-dependencies] [-W|–with-all-dependencies] [-v|vv|vvv|–verbose] [-o|–optimize-autoloader] [-a|–classmap-authoritative] [–apcu-autoloader] [–apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [–ignore-platform-req IGNORE-PLATFORM-REQ] [–ignore-platform-reqs] [–prefer-stable] [–prefer-lowest] [-i|–interactive] [–root-reqs] [–] […]
Info : [##################+.] > Updating roundcube core…
Attention : In Factory.php line 697:
Attention : The HOME or COMPOSER_HOME environment variable must be set for composer to
Attention : run correctly
Attention : update [–with WITH] [–prefer-source] [–prefer-dist] [–prefer-install PREFER-INSTALL] [–dry-run] [–dev] [–no-dev] [–lock] [–no-install] [–no-audit] [–audit-format AUDIT-FORMAT] [–no-autoloader] [–no-suggest] [–no-progress] [-w|–with-dependencies] [-W|–with-all-dependencies] [-v|vv|vvv|–verbose] [-o|–optimize-autoloader] [-a|–classmap-authoritative] [–apcu-autoloader] [–apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [–ignore-platform-req IGNORE-PLATFORM-REQ] [–ignore-platform-reqs] [–prefer-stable] [–prefer-lowest] [-i|–interactive] [–root-reqs] [–] […]
Attention : Executing database schema update.
Attention : Executing php composer.phar to update dependencies…
Attention : -----------------------------------------------------------------------------
Attention : ATTENTION: Update dependencies by running php composer.phar update --no-dev
Attention : -----------------------------------------------------------------------------
Attention : This instance of Roundcube is up-to-date.
Attention : Have fun!
Info : [####################] > Installation of roundcube completed
Succès ! roundcube mis à jour
Succès ! Mise à jour terminée
Zut ! Pourtant j’ai pu mettre à jour 4 serveurs sans soucis…
Essaie déjà de restaurer la sauvegarde, si tu as suivi mes conseils tu dois en avoir une avec la date effectué avant de lancer la mise à jour.
Pour cela, tu supprimes d’abord l’application et tu restaures la sauvegarde
yunohost app remove roundcube
yunohost backup list # pour trouver la sauvegarde en 20240127-XXXXXX
yunohost backup restore 20240127-XXXXXX --apps
C’est ce que je disais plus haut dans le fil, j’ai également eu le problème au moment d’appliquer ta solution @rodinux.
La réponse a été trouvée mais je ne sais pas l’appliquer, j’ai mis en lien au dessus le post où se trouve la solution.
A priori sur Git il y a un script modifié qu’on peut appliquer manuellement. Mais je ne sais pas me servir de Git et je ne vois pas à quelle endroit on télécharge le script.
En plus tout est en anglais et je galère un peu
Si tu veux tester ce script proposé (en effectuant une sauvegarde auparavant, j’ai des doutes sur sa validité tout de même) tu peux simplement essayer d’utiliser cette commande