安装 R 版本 3.3.2 错误 - 捕获分段错误地址 0x0,‘原因’内存未映射

安装 R 版本 3.3.2 错误 - 捕获分段错误地址 0x0,‘原因’内存未映射

我目前可以在我的 Mac 上运行最新版本的 R 3.6.1,但是我需要安装旧版本(特别是版本 3.3.2)才能在不同的应用程序(nSolver)中运行分析。

我通过从 CRAN 下载安装程序来安装它,它似乎运行良好。但是当我打开 RI 时,得到以下输出:

*** caught segfault ***
address 0x0, cause 'memory not mapped'
Traceback:
1: getDLLRegisteredRoutines.DLLInfo(dll, addNames = FALSE)
2: assignNativeRoutines(dlls[[lib]], lib, env, nsInfo$nativeRoutines[[lib]])
3: loadNamespace(package, lib.loc)
4: doTryCatch(return(expr), name, parentenv, handler)
5: tryCatchOne(expr, names, parentenv, handlers[[1L]])
6: tryCatchList(expr, classes, parentenv, handlers)
7: tryCatch(expr, error = function(e) {    call <- conditionCall(e)    if (!is.null(call)) {        if (identical(call[[1L]], quote(doTryCatch)))             call <- sys.call(-4L)        dcall <- deparse(call)[1L]        prefix <- paste("Error in", dcall, ": ")        LONG <- 75L        msg <- conditionMessage(e)        sm <- strsplit(msg, "\n")[[1L]]        w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w")        if (is.na(w))             w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L],                 type = "b")        if (w > LONG)             prefix <- paste0(prefix, "\n  ")    }    else prefix <- "Error : "    msg <- paste0(prefix, conditionMessage(e), "\n")    .Internal(seterrmessage(msg[1L]))    if (!silent && identical(getOption("show.error.messages"),         TRUE)) {        cat(msg, file = stderr())        .Internal(printDeferredWarnings())    }    invisible(structure(msg, class = "try-error", condition = e))})
8: try({    attr(package, "LibPath") <- which.lib.loc    ns <- loadNamespace(package, lib.loc)    env <- attachNamespace(ns, pos = pos, deps)})
9: library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,     warn.conflicts = warn.conflicts, quietly = quietly)
10: doTryCatch(return(expr), name, parentenv, handler)
11: tryCatchOne(expr, names, parentenv, handlers[[1L]])
12: tryCatchList(expr, classes, parentenv, handlers)
13: tryCatch(library(package, lib.loc = lib.loc, character.only = TRUE,     logical.return = TRUE, warn.conflicts = warn.conflicts, quietly = quietly),     error = function(e) e)
14: require(pkg, quietly = TRUE, warn.conflicts = FALSE, character.only = TRUE)
15: .OptRequireMethods()

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection: 

我尝试卸载所有版本的 R 并再次运行安装程序,以及再次安装 XQuartz、Clang-8.0.0 和 gfortran 6.1,但仍然出现相同的错误。我相信之前有人遇到过类似的问题,并且他们的系统库和用户库中都有 R 版本文件夹。我没有遇到这个问题(据我所知)。

我不太熟悉终端或如何调试它,如果能得到任何帮助,我将不胜感激!谢谢。

答案1

搞定了!R 应用程序特定于版本,因此即使框架中有多个版本的 R 并使用 Rswitch 更改当前版本,它也无法运行。我最终下载了 R 3.3.2 并复制了应用程序,然后下载了 R 3.6.1,它只更新了原始应用程序,而不是副本。现在有了两个应用程序(每个版本一个),Rswitch 似乎可以工作了,Rstudio 可以使用设置为当前的版本。

相关内容