Не вдається створити кеш-каталог .. або каталог не піддається запису. Продовження без кешу в 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/
Amir Bar

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
Пратік

4
BTW, chown змінив власника, щоб змінити групу теж, ви повинні зробити w3cert:w3cert( [OWNER][:[GROUP]])
Pratik

Це допомогло мені створити проект. Виконавши перші дві команди, все пішло нормально.
rahul

Я зайшов до .composer/каталогу і sudo chown $USER -R /cacheце допомогло.
saggzz

270

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

Виконайте це, щоб вирішити проблему:

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

53
Замініть $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.