我一直在四处寻找问题的答案,但找不到有效的解决方案……所以这是我在 stackoverflow 上的第一篇文章!
不久前,我用 RVM 设置了一个 apache 服务器,以便托管我客户的一个网站。到那时,我的开发环境也已经通过 rvm 安装了 ruby。与此同时,我改变了我的开发环境,现在开始在 Ubuntu 上使用 VM VirtualBox,并使用apt-get install ruby
. 我使用 Capistrano 来部署我的所有项目。
现在我已经在那个项目上做了一些工作,但是当我尝试将它部署到生产服务器时,我得到了这个错误:
2013-07-08 08:12:50 executing `bundle:install'
* executing "cd /var/www/project/releases/20130708061242 && bundle install --gemfile /var/www/project/releases/20130708061242/Gemfile --path /var/www/project/shared/bundle --deployment --quiet --without development test"
servers: ["xxx.xx.xxx.xxx"]
[xxx.xx.xxx.xxx] executing command
*** [err :: xxx.xx.xxx.xxx] tput:
*** [err :: xxx.xx.xxx.xxx] No value for $TERM and no -T specified
*** [err :: xxx.xx.xxx.xxx]
*** [err :: xxx.xx.xxx.xxx] tput:
*** [err :: xxx.xx.xxx.xxx] No value for $TERM and no -T specified
*** [err :: xxx.xx.xxx.xxx]
** [out :: xxx.xx.xxx.xxx] ERROR: Gem bundler is not installed, run `gem install bundler` first.
command finished in 818ms
*** [deploy:update_code] rolling back
* executing "rm -rf /var/www/project/releases/20130708061242; true"
servers: ["xxx.xx.xxx.xxx"]
[xxx.xx.xxx.xxx] executing command
command finished in 693ms
failed: "rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell 'default' -c 'cd /var/www/project/releases/20130708061242 && bundle install --gemfile /var/www/project/releases/20130708061242/Gemfile --path /var/www/project/shared/bundle --deployment --quiet --without development test'" on xxx.xx.xxx.xxx
我也有自己的测试服务器,在这个服务器上部署时我没有问题(它有 rbenv 代替)。
服务器端的东西是我最不了解的领域:) 如果我可以提供您可能需要的任何其他信息,请告诉我。
谢谢!
编辑
这是我的 deploy.rb
require "bundler/capistrano"
require "rvm/capistrano"
server "xxx.xx.xxx.xxx", :app, :web, :db, :primary => true
set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"")
set :rvm_install_ruby_params, '--1.9' # for jruby/rbx default to 1.9 mode
set :rvm_install_pkgs, %w[libyaml openssl] # package list from https://rvm.io/packages
set :rvm_install_ruby_params, '--with-opt-dir=/usr/local/rvm/usr' # package support
before 'deploy:setup', 'rvm:install_rvm' # install RVM
before 'deploy:setup', 'rvm:install_pkgs' # install RVM packages before Ruby
before 'deploy:setup', 'rvm:install_ruby' # install Ruby and create gemset, or:
before 'deploy:setup', 'rvm:create_gemset' # only create gemset
before 'deploy:setup', 'rvm:import_gemset' # import gemset from file
#General settings
set :ssh_options, { :forward_agent => true }
set :application, "project"
set :repository, "git@repo.com:project.git"
set :deploy_to, "/var/www/#{application}"
set :deploy_via, :remote_cache
set :scm, :git
set :scm_user, "deploy"
set :user, :deploy
set :use_sudo, false
set :keep_releases, 5
after "deploy:update_code", "deploy:migrate"
load "deploy/assets"