【发布时间】:2017-01-09 17:23:51
【问题描述】:
我正在尝试使用打包的 R 二进制文件和库(无需安装)在 AWS EC2 实例的命令行上运行 R 脚本——重点是测试脚本以部署到 AWS Lambda。我关注了these instructions。这些说明用于将所有 R 二进制文件和库打包到一个 zip 文件中,并将所有内容移动到 Amazon EC2 实例以进行测试。我解压了新机器上的所有内容,在机器上运行了“sudo yum update”,并将 R 的环境变量设置为指向正确的位置:
export R_HOME=$HOME
export LD_LIBRARY_PATH=$HOME/lib
注意:$HOME 等于 /home/ec2-user。
我创建了这个 hello_world.R 文件来测试:
#!/home/ec2-user/bin/Rscript
print ("Hello World!")
但是当我运行这个时:
ec2-user$ Rscript hello_world.R
我收到以下错误:
Rscript execution error: No such file or directory
所以我检查了路径,但一切都检查了:
ec2-user$ whereis Rscript
Rscript: /home/ec2-user/bin/Rscript
ec2-user$ whereis R
R: /home/ec2-user/bin/R /home/ec2-user/R
但是当我尝试在命令行使用 Rscript 计算表达式时,我得到了这个:
ec2-user$ Rscript -e "" --verbose
running
'/usr/lib64/R/bin/R --slave --no-restore -e '
Rscript execution error: No such file or directory
即使我的 R_HOME 变量设置为“/home/ec2-user”,Rscript 似乎仍在默认位置“/usr/lib64/R/bin/R”中寻找 R:
ec2-user$ echo $R_HOME
/home/ec2-user
我找到了一些支持,但我找不到任何可以解决我的具体问题的东西。有人建议重新安装 R,但我的理解是,出于 Lambda 的目的,一切都需要自包含,因此我将 R 安装在单独的 EC2 实例上,然后将其打包。我应该提到,在使用包管理器安装 R 的机器上一切运行良好。
解决方案:在答案中发布我的solution。
【问题讨论】:
标签: r aws-lambda rscript