2011-06-10 25 views
18

Al intentar ejecutar R, me sale este error:Fatal error: no se puede mkdir R_TempDir

Fatal error: cannot mkdir R_TempDir

me encontré con dos arreglos posibles para este problema por alrededor de google. El primero era asegurar que mi directorio tmp no contuviera una carga de subdirectorios; no funciona y está prácticamente vacío. La segunda solución fue asegurar que TMP, TMPDIR y R_USER en mi entorno no estuvieran configurados en rutas inexistentes; ni siquiera tenía estos conjuntos. Por lo tanto, creé un directorio tmp en mi directorio de inicio y agregué su ruta a TMP en mi entorno. Pude ejecutar R una vez y luego volví a tener el error fatal. No había nada en el directorio TMP que configuré en mi entorno. ¿Alguien sabe qué más puedo probar? Gracias.

+5

Si ha buscado en Google esta pregunta, desplácese hacia abajo hasta la última respuesta relacionada con el espacio en disco –

+2

yup. el espacio en disco fue el problema para mí – eyaler

Respuesta

15

Su directorio temporal predeterminado parece tener los permisos incorrectos. Aquí tengo

$ ls -ld /tmp 
drwxrwxrwt 22 root root 4096 2011-06-10 09:17 /tmp 

La parte clave es 'todo el mundo' puede leer o escribir. Tú también necesitas eso. Es ciertamente puede contener subdirectorios.

¿Está ejecutando algo así como AppArmor o SE Linux?

Editar 2011-07-21: Como alguien sólo consideró necesario downvote esta respuesta - help(tempfile) es muy claro en qué valores tmpdir (el directorio por defecto para los archivos temporales o directorios) intenta:

By default, 'tmpdir' will be the directory given by 'tempdir()' . This will be a subdirectory of the temporary directory found by the following rule. The environment variables 'TMPDIR' , 'TMP' and 'TEMP' are checked in turn and the first found which points to a writable directory is used: if none succeeds '/tmp' is used.

Así que mi dinero está en comprobar esas tres variables de entorno. Pero AppArmor y SELinux también han demostrado ser un problema en algunas distribuciones.

+0

Me temo que no es tan simple. Tengo una máquina que ahora muestra este mismo problema y TMP está configurado en/tmp, y los permisos para/tmp son correctos.No parece haber nada en los registros del sistema que indique un problema tampoco. –

+0

¿no se supone que deben registrar cosas para decirnos qué está pasando? –

+0

Si el código está escrito de manera que se registre, sí. Tu error al asumir que todo el código sí. –

21

Dirk tiene razón, pero se pierde un punto: si /tmp está lleno, no puede crear subdirectorios allí. Trato

df /tmp 

simplemente me golpeó esta en un servidor compartido, donde /tmp se monta en su propia partición, y es compartido por muchos usuarios. En este caso particular, no se puede ver quién es el culpable, porque los permisos lo limitan a ver quién está llenando la partición tmp. Básicamente, tiene que pedirle a los administradores del sistema que lo resuelvan.

0

Acabo de tener este problema y finalmente lo resolvió. Simplemente un problema de permisos de Windows. Vaya a las variables de entorno y encuentre la ubicación de las carpetas temporales. A continuación, haga clic con el botón derecho en la carpeta> propiedades> seguridad> avanzada> cambie a todos a control total> marque "reemplazar todas las entradas de permisos de objetos secundarios con entradas de permisos heredables de este objeto"> Aceptar> Aceptar.

1

Vaya a su directorio de usuario y crear un archivo llamado .Renviron y añadir la siguiente línea, guardarlo y volver a abrir rstudio o Rgui o Rterm

TMP = '<path to folder where Everyone has full control>' 

Este trabajó conmigo en Windows 7

0

Este también ocurrirá cuando su computadora esté completamente, completamente fuera del espacio. Actualmente, mi Mac tiene 0 kb libre y está causando este error. Liberar algo de espacio resolvió el problema.

Cuestiones relacionadas