2015-04-21 173 views
1

我試圖在Ubuntu 14.04上用asible來引導rails dev環境,使用rbenv處理管理ruby版本。我有一個劇本,做的是成功運行各種各樣的事情,但我已經取出來的相關部分在this gistrbenv ansible安裝紅寶石

在運行此任務:

- 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在我的情況),所以你需要用shell運行它。但是這也不起作用。

我也嘗試添加一個任務,使用raw模塊重新啓動我的外殼。我試着用shell而不是command運行。

Here's my zshrc萬一是相關的。

我檢查了this answer但他們剛剛提到使用「when」與新版本的問題。也沒有人回答this question,這是相似的。

+0

的rbenv二進制得到rbenv運行未在被人發現路徑。你有沒有試過你的'〜/ .bashrc'(或者你聲明你的'rbenv init'的文件)?此外,你是否記得在安裝rbenv https://github.com/sstephenson/rbenv#basic-github-checkout後添加這些行? –

回答

1

它看起來像某種原因該命令zsh -lc不正確加載的PATH價值包括rbenv命令,即使你擁有了它在你的.zshrc設置。

這是一個黑客位的,但我可以通過更換

command: zsh -lc "rbenv install {{ ruby_version }}"

command: zsh -lc "{{home_dir}}.rbenv/bin/rbenv install {{ ruby_version }}"