Создание R-установки автономно/независимо от пользователя

Я пытаюсь заставить R игнорировать c:\users\name\documents и быть полностью автономным/переносным

Здесь моя структура каталогов:

.../R/R-2.1.2.2/...
.../R/r_user/
.../R/libs_site/

Я обновил свой Rprofile.site следующим образом:

# Set the working directory
setwd( file.path( R.home() , ".." , "r_user" ) )

# set the home directory
Sys.setenv(HOME=file.path( R.home() , ".." , "r_user" )  )

# Set the site library folder
.Library.site = file.path( R.home() , ".." , "libs_site" )

когда R запускает, я запускаю .libPaths(), но я все еще вижу c:/users/...

Итак, возможно, R не обновляется на Sys.setenv выше? Решения?

Ответ 1

добавив, что это трюк:

.Library.site = file.path( R.home() , ".." , "site-library" )
.libPaths(.Library.site)

Ответ 2

Вы можете создать файл Renviron.site в [your R installation path]\etc с помощью строк

HOME="${R_HOME}\..\r_user"
R_LIBS_SITE="${R_HOME}\..\libs_site"

который устанавливает вторую и третью настройки. Сначала можно заменить на setwd(Sys.getenv("HOME")).

Ответ 3

Я использовал файл Rprofile.site в [вашем пути установки R]\etc и добавил следующие строки, чтобы сделать C:/R/library мое местоположение по умолчанию при каждом запуске R:

# set a site library
 .Library.site <- file.path("C:/R/library")
 .libPaths(.Library.site)

Я попробовал другие ответы здесь, но ни один из них не работал с R 2.13.1 на Windows 7 64.

Ответ 4

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

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

По моему опыту, работало:

Платформа Windows и Linux:

Установка путей R

Узнайте пути по умолчанию:   .libPaths()

Установить путь временно (в R script)

.libPaths( "F:/Rlib" )

где F может быть буквой, связанной, например, с USB-накопителем.

Пути запросов (как для Windows, так и для Linux):

Sys.getenv('R_LIBS_USER')
Sys.getenv('R_LIBS')
Sys.getenv('R_USER')
Sys.getenv('R_DOC_DIR')
Sys.getenv('HOME')

Попробуйте также:

normalizePath("~")

Попробуйте также:

getwd()
setwd(dir)

getwd возвращает абсолютный путь к файлу, представляющий текущий рабочий каталог процесса R

setwd (dir) используется для установки рабочей директории в каталог.

Windows (проверено на: 7x64)

Создайте файл среды с именем .Renviron поместите его в рабочий каталог или домашний каталог:

"C:/Users/username/Documents"

Некоторые пользователи сообщили, что файл .Renviron должен быть в "c:/users/username/". Если вы не знаете, где его разместить, сохраните историю рабочего стола и посмотрите, где находится файл .Rhistory. Затем поместите файл .Renviron в том же месте. Чтобы сохранить историю savehistory()

# Windows .Renviron file:
R_LIBS_USER="C:/R/library"
R_USER="C:/R"
R_DOC_DIR="C:/R"
HOME="C:"

Установить глобальную PATH Мой компьютер/Свойства/Дополнительные параметры системы/Переменные среды → пользовательские переменные → Путь → Изменить C:\R, C:\R\библиотека;

Linux (проверено на kUbuntu 12.10)

Создайте файл среды с именем Renviron.site поместите его в:

/etc/R/

Запросить пути, чтобы проверить, что ваша система читает файл Renviron.site.

# Linux Renviron.site file:
R_LIBS_USER="~/R/library"
R_USER="~/R"
R_DOC_DIR="~/R" 
#HOME="/home" # may not be needed

Примечание: afaik файл читается снизу вверх, поэтому HOME определяется внизу. В моей настройке ~ правильно назначается /home/, поэтому я все равно пропускаю последнюю строку.

Если вы используете RStudio, вы также можете добавить файл rsession.conf в каталог программы RStudio. Для меня работало следующее:

# Windows 7:
r-libs-user="C:/R/library"
# Kubuntu 12:
# r-libs-user=~/R/%p-library/%v