2016-04-08 11 views
3

依存関係があるときにパッケージをオフラインでインストールするとエラーが発生します。これはthis questionと非常によく似ています。私はオフラインインストールを行うための指示に従ってきました。 私はすべてのCRANパッケージをディレクトリにインストールし、PACKAGESファイルも作成しました。ローカルリポジトリからの依存関係を持つパッケージをインストールするときにエラーが発生する

しかし、私はすなわちレポをspecifiyingない下のコマンドを使用して問題なくLinux上のローカルリポジトリからパッケージをインストールすることができますその答え

に概説プロセスと微妙なバグがあるようです:

install.packages("/software/r_packages/src/contrib/ZillowR_0.1.0.tar.gz",  lib="/usr/lib64/R/library") 

しかし、私が依存関係を拾いたい場合、私はそれをリポジトリとそのPACKAGESファイルに向ける必要があります。

install.packages("/software/r_packages/src/contrib/ZillowR_0.1.0.tar.gz",  lib="/usr/lib64/R/library", repos="file:///software/r_packages/") 

しかし、私はこれを行う場合、私はエラーを取得する:

Warning message: 
package ‘/software/r_packages/src/contrib/ZillowR_0.1.0.tar.gz’ is not available (for R version 3.2.3) 

私はPACKAGESにZillowRのエントリにタイプミスを入れた場合ので、私がテストし、それがPACKAGESファイルを読んでいるを確認しましたエントリを正しく解析できないことを示すエラーが発生します。ここにあなたのために働くべきこと

+0

@トーマスちょうど今試しました - 残念なことに同じエラー –

+0

ありがとうございました! (私は答えを受け入れることができるので、答えとして入れることができますか?)私は当初、ソースファイルをソフトウェア/ r_packages/src/contribに持っていました。私はそれらをソフトウェア/ r_packagesにコピーしたが、PACKAGESファイルをソフトウェア/ r_packages/src_contribに保存してもうまくいきました。私は、インストーラがPACKAGESファイルをヒットすると、実際のソースを見つけるために2つのレベルのバックアップを取り戻すことができます。 –

答えて

1

は次のとおりです。

install.packages(pkgs = "ZillowR", type = "source", 
       lib = "/usr/lib64/R/library", 
       contriburl = "file:///software/r_packages/") 

install.packages()への引数はかなり圧倒的なことができ、デフォルトの全てがCRAN(または別のリモートリポジトリ)からインストールされたパッケージと連動するように設定されています。ここで何が起こっているかを解凍するには、CRANからZillowRをインストールするには、次のコードを考えてみます。

install.packages(pkgs = "ZillowR") 

あなたが実際に呼び出しているので、これは、デフォルト設定の多くを設定されています

install.packages(pkgs = "ZillowR", lib = .libPaths()[1], 
       repos = getOption("repos"), 
       contriburl = contrib.url(repos, type), 
       type = getOption("pkgType")) 

2つのキーのデフォルト値あなたは(潜在的に)克服するためにインストールし、ローカルおよびキーいずれかの操作を実行するために、これらのデフォルトを克服する必要が

> getOption("repos") 
           CRAN       CRANextra 
     "https://cloud.r-project.org" "http://www.stats.ox.ac.uk/pub/RWin" 
> getOption("pkgType") 
[1] "both" 

されています。私のインストール上に設定されているいくつかのグローバルオプションを、呼んでいますcontriburl(これはreposから継承されます。

install.packages(pkgs = "/software/r_packages/src/contrib/ZillowR_0.1.0.tar.gz", repos = NULL, type = "source") 

しかしpkgs引数は、Aのファイル名を期待しているので、install.packages()の振る舞いが全く異なっている次のようなinstalling a local source packageするための手順を、従うことをされていると、あなたの直感が表示されます(当然)ことを知ってソースtarball(repos、したがってcontriburlNULLの場合)。ローカルCRANのようなレポで

、あなたが実際にパッケージ名pkgsを設定すると、ローカルレポパスにcontriburlを設定します。ここでの参照がcontriburlためthe relevant section of the docsだとして:

contriburl URL(s) of the contrib sections of the repositories. Use this argument if your repository mirror is incomplete, e.g., because you burned only the ‘contrib’ section on a CD, or only have binary packages. Overrides argument repos. Incompatible with type = "both".

あなたがtype = "source"を設定する必要があります(がある)なぜ最後の文が表示されます。

+0

完全に動作します。ありがとう! @トーマス –

関連する問題