0

我已经在 macOS Mojava v 10.14.6 上重新安装了 R 3.6 我已经从提供的安装程序中安装了 clang 7/usr/local/clang7

我有xcode

但是我似乎可以弄清楚安装有问题

.libPaths()
[1] "/Users/annaleigh/Library/R/3.6/library"                        
[2] "/Library/Frameworks/R.framework/Versions/3.6/Resources/library"
> install.packages("devtools")
Installing package into ‘/Users/annaleigh/Library/R/3.6/library’
(as ‘lib’ is unspecified)
trying URL 'https://cloud.r-project.org/bin/macosx/el-capitan/contrib/3.6/devtools_2.2.1.tgz'
Content type 'application/x-gzip' length 339075 bytes (331 KB)
==================================================
downloaded 331 KB


The downloaded binary packages are in
    /var/folders/xr/lmkkh0p10t948k1n104z1jsh0000gn/T//Rtmpf54J79/downloaded_packages
> library(devtools)
\Loading required package: usethis

 *** caught segfault ***
address 0x2c2e0, cause 'memory not mapped'

但是 usethis 库似乎加载正常

> library(usethis)
> library(devtools)

 *** caught segfault ***
address 0x2c2e0, cause 'memory not mapped'

Traceback:
 1: dyn.load(file, DLLpath = DLLpath, ...)
 2: library.dynam(lib, package, package.lib)
 3: loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]])
 4: asNamespace(ns)
 5: namespaceImportFrom(ns, loadNamespace(j <- i[[1L]], c(lib.loc,     .libPaths()), versionCheck = vI[[j]]), i[[2L]], from = package)
 6: loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]])
 7: asNamespace(ns)
 8: namespaceImportFrom(ns, loadNamespace(j <- i[[1L]], c(lib.loc,     .libPaths()), versionCheck = vI[[j]]), i[[2L]], from = package)
 9: loadNamespace(package, lib.loc)
10: doTryCatch(return(expr), name, parentenv, handler)
11: tryCatchOne(expr, names, parentenv, handlers[[1L]])
12: tryCatchList(expr, classes, parentenv, handlers)
13: tryCatch({    attr(package, "LibPath") <- which.lib.loc    ns <- loadNamespace(package, lib.loc)    env <- attachNamespace(ns, pos = pos, deps, exclude, include.only)}, error = function(e) {    P <- if (!is.null(cc <- conditionCall(e)))         paste(" in", deparse(cc)[1L])    else ""    msg <- gettextf("package or namespace load failed for %s%s:\n %s",         sQuote(package), P, conditionMessage(e))    if (logical.return)         message(paste("Error:", msg), domain = NA)    else stop(msg, call. = FALSE, domain = NA)})
14: library(devtools)
4

1 回答 1

0

在这里找到答案: https ://github.com/r-lib/devtools/issues/1292

“最后查看了 .libPath() 并意识到 R 的两个实例都在查看系统库之前的用户库。因此,如果包从编译版本链接到不同的系统库(在我的情况下为 OS X Sierra 和 El Capitan ) 这可能会造成段错误。

删除用户库中的库 ~/user/Library/R/version#修复了问题(安装到不同位置)”

于 2020-02-13T09:39:33.953 回答