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

Установите пакет R непосредственно из URL-адреса для источника пакета

Я хотел бы установить пакет непосредственно из URL-адреса для источника пакета. Я хочу сделать это, чтобы люди могли протестировать предварительно выпущенную версию пакета, которая не должна быть широко (или постоянно) доступна. Этот вопрос является аналогичным, но он отличается тем, что он описывает только то, как устанавливать из локальных файлов не общие URL-адреса.

Для этого вопроса я буду использовать ссылку на источник пакета boot. Чтение ?install.packages в частности, описание аргумента pkgs предполагает:

install.packages(
  "http://cran.r-project.org/src/contrib/Archive/boot/boot_1.3-7.tar.gz", 
  repos = NULL, type = "source"
)

Однако это не удается:

Warning in install.packages :
  installation of package 
  ‘http://cran.r-project.org/src/contrib/Archive/boot/boot_1.3-7.tar.gz’ 
  had non-zero exit status

Предполагает, что URL-адрес интерпретируется как имя пакета, а не его местоположение. Мы можем обойти это с помощью следующей двухэтапной процедуры:

download.file(
  "http://cran.r-project.org/src/contrib/Archive/boot/boot_1.3-7.tar.gz", 
  "boot"
)
install.packages("boot", repos = NULL, type = "source")

Но я бы предпочел сделать это только одним вызовом install.packages; и поскольку install.packages способен загружать файлы, я считаю, что это должно быть возможно.

4b9b3361

Ответ 1

install.packages теперь работает с URL-адресами http (пока не https) с 3.1.1. Это работает для меня:

install.packages("http://www.lepem.ufc.br/jaa/colorout_1.1-0.tar.gz", repos=NULL)

Изменить: Начиная с R 3.2.0, https встроен через libcurl. Теперь это должно работать:

install.packages("https://github.com/hadley/devtools/archive/v1.7.0.tar.gz",
                 repos=NULL, method="libcurl")

Изменить: Начиная с R 3.2.2, https должен работать с параметрами по умолчанию, предполагая, что поддержка libcurl была скомпилирована.

Изменить 2016-04-20: могут возникнуть проблемы с загрузкой пакетов, размещенных на S3, но method='wget', похоже, теперь работает для них.

Ответ 2

См. ?install_url в пакете devtools.

Ответ 3

Почему бы не настроить каталог, в котором вы храните исходный пакет в качестве репозитория?

Вот пример (хотя вы, вероятно, захотите заменить type="source" на type="win.binary" в коде по этой ссылке).