2011-04-27 143 views
16

只需确认:如果我将R软件包分发为ZIP/TAR,那么安装该软件包将不会自动下载/安装依赖项,因为我必须在install.packages()中设置repos = NULL并且不使用依赖项参数if repos = NULL?可能的解决方法是打包安装脚本。那可能吗?我在这里完全错过了一些东西,并且有一种机制可以从源代码安装并自动下载和安装依赖项?从源代码安装R时的软件包依赖关系

回答

7

您可以创建自己的存储库并将其设置为查找包的位置的向量,它将从您自己的存储库开始,然后包含指向CRAN镜像的链接。这就是我所做的,它的工作原理非常好,因为那样我就可以轻松地与其他人共享我的软件包,并从我碰巧遇到的任何计算机上更新它们。

+0

聪明!我自己的存储库可以用密码保护,否则只能确保私人访问(对我的防火墙以外的客户端) – SFun28 2011-04-27 13:53:10

+0

我真的不知道,对不起。我是公众。我知道R通过http获取软件包,因此如果您可以限制对已批准客户端的Web访问权限,那么也应该限制对您的存储库的访问。 – Aaron 2011-04-27 13:58:50

+0

感谢您的建议!由于安全问题,我将避免存储库方法。我的软件包与我的公司绑定在一起。维护一个IP白名单将是太多工作。我会将这个问题留出几天,看看是否有其他解决方案 – SFun28 2011-04-28 06:02:48

5

devtools包有一个功能install。如果用于包含R程序包源代码的目录,它将安装该程序包并从CRAN下载任何依赖项。

+1

由于已经编写了这样的代码,所以如果R和它的事实工具('R CMD'/Rstudio)在默认情况下执行了这些操作,它肯定会很好。 – blong 2016-11-21 05:07:32

0

您可以使用

devtools::install_local(path) 

它可以自动下载所有的依赖关系。

0

如果你有Github帐户MYNAME,把你的[R包回购mypackage的。然后请拨打devtools::install_github("myname/mypackage")。软件包mypackage将被下载并安装,以及在描述文件中的Imports中列出的所有依赖项。