Я пытаюсь создать полностью переносимую версию R для Ma c, которую я могу отправить пользователям без R в их системе, и они могут дважды щелкнуть командный файл, и он запустит приложение Shiny. Мне нужно будет установить пакеты, в том числе некоторые из исходных кодов (и некоторые из GitHub).
Я использую сценарий из этого репозитория GitHub (https://github.com/dirkschumacher/r-shiny-electron/blob/master/get-r-mac.sh) в качестве отправная точка (она также вставлена ниже), создание версии R, но (A) я обнаружил, что когда я пытаюсь запустить R, он выдает ошибку, не находя etc / ldpaths и (B), когда я пытаюсь запустить Rscript, он запускается моя системная версия - я запускаю `Rscript -e 'print (R.version)', и он распечатывает 4.0, которая является моей системной версией R, а не версию 3.5.1, которую сценарий оболочки загрузил и обработал.
Я экспериментировал с редактированием исполняемого файла «R» и изменением R_HOME и R_HOME_DIR, но он по-прежнему сталкивается с проблемами, когда я пытаюсь установить пакеты в каталог 3.5.1.
Может ли кто-нибудь дать какое-то руководство?
(Кстати, docker не вариант, это должно быть как можно более простым конечным пользователям с ограниченными техническими навыками. Поэтому установка docker et c не будет вариант)
#!/usr/bin/env bash
set -e
# Download and extract the main Mac Resources directory
# Requires xar and cpio, both installed in the Dockerfile
mkdir -p r-mac
curl -o r-mac/latest_r.pkg \
https://cloud.r-project.org/bin/macosx/R-3.5.1.pkg
cd r-mac
xar -xf latest_r.pkg
rm -r r-1.pkg Resources tcltk8.pkg texinfo5.pkg Distribution latest_r.pkg
cat r.pkg/Payload | gunzip -dc | cpio -i
mv R.framework/Versions/Current/Resources/* .
rm -r r.pkg R.framework
# Patch the main R script
sed -i.bak '/^R_HOME_DIR=/d' bin/R
sed -i.bak 's;/Library/Frameworks/R.framework/Resources;${R_HOME};g' \
bin/R
chmod +x bin/R
rm -f bin/R.bak
# Remove unneccessary files TODO: What else
rm -r doc tests
rm -r lib/*.dSYM