RVM无法在Snow Leopard上安装Ruby 1.9.2:’运行’make’时出错

当我尝试使用以下方法在Snow Leopard上安装Ruby 1.9.2时:

rvm install 1.9.2 

我得到以下内容:

 ERROR: Error running 'make ', please read /Users/mary/.rvm/log/ruby-1.9.2-p180/make.log ERROR: There has been an error while running make. Halting the installation. 

所以,我查看make.log。 它的结尾是:

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

我已经咨询了这个问题的其他答案,并做了一切建议:

  • XCode已安装。
  • 我的.bash_profile的结尾添加了以下行:

     [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

我已经尝试更新readline,但无论如何,我继续收到有关运行’make’的错误消息。

rvm info的输出如下:

  system: system: uname: "Darwin mary-nunans-computer.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386" bash: "/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)" zsh: "/bin/zsh => zsh 4.3.9 (i386-apple-darwin10.0)" rvm: version: "rvm 1.6.2 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]" homes: gem: "not set" ruby: "not set" binaries: ruby: "/usr/local/bin/ruby" irb: "/usr/local/bin/irb" gem: "/usr/local/bin/gem" rake: "/usr/local/bin/rake" environment: PATH: "/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/usr/X11/bin:/Users/mary/.rvm/bin:/Users/mary/.rvm/bin" GEM_HOME: "" GEM_PATH: "" MY_RUBY_HOME: "" IRBRC: "" RUBYOPT: "" gemset: "" 

任何建议,将不胜感激。

编译并安装自己的readline:

 curl -O ftp://ftp.gnu.org/gnu/readline/readline-6.1.tar.gz tar xzvf readline-6.1.tar.gz cd readline-6.1 ./configure --prefix=/usr/local make sudo make install cd .. 

删除ruby: rvm remove 1.9.2

再次rvm install 1.9.2rvm install 1.9.2

(如果本地路径不在您的目录中,您可能需要添加源: rvm install 1.9.1 -C --with-readline-dir=/usr/local/

应该这样做。

————-编辑————–

如下面的评论所述,如果你使用自制软件 ,那么你应该brew install readline 。 如果您使用的是Mac,那么您应该使用自制软件。

————如何在10.7编写READLINE ———

“readline-6.2尚未针对Mac OS X 10.7(darwin11)进行更新,因此打开support / shobj-conf并将darwin10更改为darwin11,在它出现的两个地方。”

来源: lamboy

我遇到了同样的问题,并且在libxml2.2.dylib文件的获取错误中的答案“文件不是必需的架构” )最终帮助我解决了它。

您必须安装开发人员工具。 您可以在mac app store下载Xcode(随附的开发人员工具)5美元。

我在这里粘贴’rvm notes’的输出,因为这很重要。 你至少需要Xcode 3.2.1(1613)。 请注意,Snow Leopard是第一次进行此修订,因此您需要获取更新的Xcode。

∴rvm笔记

达尔文笔记(Mac OS X)
对于Snow Leopard,请务必使用Xcode Tools版本3.2.1(1613)或更高版本您应该从developer.apple.com下载最新的Xcode工具。 (这是因为Snow Leopard的DVD安装包含错误)。

如果您打算安装MacRuby,则必须先安装LLVM。 如果您打算安装JRuby,则必须安装JDK。 如果您打算安装IronRuby,则必须安装Mono(建议使用2.6或更高版本)。

要使用RVM安装Ruby作为默认值而不是系统ruby:rvm install 1.8.7 #installs patch 352:最近支持的版本rvm系统; rvm gemset export system.gems; rvm 1.8.7; rvm gemset导入系统迁移你的gemrvm –default 1.8.7

注意:
从1.8.0开始,默认情况下,在请求您的许可后,RVM会再次加载.rvmrc文件。 如果您不希望被启用,只需设置:export rvm_project_rvmrc = 0在/ etc / rvmrc或$ HOME / .rvmrc文件中。 这将在将rvm()函数提供给shell时关闭cd / pushd挂钩。

示例:echo’export rvm_project_rvmrc = 0’>> $ HOME / .rvmrc; (然后关闭当前shell并打开一个新shell。)

在撰写本文时,当前的RVM为1.8.3,所需的Xcode最小为3.2.1,您可以使用Homebrew中的readline,RVM的’rvm pkg install readline’或Lion的内置readline(尽管有很大的重要性)报告失败了)。

您将传递该信息,如网站上所示。