致命错误:不能mkdir R_TempDir

Dan*_*Dan 21 r

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

致命错误:不能mkdir R_TempDir

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

nau*_*101 23

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

df /tmp
Run Code Online (Sandbox Code Playgroud)

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


Dir*_*tel 20

您的默认临时目录似乎具有错误的权限.我有

$ ls -ld /tmp
drwxrwxrwt 22 root root 4096 2011-06-10 09:17 /tmp
Run Code Online (Sandbox Code Playgroud)

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

你在运行像AppArmor或SE Linux这样的东西吗?

编辑2011-07-21: 由于有人认为有必要对此答案进行downvote - help(tempfile)非常明确的是什么值tmpdir(临时文件或目录的默认目录)尝试:

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

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