【问题标题】:making ruby 1.9 default on os x [duplicate]在 os x 上使 ruby​​ 1.9 默认 [重复]
【发布时间】:2011-03-30 05:11:18
【问题描述】:

如何使 ruby​​ 1.9 成为默认使用的版本,而不是默认安装在 os x 上的 1.8.x?

谢谢。

【问题讨论】:

    标签: ruby macos operating-system


    【解决方案1】:

    从 v2.1.3 开始,将包的特定版本设置为默认值的“正确”MacPorts 方法是使用 select 命令,如下所示:

    sudo port select --set ruby ruby19

    the MacPorts Guide 中似乎没有任何关于此命令的文档。但是,您可以运行 port help select 以获得非常有限的描述。此功能取代了设置默认版本的+nosuffix“变体”样式。

    【讨论】:

      【解决方案2】:

      我建议从http://rvm.beginrescueend.com/ 安装 RVM 工具(在installing it 上有说明

      它允许您拥有多个版本的 ruby​​ 和 gems。安装 RVM 后,然后安装所需的 Ruby 1.9,使用:

      rvm install ruby-1.9.1
      

      将其设为默认值:

      rvm --default ruby-1.9.1
      

      在此之后,它将成为默认的 ruby​​。

      【讨论】:

      • 我会通过不包括补丁级别来避免过于具体,即:rvm --default 1.9.1
      【解决方案3】:

      RVM 非常适合使用不同版本的 Ruby 和 gem 设置多个环境。

      如果你只是想拥有 Ruby 1.9,你可以简单地使用 MacPort 安装它。它将优先于 OS X 上默认安装的那个。

      1. 如果您还没有,请下载MacPort。它是 Mac 包管理器。
      2. 在终端上,使用 MacPort 安装 Ruby 1.9 和 RubyGems
        sudo port selfupdate
        sudo port install ruby19
        sudo port install rb-rubygems

      然后,您应该已经安装了 Ruby 1.9 并在路径上前进。做一个ruby -v 来检查。使用 Ruby gem 安装任何其他 Ruby 组件,例如 Rails。

      端口安装在 /opt/local/bin 目录中,MacPort 更新 PATH 环境变量,以便在 /usr/bin 预安装包之前获取这些端口。

      【讨论】:

      • 是的,这也是一个很好的答案。我要说的唯一评论是,使用 RVM,您可以获得不同的宝石集。如果您尝试同时使用 Rails 2.x 和 Rails 3.0 工作,则需要不同的 gemset。另外,我遇​​到过一个版本的 Ruby 会破坏某些应用程序的问题(因为 ruby​​ 解释器中的错误)。
      • 这种方法还有一个问题。 Ruby1.9(使用 macports 安装)称为“ruby1.9”。因此,如果您在终端中发出“ruby”,您仍然会在系统上安装 ruby​​ 1.8.7(因为 usr/local/bin 在路径中)。您可以在 usr/local/bin 中设置指向 ruby​​1.9 的符号链接。
      【解决方案4】:

      您可以创建别名而不是符号链接...这样两个版本都保持不变。将以下行添加到用户主文件夹中的 .profile(如果不存在则创建):

      alias ruby='/opt/local/bin/ruby1.9'
      

      然后获取文件:

      source .profile
      

      希望有帮助:)

      【讨论】:

        【解决方案5】:

        我会说跳过 rvm。

        就我而言,MacPorts 确实将 /opt/local/bin 添加到我的路径中,但将 ruby​​ 1.9 安装为 ruby​​1.9。 (离开 ruby​​ -> /usr/bin/ruby。)

        目前为止最简单的修复方法:

        sudo su
        cd /opt/local/bin
        ln -s ruby1.9 ruby
        

        噗。完成。

        确切的命令:

        nsmcs-macbook-pro:~ nsmc$ which ruby
        /usr/bin/ruby
        nsmcs-macbook-pro:~ nsmc$ echo $PATH
        /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
        nsmcs-macbook-pro:~ nsmc$ which ruby1.9
        /opt/local/bin/ruby1.9
        nsmcs-macbook-pro:~ nsmc$ sudo su
        Password:
        sh-3.2# cd /opt/local/bin/
        sh-3.2# ls -l ruby*
        -rwxr-xr-x  2 root  admin  9040 Feb 16 07:43 ruby1.9
        sh-3.2# ln -s ruby1.9 ruby
        sh-3.2# which ruby
        /opt/local/bin/ruby
        sh-3.2# ruby --version
        ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10]
        

        【讨论】:

        • 我不得不使用 MacPort 的 gem1.9 使用相同的符号链接技巧来欺骗 gem 使用非框架版本的 Ruby。
        猜你喜欢
        • 2010-10-20
        • 1970-01-01
        • 2014-10-18
        • 2011-07-18
        • 2011-10-04
        • 1970-01-01
        • 2010-12-25
        • 2011-06-12
        • 2014-07-25
        相关资源
        最近更新 更多