所需的包不会自动安装

时间:2018-04-05 00:55:01

标签: r r-package

我创建了我的第一个R包,并有一个问题。

程序包在我的计算机上成功运行。但是,如果我的用户(没有所需的软件包)运行我的软件包,他们将收到错误消息,说明所需的软件包不可用。当他们从CRAN手动安装该软件包时,我的软件包就可以正常工作。

根据Hadley Wickam的书(http://r-pkgs.had.co.nz/description.html):

  

导入:此处列出的软件包必须存在才能使您的软件包正常运行。事实上,无论何时安装软件包,这些软件包(如果尚未安装)都将安装在您的计算机上(devtools :: load_all()还会检查软件包是否已安装)。

我将所有必需的软件包放在 DESCRIPTION Imports 字段中。怎么没有自动安装所需的包?在使用我的用户之前,我的用户是否需要安装所有必需的软件包?

其他背景:

  1. 我在脚本中使用约定 package_name :: function_name
  2. 我将包作为二进制包分发。
  3. 用户从他们的本地目录安装包 调用install.packages时无法指定DEPENDENCIES = TRUE。
  4. 我做了什么:

    1. 阅读Hadley Wickham的书R Packages
    2. Imported packages do not auto-installR package dependencies 但没有找到任何关于我的问题的信息。
    3. 谢谢!

2 个答案:

答案 0 :(得分:1)

您可以尝试使用

devtools::install_deps()

devtools::install_deps("pkg_version.tar.gz")

然而,这个功能似乎存在一些问题,例如: https://github.com/r-lib/devtools/issues/1370

替代方法是使用链接问题中建议的drat

答案 1 :(得分:0)

刚刚发现未安装依赖项,因为我的软件包未从CRAN存储库安装。

使用devtools::install_local("pkgname.tar.gz")将安装软件包和任何依赖项。