Подтвердить что ты не робот

Создание локального репозитория R-пакета

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

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

Спасибо за ваше время.

EDIT: Я прошу прощения за надзор. Руководство - это то место, где я должен был смотреть первым. Спасибо.

4b9b3361

Ответ 1

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

  • Создайте каталог верхнего уровня на вашем веб-сервере, скажем R/
  • Создайте там обычную иерархию: R/bin/windows/contrib/2.11. Если вам нужно поддерживать другие (более ранние) версии, просто создайте каталоги 2.10, 2.9,... рядом с каталогом 2.11.
  • Поместите необходимые вам пакеты в каталог (например, 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 (но также полезно для другого или локального хостинга).

Ответ 3

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