ошибка: установка пакета «rgl» имела ненулевой статус выхода

Я хотел бы использовать 3D-график, поэтому я пытался загрузить rgl, но всякий раз, когда я пытаюсь его установить, я получаю эту ошибку при установке пакета rgl. Не могли бы вы мне что-нибудь предложить?

install.packages("rgl", dependencies=TRUE)
     Installing package into ‘/root/R/x86_64-unknown-linux-gnu-library/3.2’
     (as ‘lib’ is unspecified)
     --- Please select a CRAN mirror for use in this session ---
trying URL 'http://cran.skazkaforyou.com/src/contrib/rgl_0.95.1247.tar.gz'
Content type 'application/x-gzip' length 2014799 bytes (1.9 MB)
==================================================
downloaded 1.9 MB

* installing *source* package ‘rgl’ ...
** package ‘rgl’ successfully unpacked and MD5 sums checked
checking for gcc... gcc -std=gnu99
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -std=gnu99 accepts -g... yes
checking for gcc -std=gnu99 option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for gcc... (cached) gcc -std=gnu99
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc -std=gnu99 accepts -g... (cached) yes
checking for gcc -std=gnu99 option to accept ISO C89... (cached) none needed
checking whether __attribute__((visibility())) is supported... yes
checking whether gcc -std=gnu99 accepts -fvisibility... yes
checking whether  accepts -fvisibility... no
checking for libpng-config... yes
configure: using libpng-config
configure: using libpng dynamic linkage
checking for X... libraries , headers 
checking GL/gl.h usability... no
checking GL/gl.h presence... no
checking for GL/gl.h... no
checking GL/glu.h usability... no
checking GL/glu.h presence... no
checking for GL/glu.h... no
configure: error: missing required header GL/gl.h
ERROR: configuration failed for package ‘rgl’
* removing ‘/root/R/x86_64-unknown-linux-gnu-library/3.2/rgl’

The downloaded source packages are in
‘/tmp/RtmpP1KuPN/downloaded_packages’
Warning message:
In install.packages("rgl", dependencies = TRUE) :
      installation of package ‘rgl’ had non-zero exit status

r rgl
person meghavarshney    schedule 13.08.2015    source источник
comment
См. Эту строку checking GL/gl.h usability... no. И взгляните на эту страницу, на которой четко указано Системные требования: OpenGL, библиотека GLU, zlib (необязательно), libpng (›= 1.2.9, необязательно), FreeType (необязательно) Если я хорошо помню, в Ubuntu вам нужно libglu1-mesa-dev и mesa-common-dev.   -  person    schedule 13.08.2015


Ответы (1)


Для установки rgl необходимо предварительно установить некоторые системные библиотеки. На индексной странице пакета rgl содержится важная информация:

SystemRequirements: OpenGL, GLU Library, zlib (optional), libpng (>=1.2.9, optional), FreeType (optional)

Как только мы узнаем, что OpenGL и GLU Library являются обязательными, мы должны проверить, присутствуют ли они уже в системе или нет. Один из способов - прочитать журнал установки rgl. Если появляются эти строки:

checking GL/gl.h usability... no
checking GL/gl.h presence... no
checking for GL/gl.h... no
checking GL/glu.h usability... no
checking GL/glu.h presence... no
checking for GL/glu.h... no
configure: error: missing required header GL/gl.h

Это означает, что GLU Library отсутствует и должен быть установлен. Например, в Ubuntu мы можем запустить:

sudo apt-get install libglu1-mesa-dev

В RedHat это будет:

yum install Mesa-devel

Это установит заголовки GLU Library. И тогда мы можем снова запустить:

install.packages("rgl", dependencies = TRUE)
person Community    schedule 13.08.2015
comment
В моем случае [Ubuntu 16.04] проблема заключалась в freetype (кажется, это было не так уж и необязательно), поэтому я добился успеха после sudo apt install libfreetype6-dev - person FairMiles; 03.08.2018