WP-cli: warning « ce paquet ne contient aucun fichier »

By | 17 février 2020 |

Lors d’une récente tentative de mise à jour, le serveur m’a renvoyé le message suivant: « ce paquet ne contient aucun fichier » .
Comme on peut s’y attendre, l’extension n’est pas mise à jour.

J’effectue les mise à jour de mon site WordPress avec la ligne de commande et l’outil WP-cli, si vous ne connaissez pas cet outil, je vous invite à lire l’article où je décris comment vous pouvez maintenir facilement votre site à jour avec WP-cli.

C’est quoi le problème

WP-cli: ce paquet ne contient aucun fichier
WP-cli: ce paquet ne contient aucun fichier

Comme je recevais ce message pour plusieurs extensions, le problème ne pouvait pas venir du paquet en lui-même.

WP-cli utilise un répertoire de « cache » où il garde les fichier zip téléchargés.
Ensuite il procède à l’installation depuis ce répertoire.
Sur mon serveur, les fichier zip sont téléchargés dans le répertoire:

$ /home/wp-user/.wp-cli/cache/plugin/

Et dans ce folder, je retrouve bien un fichier zip avec une taille égale à zéro, je tente donc de télécharger le fichier avec wget

$ cd /home/wp-user/.wp-cli/cache/plugin/
$ wget https://downloads.wordpress.org/plugin/polylang.2.6.9.zip

Et là je télécharge bien un fichier depuis le serveur WordPress d’une taille supérieur à 0k –> 853k

Mais je remarque plusieurs choses:

  • le fichier que je télécharge avec wget se nomme polylang.2.6.9.zip (avec un point « . ») alors que le fichier téléchargé avec WP-cli se nomme polylang2.6.9.zip (avec un « -« )
  • Si le fichier existe dans le cache, celui-ci est utilisé pour la mise à jour.
    En répétant la mise à jour avec WP-cli, c’est toujours le fichier déjà téléchargé (et qui est vide) qui est utilisé.
  • On retrouve dans le cache plusieurs version de la même extension
WP-cli: extensions dans le cache
WP-cli: extensions dans le cache

Comment régler le problème

J’ai donc deux options possibles pour procédé à l’installation

  • Supprimer le fichier vide et relancer la mise à jour avec WP-cli pour forcer un nouveau téléchargement du fichier Zip
  • Écraser le fichier vide avec le fichier télécharger grâce à wget et relancer la mise à jour avec WP-cli qui devrait utiliser ce fichier

J’ai choisi la première option,
commençons par la suppression du fichier Zip:

$ cd /home/wp-user/.wp-cli/cache/plugin/
$ rm -f polylang-2.6.9.zip

Continuons avec le lancement de la commande WP-cli pour la mise à jour de l’extension:

$ cd /etc/wordpress
$ sudo -u wp-user wp plugin update update polylang

Et là, je constate que la mise à jour se passe sans problème.
comme j’avais le problème pour plusieurs extensions, je répète la même procédure pour les autres extensions.

Pourquoi ce problème

Difficile à dire, différentes hypothèses sont possibles pour expliquer ce problème

  • Un fichier corrompu sur le serveur WordPress,
    je n’y crois pas beaucoup
  • Le fichier est corrompu lors du téléchargement,
    c’est une possibilité mais je n’y crois pas plus
  • Une coupure de la connection Internet lors du téléchargement,
    mwais pas convainu
  • Un problème de stockage sur mon vps,
    récemment mon VPS a souffert d’un espace de stockage saturé, je suppose que loi de Murphy oblige, la mise à jour a été lancée à ce moment, forçant la taille du fichier à 0k

Après coup, ce message « Ce paquet ne contient aucun fichier » qui ne me semblait pas clair du tout, me semble limpide.
En effet, comme le fichier zip téléchargé fait 0k, il ne contient rien, aucun fichier

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.