2010-11-05 41 views
2

我更新了我的红宝石版本1.9.2,但是当我启动终端并运行ruby -v它显示1.8.7。默认红宝石版本在Mac雪豹

我可以切换到红宝石1.9.2的唯一方法是在源码中写入源码~/.profile

我该如何制作1.9.2默认的ruby版本?

回答

4

将“source〜/ .profile”放入“.bashrc”文件中,以便每次创建shell时都会运行该文件。

或者可选地,use RVM。它使几个共存的红宝石变得轻而易举。

+0

RVM为赢! – Jeff 2010-11-05 19:50:02

+0

使用RVM,不要覆盖默认的Ruby。 – 2010-11-05 20:12:19

+0

对于RVM而言,这太棒了! – malvim 2010-11-05 22:42:19

0

如果'source〜/ .profile'正在工作,请尝试退出并重新启动终端,或者只是打开一个新的终端窗口。如果您使用的是与更新红宝石相同的终端窗口,它仍然具有旧的配置文件。您可能不希望从.bashrc获取您的配置文件。如果您在运行.bashrc后更改别名,奇怪的事情可能最终发生在您的$ PATH变量中,因为您将两次更改它。

如果你的.profile中的相关行使别名'ruby'命令有效,它应该可以工作。我只是将配置文件中的ruby命令更改为'别名ruby =“ruby1.9”并打开了一个新终端。 ruby -v现在返回红宝石1.9.1p376(2009-12-07修订版26041)[i386-darwin10]

5

如果您在不使用RVM的情况下安装了新的Ruby,修改PATH以允许系统找到它是很重要的。您需要确保/usr/local/bin在您的路径中的/usr/bin之前。您可以通过在命令行输入echo $PATH进行检查。如果没有,那么加上一行到你的~/.bash_profile像:

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

这样的OS将搜索默认的系统安装的应用程序之前,本地安装的应用程序。打开一个新的shell并键入which ruby,你应该看到你的系统正在指向新的Ruby。尽管继续阅读,因为了解会话初始化对于设置开发环境非常重要。

当使用BASH作为您的shell时,您可以使用~/.bashrc,~/.bash_profile和/或~/.profile作为启动脚本来初始化您的会话。根据shell的启动方式,其中一个将被调用,但通常是~/.bash_profile,然后是~/.profile

为了让我的生活更加简单,我把我的启动命令放在~/.bash_profile中,然后通过在其中放入一个源语句指向~/.bashrc。因此,将您的RVM初始化命令放在~/.bash_profile中,并确保~/.bashrc指向它,默认情况下它应该执行此操作。

从命令行执行man bash,并在INVOCATION部分中阅读有关内容或在Wikipedia's BASH section中阅读有关内容。

以供参考,这是命令韦恩说,把作为LAST可执行文件中得到RVM初始化:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.

RVM的Installation页面有关于此次在“发布的详细信息安装“和”安装疑难解答“部分。

RVM工作得很好,设置起来很简单。我所看到的最大的问题是没有在启动脚本中获得RVM调用的人或者使用了一个错误的脚本来保持命令不被执行。如果你无法实现它,那么你可以考虑将你的启动脚本放入一个pastie页面或将它添加到你原来的问题中,让我们看看发生了什么。