Какой-то неловкий/нехороший, но поскольку не так давно я перешел от "чистого пользователя" к "начинающему разработчику", я никогда не читал CHANGELOG, когда новый R версия вышла - до сегодняшнего дня (и у меня такое чувство, что я должен сделать это привычкой); -)
Но я не уверен, действительно ли предполагаемое изменение произошло, так как я ничего не мог с этим поделать с первого взгляда на CHANGELOG от RR 2.15.2:
Актуальный вопрос
Возможно ли, что структура (подкаталог) репозиториев пакетов изменилась с
./bin/windows/contrib/2.xx/
to
./src/contrib/2.xx/
или даже ./src/contrib
?
Или, по крайней мере, теперь файл PACKAGES
должен жить здесь: ./src/contrib/PACKAGES
?
Фоновая информация
До версии 2.15.1 следующий путь работал для установки пакетов из моего локального репозитория пакетов:
path.repos <- "L:/R/packages"
repos <- file.path("file://", path.repos)
Функция contrib.url
займет repos
и разворачивает ее в правый подкаталог:
> contrib.url(repos)
[1] "file:///L:/R/packages/bin/windows/contrib/2.15"
Но когда я пытаюсь запустить install.packages()
, я получаю следующую ошибку для R 2.15.2:
> install.packages("mypkg",
+ lib=file.path(R.home(), "library"),
+ repos=repos,
+ type="win.binary"
+ )
Error in read.dcf(file = tmpf) : cannot open the connection
In addition: Warning message:
In read.dcf(file = tmpf) :
cannot open compressed file 'L:/R/packages/src/contrib/PACKAGES', probable reason 'No such file or directory'
>
Когда я делаю то же самое с R 2.15.1, все работает плавно.
Due dilligence
Есть несколько ссылок на репозитории в CHANGELOG, но единственный раздел, который я нашел, дает мне некоторые доказательства того, что предполагаемое изменение произошло это:
УСТАНОВКА УПАКОВКИ
Для установки двоичного пакета Windows или Mac OS X install.packages() проверяет, доступен ли исходный пакет в тех же репозиториях, и сообщите, является ли это более поздней версией или есть исходный пакет, но нет двоичного пакета доступный.
Просто взглянул на официальную документацию и понял, что, возможно, arg type
не передается с точностью до contrib.url()
правильно как мне кажется, install.package()
смотрит на место для пакетов type="source"
?