web-dev-qa-db-fra.com

tar EPERM: opération non autorisée, futime

J'ai un node:Alpine Image Docker. Lorsque j'exécute l'image en tant qu'utilisateur root, je n'ai aucun problème, mais lorsque j'utilise un autre utilisateur et j'essaie de faire npm install Je reçois beaucoup d'erreurs lors de l'extraction de packages:

npm WARN tar EPERM: operation not permitted, futime

Après 5000 messages WARN, je vois ceci sur le journal d'installation de npm:

npm timing action:extract Completed in 276816ms
npm timing action:finalize Completed in 172ms

Et pas plus, le processus d'installation de npm est complètement bloqué.

Quelqu'un connaît cette erreur et sait comment l'éviter?

7
Ildelian

Je l'avais aussi dans le sous-système Windows Linux, après avoir déplacé un projet de Windows vers Linux. Je n'ai pas réussi à le réparer avec

rm -rf node_modules
rm package-lock.json
npm cache clear --force
chown -R username:username *
npm install

Rien de tout cela n'a fonctionné.


futime les erreurs sont dues au fait que l'utilitaire tar ne dispose pas de droits suffisants pour effectuer les actions nécessaires pour développer les fichiers .tar utilisés par npm et les modules de noeud.

Dans le cas d'Alpine Linux, vous devrez peut-être décompresser en tant que root puis chown les fichiers ou créer un dossier appartenant à l'utilisateur avec les bonnes autorisations.

Pour le sous-système Windows pour Linux, il ne semble pas fonctionner avec les dossiers sous /mnt/c et refuse de modifier les autorisations. Les configurer sous Linux n'a aucun effet, et les configurer sous Windows ne semble pas non plus faire de différence - ajouter un contrôle total au principe `` Tout le monde '' ne résout pas cela.


solution (probable) pour Alpine:

Sudo mkdir project_folder
Sudo chown username project_folder
cd project_folder
...  

Solution pour WSL:

Déplacez le dossier dans le dossier WSL, par exemple. mv project ~\ pour que les autorisations fonctionnent correctement.

1
antonyh

Essayer avec cette commande pourrait aider:

npm install --user
0
Kartikeya Sharma

Pas une solution élégante mais ça marche ... Dans votre répertoire d'application:

rm -rf node_modules
mkdir /home/your_user/node_modules
ln -s /home/your_user/node_modules node_modules
npm install
0
Julien Heroux