Ruby on Mac OSX通过Mac Ports

Gre*_*les 29 ruby macos macports

我是Ruby和Mac OSX的新手,虽然我对Unix命令有相当多的经验.我刚刚通过MacPorts命令安装了Ruby 1.9(port install ruby​​19).然后我需要从root做一个查找,以确定它的去向,结果是:/opt/local/var/macports/software/ruby19/1.9.1-p376_0/opt/local/bin/ruby1. 9.

当前版本的Ruby(1.8.6)通过/ usr/bin/ruby​​运行,它是/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby的符号链接,其中Current是一个符号链接到名为1.8的目录.

我想将Ruby 1.9作为我的默认设置(以及像irb这样的相关工具),虽然我可以设法做到这一点,但我想知道是否有传统方式.我应该将MacPorts路径复制或链接到/System/Library/Frameworks/Ruby.framework/Versions/1.9然后将Current指向1.9吗?(我还要重命名或复制可执行文件:ruby1.9到ruby,irb1.9到irb等等)或者我应该吹掉/ usr/bin/ruby​​链接(和/ usr/bin/irb,等)并创建指向MacPorts版本的新的?

小智 28

您可以在MacPorts 2.1.3下轻松使用端口选择命令

$sudo port select --set ruby ruby19
Run Code Online (Sandbox Code Playgroud)

  • 这显然是"正确的"MacPorts方式,而不是"+ nosuffix" (4认同)

You*_*You 26

nosuffix改为安装变体:

sudo port install ruby19 +nosuffix
Run Code Online (Sandbox Code Playgroud)

您现在应该使用较新的ruby版本优先于预先安装的版本.

  • 谢谢,这非常有帮助.我没有看到那个选项. (2认同)

Ama*_*dan 25

我的建议:

$ port uninstall ruby1.9
Run Code Online (Sandbox Code Playgroud)

然后按照:https://rvm.io/rvm/install/

然后:

$ rvm install 1.9.2
$ rvm --default 1.9.2
Run Code Online (Sandbox Code Playgroud)

你甚至rvm install macruby可以用Cocoa玩具.


ami*_*tas 17

在最新版本的macports(2.1.3或更高版本)中,您可以使用该port select命令.

port select --list ruby
sudo port select --set ruby ruby19
Run Code Online (Sandbox Code Playgroud)

对于早期版本的macport,您可以创建一个指向编号的ruby版本的符号链接.这是macports通常处理不同版本的包之间切换的方式.

cd /opt/local/bin
sudo ln -s ruby1.9 ruby
Run Code Online (Sandbox Code Playgroud)


Mat*_*ggs 5

强烈推荐RVM。这需要一些阅读,但是一旦安装了它,您就可以使用rvm install 1.9(或 jruby、ree、1.8 等)安装 ruby ,并使用rvm 1.9. 每个 ruby​​ 版本也将有自己的、完全独立的一组 ruby​​gems。