软件包“rgl”的安装具有非零退出状态

Installation of package ‘rgl’ had non-zero exit status

我是 Centos 6 中的 运行 R。我需要删除 R 中的一些包。这样做并尝试重新安装后,我被告知需要安装 rgl 包。现在,当我尝试安装它时,出现以下错误。

install.packages("rgl")
Installing package into ‘/usr/lib64/R/library’
(as ‘lib’ is unspecified)
also installing the dependencies ‘sourcetools’, ‘shiny’

trying URL 'http://cran.rstudio.com/src/contrib/sourcetools_0.1.2.tar.gz'
Content type 'application/x-gzip' length 16227 bytes (15 KB)
==================================================
downloaded 15 KB

trying URL 'http://cran.rstudio.com/src/contrib/shiny_0.14.tar.gz'
Content type 'application/x-gzip' length 2110934 bytes (2.0 MB)
==================================================
downloaded 2.0 MB

trying URL 'http://cran.rstudio.com/src/contrib/rgl_0.96.0.tar.gz'
Content type 'application/x-gzip' length 2489778 bytes (2.4 MB)
==================================================
downloaded 2.4 MB

* installing *source* package ‘sourcetools’ ...
** package ‘sourcetools’ successfully unpacked and MD5 sums checked
** libs
g++ -m64 -std=c++0x -I/usr/include/R -DNDEBUG -I../inst/include -I/usr/local/include    -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -c Reader.cpp -o Reader.o
g++ -m64 -std=c++0x -I/usr/include/R -DNDEBUG -I../inst/include -I/usr/local/include    -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -c Tokenizer.cpp -o Tokenizer.o
In file included from ../inst/include/sourcetools/cursor/TokenCursor.h:7,
                 from ../inst/include/sourcetools/cursor/cursor.h:5,
                 from ../inst/include/sourcetools.h:11,
                 from Tokenizer.cpp:1:
../inst/include/sourcetools/tokenization/Token.h: In constructor ‘sourcetools::tokens::Token::Token()’:
../inst/include/sourcetools/tokenization/Token.h:27: error: ‘nullptr’ was not declared in this scope
../inst/include/sourcetools/tokenization/Token.h: In constructor ‘sourcetools::tokens::Token::Token(sourcetools::tokens::TokenType)’:
../inst/include/sourcetools/tokenization/Token.h:34: error: ‘nullptr’ was not declared in this scope
../inst/include/sourcetools/tokenization/Token.h: In constructor ‘sourcetools::tokens::Token::Token(const sourcetools::tokens::Token::Position&)’:
../inst/include/sourcetools/tokenization/Token.h:41: error: ‘nullptr’ was not declared in this scope
../inst/include/sourcetools/tokenization/Token.h: In function ‘std::ostream& sourcetools::operator<<(std::ostream&, const std::vector<sourcetools::tokens::Token, std::allocator<sourcetools::tokens::Token> >&)’:
../inst/include/sourcetools/tokenization/Token.h:457: error: expected initializer before ‘:’ token
../inst/include/sourcetools/tokenization/Token.h:459: error: expected primary-expression before ‘return’
../inst/include/sourcetools/tokenization/Token.h:459: error: expected ‘;’ before ‘return’
../inst/include/sourcetools/tokenization/Token.h:459: error: expected primary-expression before ‘return’
../inst/include/sourcetools/tokenization/Token.h:459: error: expected ‘)’ before ‘return’
In file included from ../inst/include/sourcetools/cursor/cursor.h:5,
                 from ../inst/include/sourcetools.h:11,
                 from Tokenizer.cpp:1:
../inst/include/sourcetools/cursor/TokenCursor.h: In member function ‘bool sourcetools::cursors::TokenCursor::moveToPosition(const sourcetools::cursors::TokenCursor::Position&)’:
../inst/include/sourcetools/cursor/TokenCursor.h:167: error: expected primary-expression before ‘[’ token
../inst/include/sourcetools/cursor/TokenCursor.h:167: error: expected primary-expression before ‘]’ token
../inst/include/sourcetools/cursor/TokenCursor.h:167: error: expected primary-expression before ‘const’
../inst/include/sourcetools/cursor/TokenCursor.h:167: error: expected primary-expression before ‘const’
make: *** [Tokenizer.o] Error 1
ERROR: compilation failed for package ‘sourcetools’
* removing ‘/usr/lib64/R/library/sourcetools’
Warning in install.packages :
  installation of package ‘sourcetools’ had non-zero exit status
ERROR: dependency ‘sourcetools’ is not available for package ‘shiny’
* removing ‘/usr/lib64/R/library/shiny’
Warning in install.packages :
  installation of package ‘shiny’ had non-zero exit status
ERROR: dependency ‘shiny’ is not available for package ‘rgl’
* removing ‘/usr/lib64/R/library/rgl’
Warning in install.packages :
  installation of package ‘rgl’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/RtmpdNMaV6/downloaded_packages’
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done

我已按照类似问题的建议进行操作,并尝试重新安装以下内容

sudo yum install mesa-libGL mesa-libGL-devel mesa-libGLU mesa-libGLU-devel
sudo yum groupinstall X11

虽然这没有效果。事实上,我认为它不会有,因为我的错误消息中没有任何关于我可以看到的缺少库的信息(除了其他相互依赖的 R 库,我已经尝试单独安装它们)。

尝试安装 sourcetools 时出现错误,shiny 使用 rgl 使用的软件包。但是您没有安装最新的 sourcetools,即版本 0.1.5,一个非常新的更新。我建议您现在再试一次,您可能会看到不同的结果。

如果不是这样,您可能正在使用旧版本的 R 或某些强制使用旧包版本的包。您可以尝试更新到当前的 R 版本并更新所有包。