web-dev-qa-db-ja.com

ローカルRパッケージリポジトリの作成

社内のユーザーがそこからパッケージをインストールでき、システム管理者がローカルリポジトリを定期的に更新できるように、ローカルRパッケージリポジトリを作成したいと考えています。 CRANミラーへのアクセスは現在拒否されています。

これを行う簡単な方法はありますか?

42
harshsinghal

はい、CRANのコピーまたはローカルパッケージのリポジトリのいずれかを簡単に設定できます。おそらくこれはWindowsで必要なので、次のようにします。

  1. Webサーバーに最上位のディレクトリを作成します。たとえば、_R/_とします。
  2. そこに通常の階層を作成します:_R/bin/windows/contrib/2.11_。他の(以前の)リリースをサポートする必要がある場合は、_2.10_ディレクトリの隣に_2.9_、_2.11_、...ディレクトリを作成するだけです。
  3. 必要なパッケージをディレクトリ(たとえば、_2.11_)に配置してから、そのディレクトリに移動し、次のコマンドを実行して、リポジトリのPACKAGESおよび_PACKAGES.gz_ファイルを生成します。

    tools::write_PACKAGES(".", type="win.binary")

これですべてです。次のようなコマンドを指定してアドレスをポイントすることで、リポジトリにアクセスできます。

_update.packages(repos="http://my.local.server/R", ask=FALSE)
_

ローカルパッケージの場合は_R/zzz.R_を使用して、パッケージ自体を更新します。

5年以上後に編集します:そして drat パッケージはこれを自動化し、GitHubを使用している場合は特に優れていますhttp/https経由でリポジトリを提供する(ただし、他のホスティングまたはローカルホスティングにも役立ちます)。

43

管理者ガイドのセクション をお読みください。

19
Shane

パッケージ miniCRAN もこれに優れた機能を提供します。主要な利点は、完全なミラーは必要ありませんが、依存関係を含め、必要なパッケージ配布のみでCRANの「ミニ」ミラーをセットアップできることです。

4
Glen Moutrie