我正在尝试在 AWS EC2 实例的命令行上使用已打包的 R 二进制文件和库(无需安装)运行 R 脚本,以测试用于部署到 AWS Lambda 的脚本。我遵循了这些说明。该指南是为了将所有 R 二进制文件和库打包到一个 zip 文件中,并将所有内容移动到 Amazon EC2 实例进行测试。我在新机器上解压了所有内容,在机器上运行了 'sudo yum update' 命令,并设置了 R 的环境变量以指向正确的位置:
但是当我运行了这个命令:
我得到了以下错误:
我找到了一些支持,但找不到任何针对我的特定问题的解决方案。有些人建议重新安装R,但据我了解,为了Lambda的目的,一切都需要自包含,所以我在一个单独的EC2实例上安装了R,然后将其打包起来。值得一提的是,在使用软件包管理器安装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的目的,一切都需要自包含,所以我在一个单独的EC2实例上安装了R,然后将其打包起来。值得一提的是,在使用软件包管理器安装R的机器上,一切都运行良好。
解决方案: 在答案中发布了我的解决方案。
export RHOME=$R_HOME_DIR
)解决了这个问题。 - ialm