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

时间:2011-04-15 00:06:37

标签: ruby rvm

当我尝试使用以下方法在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:       ""

任何建议都将不胜感激。

4 个答案:

答案 0 :(得分:18)

编译并安装自己的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 ..

删除红宝石:rvm remove 1.9.2

再次安装:rvm install 1.9.2

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

应该这样做。

-------------编辑--------------

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

------------如何在10.7 ---------

上编写READLINE

“readline-6.2尚未针对Mac OS X 10.7(darwin11)进行更新,因此请打开support / shobj-conf并在显示的两个位置将darwin10更改为darwin11。”

来源:lamboy

答案 1 :(得分:1)

我遇到了同样的问题,帖子Getting error for libxml2.2.dylib "file is not of required architecture"中的答案)终于帮我解决了。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

∴rvm notes

  

达尔文笔记(Mac OS X)
     对于Snow Leopard,请务必使用Xcode Tools Version 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导入系统      迁移你的宝石      rvm --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(尽管那里)有关失败的重要报道。)

您可以按照网站上显示的那样传递该信息。