我正在尝试从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,但是想要升级到最新版本并且还没有找到一种可靠,简单的方法来实现它。
答案 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并具有许多其他好处。