我正在尝试在Ubuntu 14.04上使用ansible引导rails dev环境,使用rbenv来处理ruby版本。我有一本可以成功运作的各种内容的剧本,但我已经在this gist
中删除了相关部分运行此任务时:
- name: Install ruby with rbenv
sudo_user: "{{ username }}"
#command: rbenv install {{ ruby_version }}
command: zsh -lc "rbenv install {{ ruby_version }}"
我收到以下错误
failed: [localhost] => {"changed": true, "cmd": ["zsh", "-lc", "rbenv install 2.1.2"], "delta": "0:00:00.005791", "end": "2015-04-21 09:31:19.184810", "rc": 127, "start": "2015-04-21 09:31:19.179019"}
stderr: zsh:1: command not found: rbenv
之前的所有任务都是成功的,包括获取 出于某种原因,在运行此操作时,我收到一条未安装rbenv的错误。
你可以看到我只是使用“rbenv install”注释掉了,因为有人建议,因为rbenv会依赖你的.bashrc
(或者我的.zshrc
中的某些内容),你需要运行它与壳。但这也不起作用。
我还尝试使用raw
模块添加任务来重启shell。我尝试使用shell
代替command
。
Here's my zshrc如果相关的话。
我检查了this answer,但他们刚刚提到使用较新版本的“when”时遇到问题。也没有人回答this question,这是类似的。
答案 0 :(得分:1)
由于某种原因,命令zsh -lc
未正确加载PATH
的值以包含rbenv
命令,即使您已在.zshrc
中设置它}。
这有点像黑客攻击,但我可以通过替换
来运行rbenv
command: zsh -lc "rbenv install {{ ruby_version }}"
与
command: zsh -lc "{{home_dir}}.rbenv/bin/rbenv install {{ ruby_version }}"