【问题标题】:rbenv: having 32 & 64 bit versions of ruby installed side by side on same machinerbenv:在同一台机器上并排安装 32 位和 64 位版本的 ruby
【发布时间】:2012-09-16 02:06:33
【问题描述】:

出于某些原因(Oracle,我在看着你)我需要能够使用 32 位和 64 位版本的 ruby​​。我可以将 1.9.3 的 32 位和 64 位版本与 rbenv 一起安装吗?运行 rbenv 版本时如何区分它们?

现在我使用的是 1.9.2 的 32 位版本和 1.9.3 的 64 位版本。我更希望拥有 64 位和 32 位版本 1.9.3。

更新:

现在我只是选择使用不同的补丁。必须有更好的方法...

更新 2:

为了澄清我的情况,我使用的是在 Mac OSX Lion 上运行的机器。

this link describes my main problem, no 64bit instant client for Lion

This link shows the only solution I've found to the problem

更新 3:

这不再是问题,因为 oracle 发布了a 64 bit instant client that works on Lion and Mountian Lion

【问题讨论】:

  • 我看不出它会如何影响任何事情。运行时是 ruby​​ 语言的实现。该代码应该适用于任何一个。你能更准确地说明为什么你需要两者吗? 因为 AFAIK 你只能使用 64 位
  • oracle 即时客户端没有可在狮子或山狮上运行的 64 位版本。因此,ruby oci gem 仅适用于 32 位版本的 ruby​​。
  • 在这种情况下,您不需要 32 位版本的 ruby​​,您需要 oci 调用的任何库的 32 位版本。 ruby 实现与此无关。
  • ... 你测试过这个假设吗?在我所有的试验中,64 位版本的 ruby​​ 都不会正确地为 oci 和 32 位版本的即时客户端创建 c 扩展。
  • 不,但是我做了 10 分钟的谷歌研究。

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


【解决方案1】:

您可以在 rbenv 中安装任意数量的 Ruby 版本。只要您在${RBENV_ROOT}/versions/ 中为每个人提供一个唯一命名的目录/符号链接,它就不会在意。

默认情况下,构建在 OS X 上的 Ruby 似乎是 64 位的。如果您能弄清楚如何配置 Ruby 的 32 位构建,例如,您可以使用PREFIX="$(rbenv root)/versions/1.9.3-p194-32" 安装一个。然后您可以像使用其他任何版本一样使用该版本:

RBENV_VERSION=1.9.3-p194-32 ruby -v

这里我使用“-32”前缀来区分版本。

【讨论】:

  • 我一直在这样做,直到 oracle 最终发布了适用于狮子和山狮的即时客户端版本。最后,这台机器上不再有 32 位红宝石!
猜你喜欢
  • 1970-01-01
  • 2010-10-06
  • 2012-10-24
  • 1970-01-01
  • 2012-12-14
  • 2014-03-10
  • 1970-01-01
  • 1970-01-01
  • 2017-09-12
相关资源
最近更新 更多