从新终端访问Rails应用程序时,将删除所有宝石

时间:2015-10-21 02:02:54

标签: ruby-on-rails ruby terminal gem ubuntu-14.04

这奇怪......我更换了计算机上的硬盘并重新安装了Ubuntu 14.04,并克隆了我的Rails应用程序。我把它全部设置好,运行bundle install,一切都很顺利。

但是当我打开一个新终端并从中访问应用程序时,新终端认为我的应用程序没有安装任何宝石。即使rails -v返回

$ rails -v
The program 'rails' can be found in the following packages:
 * ruby-railties-3.2
 * ruby-railties-4.0
Try: sudo apt-get install <selected package>

bundle install返回

Your Ruby version is 1.9.3, but your Gemfile specified 2.0.0

但是在我用来设置我的应用程序的终端上(两个终端同时打开)如果我运行rails -v我得到正常输出&#34; Rails 4.0.10 &#34;,bundle install正常执行。

我很确定如果我退出我用来设置的终端,我对我的应用程序所做的所有更改都会恢复正常,但我不会这样做。我想测试那个理论。

两个同步终端如何以不同的方式查看项目?

BOTH终端rvm list的输出

$ rvm list


rvm rubies

=* ruby-2.0.0-p643 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

更新

我关闭了所有打开的终端并打开了一个新终端,并重新安装了RVM和ruby。无论我多少次这样做,ruby -v总会返回

ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

rvm install 2.0.0返回

Already installed ruby-2.0.0-p643.
To reinstall use:

    rvm reinstall ruby-2.0.0-p643

1 个答案:

答案 0 :(得分:2)

您的rvm设置不正确。一个新终端正在运行rvm shims(rvm ruby​​和gems的路径),旧终端指向不同的ruby版本,甚至可能是系统ruby;反之亦然。

关闭所有终端,启动一个新终端,检查RVM是否使用bash挂钩正确设置;捆绑安装。