[英]Rails - the newest gem is installed but the applicaiton is old
我正在Bluehost上工作。 我安装了3.2.8 gem of rails,现在我得到了:
> gem list --local | grep rails
rails (3.2.8)
但:
rails --version
Rails 2.3.11
如何使“ rails”命令使用最新的gem? 我猜想它与$ PATH变量有关,但是我对此一无所知。
同样,gem and rails命令也会引起一些错误,如下所示:
Invalid gemspec in [XXX]: invalid date format in specification: "YYY"
我不确定是否已连接(并且我想知道到底是什么导致此类错误)。
尝试运行以下命令:
curl -L https://get.rvm.io | bash -s stable --ruby --rails
它所做的是安装RVM,它为安装的每个Ruby版本维护单独的gem。 --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日编辑:不要介意我的回答。 即使可能使Rails 3.x与当前安装的Ruby 1.8一起运行(请参阅此Stackoverflow问题),您也将无法使用Bluehost Shared Hosting运行Ruby1.9.x。 目前唯一的选择是VPS主机。
原因是,Passenger Phusion与/ usr / lib中安装的Ruby版本绑定在一起,没有root访问权限就无法更改。 即使您可以使用RVM安装任何版本的Ruby,也不会让Passenger与之交谈,因此rails项目不会使用其gems。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.