【问题标题】:Load config file without restart shell / Chef加载配置文件而不重新启动 shell / Chef
【发布时间】:2018-04-26 04:15:26
【问题描述】:

我使用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

【问题讨论】:

  • 您可以在配置脚本的末尾获取文件
  • @FrédéricHenri 我在意识到问题所在后立即尝试这样做

标签: bash shell vagrant chef-infra


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    相关资源
    最近更新 更多