我目前可以在我的 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 可以使用设置为当前的版本。