如何从本地文件安装 stringi(绝对不能访问 Internet)

How to install stringi from local file (ABSOLUTELY no Internet Access)

我正在使用 RStudio 在远程服务器上工作。此服务器无法访问 Internet。我想安装包“stringi”。我看过这个 stackoverflow article,但每当我使用命令

install.packages("stringi_0.5-5.tar.gz", 
                 configure.vars="ICUDT_DIR=/my/directory/for/icudt.zip")

它只是尝试访问 Internet,但它无法访问。到目前为止,我一直在使用 工具 -> 安装包 -> 从打包存档文件安装 。但是,由于这个错误,我不能再使用这个方法了。

如何安装这个包?

如果您无法在本地计算机上访问 Internet,您可以构建一个包含所有必需的可分发源包 ICU 数据文件(供离线使用)通过省略一些相关行 .Rbuildignore 文件。以下命令序列应该可以解决问题:

wget https://github.com/gagolews/stringi/archive/master.zip -O stringi.zip
unzip stringi.zip
sed -i '/\/icu..\/data/d' stringi-master/.Rbuildignore
R CMD build stringi-master

假设最新的开发版本是1.3.1, 在当前工作目录中创建了一个名为 stringi_1.3.1.tar.gz 的文件。 现在可以安装包(源包可以通过 scp 等)通过执行:

R CMD INSTALL stringi_1.3.1.tar.gz

或通过调用 install.packages("stringi_1.3.1.tar.gz", repos=NULL), 来自 R 会话中。

对于 Linux 机器,最简单的方法是从我的角度来看:

  1. Rexamine 以 tar.gz 格式将您需要的版本下载到您的本地电脑。与 CRAN 上的版本相反,它已经包含 icu55\data\ 文件夹。
  2. 将存档移动到没有互联网访问权限的目标 linux 机器
  3. 运行 R CMD INSTALL stringi-1.0-1.tar.gz(在发布 1.0-1 的情况下)

您提供的 configure.vars 值有误。 它表示您必须给出目录的名称,而不是最终的文件名。

将您的代码更正为以下内容:

install.packages("stringi_0.5-5.tar.gz", 
                 configure.vars="ICUDT_DIR=/my/directory/for/")

此致, 肖恩

按照以下步骤操作

  1. 从您可以访问互联网的服务器单独下载 icudt55l.zip wget http://www.mini.pw.edu.pl/~gagolews/stringi/icudt55l.zip
  2. 将下载的包复制到要安装的服务器上stringi
  3. 执行以下命令 R CMD INSTALL --configure-vars='ICUDT_DIR=/tmp/ALL' stringi_1.1.6.tar.gz

icudt55l.zip 复制到 /tmp/ALL

@gagolews 的建议几乎对我有用。这是 RStudio.

的实际作用
  1. 下载the master.zip file that will save as stringi-master.zip.
  2. 将文件解压缩到您的桌面上。解压后的文件夹应该是stringi-master.
  3. 通过删除 ^src/icu55/data^src/icu61/data 或类似行来编辑 .Rbuildignore 文件。
  4. 将文件夹从桌面移动到服务器的主目录。
  5. 在 RStudio 中创建一个新项目,将~/stringi-master作为现有目录
  6. 从 RStudio 的菜单中,select BuildBuild Source Package。 (您可能需要先 select 配置构建工具 。对于 项目构建工具 选择 然后 select OK.)
  7. 它应该创建一个 tar.gz 文件,格式如下:stringi_x.x.(x+1).tar.gz。例如,如果 stringi 的当前版本是 1.5.3,它将创建版本 1.5.4。 (我收到了一些似乎没有影响结果的警告。)
  8. 将新创建的包移动到您的本地存储库。更新存储库索引。并安装软件包。