【问题标题】:rbundler build error: "cannot open file 'startup.Rs': No such file or directory"rbundler 构建错误:“无法打开文件'startup.Rs':没有这样的文件或目录”
【发布时间】:2012-09-06 19:15:47
【问题描述】:

我在构建以下包时遇到了问题:https://github.com/yoni/rbundler

我的test 尝试在具有单个依赖项的普通包上运行 rbundler 的 bundle 命令。测试在我的 OSX 机器上通过,但在我的 x86_64-redhat-linux-gnu Jenkins 服务器上失败。两台机器都运行 R 2.15.1 和 devtools 0.7.1,其中包括 this bug fix

完整的测试输出可以在this gist找到。

这是我看到的错误的简短摘要:

Error in file(filename, "r", encoding = encoding) : 
  cannot open the connection
Calls: local ... eval.parent -> eval -> eval -> eval -> eval -> source -> file
In addition: Warning message:
In file(filename, "r", encoding = encoding) :
  cannot open file 'startup.Rs': No such file or directory
Execution halted

这样做的背景是我正在尝试为 R 构建一个依赖管理系统。这个想法是一个 R 项目应该能够在不使用系统范围或用户范围的库的情况下运行。相反,R 项目将在其根目录下安装自己的库。

关于我之前关于 R 中的依赖管理的 Stack Overflow 问题,请参阅Dependency management in R

【问题讨论】:

    标签: r dependencies package devtools


    【解决方案1】:

    在我的情况下,此问题是由设置为 startup.Rs 的环境变量 R_TESTS 引起的

    当您在测试中执行另一个 R 进程时(在我的例子中,它是通过 OGS qsub 提交的),此环境变量的存在会导致问题。

    【讨论】:

    • 要跟进,解决方案是使用Sys.setenv("R_TESTS" = "")取消设置变量
    【解决方案2】:

    我无法直接回答您的问题,但您可以尝试两件事以获得有关正在发生的事情的更多信息。

    1. 使用“env”将环境变量转储到您的 OSX 机器和 Jenkins 主机上
    2. 在 Linux 上通过 strace 运行进程,在 OSX 上通过 dtruss 来捕获系统调用

    strace/dtruss 应该显示它正在搜索启动的位置。Rs 和 env 输出可能会为您提供一个环境变量,该变量在系统之间会有所不同,从而导致不同的结果。

    【讨论】:

    • 感谢调试建议。我最初尝试了#1,但从未真正弄清楚这个问题。还没试过进程跟踪。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2015-02-25
    • 2019-07-27
    • 2013-12-15
    • 2014-03-02
    • 1970-01-01
    相关资源
    最近更新 更多