web-dev-qa-db-fra.com

Création d'un référentiel de packages R local

Je souhaite créer un référentiel de packages R local afin que les utilisateurs de mon entreprise puissent en installer des packages et que les administrateurs système puissent mettre à jour le référentiel local périodiquement. L'accès aux miroirs CRAN est actuellement refusé.

Existe-t-il un moyen simple de procéder?

42
harshsinghal

Oui, une copie de CRAN ou un dépôt avec des packages locaux est facile à configurer. Vous voulez probablement ceci pour Windows, alors faites ceci:

  1. Créez un répertoire de premier niveau sur votre serveur Web, dites R/
  2. Créez la hiérarchie habituelle ici: R/bin/windows/contrib/2.11. Si vous avez besoin de prendre en charge d'autres versions (antérieures), créez simplement des répertoires 2.10, 2.9, ... à côté du répertoire 2.11.
  3. Placez les packages dont vous avez besoin dans le répertoire (par exemple, 2.11), Puis accédez à ce répertoire et exécutez la commande suivante pour générer les fichiers PACKAGES et PACKAGES.gz Pour le référentiel:

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

C'est tout ce qu'il y a à faire - maintenant vous pouvez accéder au référentiel en pointant vers l'adresse donnée par une commande telle que

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

ce que je fais même dans R/zzz.R pour les paquets locaux afin qu'ils se mettent à jour.

Modifier environ cinq ans plus tard : Et le package drat automatise maintenant beaucoup de cela, et brille particulièrement si vous utilisez également GitHub pour servir le référentiel sur http/https (mais est également utile pour un hébergement autre ou local).

43
19
Shane

Le paquet miniCRAN fournit également une grande fonctionnalité pour cela. Le principal avantage est que vous n'avez pas besoin d'un miroir complet, mais que vous pouvez configurer un "mini" miroir de CRAN avec uniquement les distributions de packages dont vous avez besoin, y compris leurs dépendances.

4
Glen Moutrie