Error: "Impossible de restaurer l\u2019application 'discourse'"

Mon serveur YunoHost

Matériel: VPS acheté en ligne

Version de YunoHost: 4.0.8

J’ai accès à mon serveur : En SSH

Êtes-vous dans un contexte particulier ou avez-vous effectué des modifications particulières sur votre instance ? : oui

Si oui, expliquer: : j’ai sauvegardé l’application discourse, il y a quelques mois, avant de la désinstaller. Je tente vainement de la restaurer.

Description du problème

Et j’obtiens le message d’erreur suivant :

2020-10-17 16:08:48,830: DEBUG - + apt-get --assume-yes --quiet -o=Acquire::Retries=3 -o=Dpkg::Use-Pty=0 --no-remove --option Dpkg::Options::=–force-confdef --option Dpkg::Options::=–force-confold install libjemalloc1 libcurl4-openssl-dev libxslt1-dev libxml2-dev --dry-run
2020-10-17 16:08:49,333: DEBUG - + ynh_die ‘–message=Unable to install dependencies’
2020-10-17 16:08:49,334: WARNING - Package libjemalloc1 is not available, but is referred to by another package.
2020-10-17 16:08:49,338: WARNING - This may mean that the package is missing, has been obsoleted, or
2020-10-17 16:08:49,340: WARNING - is only available from another source
2020-10-17 16:08:49,343: WARNING -
2020-10-17 16:08:49,349: WARNING - E: Package ‘libjemalloc1’ has no installation candidate
2020-10-17 16:08:49,451: DEBUG - + ret_code=1
2020-10-17 16:08:49,454: WARNING - Unable to install dependencies

La commande suivante apt-get install libjemalloc1 renvoie :

Package libjemalloc1 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package ‘libjemalloc1’ has no installation candidate

Voici le journal complet.

https://paste.yunohost.org/raw/uzugurijud

Existe-t-il un moyen de restaurer le forum ?

Merci d’avance.

A mon avis il s’agit d’un backup fait en stretch que tu essayes de restaurer en buster … ça peut théoriquement marcher pour d’autres apps, mais celle-ci dépends d’un paquet libjemalloc1 qui s’apelle maintenant libjemalloc2 en buster …

C’est pas forcément super simple à résoudre, naivement je dirais qu’il faut aller bricoler l’archive à la main, en particulier trouver le fichier _common.sh à l’intérieur et remplacer libjemalloc1 par libjemalloc2 sur la ligne qui devrait ressembler à ca :

Bonjour, merci pour cette réponse aussi rapide que précise.
J’ai décompressé et modifié l’archive et l’ai compressée au format tar.gz initial.
Je ne peux pas la restaurer à partir de l’interface d’administration, elle n’apparait plus dans la liste.
J’ai donc tenté de le faire en ligne de commande, mais le message suivant m’a arrêté :

root@cloud:/home/yunohost.backup/archives# yunohost backup restore 20200624-120553.tar.gz
Warning: YunoHost is already installed
Do you really want to restore an already installed system? [y/N]:

L’archive ne contient que les répertoires suivant : apps/discourse/backup et settings
Puis-je restaurer sans risque pour le reste du système ?

Arf oui désolé c’est un bug d’UX mais ça ne modifie pas le système si y’a juste une app dans l’archive … Si tu veux tu peux préciser --apps discourse à la fin de ta commande pour clarifier un peu le truc

Bon ça se complique, j’obtiens le message d’erreur suivant :
`

Impossible d’avoir des informations sur l’archive ‘/home/yunohost.backup/archives/20200624-120553.tar.gz’ … Le fichier info.json ne peut pas être trouvé (ou n’est pas un fichier json valide).

J’ai modifié le numéro de version de yunohost, pour voir, mais cela ne change rien.

Est-ce que réinstaller discourse et restaurer les données peut-être une piste ?

Oui et non … ce serait cool de juste résoudre le problème en comprenant pourquoi il trouve pas le .info.json …

  • Normalement le .info.json est stocké à côté du .tar.gz … n’est-ce pas le cas pour ton archive ? Tu montres le screenshot de ce qui semble être ce fichier, est-ce qu’il porte bien le même nom que l’archive ? (/home/yunohost.backup/archives/20200624-120553.info.json)
  • Le info.json est aussi normalement stocké à l’intérieur de l’archive ? Est-ce que c’est le cas ?

Oui : le info.json est stocké à coté du tar.gz,
oui : il porte le me non que l’archive,
et non : il n’est pas stocké dans l’archive

Zblerg ben j’comprends pas pourquoi il est pas stocké dans l’archive … Du coup je propose que tu le rajoutes dedans (à la racine de l’archive) :confused:

ok, je tente

même message d’erreur :

dans le doute, je l’avais aussi placé dans le répertoire /apps/discourse/backup

message d’erreur suivant sur la console :

root@cloud:/home/yunohost.backup/archives# yunohost backup restore 20200624-120553.tar.gz --apps discourse
Error: Unknown local backup archive named ‘20200624-120553.tar.gz’
root@cloud:/home/yunohost.backup/archives#

étonnant, non ?

Ce n’est pas le même message d’erreur, et c’est parce qu’il ne faut pas mettre le .tar.gz dans le nom dans la commande :confused:

Est-ce qu’on peut confirmer que si tu fais un

tar -tzf /home/yunohost.backup/archives/20200624-120553.tar.gz | grep "info.json"

tu vois bien “info.json” qui s’affiche dans la sortie ?

voici ce que j’obtiens :

Du coup pour résoudre le soucis il faut :

  • que le info.json dans l’archive s’apelle juste info.json (pas 2020-etc…)
  • que le info.json soit directement à la racine de l’archive (donc pas dans le dossier apps/)

Bonjour, encore le me message d’erreur…
Est-il possible que le fichier info.json ait été endomagé par l’édition avec vim ?

Moui et non … ça peut si tu l’as changé et que tu aurais introduit une erreur de syntaxe. Tu peux t’en assurer en faisant python -m json.tool info.json (ou bien en remplacant info.json par le nom de ton fichier json…) Si le fichier est valide, il t’affichera son contenu. Sinon, il t’affichera une erreur.

Est-ce qu’on peut confirmer que si tu fais

tar -tzf /home/yunohost.backup/archives/20200624-120553.tar.gz | grep "info.json"

tu vois bien le nom du fichier ? (sans apps/ devant ou quoi, directement à la racine)

Oups, j’étais blocqué merci, @Aleks : l’erreur était bien l’emplacement du info.json. :roll_eyes:

La restauration est néanmoins stoppée à cause de la dépendance : libjemalloc1
Warning: E: Package ‘libjemalloc1’ has no installation candidate
voici le log complet : https://paste.yunohost.org/raw/iparuxuqes

Bien que j’ai modifié le _common.sh, les log semblent indiquer que cela n’est pas pris en compte…

Arf bon on y est presque …

Tu es sur que tu as bien repropagé le fichier dans l’archive ensuite ? Comment est-ce que tu as procédé pour faire ça exactement ?

(Déso pour les questions reloues mais en informatique le diable est toujours dans les détails…)

Sans doute pas :no_mouth: J’ai fait : tar -czvf 20200624-120553.tar.gz apps/ info.json
:thinking: