17

src/contrib/Archive/packageName/カスタムRパッケージリポジトリを作成していて、古いバージョンのパッケージがディレクトリに保存されるCRANアーカイブ構造を複製したいと思います。(ソースはこちらinstall_version)の関数を使用したいのですが、その関数は、のすべてのパッケージバージョンではなく、CRANのようなアーカイブ構造を持つことに依存しています。devtoolssrc/contrib/

このディレクトリ構造の作成やその他の関連タスク(Archive.rdsファイルの更新など)を容易にするRパッケージリポジトリ管理ツールはありますか?

また、管理ツールがtypeリポジトリ側でパッケージロジックを処理して、LinuxサーバーでローカルMacと同じコードを使用できるようにするinstall.packages()install_version()便利です(つまり、ローカルで使用する必要がないtype="both"type="source"、ローカルにインストールする場合マック)。

4

1 に答える 1

4

簡単な答え: 既製ではありません。

長い答え: リポジトリを管理するために使用できるツールがいくつかありますが、一貫性のある既成のエコシステムはまだありません。

CRANメンテナは、CRANリポジトリを管理するためにここに一連のスクリプトを保持していますが、それらがすべてどのように連携するか、またはパッケージインデックスの更新、パッケージチェックの実行、またはディレクトリ構造の管理にどの部分が必要かは不明です。

このtools::write_PACKAGES関数を使用してパッケージインデックスを更新できますが、パッケージがリポジトリに追加、更新、または削除されるたびに更新する必要があります。

M.eik Michalkeは、特定のリポジトリを自動的に更新したり、インストールしたりする機能を備えたroxyPackage パッケージを作成しました。開発者は最近、アーカイブ構造をCRANのarchive_structure機能で模倣する機能も追加しました。欠点は、パッケージがCRANにないことであり、と統合するとおそらくより良いでしょうdevtools。また、新品であり、まだ広く使用する準備ができていません。

最後に、特定のリポジトリを監視し、ファイルが変更された場合にパッケージインデックスを更新する小さなRubyスクリプトを作成しました。ただし、これは私の特定の組織で機能するように作成されており、外部で使用するためにリファクタリングする必要があります。誰かがそれに興味を持っているなら、私はそれをより一般的にすることができます。

于 2012-09-04T20:41:33.923 に答える