Ruby on rails rbenv:从RVM移动到rbenv后,在Jenkins execute shell中找不到命令
我从Ubuntu服务器上的RVM迁移到rbenv 当我使用RVM时,使用bundle没有问题。在移动到rbenv之后,我在Jenkins的executeshell中发现了一个“commandnotfound”错误 我内爆并移除了RVM,从~/.bashrc'中移除了所有与RVM相关的行。使用以下命令后,我仍然会出现此错误:Ruby on rails rbenv:从RVM移动到rbenv后,在Jenkins execute shell中找不到命令,ruby-on-rails,ruby,jenkins,rbenv,Ruby On Rails,Ruby,Jenkins,Rbenv,我从Ubuntu服务器上的RVM迁移到rbenv 当我使用RVM时,使用bundle没有问题。在移动到rbenv之后,我在Jenkins的executeshell中发现了一个“commandnotfound”错误 我内爆并移除了RVM,从~/.bashrc'中移除了所有与RVM相关的行。使用以下命令后,我仍然会出现此错误: rvm implode rm ~/.rvm -rf rm ~/.rvmrc gem install bundler echo 'export PATH="$HOME/.r
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
jenkins@testserver:~/jobs/myjob/workspace$ rbenv versions
* 1.9.3-p374 (set by RBENV_VERSION environment variable)
您似乎已经在shell中正确安装了rbenv。但是,如果Jenkins没有同时为您的
~/.bashrc
提供源代码,它将不会意识到您的系统上有rbenv。因此,在Jenkins中,您必须确保执行命令的路径还包括$HOME/.rbenv/bin
和$HOME/.rbenv/chimes
在Jenkins中不需要使用
eval“$(rbenv init-”
;这只对交互式Shell有用。@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
中,我们正在执行以下操作
sh '''
#!/bin/bash
source ~/buildmac-init
bundle update
bundle exec fastlane build
'''
在此buildmac init
文件中(除其他变量外):
...
export RBENV_ROOT=/usr/local/var/rbenv
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
...