错误:执行rvm upgrade命令后缺少RVM环境文件 - Passenger 4.0.23

时间:2013-12-20 13:39:04

标签: ruby rubygems rvm passenger

我在Mac Mini Server(Mavericks 10.9.1)上运行ruby 2.0.0-p247。我读到有一个安全漏洞,所以我决定升级使用最新的Ruby补丁2.0.0-p353。我做了以下命令:

gem update --system (RubyGems 2.1.11)
rvm get stable (RVM 1.25.0)
rvm upgrade 2.0.0-p247 2.0.0-p353 (which should have moved my gemsets)

我的系统中没有任何内容可以在rvm中找到引用2.0.0-p247,这是我的预期。当我去〜/ myuser / .rvm / environments时,没有文件2.0.0-p247。

我现在正试图开始乘客。我安装了4.0.23版企业版。我试图运行rvmsudo passenger-install-apache2-module,但收到了错误。

cd /Users/myuser/.rvm/gems/ruby-2.0.0-p353@mygemset/gems/passenger-enterprise-server-4.0.23
/Users/myuser/.rvm/wrappers/ruby-2.0.0-p353@ mygemset/rake apache2:clean apache2 RELEASE=yes
# /Users/myuser/.rvm/wrappers/ruby-2.0.0-p353@ mygemset/rake apache2:clean apache2 RELEASE=yes
ERROR: Missing RVM environment file: '/Users/myuser/.rvm/environments/ruby-2.0.0-p247@LightBeCorp_Rails4Ruby2'

以下是我的.bashrc文件中与rvm相关的语句,如果这有用的话。

[[ -s "$HOME/.rvm/scripts/rvm" ]]
PATH="$PATH:$HOME/.rvm/gems/ruby-1.9.3-p327@mygemset/bin:/.rvm/rubies/ruby-1.9.3-p327/bin/ruby:/.rvm/rubies/ruby-1.9.3-p448/bin/ruby:/.rvm/rubies/ruby-2.0.0-p353/bin/ruby:/usr/bin/psql:/usr/local:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"

我做了一个rvm list rubies命令。 ruby-2.0.0-p247未列出。

任何帮助将不胜感激。我会继续寻找。我计划在Phusion Passenger小组中发布一个链接。

更新12/21/2013 12:20 pm

我将.bashrc文件更新为以下内容,因为我不再使用Rails应用程序中的其他rubies。当我尝试运行rvmsudo passenger-install-apache2-module时,我仍然收到错误。

[[ -s "$HOME/.rvm/scripts/rvm" ]]
PATH="$PATH:$HOME/.rvm/rubies/ruby-2.0.0-p353/bin/ruby:/usr/bin/psql:/usr/local:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"

2 个答案:

答案 0 :(得分:2)

看起来像个错误,请在这里打开一张票:https://github.com/wayneeseguin/rvm/issues


确实这是一个错误,修复它运行:

rvm get head
rvm gemset reset_env

您可以为每个损坏的宝石集重复reset_env操作:

rvm ruby@gemset do rvm gemset reset_env

答案 1 :(得分:0)

您的RVM路径中可能存在缓存的bin文件。就我而言,它是" / usr / local / rvm / bin / unicorn"

此外,您可能无法在Gemfile中直接使用gem。就我而言,我没有"独角兽"在我的Gemfile中虽然我有" capistrano-unicorn"。

这样系统就会尝试使用全局缓存文件" / usr / local / rvm / bin / unicorn"。

文件的内容可能使用了您不再使用的红宝石。

if [[ -s "/usr/local/rvm/environments/ruby-2.0.0-p247" ]]
then
  source "/usr/local/rvm/environments/ruby-2.0.0-p247"
  exec unicorn "$@"
else
  echo "ERROR: Missing RVM environment file: '/usr/local/rvm/environments/ruby-2.0.0-p247'" >&2
  exit 1
fi