【问题标题】:rvmsudo switch for Capistrano?Capistrano 的 rvmsudo 开关?
【发布时间】:2011-08-26 19:53:49
【问题描述】:

这类似于:

Using rvmsudo with Capistrano

我想知道 rvm/capistrano 中是否有启用 rvmsudo 的特定开关。没有它,我会收到如下错误:

* executing "cd /home/Blog/releases/20110826194116 && bundle install --gemfile /home/Blog/releases/20110826194116/Gemfile --path /home/Blog/shared/bundle --deployment --quiet --without development test"
    servers: ["199.168.0.1"]
    [199.168.0.1] executing command
*** [err :: 199.168.0.1] /usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:551:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
*** [err :: 199.168.0.1] 
*** [err :: 199.168.0.1] /usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
*** [err :: 199.168.0.1] creating Makefile
*** [err :: 199.168.0.1] 
*** [err :: 199.168.0.1] make
*** [err :: 199.168.0.1] sh: make: Permission denied

【问题讨论】:

  • 由于这有点时间紧迫,我继续并添加了一个“部署后:更新代码”过滤器,用于处理 rvmsudo 中的包更新。我也在 RVM 邮件列表上问过这个,还没有回复 groups.google.com/group/rubyversionmanager/browse_thread/thread/…
  • 您在部署时实际上在 rvm 级别安装 gems 有什么特别的原因吗?我建议改用 bundle install --deployment ;它将在代码树中展开“已安装副本”以供代码使用。
  • 好点尼克,我会调查一下

标签: ruby-on-rails rvm capistrano


【解决方案1】:

我认为您可以像这样使用 rvm 环境变量作为部署的一部分:

set :rvm_ruby_string, 'ruby-1.9.2-p290@some_gemset'
set :rvm_type, :user

然后 RVM 命令将作用于这个 gemset 和用户。

【讨论】:

  • 显然,对于为用户安装了 rvm 的系统,这不是问题。您需要 rvmsudo 进行系统安装。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-12
相关资源
最近更新 更多