Изменение PATH
может быть в некотором роде полезно, но поскольку (я предполагаю), что вы намереваетесь, что это будет исключение , то просто запуск этого с полным путем к исполняемому файлу должен быть достаточным. Если ваша задача инкапсулирована в сценарий с именем script.R
, то, возможно, будет достаточно
$HOMD/.local/R_3.4.4/bin/x64/Rscript /path/to/script.R
.
Это может вас укусить, в зависимости от того, как установлен текущий R. Вы сказали, что это /usr/bin/
, что предполагает, что его путь к библиотеке может быть примерно таким:
$ Rscript -e '.libPaths()'
[1] "/usr/local/lib/R/site-library"
[2] "/usr/lib/R/site-library"
[3] "/usr/lib/R/library"
(где Rscript
- это текущая версия по умолчанию). К сожалению, пакеты в этих каталогах не хранятся с указанием версии c, поэтому возможно (даже вероятно), что использование более современной версии пакета с R-3.4.4 каким-то образом не сработает.
Две стратегии для предотвращения этой возможности. Первый работает нормально, если у вас есть все пакеты для R-3.4.4 в определенном каталоге c.
Один из способов - установить R_LIBS_USER
(env-var) для команда. Это может быть в той же командной строке, или им можно управлять через какой-нибудь .Renviron
файл или аналогичный:
$ mkdir -p .local/R-3.4.4/library
$ R_LIBS_USER=~/.local/R-3.4.4/library Rscript -e '.libPaths()'
[1] "/home/r2/.local/R-3.4.4/library"
[2] "/usr/local/lib/R/site-library"
[3] "/usr/lib/R/site-library"
[4] "/usr/lib/R/library"
При этом, если все необходимые пакеты находятся в этом первом пути, он никогда не будет посмотрите в других, чтобы не было конфликтов. Если ваш скрипт стабильный / неизменный, и вы не сломаете свой экземпляр R-3.4.4 в пределах .local
, тогда ... все в порядке.
Измените сам скрипт чтобы жестко контролировать пути к библиотекам. Переопределив R_HOME
(env var), вы можете переопределить все значения по умолчанию.
echo "R_HOME=~/.local/R-3.4.4" > .Renviron # current working directory, regardless of script.R
Rscript /path/to/script.R
Это предполагает, что .local/R_3.4.4
- это завершенная установка R ... требуется все базовое оборудование, а также любые другие пакеты, которые вы могли установить.