![](/img/trans.png)
[英]How to install ruby on rails on ubuntu with rvm or rbenv
[英]rails, new ubuntu install, capistrano, rvm issues
我是Capistrano的新用户,并用它来部署Rails 3.1应用程序。 在远程服务器上安装gem似乎有问题。
我有以下问题:
看起来cap在gemfile
上运行捆绑安装? 是否有任何依赖关系才能使它成功运行? 我的服务器上有rvm
和bundler
。 是否需要已经安装导轨?
我已经手动设置bundle_cmd
在我deploy.rb
这样的:
set :bundle_cmd, '/usr/local/rvm/gems/ruby-1.9.2-p290/bin/bundle'
这是正确的吗?
有没有办法在盖帽部署中确认所有必需的宝石都在那里? 还是在远程服务器上调试失败的捆绑软件安装的最佳方法是什么? 你能称呼诸如cap gem-list
类的东西吗? 希望像cap invoke=gem list
这样的东西可以做到,但看起来不像。
编辑#1
我收到以下错误:失败:“ rvm_path = / usr / local / rvm / usr / local / rvm / bin / rvm-shell'default'-c'cd / data / sites / myserver / apps / myapp / releases / 20111204181321 &&捆绑安装--gemfile / data / sites / myserver / apps / myapp / releases / 20111204181321 / Gemfile --path / data / sites / myserver / apps / myapp / shared / bundle --deployment --quiet --without开发测试”“在173.230.xxx.xxx上
如果我进入以前的版本,然后运行捆绑安装,它表示一切安装正确,而没有。
它说:
Your bundle is complete! It was installed into /data/sites/myserver/apps/myapp/shared/bundle
但是如果我去那里,除了我所知我没有安装的ruby 1.9.1之外没有别的(使用ruby 1.9.2-p290)
capistrono中是否有一种方法可以指定它不删除已部署的发行版,以便我可以进行明确的调试? 我需要在我的deploy.rb脚本中硬编码到捆绑器的路径吗?
再次感谢
编辑2如果我进入当前版本,请访问:
/data/sites/myserver/apps/myapp/current
并运行:
$ which bundle
/usr/local/rvm/gems/ruby-1.9.2-p290/bin//bundle
我得到:
$ bundle install
/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find bundler (>= 0) amongst [minitest-1.6.0,rake-0.8.7, rdoc-2.5.8] (Gem::LoadError)
from /usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems.rb:1210:in `gem'
from /usr/local/rvm/gems/ruby-1.9.2-p290/bin/bundle:18:in `<main>'
您不需要已经安装滑轨,但是我确实认为您需要安装捆绑器。 gem install bundler
您可以使用capistrano中的RVM和捆绑程序集成。 在这种情况下,您不必设置捆绑程序的路径。
$:.unshift(File.expand_path('./lib', ENV['rvm_path'])) require "rvm/capistrano" require "bundler/capistrano" # Load RVM's capistrano plugin. set :rvm_type, :system set :rvm_ruby_string, '1.9.2@gemset_name'
您可以使用“ cap shell”在服务器上通过Capistrano运行命令。 您可以使用它来检查所有gem的安装。 使用cap -T
查看所有可能性。
附带说明一下,您是否真的需要为应用程序安装rvm gemsets? 我使用RVM在生产服务器上安装和更新红宝石,但我让Bundler处理宝石的分离。 由于生产中的默认捆绑器设置将所有宝石都放置在供应商/捆绑中,因此这已经使您的宝石彼此分离。 这对Capistrano也很好。
在这里看到类似的问题和答案。 在本教程中可以找到关于capistrano / bundler / rvm / passenger设置的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.