我一直在使用git,但最近刚开始使用packrat.我希望我的存储库是自包含的,但同时我不想包含可用的CRAN包.似乎一旦在带有packrat的项目中打开R,它将尝试使用项目库中的包; 如果它们不可用,那么它将尝试从项目库中的src安装; 如果它们不可用,它将查看该计算机中安装的库.如果计算机中没有库; 它接下来会看CRAN吗?
我应该在git仓库中包含哪些文件(例如,packrat.lock)?
Packrat在理论上是一个很好的工具,但多年来它一直受到启动RStudio的巨大挂起时间的困扰,开发人员似乎无法解决这个问题.这在我的项目中变得不可持续.有没有人有什么比packrat更好的选择?谷歌搜索没有发现任何有用的东西,所以任何帮助将不胜感激.
我正在使用一个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 获取包?
问题: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校验和,等等。在不了解其用途的情况下,我不想这样做。
我最近更新到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) 我安装了该软件包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) 我一直renv在 R 项目上使用,但现在想将其从 renv 版本控制中删除,即删除所有 renv 关联文件,但仍然可以访问我在 renv 下安装的库。我该怎么做呢?或者,如何从 renv 迁移到 Packrat?
有人能指出一个工作示例,其中packrat与AppVeyor一起使用来构建R包吗?通过Google和GitHub搜索,我找不到任何使用AppVeyor的packrat-enable软件包.
appveyor.yml文件是否需要更改?我需要通过AppVeyor网站添加一些设置吗?
我有一个非常小的包(testthat是唯一的依赖)破坏了AppVeyor构建.这是为该提交冻结的代码.这是AppVeyor日志.
(如果这个SO问题听起来很熟悉,我将问Travis-CI的类似问题.)
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工作怎么样?
我有2个RStudio项目,其中一个(项目RED)依赖于另一个(项目BLUE,此外还有许多其他CRAN依赖项)。我一直在计算机上全局安装项目和所有CRAN依赖项,但是现在我试图将它们适应到packrat新计算机上(目前,我仅在全局范围内安装了packrat软件包本身)。
Build > Install and Restart,由于,所有CRAN依赖项都在本地安装packrat。一切都很好,我得到了安装路径:/Users/MYUSER/Documents/GitHub/PATHTOMYPROJECT/packrat/lib/x86_64-apple-darwin15.6.0/3.6.1packrat > 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)