Ubuntu系统下R语言catboost包离线安装失败问题求助
无网络环境下R版本CatBoost离线安装解决方案
问题根因
- 你写入
/etc/environment的环境变量需要重启系统或重新登录用户才会生效,且Databricks中的R运行环境由Spark服务独立拉起,默认不会加载/etc/environment的全局配置 - 你设置的
CATBOOST_DYNLIB参数仅配置到了目录,没有指定到libcatboostr-linux.so的完整文件路径,安装脚本无法识别到对应动态库
操作步骤
1. 修正环境变量配置
- 确认你上传的
libcatboostr-linux.so完整路径,示例:/dbfs/FileStore/tables/catboost_pkg/libcatboostr-linux.so,需确保路径指向具体文件而非目录 - 不要写入
/etc/environment,直接在安装前的R会话中设置环境变量,执行R代码:
Sys.setenv(CATBOOST_DYNLIB = "/dbfs/FileStore/tables/catboost_pkg/libcatboostr-linux.so")
- 如果需要全局生效,可以将上述配置写入
/usr/lib/R/etc/Renviron文件,所有R会话启动时会自动加载该变量
2. 重新执行安装
- 确认环境变量生效后,执行安装命令:
install.packages("catboost_0.26.tar.gz", lib = "/databricks/spark/R/lib", type = "source", repos = NULL, verbose = TRUE)
备选方案(环境变量配置不生效时使用)
- 解压已构建的
catboost_0.26.tar.gz安装包,找到包根目录下的configure文件 - 搜索文件中触发GitHub下载的
download.file代码段,注释掉整段下载逻辑,将dest_fpath变量直接赋值为你本地libcatboostr-linux.so的完整路径 - 保存修改后重新打包为tar.gz格式,再执行安装即可
安装验证
- 安装完成后执行加载命令验证:
library(catboost)
- 无报错即为安装成功
内容的提问来源于stack exchange,提问作者Amir
相关产品推荐
相关产品推荐

