我想从闪亮的应用程序R脚本中删除凭据。该应用程序在运行Ubuntu 20的虚拟机上的闪亮应用程序开源服务器的内部实例上运行。我正在拍摄的解决方案是:
- 设置Ubuntu环境变量
- 启动R终端,运行Sys.getenv('myvariable'),返回值
我已经尝试了以下
添加变量到~/.profile
通过
在底部添加变量后sudo nano ~/.profile
我保存了~/。配置文件,注销,再登录(从其他帖子推荐)。在一个新的bash shell中,我可以输入
source ~/.profile
echo $myvariable
和期望的值。
然而,当我打开R终端,并输入Sys.getenv('myvariable')
返回值为空
通过Sys.setenv()在R中添加变量
下一个选项涉及在r中设置变量,我将输入
Sys.setenv(myvariable='my value')
Sys.getenv('myvariable')
并打印期望的值。但是,如果退出会话,则在新会话中不维护这些值。
此外,在使用Sys.setenv()设置值后,我尝试了save()和save.image()。当我加载. rdata文件时,变量是空的。
很有可能这是一个小的东西,但是到目前为止我还没有找到其他的东西,所以我们在这里。
Jon Manese以上的答案对我来说是最好的解决方案。
我访问了/etc/R/Renviron
,并添加了我需要的变量。之后,我能够通过Sys.getenv()
还想提一下…在我编辑Renviron
文件之前,我尝试将变量添加到~/.bashrc
文件。在那里添加变量之后,我能够在bash终端中引用这些变量,而不必使用source
命令。当变量被添加到~/.profile
,我必须source ~/.profile
能够在bash中引用。
然而,我仍然不能通过Sys.getenv()
从R终端引用,直到Renviron
文件被编辑。