在R中安装Package mvoutlier时如何解决错误"缺少必需的标题GL/gl.h"?

Sau*_*abh 44 r

我正在尝试安装package mvoutlier但在安装过程中发生以下错误:

install.packages("mvoutlier")
configure: error: missing required header GL/gl.h 
ERROR: configuration failed for package ‘rgl’
* removing ‘/home/sam/R/x86_64-pc-linux-gnu-library /2.15/rgl’
ERROR: dependency ‘rgl’ is not available for package ‘compositions’
* removing ‘/home/sam/R/x86_64-pc-linux-gnu-library/2.15/compositions’
ERROR: dependency ‘compositions’ is not available for package ‘mvoutlier’
* removing ‘/home/sam/R/x86_64-pc-linux-gnu-library/2.15/mvoutlier’
Run Code Online (Sandbox Code Playgroud)

之后我成功安装了rgl包,然后我尝试安装组合包然后再次发生同样的错误.然后我再次尝试安装mvoutlier包同样的错误发生.

任何人都可以让我知道如何解决这个问题.提前感谢你.

小智 44

我怀疑你正在运行Ubuntu 12.04.我想你会发现这适用于这个GL/gl.h问题:

在常规旧终端安装这些,即假装R暂时不存在:

libglu1-mesa-dev freeglut3-dev mesa-common-dev
Run Code Online (Sandbox Code Playgroud)

由于tcl b****/gripe/complaint,您可能会在以后(在R中)收到以下错误:

Error in structure(.External(.C_dotTcl, ...), class = "tclObj") : 
  [tcl] can't find package BWidget.
Run Code Online (Sandbox Code Playgroud)

要解决此问题,如果您有:

sudo apt-get install bwidget
Run Code Online (Sandbox Code Playgroud)

这些不是R问题.他们是操作系统问题!

  • `sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev`在Ubuntu 15.10上为我解决了这个问题.谢谢! (6认同)

3ma*_*uek 35

我在基于Ubuntu的Linux发行版(Linux Mint)上遇到了同样的问题.在这里,我将分享我为修复它所做的工作日志.

完整的解决方案是:

apt-get install libx11-dev mesa-common-dev libglu1-mesa-dev

工作日志

第一个错误与缺少X11的devel库有关:

configure: error: X11 not found but required, configure aborted.

我修好了安装:

apt-get install libx11-dev

然而,在解决了这个问题之后,我感觉像这样一个新的:

configure: error: missing required header GL/gl.h ERROR: configuration failed for package ‘rgl’

我检查了存储库中的库:

# dpkg -S /usr/include/GL/gl.h dpkg-query: no path found matching pattern /usr/include/GL/gl.h

要解决此问题,请安装:

apt-get install mesa-common-dev

然后,我被一个新错误提示:

configure: error: missing required header GL/glu.h

要解决此问题,请安装libglu1 devel库:

apt-get install libglu1-mesa-dev


Spa*_*man 34

configure: error: missing required header GL/gl.h 
Run Code Online (Sandbox Code Playgroud)

通常表示您尚未安装-dev版本的软件包,在本例中为GL.

在我的系统上,GL/gl.h由mesa-common-dev拥有

$ dpkg -S /usr/include/GL/gl.h
mesa-common-dev: /usr/include/GL/gl.h
Run Code Online (Sandbox Code Playgroud)

本来可以安装apt-get install mesa-common-dev或通过一些GUI魔术.

  • 对于RHEL系列发行版的用户来说,`dnf install mesa*`就可以了. (3认同)

小智 13

在Ubuntu 16.04上,我解决了这个问题(在rgl软件包安装期间)sudo apt-get install libglu1-mesa-dev


小智 7

当前的 Fedora 包管理器将无法找到这些库,如图所示。相反,你需要做

    sudo dnf install mesa-libGL-devel mesa-libGLU-devel
Run Code Online (Sandbox Code Playgroud)