致命错误:不能mkdir R_TempDir

时间:2011-06-10 14:34:27

标签: r

尝试运行R时,出现此错误:

  

致命错误:不能mkdir R_TempDir

我通过Google搜索找到了两个可能解决此问题的方法。第一个是确保我的tmp目录不包含一堆子目录 - 它没有,它几乎是空的。第二个修复是确保我的环境中的TMP,TMPDIR和R_USER没有设置为不存在的路径 - 我甚至没有这些设置。因此,我在我的主目录中创建了一个tmp目录,并在我的环境中添加了它到TMP的路径。我能够运行R一次,然后我再次遇到致命错误。我在环境中设置的TMP目录中没有任何内容。有谁知道我还能尝试什么?感谢。

8 个答案:

答案 0 :(得分:23)

Dirk是对的,但遗漏了一点:如果/tmp已满,则无法在那里创建子目录。尝试

df /tmp

我只是在共享服务器上点击它,其中/tmp安装在它自己的分区上,并由许多用户共享。在这种特殊情况下,您无法真正看出它的错误,因为权限会限制您查看谁填满了tmp分区。基本上要让系统管理员搞清楚。

答案 1 :(得分:20)

您的默认临时目录似乎具有错误的权限。我在这里

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

关键部分是'每个人'都可以读或写。你也需要它。 当然可以包含子目录。

您运行的是AppArmor或SE Linux吗?

编辑2011-07-21:由于有人认为有必要对此答案进行投票 - help(tempfile)非常清楚tmpdir(默认目录)临时文件或目录)尝试:

  

默认情况下,'tmpdir'将是'tempdir()'指定的目录。这个   将是由。找到的临时目录的子目录   遵守规则。环境变量'TMPDIR''TMP''TEMP'   轮流检查并找到第一个指向可写的   使用目录:如果没有成功使用'/tmp'

所以我的钱是检查这三个环境变量。但AppArmor和SELinux在一些发行版中也表现出一个问题。

答案 2 :(得分:1)

转到您的用户目录并创建一个名为.Renviron的文件并添加以下行,保存并重新打开RStudio或Rgui或Rterm

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

这在Windows 7上与我合作

答案 3 :(得分:0)

刚刚遇到这个问题并最终解决了。只是一个Windows权限问题。转到环境变量并找到临时文件夹的位置。然后右键单击文件夹&gt;属性&gt;安全&gt;高级&gt;将每个人改为完全控制&gt;勾选“用此对象中的可继承权限条目替换所有子对象权限条目”&gt;好的&gt;确定。

答案 4 :(得分:0)

当您的计算机完全没有空间时,也会发生这种情况。目前,我的Mac有0 kb免费,它导致此错误。释放一些空间解决了这个问题。

答案 5 :(得分:0)

检查用于启动RStudio的用户帐户。现在,您要检查 TMP (系统环境变量)的位置。如果正在启动RStudio的用户具有对这些目录的写入访问权限,那么您将不会遇到此问题。有人说您正面临这个问题,您所要做的就是更改用户的权限,以便对这些目录进行写入访问

答案 6 :(得分:0)

如果您正在运行 Rocker docker 镜像之一(例如,rocker/verse),您需要将本地目录映射到容器中的 /tmp 目录。例如,

docker run --rm -v ${PWD}/tmp:/tmp -p 8787:8787 -e PASSWORD=password rocker/verse:4.0.4

其中 ${PWD} 对我来说是 ~/devProjs/r,我在其中创建了一个 /tmp 目录,以便容器的 /tmp 映射到我的 ~/devProjs/r/tmp 目录.

答案 7 :(得分:0)

在 CentOS 系统上运行 R 并遇到同样的问题。我必须从 tmp 目录中删除所有 R 文件夹。通常所有的R文件夹都是/tmp/Rtmp*****的形式 所以我尝试通过运行以下命令从 /tmp 中删除文件夹。

CD 进入 /tmp 目录并运行 rm -rf Rtmp*

R shell 之后为我工作