我在部署Rails应用程序时遇到了一些麻烦。
我收到了这条消息:
sh: 1:
bundle: not found
这是我的gemfile(只有capistrano部分):
gem "capistrano", "2.15.5"
这是我的部署(只是关于rbenv的重要部分)
set(:deploy_to){“/ home /#{user} /#{application} _#{rails_env}”} set:default_environment,{'PATH'=> '$ HOME / .rbenv / shims:$ HOME / .rbenv / bin:$ PATH'}
当我输入ruby -v
时,在服务器上,我得到ruby 2.0.0p247
。当我输入which bundle
时,我会/home/paul/.rbenv/shims/bundle
。
有什么问题?为什么我收到此消息?
感谢您的帮助。
答案 0 :(得分:-1)
Capistrano在非常基本的shell中执行命令,因此$ PATH环境与通过SSH登录时的环境不同。
解决此问题的一种方法是在/etc/sshd_config
中将PermitUserEnvironment设置为yes,然后将正确的PATH添加到~/.ssh/environment
另一种方式可以是
在你config/deploy.rb
添加以下代码段
set :default_environment, {
'PATH' => "/opt/ruby-enterprise/bin/:$PATH"
}