Ich versuche, Prestissimo auf einem Ubuntu 16.04-Server zu installieren, aber das führt zu einem Fehler:
$ 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>]...
Ich bin als Benutzer kramer65
angemeldet, daher würde ich nicht wissen, warum er nicht in meinen Heimatordner schreiben kann. Normalerweise reagiere ich auf einen permission denied
mit Sudo
, aber der Komponist sagt dann immer:
Führen Sie Composer nicht als root/super-Benutzer aus! Weitere Informationen finden Sie unter https://getcomposer.org/root
Irgendeine Idee, wie ich das lösen kann?
Ich hatte dieses Problem, um Laravel/Lumen zu installieren.
Ich kann mit dem folgenden Befehl auflösen:
$ Sudo chown -R $USER ~/.composer/
Um dies zu beheben, sollten Sie ein Terminalfenster öffnen und den folgenden Befehl eingeben:
Sudo chown -R user ~/.composer
(wobei user
Ihr aktueller Benutzer ist, in Ihrem Fall kramer65
)
Nachdem Sie diesen Befehl ausgeführt haben, sollten Sie über die Berechtigung zum Ausführen des globalen Requirement-Befehls verfügen.
Möglicherweise müssen Sie auch die .composer-Datei aus dem aktuellen Verzeichnis entfernen. Öffnen Sie dazu ein Terminalfenster und geben Sie den folgenden Befehl ein:
Sudo rm -rf .composer
In meinem Fall war .composer
im Besitz von root, also habe ich Sudo rm -fr .composer
und dann habe meine globale Anforderung funktioniert.
Sei gewarnt! Sie möchten diesen Befehl nicht verwenden, wenn Sie nicht sicher sind, was Sie tun.
Ich war auch mit diesem Problem konfrontiert, aber in meinem Fall befand ich mich in einem falschen Verzeichnis. Überprüfen Sie das Verzeichnis, in dem Sie arbeiten
geben Sie in Ihrem PC einfach den folgenden Befehl in das Verzeichnis ein, in dem sich docker befindet:
chown -R 1000: 1000/var/www
das/var/www kann sich ändern, wenn Sie Ihre Projekte in einem anderen Ordner speichern.
zum Beispiel:
chown -R 1000: 1000/home/myuser/my_projects
In meinem Fall habe ich keine Probleme mit ~/.composer
.
Ich befand mich also im Laravel-App-Stammverzeichnis und Sudo chown -R $USER composer.lock
.
Dies kann ein Fall von Super Edge sein, aber wenn Sie Travis CI verwenden und die Zwischenspeicherung nutzen, möchten Sie möglicherweise den gesamten Cache leeren und den Vorgang wiederholen.
Mein Problem wurde behoben, als ich von Sudo zu Builds außerhalb von Sudo wechselte.