Библиотеки Removing R в защищенных путях/usr/

Я знаком с Unix как операционная система, но не в общей логике того, как разработчики решают организовать местоположения библиотеки приложения.

Возьмите R, например. Установка R на человечности может быть, покончили склонные - добираются. Вы получите установку в каталог:

/usr/local/R/lib/site-library         --> All R packages go here.
/usr/lib/R/library                    --> R packages go here.

Оба из этих каталогов по умолчанию не перезаписываемы. Итак, почему установка R принимает значение по умолчанию для установки там?

У меня были многочисленные проблемы, устанавливающие R пакеты в каталог "по умолчанию" (который я предполагаю, /usr/lib/R/library?), таким образом, я должен был установить их в локальный каталог в ~/R/x86_64_pc-linux_gnu-library/3.2.

Мой вопрос: как я избавляюсь от ВСЕХ библиотек "по умолчанию" и ТОЛЬКО использую свой каталог местной библиотеки? Не только удаляя старые библиотеки по умолчанию, но и позволять R знать, что моя новая библиотека по умолчанию в ~/R/x86_64_pc-linux_gnu-library/3.2?

1
задан 13 December 2015 в 02:42

2 ответа

Оба из этих каталогов [/usr/local/R/lib/site-library и /usr/lib/R/library] по умолчанию не перезаписываемы. Итак, почему установка R принимает значение по умолчанию для установки там?

у меня были многочисленные проблемы, устанавливающие R пакеты в каталог "по умолчанию" (который я предполагаю, /usr/lib/R/library?), таким образом, я должен был установить их в локальный каталог в ~/R/x86_64_pc-linux_gnu-library/3.2.

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

, Хотя они не перезаписываемы некорневым пользователем, это дизайном. Пользователь установил бы их дополнительные пакеты на персональной библиотеке вместо этого.

Вы видите местоположение по умолчанию для этой персональной библиотеки путем выполнения Sys.getenv('R_LIBS_USER') в консоли R.

Эти .libPaths() команда позволяет Вам просмотреть текущий набор путей поиска библиотеки, а также добавить дополнительные пути.

Мой вопрос: как я избавляюсь от ВСЕХ библиотек "по умолчанию" и ТОЛЬКО использую свой каталог местной библиотеки? Не только удаляя старые библиотеки по умолчанию, но и позволять R знать, что моя новая библиотека по умолчанию в ~/R/x86_64_pc-linux_gnu-library/3.2?

Вы не хотите "избавляться от" тех библиотек по умолчанию, поскольку они содержат набор по умолчанию пакетов R. Они требуются, чтобы R работал правильно.

R уже знает о персональном местоположении библиотеки по умолчанию (см. .libPaths()).

Однако можно указать, где Вы хотите установить пакет на и загрузить их из путем определения местоположения библиотеки:

install.packages('packageName', lib = Sys.getenv('R_LIBS_USER'))
library('packageName', lib.loc = Sys.getenv('R_LIBS_USER'))

, Чтобы более легко управлять версиями пакета R (который особенно важен для восстанавливаемого исследования) я рекомендую packrat пакет. Это может использоваться для конфигурирования персональной библиотеки для каждого из проектов, позволяя каждому проекту использовать его собственный набор пакетов ( т.е. , различные версии). При использовании packrat это работает автоматически, таким образом, Вы не должны указывать lib, ни lib.loc аргументы при установке или загрузке пакетов.

1
ответ дан 7 December 2019 в 12:42

Если Вы хотите не использовать упакованную версию R, то необходимо установить собственную версию на частном каталоге, откуда Вы будете использовать его.

также возможно создать пакеты Ubuntu дополнительных библиотек R, так, чтобы они были установлены на системе, если это - то, что Вы хотите.

2
ответ дан 7 December 2019 в 12:42

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

Похожие вопросы: