Rails – 安装了最新的gem,但应用程序已经过时了
我正在研究Bluehost。 我安装了3.2.8 gem的rails,现在我得到了这个:
> gem list --local | grep rails rails (3.2.8)
但:
rails --version Rails 2.3.11
如何让“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版本维护单独的gem。 --ruby
和--rails
参数告诉它在安装RVM时安装ruby和rails。 RVM安装会自动更新$ PATH和任何其他必要的环境变量。
在安装结束时,它应该提示您运行:
source ~/.rvm/scripts/rvm
这将使这些环境变量立即生效。 或者,您可以退出,然后重新登录。
此时运行rails -v
和ruby -v
,你应该看到它们指向新版本。 从您的RoR应用程序目录运行bundle install
,您需要的所有gem应安装在〜/ .rvm / gems / ruby- / gems中。
此时,您可以在安装RVM之前删除/卸载任何gems / rails / ruby。
2012年10月17日编辑:没关系我的回答。 即使有可能使用当前安装的Ruby 1.8运行Rails 3.x(请参阅此Stackoverflow问题),您将无法使用Bluehost Shared Hosting运行Ruby 1.9.x. 您唯一的选择(目前)是VPS主机。
原因是Passenger Phusion与/ usr / lib中安装的Ruby版本相关联,如果没有root访问权限,您无法更改。 即使您可以使用RVM安装任何版本的Ruby,也不会让Passenger与之通信,因此您的rails项目将不会使用它的gem。