Я хотел бы создать локальное хранилище пакетов R, таким образом, что пользователи в моей компании могут установить пакеты от него, и системные администраторы могут периодически обновлять локальный repo. Доступ к зеркалам CRAN в настоящее время запрещается.
Существует ли простой способ сделать это?
Да, копию 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 (но полезен и для другого или локального хостинга).