2015-09-16 8 views
0

Я новичок в R, и я сам его скомпилировал на Ubuntu 14.04.3 (x64). Обратите внимание, я в курсе с источником R:Почему R подсказывает мне и не работает на `update.packages()`?

[email protected]:~/Documents/Work/REPOS__svn/R/R-3-2-branch$ svn info |head -n 7 
Path: . 
Working Copy Root Path: /home/blong/Documents/Work/REPOS__svn/R/R-3-2-branch 
URL: https://svn.r-project.org/R/branches/R-3-2-branch 
Relative URL: ^/branches/R-3-2-branch 
Repository Root: https://svn.r-project.org/R 
Repository UUID: 00db46b3-68df-0310-9c12-caf00c1e9a41 
Revision: 69384 
[email protected]:~/Documents/Work/REPOS__svn/R/R-3-2-branch$ svn status -u 
Status against revision: 69392 

Запуск configure и make в отрасли АиР 3.2.2 были успешно завершены, и я могу использовать различные пакеты в пределах R сессии. Тем не менее, я хотел бы проверить, что все мои библиотеки обновлены. В R 3.2.2 я вызываю update.packages(). Когда функция вызывается, я предложено выбрать CRAN зеркало:

CRAN mirror selection dialog

Предполагая, что все хорошо, и это не проблема, я выбираю основной («O-Cloud [https]») зеркало из диалога , Диалог закрывается, и я возвращаюсь в свой R-запрос с дублирующимся сообщением «unsupported URL scheme».

Одновременно я получаю ошибку в моем R сессии при вызове update.packages():

> getOption("repos") 
    CRAN 
"@[email protected]" 
> update.packages() 
--- Please select a CRAN mirror for use in this session --- 
Error in download.file(url, destfile = f, quiet = TRUE) : 
    unsupported URL scheme 
Warning: unable to access index for repository https://cran.rstudio.com/src/contrib: 
    unsupported URL scheme 
> 

Учитывая, что, возможно, это проблема с HTTPS, я пытаюсь зеркало без SSL и так же ничего не происходит (возможно, есть никаких обновлений, но мне бы хотелось, чтобы это сообщение мне подсказывало). Тем не менее, на этот раз я не получаю второе сообщение «неподдерживаемый схема URL» после того, как диалоговое окно закрывается:

> update.packages() 
--- Please select a CRAN mirror for use in this session --- 
Error in download.file(url, destfile = f, quiet = TRUE) : 
    unsupported URL scheme 
> 

Кажется, что под капотом, R использует библиотеку RCurl, чтобы сделать некоторые из его HTTP/S взаимодействие. Насколько я могу судить, я использую поддерживаемую версию локон/Libcurl:

[email protected]:~$ curl --version 
curl 7.35.0 (x86_64-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3 
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smtp smtps telnet tftp 
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP 

Любые мысли по этому поводу? Похоже на это mailing list discussion, но я не уверен, что это проблема, или я делаю что-то неправильно.

+1

Соответствующим сайтом для этого вопроса среди различных списков рассылки R может быть R-SIG-Debian: https://stat.ethz.ch/mailman/listinfo/r-sig-debian, поскольку Ubuntu является вилкой Debian. –

+0

@BondedDust Я ценю это (также ценю ваше редактирование в тегах :)). Конечно, я согласен с изменением тегов. Тем не менее, я не уверен, что согласен с тем, где должен быть опубликован этот вопрос (например, что, если оно затрагивает всех пользователей Linux/Unix, а не только дистрибутивы на основе Debian). Я продолжу расследование и отправлю сообщение, если найду решение. – blong

+0

Что произойдет, если вы выполните 'options (repos = c (CRAN =" https://cran.rstudio.com "))' before 'update.packages()'? – christoph

ответ

3

Ну, не чувствую себя глупо. Я не из очень сильного фона C/C++. Итак, make на самом деле не в моей рулевой рубке, кроме следующих руководств и т. Д.

Я просматривал это с коллегой, и мы обсудили шаги, которые я предпринял, чтобы настроить R на моей машине. Фактически я сделал это:

svn checkout https://svn.r-project.org/R/branches/R-3-2-branch ~/R-3-2-branch 
mkdir ~/R-3-2-branch.build 
cd ~/R-3-2-branch.build 
../R-3-2-branch/configure # Returns successfully 
make 

Все установлено, правильно? :) Должен быть, потому что я могу использовать ~/R-3-2-branch.build/bin/R, и все, что внутри этого сеанса R (за исключением приведенной выше ошибки, вызвавшей этот вопрос), кажется, работает очень хорошо. Я установил всевозможные вещи из CRAN, Bioconductor и GitHub; поэтому очевидно, что проблема должна быть чем-то другим.

Ох, и, я уверен, что все зависимости должным образом доступны (в терминах зависимостей платформы), так как я сделал это:

[email protected]:~$ sudo apt-get build-dep r-base 

Ну, да, это было что-то еще! Я забыл запустить sudo make install!

Я признаю, я не совсем уверен, в каком порядке я выполнил configure, apt-get build-dep r-base и make. Тем не менее, забывая sudo make install, кажется, виновником.

На этот раз, я сделал полную последовательность:

[email protected]:~$ cd ~/R-3-2-branch.build 
[email protected]:~$ ../R-3-2-branch/configure 
[email protected]:~$ make 
[email protected]:~$ sudo make install 

И все, кажется, работает счастливо внутри R:

> update.packages() 
--- Please select a CRAN mirror for use in this session --- 
> 

(В ответ на запрос, я выбран O-Cloud [https] зеркало)

Спасибо всем за помощь!

+0

Хороший ясный ответ. Многие разработчики включают ReadMe с их источником, в котором они предоставляют точные шаги сборки (make, make check, make install и т. Д.) Для своего кода; Уверен, что есть такой файл где-то в R-source-o-сфере :-) –

+0

@CarlWitthoft Спасибо! Да, я уверен, что ты прав. Не могу поверить, что я пропустил этот шаг. Хотя, поскольку я не% 100, когда я вызывал «apt-get build-dep r-base», возможно, что это была проблема PEBCAK (проблема существует между стулом и клавиатурой) :) – blong