rails server命令无法正常运行,并且在另一个版本的ruby上没有gems

时间:2013-03-01 23:56:18

标签: ruby-on-rails ruby ruby-on-rails-3 pik

我在Windows 7机器上运行rails并使用pik作为我的RVM。

我目前安装了ruby 1.9.3,但我有一个需要ruby 1.9.2的项目。

所以使用pik,我从gitbash运行这些命令:

  1. pik 192
  2. ruby -v
  3.   

    ruby​​ 1.9.2p180(2011-02-18)[i386-mingw32]

    1. rails server
    2.   

      sh.exe“:rails:command not found

      但是,当我使用pik 193时,我绝对可以看到服务器正在运行。在pik 192下运行宝石列表也不会显示任何本地宝石,而pik 193会显示很多本地宝石。

      我如何“分享”这两个版本之间的宝石,还是有更好的选择风险较小?

1 个答案:

答案 0 :(得分:1)

要跨安装共享宝石,您需要将宝石安装在两个安装的公共位置。

默认情况下,Ruby on Windows将在Ruby目录中安装gems。

您可以通过执行以下操作进行验证:

gem env gemdir

要在两个解释器的公共位置安装,您需要将GEM_HOME环境变量设置为特定目录,例如C:\gems

SET GEM_HOME=C:\gems
gem env gemdir

您还需要将bin目录添加到PATH

SET PATH=C:\gems\bin;%PATH%

这将允许宝石可执行文件可用。

但是,请注意,虽然Ruby 1.9.2和1.9.3声明它们是兼容的,但对于某些宝石的编译C扩展可能不是这样。

Ruby 1.9.3引入了1.9.2中没有的某些API级函数,这些函数在Ruby 1.9.2中加载1.9.3编译的gem时会引起问题

在某些情况下,这些差异可能会导致分段错误和奇怪的应用程序崩溃。

不建议使用,因此请自担风险。

希望有所帮助。