Cache-Verzeichnis kann nicht erstellt werden. Das Verzeichnis ist nicht beschreibbar. Fahren Sie ohne Cache in Laravel fort


126

Ich habe ein neues Laravel-Projekt erstellt. Wenn ich zum Terminal gehe, um die Abhängigkeiten zu installieren, composerwird die folgende Warnung angezeigt :

Cannot create cache directory /home/w3cert/.composer/cache/repo/https---packagist.org/, or directory is not writable. Proceeding without cache.


Es sieht so aus, als hätte der Komponist keine Schreibberechtigung im Ordner /home/w3cert/.composer/cache/
Amir Bar

2
Dies kann auch passieren, wenn Sie sudo composer self-updateunter Linux arbeiten, da das ~/.composerVerzeichnis anschließend im Besitz von rootist.
Caw

Antworten:


214

Ändern Sie die Gruppenberechtigung für den Ordner

sudo chown -R w3cert /home/w3cert/.composer/cache/repo/https---packagist.org

und auch den Ordner "Dateien"

sudo chown -R w3cert /home/w3cert/.composer/cache/files/

Ich gehe davon aus, dass w3cert Ihr Benutzername ist, wenn nicht, ändern Sie den 4. Parameter in Ihren Benutzernamen.

Wenn das Problem weiterhin besteht, versuchen Sie es

sudo chown -R w3cert /home/w3cert/.composer

Jetzt besteht die Möglichkeit, dass Sie Ihr App-Verzeichnis nicht erstellen können. In diesem Fall tun Sie dasselbe für Ihren HTML-Ordner oder den Ordner, in dem Sie Ihr Laravel-Projekt erstellen möchten.

Hoffe das hilft.


14
Ich bin ein paar Mal darauf gestoßen, habe aber gerade festgestellt, dass dies eine Folge der Selbstaktualisierung als root sein kann: $ sudo composer self-update, was möglicherweise die Ursache dafür war, warum der Ordner ~ / .composer und alle Sein Inhalt wechselt den Besitzer. Chown -R Ihr ~ / .composer zurück zu sich selbst
andkrup

10
Ich bin sicher, dass dieses Problem direkt nach mir begannsudo composer self-update
Pratik

4
Übrigens, Chown wechselt den Besitzer, um auch die Gruppe zu wechseln, müssen Sie w3cert:w3cert( [OWNER][:[GROUP]])
Pratik

Dies hat mir bei der Erstellung des Projekts geholfen. Nachdem die ersten beiden Befehle ausgeführt wurden, ging alles gut.
Rahul

Ich ging in das .composer/Verzeichnis und sudo chown $USER -R /cachedas half.
saggzz

270

Bei der Installation von Composer haben Sie den $ sudoBefehl ziemlich sicher verwendet, da der ~/.composerOrdner vom Stamm erstellt wurde.

Führen Sie dies aus, um das Problem zu beheben:

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

53
Ersetzen $USERdurch $USER:$USER, um nicht nur den Benutzer, sondern auch die Gruppe des Ordners und seinen Inhalt zu korrigieren.
Caw

4

Geben Sie dem Benutzer vollen Zugriff auf .composer.

sudo chown -R 'user-name' /home/'user-name'/.composer

oder

sudo chmod 777 -R /home/'user-name'/.composer

user-name ist Ihr Systembenutzername.

Um den Benutzernamen zu erhalten, geben Sie "whoami" im Terminal ein:

Geben Sie hier die Bildbeschreibung ein


3

Ich hatte heute das gleiche Problem. Versuch es!

sudo chown -R  [yourgroup]  /home/[youruser]/.composer/cache/repo/https---packagist.org/


sudo chown -R  [yourgroup]   /home/[youruser]/.composer/cache/files/

1

Verwenden Sie diesen Befehl:

sudo chown -R $USER ~/.composer/

1

Ich hatte kürzlich ein ähnliches Problem und musste die Berechtigungen meines Herstellerordners ändern

Durch Ausführen der folgenden Befehle:

  1. php artisan cache:clear
  2. chmod -R 777 storage vendor
  3. composer dump-autoload

Ich muss alle erforderlichen Berechtigungen zum Öffnen und Schreiben von Herstellerdateien erteilen, um dieses Problem zu beheben


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.