2017-05-24 31 views
2

私はローカルに(そしてSVN経由でバージョン管理された)プライベートパッケージを保管しています。パッケージをインストールするには、パッケージディレクトリをSVN更新してから、ディレクトリにsetwd()を入力してから、devtools::install()を入力してください。インポートされたパッケージは自動インストールされません

このパッケージは、ローカルに格納されていない多くのCRANパッケージをインポートします。これらのインポートされたパッケージは、インストール中に自動インストールされないため、エラーメッセージDependency package foo not availableが生成されます。

マイDESCRIPTIONファイルは次のようになります:

Package: apackage 
Type: Package 
Title: Package to Do Stuff 
Version: 1.11111 
Date: 2017-03-02 
Author: C8H10N4O2 
Maintainer: C8H10N4O2<[email protected]> 
Description: Package that does many useful things 
License: file LICENSE 
Depends: 
    R (>= 3.3.0) 
Imports: 
    bit64 (>= 0.9.5), 
    data.table (>= 1.9.6), 
    extrafont (>= 0.17), 
    foreach(>= 1.4.3), 
    ggplot2 (>= 2.0.0), 
    gbm (>= 2.1), 
    grid (>= 3.2.3), 
    gridExtra (>= 2.0.0), 
    httr (>= 1.1.0), 
    readxl (>= 0.1.1), 
    scales (>= 0.4.0), 
    xlsx (>= 0.5.7) 
LazyData: true 
RoxygenNote: 5.0.1 
Suggests: testthat (>= 0.9.1) 
ユーザーが手動で foobarは私 Imports:

詳細の中であっても、うんざり、のみDependency package bar not availableを取得するには、もう一度試して、その後、install.packages('foo')をインストールする必要があります

check()またはload_all()を呼び出すと、まだエラーが表示されます。

Error in (function (dep_name, dep_ver = NA, dep_compare = NA) : 
    Dependency package gridExtra not available. 

そして、私のユーザはinstall.packages('gridExtra')になっていて、別の依存関係が利用できないというエラーが表示されます。

R packagesによると:私は試してみました何

Imports: packages listed here must be present for your package to work. In fact, any time your package is installed, those packages will, if not already present, be installed on your computer (devtools::load_all() also checks that the packages are installed).

私もWriting R Extensionsをチェックしますが、このトピックに関する何かを見つけることができませんでした。

これらのパッケージに自動インストールする必要がありますが、自動インストールするにはどうすればよいですか。

問題は完全には再現できないと認識していますが、私のレポにリンクすることはできませんので、追加の詳細をお知らせいたします。

**versions** 
R 3.4.0, platform = x86_64-w64-mingw32 
devtools 1.13.1 
+1

は、あなたはそれのプライベートパッケージを使用して独自のリポジトリを設定しましたか?あなたのリポジトリにはパッケージの依存関係も含まれていますか?通常は 'install。パッケージ( 'foo') 'がCRANからインストールされますが、あなたはここで何か他のことをしているようです。どのようにして、ユーザーは自分のRワークスペースを構成してその作業をどのようにしましたか? – MrFlick

+0

@MrFlickはい自分のパッケージに自分のSVNリポジトリを使用しています。私がインポートしているパッケージは含まれていません。私は質問を更新します。ご関心をお寄せいただきありがとうございます。 – C8H10N4O2

答えて

1

あなたはRを使用してパッケージングを再発明しています。私は反対です。あなたはちょうどdratリポジトリを作成することができます。これは試してみてとなり、となります。

と地元のパッケージの生産並びにその使用して、インストールの両方のために、この展開側面は、あなたがソースを保つところに完全に直交しています。コード配布メカニズムのためにソースコードリポジトリを誤解しないでください。

dratローカルでローカルのGitHub Enterpriseインスタンスを使用すると、私たちの仕事ではうまくいきました。dratは一般的にかなり広く使用されています。

(通常の免責事項私はdratを始めた一人として、私はあまりにも貢献者の束の幸運を持っていた。)

+0

アドバイスをいただきありがとうございます。本当に私の直接の質問には答えません。私はdratに精通していません。依存関係の問題以外にも、SVNからパッケージディレクトリを更新し、そこからビルドすることは、私たちの小規模なチームにとってうまくいきます。 diffはコミットの間に何が変わったのかを非常に理解しやすくします。コード配布メカニズムのソースコードリポジトリを誤解しないでください。 – C8H10N4O2

+1

はい、私はこれまでに答えてきました; dratの4つのvignetteと他の質問をここで参照してください。経験豊富なRユーザーのほとんどが同意します:パッケージを使用し、パッケージリポジトリを使用することは当然です。 –

関連する問題