在我的工作中,访问我们集群的边缘节点服务器每天都会重新实例化。这意味着我必须每天早上克隆我们的 repo 并安装一堆 R 包。我编写了一个 bash 脚本(使用https://github.com/eddelbuettel/littler从命令行打开 R)来自动执行此操作,并且它可以工作,除了一个小问题。
Bash 调用:r install.R
它打开一个 R 会话并调用以下命令:
repos <- "http://... [our CRAN equivalent]"
install.packages("[package_name]",repos)
现在,通常情况下,如果我自己在 R 中输入这个,我会得到这个作为响应:
Installing package into ‘/usr/hdp/2.5.5.3-2/spark2/R/lib’ (as ‘lib’ is unspecified)
Warning in install.packages("[name_of_package]", repos = "http://...") :
'lib = "/usr/hdp/2.5.5.3-2/spark2/R/lib"' is not writable
Would you like to use a personal library instead? (y/n)
当它建议创建一个库时,我会说“y”,然后是另一个“y”。但是,当我从 bash 脚本执行此操作时,它只是说该库不可写并中止。
我在这里看到两个选项:1)我告诉它在哪个库中编写包。我试过这个,虽然包确实去了那里,但它们到达时是空的。实际上没有从 repo 下载任何内容。
2)以某种方式让脚本能够输入我需要的两个肯定响应,以便让 R 做它的事情并创建它自己的库。
任何关于其中任何一个的建议将不胜感激!