【问题标题】:Installing Ruby 1.9 on OS X Leopard using /usr/local - RVM issues使用 /usr/local 在 OS X Leopard 上安装 Ruby 1.9 - RVM 问题
【发布时间】:2011-10-04 01:11:09
【问题描述】:

我必须在本地运行需要 Ruby 1.9.2(加上 Mongo)的 Rails (3.0.6) 应用程序。我想将 Ruby 1.9.2 与我现有的 1.8.7 一起安装,并能够根据需要在它们之间进行交换。我更喜欢安装到 usr/local 而不是 Macports 等。有什么建议吗?我已经尝试安装 RVM,但事实证明这在 OS X 上非常痛苦,我也宁愿避免这样做。

还有其他运行多个 Ruby 版本的方法(可能是with a prefix like this)?我只需要为这个项目切换到 1.9。或者有没有人对已知的 OS X/RVM install issues 有一个好的解决方案?具体来说,在 Tiger/10.4 上,bash 不支持 errtrace。

更新:使用新的 RVM 安装脚本解决:请参阅 RVM on OS X 10.4 - possible?

【问题讨论】:

  • 我不确定为什么安装 RVM 会很痛苦。我已经做过很多次了。最重要的是完全阅读安装说明,并且不要使用 root 进行单用户安装。安装完成后,输入 rvm notes 并按照它说的做。
  • 我知道这些事情,但在 OS X 上存在问题:groups.google.com/group/rubyversionmanager/browse_thread/thread/…

标签: ruby ruby-on-rails-3 macos bash rvm


【解决方案1】:

RVM 确实是最简单的解决方案,我强烈建议您先尝试解决该问题。

唯一的建议是确保将 PATH 变量配置为包含 /usr/local/bin 之前 其他所有内容。在你的 .profile 或 .login(取决于你的 shell)中,你应该把它放在底部,以防还有其他配置 PATH 的行,然后是 Bourne shell 系列:

export PATH="/usr/local/bin:$PATH

或者对于 C shell 系列:

set path = (/usr/local/bin $PATH)

单独运行 ./configure 应该会将其安装到 /usr/local,但您可以明确说明 ./configure --prefix=/usr/local

【讨论】:

  • 已经完成了,但是 RVM 安装存在问题:bit.ly/mWkDBj
  • Ruby 真的如此糟糕,以至于将主要和次要版本号硬连接到应用程序中真的是“最简单的解决方案”吗?比 'git clone 容易; 。/配置 ;制作'?
  • 好吧,当我从一个短暂的假期回来时,我可能会尝试这样做......是的,OS X 系统 Ruby 中有一些损坏。
  • @Dmitri,“Ruby 真的如此糟糕,以至于将主要和次要版本号硬连接到应用程序中真的是“最简单的解决方案”吗?”鲁比不是。别人的代码是。
【解决方案2】:

从源代码安装 Ruby,它将默认为 /usr/local/bin。根据需要调整您的路径、#! 行或/usr/local/bin/ruby source.rb,以便在 Apple 安装的 Ruby 和您添加的安装之间切换。

您可以使用./configure --prefix=/... 强制创建一个新的基目录,其中“...”是您想要的任何路径。同样,安装文件后,您可以使用上述方法之一调整正在执行的 Ruby。

不要试图删除 Apple 安装的 Ruby。它是供他们使用的,而不是为了我们的方便,Apple 使用它来提供一些功能。弄乱它或移除它可能会破坏一些东西,而且您可能暂时不会注意到。

RE:RVM,它确实是安装用户 Ruby 的首选方式。我在两台 Mac 和几个不同的 Linux 机器上都有它,我唯一遇到的问题是防火墙后面的安全机器,但是当 RVM 根本看不到互联网时,我不能责怪 RVM 造成这些问题。而且,是的,我让它工作得很好,我只需要将手动下载的 Ruby 存档插入到~/.rvm/archives 目录中。

如果您遇到问题并想使用它,暂时剥离您的启动脚本或创建一个临时用户,看看会发生什么,可能会有所帮助。此外,作者在我向他提问的几次中都非常敏感和乐于助人。联系他:

如果您仍然找不到问题的答案,请在 irc.freenode.net 上的 #rvm 中找到我的“wayneeseguin”: http://webchat.freenode.net/?channels=rvm

【讨论】:

  • 谢谢,这真的很清楚 - 我会在下周假期回来的时候尝试一下 - 感谢 IRC 的提议 :-)
  • 仍在尝试 RVM 安装:在 .bash_login 中找到路径(其他内容的底部)所有先决条件都存在。运行安装说明中的命令在 ~/.rvm 中给出了两个空目录,但出现了 2 个错误:第 6 行:设置:errtrace:无效的选项名称,第 166 行:需要条件二进制运算符。下载并运行 rvm.sh 脚本本身也是如此。我发现 10.4 的 bash 不支持 errtrace,注释掉了这些行,得到了 repo,但是 install 在 ./scripts/install 中抛出了类似的错误(第 6 行:set:errtrace:invalid option name)但“安装”是一个空文件?
  • @dave-everitt 您可以尝试将新版本的 bash 安装到 /usr/local 中。从gnu.org/software/bash获取构建包
  • @Kelvin - 安装了 bash 4.2,但在 /usr/local/bin/bash --version 上得到:[...] /usr/local/lib/libintl.8.dylib: mach-o,但架构错误 [. ..] 所以除非你熟悉这个问题,否则会单独发布?
  • @dave-everitt 抱歉,我认为安装 bash 会很轻松。我没有 10.4,所以我无法复制。
【解决方案3】:

如果你下载源码并编译它,它应该默认安装到/usr/local,或者你可以

./configure --prefix=/usr/local

只是为了确定。

实际上,从源代码编译和安装 ruby​​ 是确保您拥有最新版本的一种简单方法,尤其是如果您使用 git 和 github:

https://github.com/ruby/ruby

【讨论】:

  • 很高兴这样做,但我需要在 OS X 上保留系统 Ruby 并在必要时切换到它,因此选择 RVM 选项 - 除非有其他方法?
  • @Dave 我面前没有,但我认为 /usr/local 树在 Mac 上是空的?系统 ruby​​ 是 /usr/bin/ruby,它是 /System/Library/..long 的链接,路径错误../usr/bin/ruby 所以没有覆盖它的危险。 OS X 一键式安装程序:rubyosx.rubyforge.org 也将 ruby​​ 放入 /usr/local。也许这就是你的答案。
  • 默认情况下它是空的,因此在 OS X 上将任何自定义(不仅仅是 Ruby)安装到 /usr/local 可以确保系统升级不会覆盖我们的安装。一键式安装程序对我的系统来说不够高,所以我仍然需要从源代码安装。但是如何在它们之间进行交换呢?
猜你喜欢
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2013-10-31
  • 1970-01-01
  • 2014-04-29
相关资源
最近更新 更多