【问题标题】:Can I specify where the sources downloaded to build R packages are going我可以指定下载的用于构建 R 包的源的去向吗
【发布时间】:2015-04-25 17:03:54
【问题描述】:

我知道如何指定我通过install.packagesR CMD 安装的软件包的去向。 当我在R 中安装时,我总是得到 ​​p>

The downloaded source packages are in
    ‘/tmp/RtmpxtIlp5/downloaded_packages’

我可以设置一些环境或其他东西,让它总是去我想去的地方吗?

编辑 不确定这是否是新的,但最好的答案是使用destdir

install.packages(pkgs='versions', destdir='/tmp/sources', lib='/tmp/library', dependencies=TRUE, repos='http://cran.us.r-project.org')

【问题讨论】:

  • this 回答你的问题了吗?
  • tempdir() 不知道这个!很好,我可以从中得到所有的来源。就像在 .Last() 函数中一样。

标签: r build installation


【解决方案1】:

我使用包含在littler 包中的脚本install.r 作为示例(它也可作为包括Debian 和Ubuntu 在内的多个Linux 发行版的二进制文件)。作为副作用,它会将包留在/tmp/download_packages

edd@max:~$ install.r digest
trying URL 'http://cran.rstudio.com/src/contrib/digest_0.6.8.tar.gz'
Content type 'application/x-gzip' length 97985 bytes (95 KB)
==================================================
downloaded 95 KB

* installing *source* package ‘digest’ ...
** package ‘digest’ successfully unpacked and MD5 sums checked
** libs
gcc -I/usr/share/R/include -DNDEBUG   [...]
gcc -I/usr/share/R/include -DNDEBUG   [...]
[...]
gcc -shared -L/usr/lib/R/lib [...]
installing to /usr/local/lib/R/site-library/digest/libs
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (digest)

The downloaded source packages are in
        ‘/tmp/downloaded_packages’
edd@max:~$ 

由于它们是删除的(正如默认的 R 会话所做的那样),您可以轻松地编写脚本以将它们复制到其他目录。

【讨论】:

  • 我认为TMPDIR (?tempdir) 是一个更好的方法,不过,正如你所建议的,我将在Last() 中进行复制
  • 无论如何,这都是关于脚本的。如果您觉得需要控制下载或源地址分配,请将install.packages() 拆分为第一次下载到您想要的任何位置以及从(现在本地)文件进行安装。 Rscript 和/或 r(来自 littler)使这变得微不足道。
  • 这样做我想我会放松依赖解决方案(我认为)最好是安装,然后移动文件。
  • 不确定你是否可以哄 install.packages() 给你提供给 download.packages() 的包裹列表。我的主要观点是你把它弄得太复杂了,因为我已经向你指出了一个满足你要求的解决方案:install.r/tmp/downloaded_packages 加上后续副本(如果需要)。 install.r 为你获取所有依赖隐含的包。
【解决方案2】:

您可以使用installdir 参数。像这样:

install.packages("yourPackage", dir="your/install/dir")

Rstudio 中没有针对该参数的全局选项。我在R目录中四处寻找,找不到任何东西。作为一种全局解决方法:

installDir = "your/install/dir"
...
install.packages("yourPackage", dir=installDir)

不理想,但它会工作。

【讨论】:

  • 我认为您回答错误/不同的问题。
猜你喜欢
  • 1970-01-01
  • 2019-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-04
  • 2022-01-14
相关资源
最近更新 更多