Невозможно создать каталог кеша .. или каталог недоступен для записи. Работа без кеша в Laravel


127

Я создал новый проект Laravel. Когда я подхожу к терминалу для установки зависимостей, composerотображается следующее предупреждение:

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


похоже, что у композитора нет разрешения на запись в папку /home/w3cert/.composer/cache/
Амир Бар

2
Это также может произойти, если вы работаете sudo composer self-updateв Linux, поскольку впоследствии ~/.composerкаталог будет принадлежать ему root.
каркать

Ответы:


214

Измените групповое разрешение для папки

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

и папка с файлами тоже

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

Я предполагаю, что w3cert - ваше имя пользователя, если не изменить 4-й параметр на свое имя пользователя.

Если проблема не исчезнет, ​​попробуйте

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

Теперь есть вероятность, что вы не сможете создать каталог своего приложения, если это произойдет, сделайте то же самое для своей html-папки или папки, в которой вы пытаетесь создать свой проект laravel.

Надеюсь это поможет.


14
Я сталкивался с этим пару раз, но только что понял, что это может быть следствием запуска самообновления от имени пользователя root: $ sudo composer self-update, что могло быть причиной того, почему папка ~ / .composer и все его содержимое меняет владельца. Просто нажмите -R свой ~ / .composer обратно на себя
andkrup

10
Я уверен , что эта проблема стала генерировать сразу после я сделалsudo composer self-update
Pratik

4
Кстати, Чаун меняет владельца, группе изменения тоже, вы должны сделать w3cert:w3cert( [OWNER][:[GROUP]])
Pratik

Это помогло мне в создании проекта. После выполнения первых двух команд все прошло нормально.
Рахул 08

Я пошел в .composer/каталог, и sudo chown $USER -R /cacheэто помогло.
saggzz

271

Когда вы установили композитор, вы были уверены, что использовали $ sudoкоманду, потому что ~/.composerпапка была создана корнем.

Запустите это, чтобы исправить проблему:

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

54
Замените $USERна, $USER:$USERчтобы исправить не только пользователя, но и группу папки и ее содержимое.
каркать

4

Предоставьте пользователю полный доступ к .composer.

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

или

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

user-name это ваше системное имя пользователя.

чтобы получить тип имени пользователя "whoami" в терминале:

введите описание изображения здесь


3

Сегодня у меня была такая же проблема. Попытайся!

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


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


1

Недавно у меня была аналогичная проблема, и мне нужно было изменить разрешения моей папки поставщика

Выполнив следующие команды:

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

Мне нужно предоставить все разрешения, необходимые для открытия и записи файлов поставщика, чтобы решить эту проблему.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.