Создание портативной версии R для Ma c (и установка пакета из исходников для этой версии) - PullRequest
2 голосов
/ 13 июля 2020

Я пытаюсь создать полностью переносимую версию 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

1 Ответ

0 голосов
/ 14 июля 2020

Рад помочь вам заставить это работать для вашего блестящего приложения. Вы можете использовать это репозиторий github для электронной оболочки R / Shiny ... просто клонируйте и замените app.R (для других ваших пакетов вам необходимо установить их в локальной папке R после клонирования, а затем запустить R из командной строки папки R-Portable-Mac / bin ...

Попробуйте с приложением Hello World. R, которое включено первым

https://github.com/ColumbusCollaboratory/electron-quick-start

И затем установка ваших пакетов в локальной среде выполнения R-Portable-Ma c. Включенные пакеты по умолчанию ... https://github.com/ColumbusCollaboratory/electron-quick-start/tree/master/R-Portable-Mac/library Ваши пакеты будут отображаться здесь после установки. ) из командной строки с использованием локальной среды выполнения R-Ma c -Portable.

Мы также работали над надстройкой R для этого ... https://github.com/ColumbusCollaboratory/photon

Но обратите внимание, что надстройка все еще находится в стадии разработки и не работает со скомпилированными пакетами R; все же необходимо go в локальную папку R и среду выполнения в командной строке и установить пакеты непосредственно в путь к локальной папке R, как описано выше.

Дайте попробуйте и дайте нам знать через Github issues, если у вас есть какие-либо вопросы или проблемы. И, если вы уже писали об этом, извините, мы еще не ответили. Хотелось бы общаться через надстройку Photon, чтобы она работала с компиляцией пакетов (в libPath) - если у вас есть время, чтобы помочь. Спасибо!

...