创建适用于Mac的R的可移植版本(并为此版本从源代码安装软件包)

创建适用于Mac的R的可移植版本(并为此版本从源代码安装软件包),r,shiny,rscript,R,Shiny,Rscript,我正在尝试为Mac创建一个完全可移植的R版本,我可以将它发送给系统上没有R的用户,他们可以双击命令文件,它将启动一个闪亮的应用程序。我需要能够安装软件包,包括一些从源代码构建的软件包(以及一些从GitHub构建的软件包) 我使用这个GitHub存储库()中的脚本作为起点(它也粘贴在下面),创建了一个R版本,但是(a)我发现当我尝试启动R时,它会给我一个错误,无法找到etc/ldpaths,(B)当我尝试启动Rscript时,它会运行我的系统版本——我运行'Rscript-e'print(R.ve

我正在尝试为Mac创建一个完全可移植的R版本,我可以将它发送给系统上没有R的用户,他们可以双击命令文件,它将启动一个闪亮的应用程序。我需要能够安装软件包,包括一些从源代码构建的软件包(以及一些从GitHub构建的软件包)

我使用这个GitHub存储库()中的脚本作为起点(它也粘贴在下面),创建了一个R版本,但是(a)我发现当我尝试启动R时,它会给我一个错误,无法找到etc/ldpaths,(B)当我尝试启动Rscript时,它会运行我的系统版本——我运行'Rscript-e'print(R.version)'并打印出4.0版本,这是我的R系统版本,而不是shell脚本下载并处理的3.5.1版本

我曾经尝试过编辑“R”可执行文件并修改R_HOME和R_HOME_DIR,但在我尝试将软件包安装到3.5.1目录时,它仍然会遇到问题

有人能提供一些指导吗

(顺便说一句,docker不是一个选项,这需要尽可能简单,最终用户的技术技能有限。因此,让他们安装docker等将不是一个选项)


很高兴能帮助您让这款应用程序为您的闪亮应用程序服务。您可以使用此github repo进行电子包装R/Shining。。。只需克隆并替换app.R(对于其他软件包,在克隆后需要将其安装到本地R文件夹中,然后从R-Portable-Mac/bin文件夹的命令行中运行R

使用首先包含的Hello World app.R进行尝试

然后在本地R-Portable-Mac文件夹运行时安装程序包。默认情况下包括程序包。。。 在使用本地R-Mac-Portable运行时从命令行安装.packages()后,您的包将显示在此处

我们一直在为这项工作的R插件。。。

但是,请注意,外接程序仍在进行中,不能与已编译的R包一起使用;仍必须进入命令行上的本地R文件夹和运行时,并将包直接安装到本地R文件夹libpath中,如上所述


尝试一下,如果您有任何疑问和问题,请通过Github问题通知我们。如果您已经在那里发布了,很抱歉,到目前为止我们还没有回复。希望通过光子加载项对此进行通信,以使其能够编译包(到libPath中)--如果您有时间提供帮助。谢谢!

发送一个指向此的链接,以防万一:我很乐意。让我们知道进展如何。
#!/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