由于包依赖关系,R CMD检查出错 背景

由于包依赖关系,R CMD检查出错 背景,r,compilation,package,R,Compilation,Package,我正在创建一个依赖于oldpackage的newpackage,并在文件newpackage/DESCRIPTION中指出了此依赖关系 此外, oldpackage安装在目录~/lib/R 我的.Rprofile包括.libpath(“~/lib/R”) 因此,我可以在不指定库位置的情况下成功加载oldpackage,例如,使用R中的命令library(oldpackage) 尽管能够在不指定程序包库的情况下加载程序包,R CMD check newpackage给出了一个错误,表明它无

我正在创建一个依赖于oldpackagenewpackage,并在文件
newpackage/DESCRIPTION
中指出了此依赖关系

此外,

  • oldpackage安装在目录
    ~/lib/R

  • 我的
    .Rprofile
    包括
    .libpath(“~/lib/R”)

    • 因此,我可以在不指定库位置的情况下成功加载oldpackage,例如,使用R中的命令
      library(oldpackage)
尽管能够在不指定程序包库的情况下加载程序包,
R CMD check newpackage
给出了一个错误,表明它无法处理oldpackage

checking whether the package can be loaded ... ERROR 
Loading required package: oldpackage
Error: package 'oldpackage' could not be loaded
In addition: Warning message:
In library(pkg, character.only = TRUE, logical.return = TRUE, lib.loc = lib.loc) :
  there is no package called 'oldpackage'
Execution halted


It looks like this package has a loading problem: see the messages for
    details.
问题:
  • 为什么R找不到包

  • 我可以在描述文件中指定库位置吗

  • 关于问题1),它既是一个常见问题,又有点烦人
    R CMD check
    以普通模式运行,因此它将找不到用户级库。我记得,在调用中设置R_LIBS=“…”会有所帮助,所以请尝试


    关于问题2),您不能在描述中给出位置。这是有道理的,因为该文件需要在“任何地方”工作,而您的位置信息是您机器的本地信息。

    Re 1)是的,这很烦人,设置
    R\u LIBS
    环境变量是一个(答案?)答案。我在
    中有
    R\u LIBS=$HOME/R/LIBS
    导出R\u LIBS
    (在连续的行上)。在
    /HOME/username
    中有bashrc
    来处理这个问题,而不是每次调用都记住。@Gavin该解决方案达到了预期的效果。根据德克的回答,这正是我所寻找的解决方案。