致命错误:无法使用mkdir R_TempDir
尝试运行R时,我遇到以下错误: 致命错误:无法使用mkdir R_TempDir致命错误:无法使用mkdir R_TempDir,r,R,尝试运行R时,我遇到以下错误: 致命错误:无法使用mkdir R_TempDir 我通过谷歌搜索找到了解决这个问题的两个可能的方法。第一个是确保我的tmp目录不包含大量子目录——它不包含子目录,而且实际上是空的。第二个修复是确保我的环境中的TMP、TMPDIR和R_用户没有设置为不存在的路径——我甚至没有设置这些路径。因此,我在我的主目录中创建了一个tmp目录,并将其路径添加到我的环境中的tmp。我能够运行R一次,然后又出现了致命错误。我在环境中设置的TMP目录中没有任何内容。有人知道我还能尝试
我通过谷歌搜索找到了解决这个问题的两个可能的方法。第一个是确保我的tmp目录不包含大量子目录——它不包含子目录,而且实际上是空的。第二个修复是确保我的环境中的TMP、TMPDIR和R_用户没有设置为不存在的路径——我甚至没有设置这些路径。因此,我在我的主目录中创建了一个tmp目录,并将其路径添加到我的环境中的tmp。我能够运行R一次,然后又出现了致命错误。我在环境中设置的TMP目录中没有任何内容。有人知道我还能尝试什么吗?谢谢。您的默认临时目录似乎具有错误的权限。给你
$ 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在一些发行版上也出现了问题。Dirk是对的,但忽略了一点:如果
/tmp
已满,则无法在那里创建子目录。试一试
df /tmp
我只是在一个共享服务器上点击了这个按钮,其中
/tmp
安装在它自己的分区上,并由许多用户共享。在这种特殊情况下,您无法真正看到是谁的错,因为权限限制您查看谁在填充tmp分区。基本上必须让系统管理员来解决这个问题。刚刚解决了这个问题并最终解决了它。只是一个windows权限问题。转到环境变量并找到临时文件夹的位置。然后右键单击文件夹>属性>安全性>高级>将所有人更改为完全控制>勾选“用此对象的可继承权限项替换所有子对象权限项”>确定>确定。转到您的用户目录,创建一个名为.Renviron的文件并添加以下行,保存并重新打开RStudio或Rgui或Rterm
TMP = '<path to folder where Everyone has full control>'
TMP=''
这在Windows 7上对我起到了作用,当您的计算机完全没有空间时,也会发生这种情况。目前,我的Mac电脑有0 kb的空闲空间,这是导致此错误的原因。释放一些空间解决了问题。检查您启动RStudio时使用的用户帐户。现在检查TMP(系统环境变量)的位置。如果启动RStudio的用户对这些目录有写访问权限,您将不会遇到此问题。据说您正面临这个问题,您所要做的就是更改该用户对这些目录的写访问权限。如果您正在运行一个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
目录。恐怕没有那么简单。我现在有一台机器出现了同样的问题,TMP被设置为/TMP,并且/TMP的权限是正确的。系统日志中似乎也没有任何表明问题的内容。难道他们不应该记录一些东西来告诉我们发生了什么吗?如果代码的编写方式是这样的,那么就可以了。假设所有代码都是错误的。请参阅扩展答案——在某个点上,一个简单的mkdir()
调用失败。你需要想清楚为什么/在哪里。首先将TMPDIR
设置为类似$(HOME)/tmp
(并确保它存在)的值。我遇到了此错误。尽管“ls-ld/tmp”权限看起来不错,而且我的驱动器上有空间(df),但我的操作系统说/tmp是只读的。我重新启动了,操作系统(Ubuntu 14.04)说我的根分区有问题。我选择尝试修复它(从修复、忽略、手动)。很快,我的机器又重新启动了,然后它干净地出现了,问题消失了。每日备份。。。!如果您已经通过谷歌搜索找到了这个问题,请向下滚动到有关磁盘空间的最后一个答案。磁盘空间是methanks@dirk eddelbuettel为我指出正确方向的问题!