Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
致命错误:无法使用mkdir R_TempDir_R - Fatal编程技术网

致命错误:无法使用mkdir R_TempDir

致命错误:无法使用mkdir R_TempDir,r,R,尝试运行R时,我遇到以下错误: 致命错误:无法使用mkdir R_TempDir 我通过谷歌搜索找到了解决这个问题的两个可能的方法。第一个是确保我的tmp目录不包含大量子目录——它不包含子目录,而且实际上是空的。第二个修复是确保我的环境中的TMP、TMPDIR和R_用户没有设置为不存在的路径——我甚至没有设置这些路径。因此,我在我的主目录中创建了一个tmp目录,并将其路径添加到我的环境中的tmp。我能够运行R一次,然后又出现了致命错误。我在环境中设置的TMP目录中没有任何内容。有人知道我还能尝试

尝试运行R时,我遇到以下错误:

致命错误:无法使用mkdir R_TempDir


我通过谷歌搜索找到了解决这个问题的两个可能的方法。第一个是确保我的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为我指出正确方向的问题!