如何更改Textmate使用的Ruby版本?

13

编辑:我找到了解决方法,你可以在下面的答案中阅读。

我正在Snow Leopard上使用Textmate,并安装了Ruby 1.9。问题是由于某种原因Textmate使用Ruby 1.8.2

但是当我使用IRB或运行shell的ruby脚本时,会使用正确的版本Ruby(1.9)。

如何配置Textmate以便使用1.9.2?

我已经通过谷歌搜索了很久,显然你必须在textmate中使用T_RUBY变量,并在OSX中设置一些环境变量,但到目前为止我找到的方法都不适用于我。

有人能给出这个问题的一步一步解决方案吗?

更新:我已经尝试将ruby二进制路径添加到textmate的TM_RUBY中,但是我收到了以下错误:

> Can't find
> “/Users/myname/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
> /Users/myname/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
> /Users/myname/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
> ” on PATH. Theme: The current PATH is:
> /usr/bin /bin /usr/sbin /sbin Please
> add the directory containing
> “/Users/myname/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
> /Users/myname/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
> /Users/myname/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
> ” to PATH in TextMate's Shell
> Variables preferences.

在新的TextMate文档中,执行行(^R)可以帮助您:type -a ruby && echo "TM_RUBY = $TM_RUBY" && echo "PATH = $PATH" - sam
5个回答

31

谢谢Eddie。我确实使用RVM,并且一回家就会尝试这个。 - agente_secreto
新手应该注意,变量现在是在“变量”菜单下设置,而不是在高级> Shell变量菜单下设置。 - user456584

8
在“首选项/高级/Shell变量”下,添加一个名为TM_RUBY的新变量。并输入您的Ruby二进制文件的绝对路径。
您可以通过打开终端并键入以下内容来获取后者:
which ruby

那不起作用了...我得到了以下错误(请参见下一个评论) - agente_secreto
无法在PATH中找到“/Users/myname/.rvm/rubies/ruby-1.9.2-p180/bin/ruby /Users/myname/.rvm/rubies/ruby-1.9.2-p180/bin/ruby /Users/myname/.rvm/rubies/ruby-1.9.2-p180/bin/ruby”。当前的PATH是:/usr/bin /bin /usr/sbin /sbin请在TextMate的Shell变量首选项中添加包含“/Users/myname/.rvm/rubies/ruby-1.9.2-p180/bin/ruby /Users/myname/.rvm/rubies/ruby-1.9.2-p180/bin/ruby /Users/myname/.rvm/rubies/ruby-1.9.2-p180/bin/ruby”的目录。 - agente_secreto
1
@0al0 这不适合作为注释。请编辑您的原始问题,详细说明您尝试过什么,测试步骤以及您遇到的错误。 - Phrogz
我已经完成了所有这些步骤,现在Textmate显示:在PATH中找不到“/Users/Oscar/.rvm/rubies/ruby-1.9.2-p180/bin/ruby”。请在TextMate的Shell变量首选项中添加包含“/Users/Oscar/.rvm/rubies/ruby-1.9.2-p180/bin/ruby”的目录到PATH。 - agente_secreto

4
解决方案实际上非常简单,不需要任何特殊的安装程序。正如在TextMate博客中提到的那样,你只需要告诉TextMate你的路径变量即可。TextMate默认不加载此信息。在首选项中,转到变量选项卡,添加一个变量PATH(如果不存在),并将值设置为$PATH:/usr/local/bin。这告诉TextMate复制系统的PATH。系统的ruby位于/usr/bin/ruby中,该路径包括在OSX默认的PATH中。如果您安装了自定义版本的ruby,则还需要附加该路径,例如,在此处我已经附加了/usr/local/bin(不要忘记冒号)。

Updating the PATH variable in TextMate2 preference pane


3

如果你使用 which ruby 命令,TextMate 显示 exec: rbenv: not found 错误,那么你需要输入下面的命令:rbenv which ruby。将得到的路径添加到 TM_RUBY 中。


如果您希望始终使用当前的rbenv版本,我认为您应该将TM_RUBY设置为/usr/local/var/rbenv/shims/ruby - sam
或者你可以将/usr/local/var/rbenv/shims追加到TextMate的PATH中。 - sam

1

使用which ruby给出的路径无法正常工作。在谷歌上搜索了一段时间后,我找到了一个解决方案,使用rvm的自动ruby路径作为TM_RUBY变量。 路径是: /Users/0al0/.rvm/bin/rvm-auto-ruby 当然,这仅适用于使用rvm的情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接