Как указать каталог lib при установке пакетов разработки версии R из репозитория github

В Ubuntu я устанавливаю все пакеты R в каталоге, /usr/lib/R/site-library указав lib вариант в install.packages(),

Но когда я пытаюсь установить разрабатываемую версию пакетов R, используя install_github() всегда устанавливается в локальный репозиторий системного пользователя.

.libPaths() имеет 4 каталога, включая локальный репозиторий. Итак, у меня есть 2 вопроса,

  1. Будет ли он установлен в любом из 3 других репозиториев, если я удалю локальный репозиторий из .libPaths()?

  2. Есть ли способ указать путь установки библиотеки в install_github()?

я использую Ubuntu 12.04 64bit а также R 3.0.1

----------------------ОБНОВИТЬ--------------------------- -----

  1. Невозможно удалить локальный репозиторий из .libPaths()

  2. Если я пытаюсь установить с помощью install_github() в RStudio он устанавливается в local repository поскольку lib не указано

  3. Если я пытаюсь установить с помощью install_github() как пользователь без полномочий root, он устанавливается в local repository поскольку lib не указано

  4. Если я пытаюсь установить с помощью install_github() как пользователь root, он устанавливается в /usr/local/lib/R/site-library поскольку lib не указано

Есть ли уточнить installation lib?

3 ответа

Решение

Чтобы добавить указанные пути к библиотекам в devtoolsнам нужно использовать with_libpaths()

Аргументы за with_libpaths() являются, with_libpaths(new, code)

Ниже приведен пример использования with_libpaths(),

library(devtools)
with_libpaths(new = "/usr/lib/R/site-library/", install_github('rCharts', 'ramnathv'))

Предоставлено Хэдли, здесь:)

И кроме with_libpaths()Есть больше вариантов для devtools::with_something()

in_dir: working directory
with_collate: collation order
with_envvar: environmental variables
with_libpaths: library paths, replacing current libpaths
with_lib: library paths, prepending to current libpaths
with_locale: any locale setting
with_options: options
with_path: PATH environment variable
with_par: graphics parameters

Больше объяснений здесь

install_github занимает ... аргумент, который переходит к devtools::install, devtools::install имеет args аргумент.

арг
Необязательный символьный вектор дополнительных аргументов командной строки для передачи в R CMD install. По умолчанию это значение параметра "devtools.install.args".

R CMD install принимает аргумент библиотеки

 Options:
  -h, --help            print short help message and exit
  -v, --version         print INSTALL version info and exit
  -c, --clean           remove files created during installation
      --preclean        remove files created during a previous run
  -d, --debug           turn on debugging messages
                        and build a debug DLL
  -l, --library=LIB     install packages to library tree LIB

Поэтому должно работать следующее:

devtools::install_github("repo", args = c('--library="./mypath/gdfgdg/"'))

однако, похоже, он не заменяет вызов R CMD install

"C:/PROGRA~1/R/R-31~1.0/bin/x64/R" --vanilla CMD INSTALL  \
  "C:\Users\john\AppData\Local\Temp\RtmpucrXMD/RSelenium_1.3.2.tar.gz"  \
  --library="C:/Users/john/Documents/R/win-library/3.1" --install-tests  \
  --library="C:/Users/john/Desktop/"

Это скорее обходной путь, но я нашел способ, используя версию R. командной строки

Начиная с Ubuntu:

sudo -i R

хитрость (я обнаружил) заключается в использовании -i вариант

Тогда из R:

.libPaths()

мой локальный каталог R не появляется; каталог по умолчанию это тот, который я хочу.

Затем я install.packages() или же install_github() безнаказанно.

Надеюсь это поможет,

Ян

Другие вопросы по тегам