J'essaie d'installer Prestissimo sur un serveur Ubuntu 16.04, mais cela entraîne 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 personnel Ma réaction normale à un permission denied
consiste à utiliser Sudo
, mais composeur dit toujours:
Ne lancez pas Composer en tant qu'utilisateur root/super! Voir https://getcomposer.org/root pour plus de détails
Une idée de comment je peux résoudre ça?
J'ai eu ce problème pour installer laravel/Lumen.
Je peux résoudre avec la commande suivante:
$ Sudo chown -R $USER ~/.composer/
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 devez 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
Dans mon cas, .composer
était la propriété de root. J'ai donc utilisé Sudo rm -fr .composer
puis mon besoin global a fonctionné.
Être averti! Vous ne voulez pas utiliser cette commande si vous n'êtes pas sûr de ce que vous faites.
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
dans votre ordinateur, tapez simplement la commande suivante dans votre répertoire où docker est:
chown -R 1000: 1000/var/www
le/var/www peut changer si vous stockez vos projets dans un autre dossier.
par exemple:
chown -R 1000: 1000/home/myuser/my_projects
Dans mon cas, je n'ai pas de problèmes avec ~/.composer
.
Donc, étant dans le dossier racine de l’application Laravel, j’ai fait Sudo chown -R $USER composer.lock
et c’était utile.
Cela pourrait être un cas super Edge, 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 Sudo à des versions non Sudo.