Вы сказали, что "R_LIBS
export
не забрали". Вопрос Значение UNSET? Или для него задано какое-то другое значение, и вы пытаетесь его переопределить?
Возможно, S SH может вызывать "/ bin / sh - c". Основываясь на втором ответе на: Почему команда 'cd' не работает через S SH? , вы можете упростить команду S SH и явно вызвать сценарий сборки. sh в Bash:
cp -r . /to/shared/drive/to/have/access/on/remote
ssh -t -t username@servername "cd /to/shared/drive/to/have/access/on/remote && bash -f build.sh dev"
Это делает вызов S SH более похожим на вызов команды в удаленной интерактивной оболочке. (Вы можете избежать создания сценариев поиска и экспорта переменных.)
Вам не нужно export R_LIBS
или env R_LIBS
, когда возможно использовать префикс любой команды с переопределением переменных локальной среды (согласен с ответом Луиса) :
...
for path in "${!rVersionPaths[@]}"; do
R_LIBS="${path}" Rscript -e 'install.packages(c("someDependency", "someOtherDependency"), repos="http://cran.r-project.org");'
...
Rscript
может многое делать с переменными env. Вы можете проверить, что вы устанавливаете R_LIBS
env var, заменив Rscript
командой env
и наблюдая вывод:
...
for path in "${!rVersionPaths[@]}"; do
R_LIBS="${path}" env
...
Согласно этому руководству " Инициализация при запуске сеанс R", Rscript
просматривает несколько мест для загрузки" файлов сайта и пользователя ":
- $ R_PROFILE
- $ R_HOME / etc / Renviron
- $ R_HOME / etc / Renviron.site
- $ R_ENVIRON_USER
- $ R_PROFILE_USER
- . /. Rprofile
- $ HOME / .Rprofile
- . /. RData
В разделе «Примеры» этого руководства показано следующее:
## Not run:
## Example ~/.Renviron on Unix
R_LIBS=~/R/library
PAGER=/usr/local/bin/less
Если добавить параметр командной строки --vanilla
для игнорирования все эти файлы, тогда вы можете получить разные результаты и знать, что что-то в файлах сайта / init / environment влияет на ваш R_LIBS
! Я не могу запустить эту систему сам. Надеюсь, мы дали вам несколько областей для расследования.