在 ubuntu 上离线安装 R catboost 包

Offline installation of R catboost package on ubuntu

我正在使用 Azure databricks,它的计算服务器是 Ubuntu 18.04。我想安装 catboost R package,但出于安全原因 无法访问互联网 。我在可以访问互联网的 MacBook 上下载了 catboost 的 github 存储库,并将其压缩以将其上传到 Azure 以进行手动安装。我执行了以下步骤:

  1. catboost installation instructions, libc6-dev is required so I re-installed build-essential by downloading it from this link 上载到 ubuntu 并执行以下 bash 命令使其可用:sudo dpkg -i /dbfs/FileStore/tables/build_essential_12_4ubuntu1_amd64.deb

  2. 使用我的 Macbook(有互联网),我从 here 克隆了 github 存储库并使用 MacOS 终端压缩:tar czf catboost.tar.gz catboost

  3. 我将 catboost.tar.gz 上传到 Azure 并在 ubuntu

    中可用
  4. 我在 ubuntu 上解压缩并使用 R CMD build /home/catboost_tmp/catboost

    执行构建
  5. 执行build命令后,我成功得到一个zip文件:catboost_0.26.tar.gz。我在 R 中执行了以下命令来安装 catboost:

    install.packages("catboost_0.26.tar.gz", lib = "/databricks/spark/R/lib", 类型=“来源”, 回购=空, 详细=真)

安装导致以下错误:

system (cmd0): /usr/lib/R/bin/R CMD INSTALL
* installing *source* package ‘catboost’ ...
** using staged installation
checking for R_HOME... /usr/lib/R
checking for R... /usr/lib/R/bin/R
checking for local CATBOOST_DYNLIB... no
checking whether we can fetch CatBoost dynlib... downloading CatBoost (libcatboostr.so - v0.26)
trying URL 'https://github.com/catboost/catboost/releases/download/v0.26/libcatboostr-linux.so'
Error in download.file(url, dest_fpath, mode = "wb"): cannot open URL 'https://github.com/catboost/catboost/releases/download/v0.26/libcatboostr-linux.so'

Error: Stopping on error
In addition: Warning message:
In download.file(url, dest_fpath, mode = "wb") :
  URL 'https://github.com/catboost/catboost/releases/download/v0.26/libcatboostr-linux.so': status was 'Couldn't connect to server'
Execution halted
*** CatBoost dynamic library download failed. stopping.
ERROR: configuration failed for package ‘catboost’
* removing ‘/databricks/spark/R/lib/catboost’

它似乎试图连接到 github 以获取 libcatboostr-linux.so,因此,我创建了一个新的环境变量 CATBOOST_DYNLIB 使用 bash 命令 (echo "CATBOOST_DYNLIB=/dbfs/FileStore/tables/catboost_pkg/" >> /etc/environment) 并从 here 下载 libcatboostr-linux.so。但是我得到了同样的错误信息!

这里有没有经验的开发人员可以帮助我在无法访问互联网的情况下安装 catboost(R 包)?感谢阅读我的问题。

我自己解决了这个问题,这里是其他面临类似问题的解决方案。我通过创建环境变量 CATBOOST_DYNLIB 正确地做到了,但是路径应该是完整的,包括文件名 libcatboostr-linux.so。我只使用了包含此文件的目录路径!