2017-06-14 19 views
1

ggplot2の関数geom_smooth()を使用してみると、segfaultが発生していました。問題がmcgvパッケージであることがわかりました。これはR推奨パッケージであり、それが含まれているとsegfaultsされます。ここでは、インストールからの出力は次のとおりです。ここでmgcvパッケージをRにインストールするときのSegfault

> install.packages('mgcv') 
Installing package into ‘/home/<username>/R/x86_64-pc-linux-gnu-library/3.4’ 
(as ‘lib’ is unspecified) 
trying URL 'https://cran.rstudio.com/src/contrib/mgcv_1.8-17.tar.gz' 
Content type 'unknown' length 849787 bytes (829 KB) 
================================================== 
downloaded 829 KB 
* installing *source* package ‘mgcv’ ... 
** package ‘mgcv’ successfully unpacked and MD5 sums checked 
** libs 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c coxph.c -o coxph.o 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c discrete.c -o discrete.o 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c gdi.c -o gdi.o 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c init.c -o init.o 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c magic.c -o magic.o 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c mat.c -o mat.o 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c matrix.c -o matrix.o 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c mgcv.c -o mgcv.o 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c misc.c -o misc.o 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c mvn.c -o mvn.o 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c qp.c -o qp.o 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c soap.c -o soap.o 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c sparse-smooth.c -o sparse-smooth.o 
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -fopenmp -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c tprs.c -o tprs.o 
gcc -m64 -std=gnu99 -shared -L/usr/lib64/R/lib -Wl,-z,relro -o mgcv.so coxph.o discrete.o gdi.o init.o magic.o mat.o matrix.o mgcv.o misc.o mvn.o qp.o soap.o sparse-smooth.o tprs.o -L/usr/lib64/R/lib -lRlapack -L/usr/lib64/R/lib -lRblas -lgfortran -lm -lquadmath -fopenmp -L/usr/lib64/R/lib -lR 
installing to /home/<username>/R/x86_64-pc-linux-gnu-library/3.4/mgcv/libs 
** R 
** data 
** inst 
** byte-compile and prepare package for lazy loading 
Warning in fun(libname, pkgname) : 
    bytecode version mismatch; using eval 
Warning: package ‘nlme’ was built under R version 3.4.0 
*** caught segfault *** 
address 0x6, cause 'memory not mapped' 
Traceback: 
1: dyn.load(file, DLLpath = DLLpath, ...) 
2: library.dynam(lib, package, package.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(pkg, character.only = TRUE, logical.return = TRUE, lib.loc = lib.loc,  quietly = quietly) 
10: .getRequiredPackages2(pkgInfo, quietly, lib.loc, useImports) 
11: .getRequiredPackages(quietly = TRUE) 
12: withCallingHandlers(expr, packageStartupMessage = function(c) invokeRestart("muffleMessage")) 
13: suppressPackageStartupMessages(.getRequiredPackages(quietly = TRUE)) 
14: doTryCatch(return(expr), name, parentenv, handler) 
15: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 
16: tryCatchList(expr, classes, parentenv, handlers) 
17: 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))}) 
18: try({ suppressPackageStartupMessages(.getRequiredPackages(quietly = TRUE)) makeLazyLoading(pkg_name, lib, keep.source = keep.source)}) 
19: do_install_source(pkg_name, instdir, pkg, desc) 
20: do_install(pkg) 
21: tools:::.install_packages() 
An irrecoverable exception occurred. R is aborting now ... 
/usr/lib64/R/bin/INSTALL: line 34: 36723 Done     echo 'tools:::.install_packages()' 
    36724 Segmentation fault  | R_DEFAULT_PACKAGES= LC_COLLATE=C "${R_HOME}/bin/R" $myArgs --slave --args ${args} 
Warning in install.packages : 
    installation of package ‘mgcv’ had non-zero exit status 

はRの私のバージョンは次のとおりです。何が起こっているかのよう

> R.version 
       _       
platform  x86_64-redhat-linux-gnu  
arch   x86_64      
os    linux-gnu     
system   x86_64, linux-gnu   
status          
major   3       
minor   3.3       
year   2017       
month   03       
day   06       
svn rev  72310      
language  R       
version.string R version 3.3.3 (2017-03-06) 
nickname  Another Canoe 

任意の考え?

答えて

1

Rバージョンを3.4.0にアップグレードします。特に、mgcvのコンパイルが成功しました(バイトコンパイル段階に達したため)。問題は、私はあなたがRをアップグレードしたら、あなたは何もする必要はありませんだと思うRバージョン3.4.0

sudo apt-get update 
sudo apt-get upgrade 

を必要とその依存パッケージnlme、です。 mgcvnlmeも「推奨」されているため、自動的にアップグレードされます。

残念ながら私はこのマシンにsudoを持っていないので、アップグレードを試してみるのに時間がかかります。私は暫定的に試すことができる解決策があるのだろうかと思います。

mgcvの追加バージョンをインストールする必要がありますか?なぜlibrary(mgcv)をして、現在のRリリースと互換性のあるものを使用しないのはなぜですか?


私はThe_Anomalyの最後、局所解を再公式化することを許可する:私はきちんとRスタジオのRセッションを再起動した後

(すなわち手動で再起動、ちょうどクラッシュから回復しない)、私はもはやを読み込むことができませんでした私がインストールしたパッケージ。だから私は.libPaths()を見ていますが、 "R/x86_64-redhat-linux-gnu-library/3.3"というフォルダには私のパッケージはなく、 ".../3.4"という別のフォルダがありました。何らかの理由で、この再起動の前に、Rバージョン3.3はR 3.4用に構築されたパッケージを使用していました。この不一致が解決されたため、あなたのソリューションがうまくいっている可能性が高いので、正しいとマークしましたが、私にとっては再開が実際に機能しました。

+0

残念ながら私はこのマシンにsudoを持っていないので、アップグレードを試してみるのに時間がかかります。私は暫定的に試すことができる解決策があるのだろうかと思います。 –

+1

R studioのRセッションを正常に再起動(クラッシュから回復するだけでなく手動で再起動)した後、インストールしたパッケージをロードできなくなりました。 .libPaths()を見た後、 " R/x86_64-redhat-linux-gnu-library/3.3"というフォルダには私のパッケージはなく、 ".../3.4"というフォルダには私のパッケージがあります。何らかの理由で、この再起動の前に、Rバージョン3.3はR 3.4用に構築されたパッケージを使用していました。この不一致が解決されたため、あなたのソリューションがうまくいっている可能性が高いので、正しいとマークしましたが、私にとっては再開が実際に機能しました。 –

関連する問題