在Mac上从源代码构建Ruby,无法正常工作

时间:2011-01-02 19:37:37

标签: ruby upgrade

我正在尝试从Snow Leopard上的源代码构建Ruby 1.9.2并且我不断收到此错误:

readline.c: In function ‘username_completion_proc_call’:
readline.c:1292: error: ‘username_completion_function’ undeclared (first use in this function)
readline.c:1292: error: (Each undeclared identifier is reported only once
readline.c:1292: error: for each function it appears in.)
make[1]: *** [readline.o] Error 1
make: *** [mkmain.sh] Error 1

我的基础是this tutorial,当我执行make命令时出现错误。

我已经安装了1.8.7,但是想要升级到最新版本并且还没有找到一种可靠,简单的方法来实现它。

3 个答案:

答案 0 :(得分:2)

升级到Snow Leopard上最新版Ruby的最简单方法是使用RVM (The Ruby Version Manager)

答案 1 :(得分:2)

如果您尚未升级DVD上的XCode版本,请从Apple's Developer site执行此操作。 DVD上的XCode有一些错误。你必须注册,但它是免费的。

Snow Leopard已经安装了1.8.7,但这是供Apple使用的;他们安装实际使用Ruby的代码并弄乱他们的Ruby或安装的代码可能会破坏事情。你可能不知道有什么东西坏了,直到事情不能正常工作,所以最好不要单独安装并将其放入供自己使用。

正如其他答案所说,RVM是安装Ruby供您自己使用的好方法。您不需要安装到/usr/local/bin,并且您绝对不想在/usr/bin中覆盖Ruby。 RVM通过安装到~/.rvm来解决此问题。您可以安装多个Rubies,以及与Ruby关联的gem,创建宝石集,复制它们,删除或重新编译特定的Ruby,或者将其全部吹掉,而不会影响Apple安装的Rubyies。 RVM经常被积极开发和更新,作者对问题的反应非常迅速。

RVM有一个处理readline issues的页面。它特定于处理RVM,但如果您想放弃使用RVM并使用其他东西,可能会有所帮助。

答案 2 :(得分:1)

我会使用rvm到目前为止最简单的方法来编译ruby并具有许多其他好处。