跳到内容

本页详细介绍了尝试安装 igraph 时遇到的常见问题。如果您在此处没有找到问题的答案,请随时在 https://igraph.discourse.group/ 上寻求帮助。当您这样做时,请务必说明

  1. sessionInfo() 的输出
  2. 您从哪里获取 R
  3. 在全新的 R 会话中运行 install.packages("igraph") 的完整输出

无法在 Windows 或 macOS 上从源代码编译 igraph

除非您知道自己在做什么,否则不要从源代码编译 igraph!使用 CRAN 提供的二进制文件会更方便。可以使用 install.packages("igraph") 安装这些文件。

通常,在每次新的 igraph 源代码发布后,二进制版本需要几天才能在 CRAN 上可用。在此期间,install.packages() 将为您提供选择使用最新源代码版本或之前二进制版本的选项。只需选择使用二进制版本,即对“您要从源代码安装吗?”回答“否”。

> install.packages('igraph')

  There is a binary version available but the source
  version is later:
       binary source needs_compilation
igraph  1.2.7  1.2.8              TRUE

Do you want to install from sources the package which needs compilation? (Yes/no/cancel) no

CRAN 仅为 R 的最后两个次要版本(例如 4.5 和 4.4)提供 Windows 和 macOS 二进制文件,但不为旧版本(例如 4.3)提供。请确保您使用的是这些受支持的 R 版本之一。请参阅 https://r-project.cn/ 以了解当前最新的 R 版本。

请注意,CRAN 上预编译的二进制文件仅与 CRAN 本身提供的 R 发行版兼容。如果您从不同的来源获得 R,例如 macOS 上的 Homebrew 或 MacPorts,您将无法使用这些二进制文件,并且安装软件包的唯一方法是从源代码编译它们。

我仍然想从源代码编译 igraph

如果您决定无论如何都要尝试从源代码编译,下面列出了基本要求。假设您能够熟练地从源代码编译软件并解决出现的基本问题。否则,请使用二进制文件。

无法在 Linux 上从源代码编译 igraph

由于 CRAN 不为 Linux 提供二进制软件包,因此 Linux 用户通常需要从源代码编译 igraph。为此,请确保您已满足所有先决条件

  • C、C++ 和 Fortran 编译器。在基于 Debian 的发行版上,请使用 sudo apt install build-essential gfortran。在 Fedora 上,请使用 yum install gcc gcc-c++ gcc-gfortran
  • glpklibxml2 的开发包。在基于 Debian 的发行版上,请使用 sudo apt install libglpk-dev libxml2-dev。在 Fedora 上,请使用 yum install glpk-devel libxml2-devel

如果您有活动的 Anaconda 环境,请在编译 igraph之前将其停用。已知活动的 conda 环境会在编译期间和之后的使用期间导致许多问题。

设置您的 Anaconda 安装,以便默认情况下没有环境处于活动状态。确保 Anaconda 的 bin 目录存在于您的 PATH 环境变量中。请勿手动将此目录添加到路径中。而是按照 Anaconda 推荐的方式,使用 conda init 让 Anaconda 管理它。只有 Anaconda 的 condabin而不是 bin,应存在于 PATH 中。

致命错误:glpk.h:没有此类文件或目录

如果您使用的是 Windows 或 macOS,请参阅无法在 Windows 或 macOS 上从源代码编译 igraph

如果您使用的是 Linux,请参阅无法在 Linux 上从源代码编译 igraph

libgfortran.so.4:无法打开共享对象文件:没有此类文件或目录

当您的机器上有多个不兼容的 gfortran 版本时,会出现此问题。最常见的情况是,其中一个来自活动的 Anaconda 环境。在使用 install.packages() 安装 igraph 之前,始终使用 conda deactivate 停用所有 Anaconda 环境。

设置您的 Anaconda 安装,以便默认情况下没有环境处于活动状态。确保 Anaconda 的 bin 目录存在于您的 PATH 环境变量中。请勿手动将此目录添加到路径中。而是按照 Anaconda 推荐的方式,使用 conda init 让 Anaconda 管理它。只有 Anaconda 的 condabin而不是 bin,应存在于 PATH 中。

libmkl_rt.so.1:无法打开共享对象文件:没有此类文件或目录

当包含冲突 BLAS 库的 Anaconda 环境处于活动状态时,通常会发生此问题。请参阅“libgfortran.so.4:无法打开共享对象文件”部分中的说明。

libglpk.so.40:无法打开共享对象文件:没有此类文件或目录

当 igraph 在编译时支持 GLPK,但 GLPK 当前未安装在系统上时,Linux 系统上会发生此错误。要解决此问题,请安装 GLPK。在基于 Debian 的系统上,只需使用 sudo apt install libglpk40

https://packagemanager.rstudio.com 安装 igraph 的二进制版本时可能会发生这种情况。这些二进制文件假定您的系统上存在 GLPK。

GLPK 不可用,未实现的函数调用

当调用依赖于 GLPK 的 igraph 函数,但 igraph 在编译时不支持 GLPK 时,会发生此错误。在 igraph 2.0.3 及更高版本中不会发生这种情况。如果您要编译早期版本,请参阅“无法在 Linux 上从源代码编译 igraph”,以获取有关在编译 igraph 时支持 GLPK 的说明。