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
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 polylang–2.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
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…