Ubuntu 18.04安装R语言gsl包版本校验失败问题求助
问题原因
该报错由R的gsl包内置的configure脚本版本号解析缺陷导致:你系统安装的libgsl-dev版本号为2.4+dfsg-6,带有+dfsg非数字后缀,旧版gsl包的configure脚本无法正确识别带特殊后缀的版本号,即使实际版本远高于要求的1.16,仍会判定版本不满足要求。
解决方法
以下三种方案任选其一即可:
- 方案1(推荐,操作最简单):直接安装Ubuntu官方源预编译的R-gsl包,跳过源码编译的版本检测步骤
sudo apt update sudo apt install r-cran-gsl
安装完成后打开R即可直接加载gsl包,无需再执行install.packages('gsl')命令。
- 方案2:手动修改源码的版本检测逻辑后编译安装
如果需要安装CRAN上的最新版gsl包,可手动修改配置跳过检测:
- 在R交互环境下载源码包到本地:
download.packages('gsl', destdir = './')
- 解压源码包并进入目录:
tar -zxf gsl_*.tar.gz cd gsl
- 编辑configure文件,删除或注释掉版本检测失败后抛出
Need GSL version >= 1.16错误的代码段 - 在当前目录下执行本地编译安装:
install.packages('.', repos = NULL, type = 'source')
- 方案3:临时修改gsl-config的版本输出绕过检测
临时篡改gsl版本查询的返回值骗过检测,安装完成后恢复即可:
- 备份原gsl-config文件:
sudo cp /usr/bin/gsl-config /usr/bin/gsl-config.bak
- 编辑
/usr/bin/gsl-config文件,找到--version参数对应的输出行,将原输出内容改为纯数字版本号2.4 - 打开R执行
install.packages('gsl')完成安装 - 恢复原gsl-config文件:
sudo mv /usr/bin/gsl-config.bak /usr/bin/gsl-config
内容的提问来源于stack exchange,提问作者nandaloo
相关产品推荐
相关产品推荐

