2017-11-22 9 views
0

私はGパッケージの特定の依存関係を持つRパッケージを持っています。ダウンロード時にRパッケージの外部依存関係をインストールすることは可能ですか?

通常、私は次のようにGitHubのからRパッケージをインストールします:

install.packages("devtools") 
library(devtools) 
install_github("github_repo/package_name") 

Rパッケージで使用されるCコードのすべてが自然のサブフォルダpackage_name/srcの内側に位置しています。しかし、私は、Rパッケージが動作するために必要なCライブラリの依存関係をどのように解放するのか混乱しています。 「書き込みR拡張」のドキュメントに基づい

https://cran.r-project.org/doc/manuals/r-release/R-exts.htmlk、これらの依存関係がリストされるべきである:

「Rシステムへの外部依存が 『SystemRequirements』フィールドにリストされなければならない、おそらく別個のREADMEに増幅ファイル。"

これは意味があります。そして、私はREADMEにこれらのCライブラリの依存関係をインストールする方法や、githubリポジトリにライブラリを置くこともできます(大きすぎない場合)。

しかし、これは簡単にすなわちDockerfile以内に、私は次のように追加することになり、私はドッカーファイルを好きな理由である、ダウンロードする人々のために混乱になることができます:

RUN apt-get update && apt-get install -y \ 
    make \ 
    clang \ 
    require_c_library1 \ 
    require_c_library2 \ 
    require_c_library3 

これらのCライブラリをロードすることは可能です(つまり、R CMD INSTALLR CMD SHLIBを呼び出して、すべてのCコードとCの依存関係をMakevarsにインストールします)。

(1)RパッケージのC依存関係をすべてダウンロードして、devtools::install_github("github_repo/package_name")にコンパイルするか、または(2)READMEにこれらの依存関係をすべてインストールするように頼むだけですそれは正しく(そして私に無限にメールを送りませんか?)

ので、私に

答えて

1

TLを修正してください、私はここで理解していないよ何かがあるかもしれません; DR:私がしたいです!

関連する以前の質問がありました。本質的には、よく定義された宇宙で働くCRANの依存関係を、ホストオペレーティングシステム全体でより普遍的なものにすることを望んでいます。その中には、多すぎるものや多すぎるものがあります。

XML、PostgreSQL、PNGまたはJPEGの例としてlibriesを使用してください。彼らの名前(およびバージョン)はオペレーティングシステムによって異なるため、悲しいことに、これは本当に難しいです。

[私はaptのキャッシュをRから照会することができるパッケージRcppAPTを持っていますが、そのアドレスは「他の方法で」フローします。もちろん、ユーザーのサブセットではなくWindows、MacOS、RH/CentOSなどのユーザーに使用できます。 ]

+0

ダーン。 READMEに更新されたURLを入れておきます。 – ShanZhengYang

関連する問題