Impossible de créer le répertoire de cache .. ou le répertoire n'est pas accessible en écriture. Procéder sans cache à Laravel


127

J'ai créé un nouveau projet Laravel. Lorsque je vais au terminal pour installer les dépendances composeraffiche l'avertissement suivant:

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


on dirait que le compositeur n'a pas l'autorisation d'écriture dans le dossier /home/w3cert/.composer/cache/
Amir Bar

2
Cela peut également se produire si vous exécutez sudo composer self-updatesous Linux, car le ~/.composerrépertoire appartiendra par la rootsuite.
caw

Réponses:


214

Modifier l'autorisation de groupe pour le dossier

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

et le dossier Fichiers aussi

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

Je suppose que w3cert est votre nom d'utilisateur, sinon changez le 4ème paramètre en votre nom d'utilisateur.

Si le problème persiste, essayez

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

Maintenant, il est possible que vous ne puissiez pas créer votre répertoire d'application, si cela se produit, faites de même pour votre dossier html ou le dossier dans lequel vous essayez de créer votre projet laravel.

J'espère que cela t'aides.


14
J'ai rencontré cela plusieurs fois, mais je viens de réaliser que cela peut être une conséquence de l'exécution de l'auto-mise à jour en tant que root: $ sudo composer self-update, ce qui peut avoir été la raison pour laquelle le dossier ~ / .composer et tout son contenu change de propriétaire. Il suffit de ramener -R votre ~ / .composer à vous
andkrup

10
Je suis sûr que ce problème a commencé à se produire juste après sudo composer self-update
moi

4
BTW, chown change de propriétaire, pour changer de groupe aussi, vous devez faire w3cert:w3cert( [OWNER][:[GROUP]])
Pratik

Cela m'a aidé à créer un projet. Après avoir exécuté les deux premières commandes, tout s'est bien passé.
rahul

Je suis allé au .composer/répertoire et sudo chown $USER -R /cachecela a aidé.
saggzz

271

Lorsque vous avez installé composer à peu près sûr que vous avez utilisé la $ sudocommande à cause de cela, le ~/.composerdossier a été créé par la racine.

Exécutez ceci pour résoudre le problème:

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

54
Remplacez $USERpar $USER:$USERpour corriger non seulement l'utilisateur, mais également le groupe du dossier et son contenu.
caw

4

Accordez un accès complet à .composer à l'utilisateur.

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

ou

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

user-name est le nom d'utilisateur de votre système.

pour obtenir le type de nom d'utilisateur "whoami" dans le terminal:

entrez la description de l'image ici


3

J'ai eu le même problème aujourd'hui. Essayez-le!

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


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

1

Utilisez cette commande:

sudo chown -R $USER ~/.composer/

1

J'ai eu un problème similaire récemment et j'ai dû modifier les autorisations de mon dossier de fournisseur

En exécutant les commandes suivantes:

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

Je dois donner toutes les autorisations nécessaires pour ouvrir et écrire des fichiers fournisseur pour résoudre ce problème


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.