2013-03-13 56 views
5

我從Ubuntu服務器上的RVM移動到rbenv。rbenv:在Jenkins中找不到的命令在從RVM移動到rbenv後執行shell

當我使用RVM時,使用bundle沒有問題。在移到rbenv後,我在Jenkins的execute shell中得到了一個「command not found」錯誤。

我崩潰並刪除了RVM,並從〜/ .bashrc'中刪除了所有與RVM相關的行。使用後我仍然得到這個錯誤:

rvm implode 
rm ~/.rvm -rf 
rm ~/.rvmrc 

gem install bundler 
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc 
echo 'eval "$(rbenv init -)"' >> ~/.bashrc 

. ~/.bashrc 

rbenv versions 

[email protected]:~/jobs/myjob/workspace$ rbenv versions 

* 1.9.3-p374 (set by RBENV_VERSION environment variable) 

回答

6

你似乎已經正確地在你的shell中安裝了rbenv。但是,如果詹金斯也不會獲得您的~/.bashrc,則它不會意識到您系統上有rbenv。因此在Jenkins中,您必須確保執行命令的PATH也包含$HOME/.rbenv/bin$HOME/.rbenv/shims

在詹金斯沒有必要使用eval "$(rbenv init -)";這隻對交互式shell有用。

0

@ mislav的答案可能是正確的,但究竟是什麼工作對我來說是這樣的:

sh ''' 
#!/bin/bash 
export PATH=$PATH:/usr/local/bin:$HOME/.rbenv/bin:$HOME/.rbenv/shims 
eval "$(rbenv init -)" 
rbenv local 
rbenv rehash 
''' 

事實上,我並沒有看到rbenv爲/usr/local/bin不在我$PATH

相關問題