标签: packrat

使用R与git和packrat

我一直在使用git,但最近刚开始使用packrat.我希望我的存储库是自包含的,但同时我不想包含可用的CRAN包.似乎一旦在带有packrat的项目中打开R,它将尝试使用项目库中的包; 如果它们不可用,那么它将尝试从项目库中的src安装; 如果它们不可用,它将查看该计算机中安装的库.如果计算机中没有库; 它接下来会看CRAN吗?

我应该在git仓库中包含哪些文件(例如,packrat.lock)?

r packrat

19
推荐指数
1
解决办法
3639
查看次数

Packrat的版本控制替代品

Packrat在理论上是一个很好的工具,但多年来它一直受到启动RStudio的巨大挂起时间的困扰,开发人员似乎无法解决这个问题.这在我的项目中变得不可持续.有没有人有什么比packrat更好的选择?谷歌搜索没有发现任何有用的东西,所以任何帮助将不胜感激.

version-control r packrat

11
推荐指数
2
解决办法
906
查看次数

使用Travis-CI在packrat(而不是CRAN)中使用R包源文件

我正在使用一个Rt包,这是一个RStudio项目,我正在使用packrat来保存我依赖于我的项目的包源的本地副本.

每次我提交时,我都会让Travis-CI检查我的R包,但每次Travis构建我的包时,它都会获得最新版本的依赖包,而不是我在packrat/目录中获得的版本.

我可以在richfitz/wood中看到他似乎已经在他的.travis.yml文件中实现了这个目标:

env:
 USE_PACKRAT=1
Run Code Online (Sandbox Code Playgroud)

以及一个相当复杂的make/packrat.mk文件,它使一切正常.

我的问题是,配置我的项目(例如我的.travis.yml文件)的最简单方法是告诉Travis机器从packrat/github上的目录中获取包,而不是从CRAN 获取包?

r travis-ci packrat

10
推荐指数
1
解决办法
661
查看次数

R Description文件中的“存储库:”字段

问题:Repository:打包DESCRIPTION文件中字段的目的和来源是什么?

官方文件中的DESCRIPTION文件中似乎没有提到它,在Hadley的书中也没有提到它。它似乎是在CRAN上传期间自动填充的-例如,它不在dplyr原始的description源中,但在CRAN的tarball Description中存在:

...
Maintainer: Hadley Wickham <hadley@rstudio.com>
Repository: CRAN
Date/Publication: 2019-05-14 12:20:03 UTC
Run Code Online (Sandbox Code Playgroud)

背景:我问,因为packrat似乎是使用此字段的存在/不存在来确定是否可以在某个位置的存储库中找到软件包-如果找不到,则需要您手动下载。对于在类似CRAN的本地存储库中托管的本地开发的软件包,这是一个问题。

我们可以开始将Repository:字段添加到我们的本地包中,但这对于所有以前的版本来说都是很痛苦的事情,它会弄乱他们的tarball校验和,等等。在不了解其用途的情况下,我不想这样做。

metadata r repository cran packrat

10
推荐指数
1
解决办法
96
查看次数

使用packrat进行R更新后,包中的包不可用

我最近更新到R 3.1.3,我正在使用RStudio和packrat.我正在尝试使用RStudio在构建的"构建和重新加载"工具中重新构建我的包,但它不起作用.我一直收到以下错误:

Updating standaRd documentation
Loading standaRd
Error in (function (dep_name, dep_ver = NA, dep_compare = NA)  : 
  Dependency package ggplot2 not available.
Calls: suppressPackageStartupMessages ... <Anonymous> -> load_all -> load_depends -> mapply -> <Anonymous>
Execution halted

Exited with status 1.
Run Code Online (Sandbox Code Playgroud)

问题是,我已经ggplot2在所有地方安装了包括我的本地库和我的包装库,用于R 3.1.2和R 3.1.3的这个项目.我试过加载它们无济于事.

另外,使用devtools::build()devtools::document()都工作,所以我假设这是一个RStudio问题?

注意:我使用的是RStudio版本0.99.235.

编辑:我也看不到我的包的任何文档,它似乎不在我的packrat库中.

第二次编辑:我已经卸载了R 3.1.3并恢复到R 3.1.2并且我仍然遇到同样的问题.

第三次编辑:这些是我的依赖:

Depends:
    R (>= 3.1.2),
    ggplot2 (>= 1.0.0),
    grid
Run Code Online (Sandbox Code Playgroud)

r rstudio packrat r-package

8
推荐指数
1
解决办法
1022
查看次数

Packrat损坏R功能时出现问题

我安装了该软件包packrat,也许只使用了一次,然后继续生活。

但是,尽管几个月都没有加载它,但对于我的常规R使用来说仍然很麻烦。

似乎是随机的,我在RStudio中的R会话将失败,并在某些操作(尤其是软件包安装)上出现错误。这是最新的错误消息(运行后parallel::makeCluster(parallel::detectCores())

错误file(filename, "r", encoding = encoding):无法打开连接

调用:来源->文件

另外:警告消息:

file(filename, "r", encoding = encoding):无法打开文件“ packrat / init.R”:没有这样的文件或目录

执行停止

我检查了所有文件夹,.libPaths()甚至没有packrat安装。为什么地球上R仍在尝试进行packrat操作?我该如何阻止呢?

到目前为止,我的风管胶带解决方案是简单地关闭并重新打开RStudio,这对于解决软件包安装问题非常有用。

不过,我似乎无法来解决这个问题的makeCluster(detectCores())范围内只有一个 .R脚本我有。在另一个项目的另一个脚本中,它工作得很好。

背景:

sessionInfo()
# R version 3.2.2 (2015-08-14)
# Platform: x86_64-pc-linux-gnu (64-bit)
# Running under: Ubuntu 14.04.2 LTS

# locale:
#  [1] LC_CTYPE=en_US.UTF-8          LC_NUMERIC=C                  LC_TIME=en_US.UTF-8          
#  [4] LC_COLLATE=en_US.UTF-8        LC_MONETARY=en_US.UTF-8       LC_MESSAGES=en_US.UTF-8      
#  [7] LC_PAPER=en_US.UTF-8          LC_NAME=en_US.UTF-8           LC_ADDRESS=en_US.UTF-8       
# [10] LC_TELEPHONE=en_US.UTF-8 …
Run Code Online (Sandbox Code Playgroud)

r package rstudio packrat

8
推荐指数
1
解决办法
1655
查看次数

如何从 R 统计程序中完全删除 renv

我一直renv在 R 项目上使用,但现在想将其从 renv 版本控制中删除,即删除所有 renv 关联文件,但仍然可以访问我在 renv 下安装的库。我该怎么做呢?或者,如何从 renv 迁移到 Packrat?

r packrat renv

7
推荐指数
1
解决办法
4101
查看次数

使用Packrat和AppVeyor构建R包

有人能指出一个工作示例,其中packratAppVeyor一起使用来构建R包吗?通过Google和GitHub搜索,我找不到任何使用AppVeyor的packrat-enable软件包.

appveyor.yml文件是否需要更改?我需要通过AppVeyor网站添加一些设置吗?

我有一个非常小的包(testthat是唯一的依赖)破坏了AppVeyor构建.这是为该提交冻结代码.这是AppVeyor日志.

(如果这个SO问题听起来很熟悉,我将问Travis-CI的类似问题.)

r appveyor packrat r-package

5
推荐指数
1
解决办法
656
查看次数

Packrat的use.cache功能如何工作?

Packrat具有use.cache减少包安装时间的功能.

该文档提供以下信息:

use.cache: Install packages into a global cache, which is then shared across projects? The directory to use is read through Sys.getenv("R_PACKRAT_CACHE_DIR"). Not yet implemented for Windows. (logical; defaults to FALSE)

但是,运行install.package()并不会从用户库中获取已安装的软件包.

use.cache工作怎么样?

r packrat

5
推荐指数
1
解决办法
1325
查看次数

使用某些本地项目将packrat配置为依赖项(没有任何本地存储库)

我有2个RStudio项目,其中一个(项目RED)依赖于另一个(项目BLUE,此外还有许多其他CRAN依赖项)。我一直在计算机上全局安装项目和所有CRAN依赖项,但是现在我试图将它们适应到packrat新计算机上(目前,我仅在全局范围内安装了packrat软件包本身)。

  1. 我真的不需要配置任何本地存储库(它只是对另一个本地项目的单个依赖项),而且我读到我实际上并不需要这样做。
  2. 在RStudio上,我打开项目BLUE并转到Build > Install and Restart,由于,所有CRAN依赖项都在本地安装packrat。一切都很好,我得到了安装路径:/Users/MYUSER/Documents/GitHub/PATHTOMYPROJECT/packrat/lib/x86_64-apple-darwin15.6.0/3.6.1
  3. 我打开然后投影红色并选择 packrat > Use packrat with this project > Add local repository > [Path of step 2]

然后我得到这个错误:

> packrat::init(options = list(local.repos = c("~/Documents/GitHub/PATHTOMYPROJECT/packrat/lib/x86_64-apple-darwin15.6.0/3.6.1")))
Initializing packrat project in directory:
- "~/Documents/GitHub/PATHTOMYPROJECT"
Error in read.dcf(...) : no se puede abrir la conexión
Además: Warning message:
In read.dcf(...) :
  cannot open file '/Users/MYUSER/Documents/GitHub/PATHTOMYPROJECT/packrat/lib/x86_64-apple-darwin15.6.0/3.6.1/NAMEOFTHELIB': it is a directory
Run Code Online (Sandbox Code Playgroud)

r rstudio packrat

5
推荐指数
0
解决办法
69
查看次数