117 votes

Compositeur: contenu_entrée_fichier (./ composer.json): échec de l'ouverture du flux: autorisation refusée

Je suis en train d'installer Prestissimo à une Ubuntu 16.04 serveur, mais qui conduit à une erreur:

$ composer global require "hirak/prestissimo:^0.3"
Changed current directory to /home/kramer65/.composer


  [ErrorException]
  file_put_contents(./composer.json): failed to open stream: Permission denied


require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] [<packages>]...

Je suis connecté en tant qu'utilisateur kramer65, donc je ne sais pas pourquoi il ne peut pas écrire dans mon dossier home. Ma réaction normale à une permission denied est d'utiliser sudo, mais le compositeur alors dit toujours:

N'exécutez pas le Compositeur en tant que root/super-utilisateur! Voir https://getcomposer.org/root pour plus de détails

Une idée de comment je peux résoudre ce problème?

296voto

Samuel Martins Points 1415

J'ai eu ce problème pour installer laravel / lumen.

Je peux résoudre avec la commande suivante:

 $ sudo chown -R $USER ~/.composer/
 

19voto

Ken Points 459

Pour résoudre ce problème, ouvrez une fenêtre de terminal et tapez cette commande:

sudo chown -R user ~/.composer (avec user étant votre utilisateur actuel, dans votre cas, kramer65

Après avoir exécuté cette commande, vous devriez avoir l'autorisation d'exécuter la commande de votre composeur global require.

Vous devrez peut-être également supprimer le fichier .composer du répertoire en cours. Pour ce faire, ouvrez une fenêtre de terminal et tapez cette commande:

sudo rm -rf .composer

5voto

Yasin Okumus Points 712

J'ai fait face à ce problème aussi mais dans mon cas, j'étais dans le mauvais répertoire. Vérifiez le répertoire dans lequel vous travaillez

3voto

Nabil Kadimi Points 2109

Dans mon cas, .composer appartenait à root. J'ai donc fait fonctionner sudo rm -fr .composer , puis mes besoins globaux.

Être averti! Vous ne voulez pas utiliser cette commande si vous n'êtes pas sûr de ce que vous faites.

2voto

Moak Points 4068

Cela pourrait être un cas extrême, mais si vous utilisez Travis CI et tirez parti de la mise en cache, vous pouvez effacer tout le cache et réessayer.

Correction du problème lorsque je passais de versions sudo à non sudo.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X