No se puede crear un directorio de caché ... o el directorio no se puede escribir. Procediendo sin caché en Laravel


127

Creé un nuevo proyecto de Laravel. Cuando voy al terminal para instalar las dependencias composeraparece el siguiente aviso:

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


parece que el compositor no tiene permiso de escritura en la carpeta /home/w3cert/.composer/cache/
Amir Bar

2
Esto también puede suceder si ejecuta sudo composer self-updateLinux, ya que el ~/.composerdirectorio será propiedad de root, posteriormente.
caw

Respuestas:


214

Cambiar el permiso de grupo para la carpeta

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

y la carpeta Archivos también

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

Supongo que w3cert es su nombre de usuario, si no, cambie el cuarto parámetro a su nombre de usuario.

Si el problema persiste, intente

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

Ahora, existe la posibilidad de que no pueda crear el directorio de su aplicación, si eso sucede, haga lo mismo para su carpeta html o la carpeta en la que está tratando de crear su proyecto de laravel.

Espero que esto ayude.


14
Me he encontrado con esto un par de veces, pero me acabo de dar cuenta de que esto puede ser una consecuencia de ejecutar la auto-actualización como root: $ sudo composer self-update, que puede haber sido la causa de por qué la carpeta ~ / .composer y todo su contenido cambia de dueño. Simplemente chown -R your ~ / .composer back to yourself
andkrup

10
Estoy seguro de que este problema comenzó a generarse justo después de que yo lo hicesudo composer self-update
Pratik

4
Por cierto, chown cambia de propietario, para cambiar de grupo también, tienes que hacerlo w3cert:w3cert( [OWNER][:[GROUP]])
Pratik

Esto me ayudó a crear el proyecto. Después de ejecutar los dos primeros comandos, todo salió bien.
rahul

Fui al .composer/directorio y sudo chown $USER -R /cacheeso ayudó.
saggzz

271

Cuando instaló el compositor bastante seguro de que usó el $ sudocomando debido a que la ~/.composercarpeta fue creada por la raíz.

Ejecute esto para solucionar el problema:

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

54
Reemplazar $USERcon $USER:$USERpara corregir no solo el usuario sino también el grupo de la carpeta y su contenido.
caw

4

Dar acceso completo de .composer al usuario.

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

o

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

user-name es el nombre de usuario de su sistema.

para obtener el nombre de usuario, escriba "whoami" en la terminal:

ingrese la descripción de la imagen aquí


3

Tuve el mismo problema hoy. ¡Intentalo!

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


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

1

Utilice este comando:

sudo chown -R $USER ~/.composer/

1

Tuve un problema similar recientemente y necesitaba cambiar los permisos de la carpeta de mi proveedor

Ejecutando los siguientes comandos:

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

Necesito otorgar todos los permisos necesarios para abrir y escribir archivos de proveedores para resolver este problema


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.