Ruby on rails Rails-安装了最新的gem,但应用程序很旧

Ruby on rails Rails-安装了最新的gem,但应用程序很旧,ruby-on-rails,gem,Ruby On Rails,Gem,我在Bluehost上工作。我安装了3.2.8gem的rails,现在我得到了: > gem list --local | grep rails rails (3.2.8) 但是: 如何使“rails”命令使用最新的gem?我想这与我的$PATH变量有关,但我对此一无所知 此外,gem和rails命令会导致如下错误: Invalid gemspec in [XXX]: invalid date format in specification: "YYY" 我不确定这是否已连接(我想知道

我在Bluehost上工作。我安装了3.2.8gem的rails,现在我得到了:

> gem list --local | grep rails
rails (3.2.8)
但是:

如何使“rails”命令使用最新的gem?我想这与我的$PATH变量有关,但我对此一无所知

此外,gem和rails命令会导致如下错误:

Invalid gemspec in [XXX]: invalid date format in specification: "YYY"

我不确定这是否已连接(我想知道是什么原因导致此类错误)。

尝试运行以下命令:

curl -L https://get.rvm.io | bash -s stable --ruby --rails
它所做的是安装RVM,它为安装的每个Ruby版本维护单独的gems。
--ruby
--rails
参数告诉它在安装RVM时安装ruby和rails。RVM安装会自动更新$PATH和任何其他必要的环境变量

安装结束时,应提示您运行:

source ~/.rvm/scripts/rvm
这将使这些环境变量更改立即生效。或者,您可以注销,然后重新登录

此时运行
rails-v
ruby-v
,您会看到它们指向新版本。从您的RoR应用程序目录运行
bundle install
,您需要的所有gems都应该安装在~/.rvm/gems/ruby-/gems中

此时,您可以在安装RVM之前从中删除/卸载任何gems/rails/ruby

2012年10月17日编辑: 别介意我的回答。即使可以使用当前安装的Ruby 1.8运行Rails 3.x(请参阅此Stackoverflow问题),您也无法使用Bluehost共享主机运行Ruby 1.9.x。您唯一的选择(目前)是VPS主机


原因是Passenger Phusion与安装在/usr/lib中的Ruby版本相关联,如果没有root访问权限,就无法更改该版本。即使您可以使用RVM安装任何版本的Ruby,您也不会让Passenger与它对话,因此您的rails项目不会使用它的gems。

尝试运行以下命令:

curl -L https://get.rvm.io | bash -s stable --ruby --rails
它所做的是安装RVM,它为安装的每个Ruby版本维护单独的gems。
--ruby
--rails
参数告诉它在安装RVM时安装ruby和rails。RVM安装会自动更新$PATH和任何其他必要的环境变量

安装结束时,应提示您运行:

source ~/.rvm/scripts/rvm
这将使这些环境变量更改立即生效。或者,您可以注销,然后重新登录

此时运行
rails-v
ruby-v
,您会看到它们指向新版本。从您的RoR应用程序目录运行
bundle install
,您需要的所有gems都应该安装在~/.rvm/gems/ruby-/gems中

此时,您可以在安装RVM之前从中删除/卸载任何gems/rails/ruby

2012年10月17日编辑: 别介意我的回答。即使可以使用当前安装的Ruby 1.8运行Rails 3.x(请参阅此Stackoverflow问题),您也无法使用Bluehost共享主机运行Ruby 1.9.x。您唯一的选择(目前)是VPS主机


原因是Passenger Phusion与安装在/usr/lib中的Ruby版本相关联,如果没有root访问权限,就无法更改该版本。即使您可以使用RVM安装任何版本的Ruby,您也不会让Passenger与之交谈,因此您的rails项目不会使用它的gems。

我怀疑无效的gems-pec问题与此无关,但如果不知道gem是什么以及它来自何处,就无法确定。如果我不得不猜测的话,你可能已经安装了gem并在本地安装的副本中编辑了gempec文件。嘿,Gadi,你能解决你的问题吗?我现在也有同样的问题,恐怕没有。我完全放弃了我的尝试,实际上我认为这是学习django(与Bluehost一起工作)的好机会。当然,一个解决方案将是非常好的。我怀疑无效的gempec问题是无关的,但是如果不知道gem是什么以及它来自哪里,就无法确定。如果我不得不猜测的话,你可能已经安装了gem并在本地安装的副本中编辑了gempec文件。嘿,Gadi,你能解决你的问题吗?我现在也有同样的问题,恐怕没有。我完全放弃了我的尝试,实际上我认为这是学习django(与Bluehost一起工作)的好机会。当然,一个解决方案将是非常好的。