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.

Karthik
la source
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.

Nesar
la source
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
Jim M
la source
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

Shrikant Pardhi
la source
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/

la source
1

Utilisez cette commande:

sudo chown -R $USER ~/.composer/
Oppa
la source
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

Lokesh Ramchandani
la source
0

Exécutez cette commande:

    sudo chown -R yourUser /home/yourUser/.composer
RKAISSI Youssef
la source