Создание локального репозитория пакетов R - PullRequest
41 голосов
/ 25 мая 2010

Я хотел бы создать локальное хранилище пакетов R, чтобы пользователи в моей компании могли устанавливать из него пакеты, а системные администраторы могли периодически обновлять локальное хранилище. Доступ к зеркалам CRAN в настоящее время запрещен.

Есть ли простой способ сделать это?

Ответы [ 3 ]

42 голосов
/ 25 мая 2010

Да, копию CRAN или репозиторий с локальными пакетами легко установить. Предположительно, вы хотите это для Windows, поэтому сделайте следующее:

  1. Создайте каталог верхнего уровня на вашем веб-сервере, скажем 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 для локальных пакетов, чтобы они сами обновлялись.

Отредактируйте примерно пять + лет спустя : И пакет drat теперь автоматизирует многое из этого, и особенно хорошо, если вы также используете GitHub для обслуживания хранилища через http / https (но полезно для других или локальных хостингов тоже).

19 голосов
/ 25 мая 2010

Прочитайте раздел Руководства администратора .

4 голосов
/ 23 ноября 2016

Пакет miniCRAN также обеспечивает отличную функциональность для этого. Основное преимущество заключается в том, что вам не нужно полное зеркало, но вы можете настроить «мини» зеркало CRAN только с теми пакетами дистрибутивов, которые вам нужны, включая их зависимости.

...