依存関係のバージョンを処理するためにpackratを使用してパッケージを作成しました。
@nyzls65c:~/private/research$ tree -L 1 -a sp.util
sp.util
|-- .Rbuildignore
|-- .Rhistory
|-- .Rprofile
|-- .Rproj.user
|-- DESCRIPTION
|-- NAMESPACE
|-- R
|-- Read-and-delete-me
|-- man
|-- packrat
|-- sp.util.Rproj
R
パッケージ パスから開始する~/private/research/sp.util
と、packrat がライブラリを扱っていることがわかります。
@nyzls65c:~/private/research/sp.util$ Rscript -e ".libPaths()"
WARNING: ignoring environment value of R_HOME
[1] "~/private/research/sp.util/packrat/lib/x86_64-redhat-linux-gnu/3.3.0"
[2] "~/private/research/sp.util/packrat/lib-ext"
[3] "~/private/research/sp.util/packrat/lib-R"
他の場所から始めるとき
@nyzls65c:~/private/research$ Rscript -e ".libPaths()"
WARNING: ignoring environment value of R_HOME
NULL
[1] "~/R/x86_64-redhat-linux-gnu-library/3.3"
[2] "/usr/lib64/R/library"
[3] "/usr/share/R/library"
生成したファイルをパッケージ ディレクトリにpackrat
ロードし、 ..Rprofile
.libPaths()
問題はlibrary(sp.util)
、正しいディレクトリにいない限り、間違ったパッケージがロードされることです。sessionInfo()
(私は内側と外側から始めながらやってテストしましたが/sp.util
、非常に論理的にパッケージDepends
は同じではありません)
私がやりたいことは、を使用しRscript /path/script.r
、ロードsp.util
しscript.r
、正しい (つまり、packrat ローカルのもの) 依存関係をロードすることです。特定のパスから Rscript を開始する必要はありません。
libPaths()
それを行うために自分自身を設定する必要がありR_LIB_USER
ますか?
packrat
そして、上記を実行するための実行可能なオプションでさえある複数のパッケージが必要だと言いますか?