R .libPaths () разница между RStudio и командной строкой R - PullRequest
6 голосов
/ 20 августа 2011

Когда я запускаю R из командной строки:

> library(ggplot2)
...
> path.package('ggplot2')
[1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13/ggplot2"
> .libPaths()
[1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13"
[2] "/usr/local/lib/R/site-library"                
[3] "/usr/lib/R/site-library"                      
[4] "/usr/lib/R/library"                           
> Sys.getenv('R_LIBS_USER')
[1] "~/R/x86_64-pc-linux-gnu-library/2.13"

(Примечание: эта переменная окружения фактически не существует, когда я проверяю из своей оболочки.)

Но с RStudio Server, работающего на том же компьютере, и после входа в систему от имени того же пользователя:

> path.package('ggplot2')
[1] "/home/yang/R/library/ggplot2"
> .libPaths()
[1] "/home/yang/R/library"              "/usr/local/lib/R/site-library"    
[3] "/usr/lib/R/site-library"           "/usr/lib/R/library"               
[5] "/usr/lib/rstudio-server/R/library"
> Sys.getenv('R_LIBS_USER')
[1] "/home/yang/R/library"

Можете ли вы объяснить, почему они отличаются по умолчанию? Это настройка RStudio? (Почему?) Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 24 августа 2011

Прямой ответ от источника:

http://support.rstudio.org/help/discussions/questions/204-r-libpaths-difference-between-rstudio-and-command-line-r

Привет,

Да, у нас есть пользовательская настройка R_LIBS_USER, которая предназначена для ее выполненияпроще обновить сервер до новой версии R, не требуя, чтобы каждый пользователь переименовал свой каталог библиотеки и / или пересобрал свои пакеты.Таким образом, администратор может выполнить обновление, не опасаясь, что он нарушит рабочую среду своего пользователя (осознайте, что этого также можно достичь, написав сценарий обновления, который выполняет необходимое переименование / перестроение для каждого пользователя).

Полностью согласен, что это не обязательно желательно во всех случаях.Вот что вы можете сделать, чтобы обойти это:

Rtudio Server R_LIBS_USER управляется следующей настройкой в ​​/etc/rstudio/rsession.conf:

r-libs-user=~/R/library

Эта переменная поддерживаеттот же подстановочный знак, что и R_LIBS_USER (как описано здесь: http://stat.ethz.ch/R-manual/R-patched/library/base/html/libPaths.html), чтобы вы могли изменить это на следующее, чтобы заставить RStudio вести себя так же, как консоль R:

r-libs-user=~/R/%p-library/%v

(заметьте, я считаю, что это правильный синтаксисчтобы воспроизвести каталог, показанный в приведенных выше выходных данных, но вы определенно захотите проверить это дважды)

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

JJ

6 голосов
/ 20 августа 2011

Быстрое приближение ко мне привело меня сюда:

http://support.rstudio.org/help/discussions/problems/868-how-to-configure-libpaths

, поэтому похоже, что RStudio использует свои собственные библиотеки, установленные в /etc/rstudio/rsession.conf.Зачем?Кто знает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...