我正在使用Ansible来设置RVM,Ruby并且我在RVM的路径上遇到了一些问题。
我也从Ansible Galaxy查看,并从这个例子中学习https://github.com/newmen/ansible-rvm/blob/master/tasks/select_ruby.yml
我想设置默认的ruby版本
- name: set using ruby 2.1.1 by default
shell: "{{ rvm_path }}/rvm use {{ ruby_ver }} --default executable=/bin/bash"
甚至
- name: set using ruby 2.1.1 by default
shell: "source /home/ubuntu/.rvm/scripts/rvm && source /home/ubuntu/.profile && {{ rvm_path }}/rvm use {{ ruby_ver }} --default executable=/bin/bash"
但它全部返回
"stderr": "RVM is not a function, selecting rubies with 'rvm use ...' will not work.\n\nYou need to change your terminal emulator preferences to allow login shell.\nSometimes it is required to use `/bin/bash --login` as the command
据我所知,Ansible无法加载bash环境,因此无法完全使用rvm
函数。
我尝试使用Ansible 1.9.x
以及最新的2.x
,但它们无效。
我应该使用哪种参数或调整?
答案 0 :(得分:3)
为什么不运行bash --login -c 'your rvm command'
,所以在您的示例中:
- name: set using ruby 2.1.1 by default
shell: "/bin/bash --login -c '{{ rvm_path }}/rvm use {{ ruby_ver }} --default executable=/bin/bash'"