加载配置文件而不重启shell / Chef

时间:2018-04-25 08:54:18

标签: bash shell vagrant chef

我使用Chef设置机器,我也需要安装rbenv,但安装后我无法在脚本中使用rbenv命令,因为它启动了只有在我重新启动终端或在脚本之外运行source .bashrc命令后才能工作。当我尝试将变量路径转换为.bash_profile时也是如此。怎么解决这个问题?

 bash 'install_rbenv' do
   interpreter "bash"
   cwd '/home/vagrant'
   user 'vagrant'
   code <<-EOH
     git clone https://github.com/rbenv/rbenv.git ~/.rbenv
     echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
     echo 'eval "$(rbenv init -)"' >> ~/.bashrc
     EOH
 end

1 个答案:

答案 0 :(得分:0)

环境变量无法从子进程传递回父进程,因此您必须在要与rbenr一起使用的每个bash资源中使用它,或者在您的食谱中执行ENV['PATH'] = "whatever:#{ENV['PATH']}"码。一般情况下,我不建议将rbenv与服务器一起使用,通常有更好的选择。