Я пишу Git-хук, который должен запускать некоторый R-код. Если перехват начинается с
#!/usr/bin/env Rscript
, то следующий код правильно интерпретируется как R.
Однако Rscript
ищет мои установленные пакеты в моем домашнем каталоге. Согласно R для Windows FAQ домашний каталог определяется переменными среды R_USER
или HOME
. Однако оболочка Git Bash не содержит ни одного из них, поэтому домашний каталог по умолчанию является рабочим каталогом.
Таким образом, хук не может найти любые неосновные пакеты.
Решение, которое я нашел, состоит в том, чтобы создать R-файл и затем использовать Bash в хуке для вызова Rscript после ручного определения R_USER
:
#!/bin/sh
R_USER="my/home/directory"
export R_USER
Rscript foo.R
(где foo.R
находится в рабочем каталоге проекта, вэто дело).
Это работает, но несколько не элегантно. Я бы предпочел просто использовать Rscript в самом хуке.
Так что я решил установить домашний каталог в Rscript:
#!/usr/bin/env Rscript
Sys.setenv(R_USER = "my/home/directory")
Но хотя он устанавливает R_USER
, он не 'решить проблему. Я предполагаю, что это означает, что R определяет путь поиска пакетов до запуска самого скрипта, поэтому определение R_USER
внутри скрипта не меняет того факта, что он все еще ищет пакеты в рабочем каталоге.
* 1030Итак, есть ли решение для этого (например, установив R_USER, а затем каким-то образом указав R обновить каталог пакета)? Или метод использования Bash-to-call-Rscript - это путь?