Загрузить конфигурационный файл без перезапуска оболочки / Chef - PullRequest
0 голосов
/ 25 апреля 2018

Я использую Chef для настройки машины, мне тоже нужно установить rbenv, но я не могу использовать команду rbenv в своем скрипте после его установки, потому что она начинает работать только после перезапуска терминала или запускаsource .bashrc команда вне скрипта.То же самое происходит, когда я пытаюсь направить переменные env к .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 голосов
/ 25 апреля 2018

Переменные окружения не могут быть переданы от дочернего процесса обратно к родительскому, поэтому вам придется вводить их в каждый bash ресурс, который вы хотите использовать с rbenr или делать ENV['PATH'] = "whatever:#{ENV['PATH']}" в коде рецепта. В общем, я вообще не рекомендую использовать rbenv с серверами, обычно есть лучшие варианты.

...