【发布时间】:2013-07-08 06:30:26
【问题描述】:
我一直在四处寻找问题的答案,但找不到可行的解决方案...所以这是我在 stackoverflow 上的第一篇文章!
不久前,我使用 RVM 设置了一个 apache 服务器,以便托管我客户的一个网站。到那时,我的开发环境也已经通过 rvm 安装了 ruby。同时,我改变了我的开发环境,现在开始在 Ubuntu 上使用 VM VirtualBox,并使用apt-get install ruby 直接从源代码安装 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"
【问题讨论】:
-
您可以发布您的
deploy.rb文件吗? -
好的,刚刚加在上面
-
您的权限可能有问题。看看[这个讨论]:(github.com/nadarei/mina/issues/5#issuecomment-6995487)。
-
问题是我的开发环境中不再有 rvm。可以安装在我目前拥有的之上吗?
-
ruby -v现在的输出是什么?我建议尝试从源代码安装 Ruby,这是一个很好的体验。
标签: ruby-on-rails ruby deployment rvm capistrano