本页详细介绍了尝试安装 igraph 时遇到的常见问题。如果您在此处没有找到问题的答案,请随时在 https://igraph.discourse.group/ 上寻求帮助。当您这样做时,请务必说明
sessionInfo()
的输出- 您从哪里获取 R
- 在全新的 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
如果您决定无论如何都要尝试从源代码编译,下面列出了基本要求。假设您能够熟练地从源代码编译软件并解决出现的基本问题。否则,请使用二进制文件。
- 确保您已安装兼容的工具链,包括 Fortran 编译器。在 macOS 上,请确保您已安装 Xcode 和 此处的
gfortran
。对于 Windows,您需要 Rtools。 - 在 Windows 上,请参阅针对您的 R 版本安装 Rtools 的说明。查看Rtools 4.0 说明中的“使用 pacman”链接。您将找到一个可复制的 pacman 命令,用于安装所有依赖项。
- 在 Windows 上,请确保您已安装 GLPK C 库。这与 Rglpk R 包不同。有关在 Windows 上为 Rtools4 安装库的说明,请参见此处
无法在 Linux 上从源代码编译 igraph
由于 CRAN 不为 Linux 提供二进制软件包,因此 Linux 用户通常需要从源代码编译 igraph。为此,请确保您已满足所有先决条件
- C、C++ 和 Fortran 编译器。在基于 Debian 的发行版上,请使用
sudo apt install build-essential gfortran
。在 Fedora 上,请使用yum install gcc gcc-c++ gcc-gfortran
。 glpk
和libxml2
的开发包。在基于 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 的说明。