尝试运行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在一些发行版上也表现出一个问题.