Создание локального хранилища пакетов R

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

Существует ли простой способ сделать это?

42
задан MichaelChirico 12 April 2018 в 05:48
поделиться

2 ответа

Да, копию 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 (но полезен и для другого или локального хостинга).

43
ответ дан 26 November 2019 в 23:50
поделиться
19
ответ дан 26 November 2019 в 23:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: