Мой пакет не работает для R 2.15.2

У меня есть пакет под названием rpackage на локальном (корпоративном) репо. Когда я запускаю install.packages("rpackage"), он сообщает мне, что:

Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  package ‘rpackage’ is not available (for R version 2.15.2)

Я построил этот пакет с помощью R CMD INSTALL --build ., выпущенный на локальное репо, а также запустил tools::write_PACKAGES() для обновления файлов PACKAGES. Когда я запускаю R --version, я получаю:

R version 2.15.2 (2012-10-26) -- "Trick or Treat"
Copyright (C) 2012 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: i386-w64-mingw32/i386 (32-bit)

И когда я запустил R CMD INSTALL --build --version, я получаю:

R add-on package installer: 2.15.2 (r61015)

Локальная структура каталога репо следует официальной документации и работает до тех пор, пока я не обновился до R 2.15.2. Структура:

\\server\folder\R\bin\windows\contrib\
    2.11\
    2.12\
    2.13\
    2.14\
    2.15\
\\server\folder\R\src\contrib\

Если я запустил install.packages("rpackage") в R 2.15.1, у меня нет проблем. Есть ли что-то особенное, что мне нужно сделать, чтобы заставить его работать с новой версией R?

Я заметил, что серверы CRAN используют немного другую структуру каталогов. Например, зеркало CSIRO CRAN использует:

http://cran.csiro.au/bin/windows/contrib/r-release/

Любая идея о том, как это исправить?

Большое спасибо.

Ответ 1

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

Для двоичной установки функция также проверяет наличие исходного пакета в том же репозитории и сообщает, если исходный пакет имеет более позднюю версию или доступен, но не существует бинарной версии. Эта проверка может быть подавлена ​​options(install.packages.check.source = "no")

Исправить, options(install.packages.check.source = FALSE). Это также можно включить в вашу функцию .First.

Ответ 2

Я не уверен, что решение imanuelc будет работать для всех, поскольку это не сработало для меня:

> options(install.packages.check.source = FALSE)
> install.packages("rstudio", lib="C:/Program Files/R/R-2.15.2/library", dep=TRUE)
Warning in install.packages :
package ‘rstudio’ is not available (for R version 2.15.2)

В моем случае я видел, что эта ошибка пришла и уходит на определенные пакеты, такие как tm, rjson и т.д. Я знаю, что есть версия всех этих пакетов для R 2.15, потому что большинство из них действительно имеют мою IDE и я просто пытаюсь установить их в конкретный каталог (и я хочу, чтобы инструкция install.packages появилась для будущих кодеров с разными IDE).

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

Ответ 3

Попробуйте обновить R до новой версии.

Сделать это первое обновление sources.list. Вы можете сделать это, используя следующую команду:

nano /etc/apt/sources.list

добавьте следующую строку в этот файл:

deb http://cran.r-project.org/bin/linux/debian/ wheezy-cran3/

Тогда do:

apt-get update

Удаление старой версии:

apt-get remove r-base-core

Установите с помощью команды:

apt-get install r-base r-base-dev