2012-09-13 36 views
9

我建立以下包時遇到了一個問題:https://github.com/yoni/rbundlerrbundler生成錯誤:「無法打開文件「startup.Rs:沒有這樣的文件或目錄」

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與依賴管理,見Dependency management in R

回答

5

在我的情況下,這個問題是由環境變量R_TESTS這是當你從你的測試中執行另一條R過程(在我的情況下,它是通過OGS的qsub提交)設置爲startup.Rs

造成的,存在這個環境變量會導致問題。

+1

爲了跟進,解決方法是用 'Sys.setenv(「R_TESTS」=「」) –

0

我不能直接回答你的問題,但是有兩件事你可以嘗試得到關於正在發生的事情的詳細信息。

  1. 使用「ENV」傾倒你的OSX機和詹金斯主機
  2. 在環境變量在Linux上運行的過程中,通過使用strace和OSX dtruss捕獲系統調用

strace的/ dtruss應該揭示它正在搜索startup.Rs和env輸出的地方可能會給你一個環境變量,不同的系統會考慮不同的結果。

+0

感謝您的調試建議。我最初嘗試#1,並沒有真正明白這個問題。尚未嘗試過程追蹤。 – yoni

相關問題