Невозможно создать каталог кеша .. или каталог недоступен для записи. Работа без кеша в 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

Используйте эту команду:

sudo chown -R $USER ~/.composer/
Оппа
источник
1

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

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

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

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

Локеш Рамчандани
источник
0

Выполните эту команду:

    sudo chown -R yourUser /home/yourUser/.composer
РКАИССИ Юссеф
источник