Nie można utworzyć katalogu pamięci podręcznej ... lub katalog nie jest zapisywalny. Kontynuacja bez pamięci podręcznej w Laravel


127

Stworzyłem nowy projekt Laravel. Kiedy idę do terminala, aby zainstalować zależne gatunki, composerwyświetla się następujące ostrzeżenie:

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


wygląda na to, że kompozytor nie ma uprawnień do zapisu w folderze /home/w3cert/.composer/cache/
Amir Bar

2
Może się to również zdarzyć, jeśli korzystasz sudo composer self-updatez systemu Linux, ponieważ ~/.composerkatalog będzie później własnością root.
krakaj

Odpowiedzi:


214

Zmień uprawnienia grupy do folderu

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

a także folder Pliki

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

Zakładam, że w3cert to Twoja nazwa użytkownika, jeśli nie, zmień 4. parametr na swoją nazwę użytkownika.

Jeśli problem nadal występuje, spróbuj

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

Teraz jest szansa, że ​​nie będziesz w stanie utworzyć katalogu aplikacji, jeśli tak się stanie, zrób to samo z folderem html lub folderem, w którym próbujesz utworzyć projekt laravel.

Mam nadzieję że to pomoże.


14
Spotkałem się z tym kilka razy, ale właśnie zdałem sobie sprawę, że może to być konsekwencją uruchomienia automatycznej aktualizacji jako root: automatyczna aktualizacja $ sudo composer, która mogła być przyczyną, dla której folder ~ / .composer i wszystko inne jego zawartość zmienia właściciela. Po prostu chown -R swój ~ / .composer z powrotem do siebie
andkrup

10
Jestem pewien, że ten problem zaczął się generować zaraz po tym, jak to zrobiłemsudo composer self-update
Pratik

4
BTW, chown zmienia właściciela, aby zmienić też grupę, musisz to zrobić w3cert:w3cert( [OWNER][:[GROUP]])
Pratik

Pomogło mi to w tworzeniu projektu. Po wykonaniu pierwszych dwóch poleceń wszystko poszło dobrze.
rahul

Poszedłem do .composer/katalogu i sudo chown $USER -R /cacheto pomogło.
saggzz

271

Po zainstalowaniu programu Composer na pewno użyłeś $ sudopolecenia z tego powodu~/.composer folder został utworzony przez roota.

Uruchom to, aby rozwiązać problem:

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

54
Wymień $USERsię $USER:$USERustalić nie tylko użytkowników, ale także grupę folderu i jego zawartości.
krakaj

4

Daj pełny dostęp do .composer użytkownikowi.

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

lub

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

user-name to nazwa użytkownika systemu.

aby uzyskać nazwę użytkownika, wpisz „whoami” w terminalu:

wprowadź opis obrazu tutaj


3

Miałem dzisiaj ten sam problem. Spróbuj!

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


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

1

Użyj tego polecenia:

sudo chown -R $USER ~/.composer/

1

Niedawno miałem podobny problem i musiałem zmienić uprawnienia folderu mojego dostawcy

Wykonując następujące polecenia:

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

Muszę przyznać wszystkie uprawnienia wymagane do otwierania i zapisywania plików dostawców, aby rozwiązać ten problem


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.