non-zero-exit报错R

在 R 安装需要软件包时,”non-zero-exit” 错误通常指示程序在执行过程中出现了非零的退出代码。这通常表示程序在某个步骤中遇到了错误或异常情况。回溯安装过程,可以发现non-zero exit status 的问题不止一种,或者说所有的安装失败,都会给出 non-zero exit status 的warning。以下列出几种可能的问题类型,或许可以按照这些办法解决掉安装失败的问题。

没有编译权限看这里

有root权限安装c编译器很简单

1
apt install build-essential

无root权限安装c编译器

1
conda install gcc=12 -c conda-forge
  1. ERROR: compilation failed for package

经常出现在OSX中的一个问题,缺少C++ library 提供的放头文件。解决办法是安装C++或者Xcode Command Line Tools。C++的安装不必说,Xcode Command Line Tools 的安装命令为:

1
xcode-select --install

安装Xcode Command Line Tools 就不会在发生 compilation failed for package 的错误了。

  1. Error in if (nzchar(SHLIB_LIBADD)) SHLIB_LIBADD else character() :

1
argument is of length zero

参数缺失的报错,找到R安装目录下 R/etc 下是否有 Makeconf 这个文件,如果没有则需要重新安装 r-base-core 包,命令为:

1
sudo apt-get install r-base-core

有时候还需要安装较高版本的libtiff,注意32bit的要安装 x86:

1
sudo apt-get install libtiff5-dev 
  1. 依赖包/动态库缺失

1
ERROR: dependency ‘scales’ is not available for package ‘pheatmap’

一个的依赖包安装失败,导致其他依赖包安装失败。

1
Configuration failed because no mysql client library was found.

动态库缺失,在报错信息里找到需要安装的动态库,安装即可。