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