1

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

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

所以使用 pik,我从以下位置运行这些命令gitbash

  1. pik 192
  2. ruby -v

红宝石 1.9.2p180 (2011-02-18) [i386-mingw32]

  1. rails server

sh.exe": rails: 找不到命令

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

我如何在这 2 个版本之间“共享”宝石,或者是否有更好的选择,风险更小?

4

1 回答 1

1

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

默认情况下,Windows 上的 Ruby 会在 Ruby 目录中安装 gem。

您可以通过以下方式验证这一点:

gem env gemdir

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

SET GEM_HOME=C:\gems
gem env gemdir

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

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

这将允许 gems 可执行文件可用。

但是,请注意,尽管 Ruby 1.9.2 和 1.9.3 声明它们是兼容的,但对于作为某些 gem 一部分的已编译 C 扩展,可能并非如此。

Ruby 1.9.3 引入了某些 API 级函数,这些函数在 1.9.2 中不可用,并且在 Ruby 1.9.2 中加载 1.9.3 编译的 gem 时可能会导致问题

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

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

希望有帮助。

于 2013-03-02T00:23:44.547 回答