RVM不适用于1.9.1,但适用于1.8.6和1.8.7

时间:2010-05-26 06:22:24

标签: ruby sqlite readline libxml2 rvm

更新6/25/10

使用Google,我不是唯一遇到此问题的人。显然这个问题与 readline 有关。有没有人遇到过这个问题? (请参阅下面的make.error.log中的错误)正如谷歌建议的那样,我编译了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

更新II

根据上述更新(编译readline)的建议,引出了与libxml2相关的新问题,详细描述了here。我运行了这个命令:sudo port install libxml2


更新III 6/26/10

在编译readline之后,按照RVM Documentation为Readline概述的步骤,我遇到了一个新错误:(rvm install 1.8.7和rvm install 1.9.1产生此错误)

此命令:rvm install 1.9.1 -C --with-readline-dir=$HOME/.rvm/usr 结果如下:

main.c: In function ‘objcdummyfunction’:
main.c:19: warning: implicit declaration of function ‘objc_msgSend’
main.c: At top level:
main.c:19: warning: ‘objcdummyfunction’ defined but not used
eval.c: In function ‘ruby_cleanup’:
eval.c:139: warning: passing argument 1 of ‘ruby_init_stack’ discards qualifiers from pointer target type
gc.c: In function ‘garbage_collect_with_gvl’:
gc.c:597: warning: cast from pointer to integer of different size
w: illegal option -- L
usage: w [hi] [user ...]
make: [libruby.1.9.1.dylib] Error 1 (ignored)
ld: in /usr/local/lib/libsqlite3.dylib, file was built for i386 which is not the architecture being linked (x86_64)
collect2: ld returned 1 exit status
make[1]: *** [../../.ext/i386-darwin10.4.0/tcltklib.bundle] Error 1
make: *** [mkmain.sh] Error 1

解!!!!更新IV 6/27/10

通过做3件事,我能够让rvm正常运行。查看类似问题here

  1. 我导航到usr / local / lib /
  2. sudo rm -rf libsqlite3.dylib (小心这可能是一件非常糟糕的事情;但它可以解决这个问题)
  3. 我做了sudo port upgrade --force sqlite3 +universal并获得了sqlite3及其所有依赖项来构建x86_64 / i386通用库
  4. 全绿:

    justinz$ rvm remove 1.9.1
    
    info: Removing /Users/justinz/.rvm/src/ruby-1.9.1-p378...
    
    info: it seems that /Users/justinz/.rvm/rubies/ruby-1.9.1-p378 is already non existent.
    
    info: Removing ruby-1.9.1-p378 aliases...
    
    info: Removing ruby-1.9.1-p378 wrappers...
    
    info: Removing ruby-1.9.1-p378 environments...
    
    info: Removing ruby-1.9.1-p378 binaries...
    justin-zollarss-mac-pro:ruby-1.9.1-p378 justinz$ rvm install 1.9.1 -C --with-readline-dir=$HOME/.rvm/usr
    
    info: Installing Ruby from source to: /Users/justinz/.rvm/rubies/ruby-1.9.1-p378
    
    info: Extracting ruby-1.9.1-p378 ...
    
    info: Configuring ruby-1.9.1-p378, this may take a while depending on your cpu(s)...
    
    info: Compiling ruby-1.9.1-p378, this may take a while, depending on your cpu(s)...
    
    info: Installing ruby-1.9.1-p378
    
    info: Installation of ruby-1.9.1-p378 is complete.
    
    info: Updating rubygems for /Users/justinz/.rvm/gems/ruby-1.9.1-p378
    
    info: adjusting shebangs for ruby-1.9.1-p378 (gem irb erb ri rdoc testrb rake).
    
    info: Importing initial gems...
    justin-zollarss-mac-pro:ruby-1.9.1-p378 justinz$ rvm list
    
    rvm rubies
    
       ruby-1.8.6-p399 [ x86_64 ]
       ruby-1.8.7-p299 [ x86_64 ]
       ruby-1.9.1-p378 [ x86_64 ]
    
    justin-zollarss-mac-pro:ruby-1.9.1-p378 justinz$ 
    

    我遇到了正确设置RVM的问题,我对使用RVM非常感兴趣,但是在我尝试安装新版本的ruby之后它就中止了;你能看到我的Bashrc或Profile文件有什么问题吗?

    非常感谢提前!

    Bash终端

    justin-zollarss-mac-pro:~ justinz$ rvm install 1.9.1
    
    Installing Ruby from source to: /Users/justinz/.rvm/rubies/ruby-1.9.1-p378
    
    /Users/justinz/.rvm/src/ruby-1.9.1-p378 has already been extracted.
    
    Configuring ruby-1.9.1-p378, this may take a while depending on your cpu(s)...
    
    Compiling ruby-1.9.1-p378, this may take a while, depending on your cpu(s)...
    
    Error running 'make ', please check /Users/justinz/.rvm/log/ruby-1.9.1-p378/make*.log
    
    There has been an error while running make. Aborting the installation.
    

    的.bashrc

    # System-wide .bashrc file for interactive bash(1) shells.
    if [ -z "$PS1" ]; then
       return
    fi
    PS1='\h:\W \u\$ '
    # Make bash check its window size after a process completes
    shopt -s checkwinsize
    if [[ -s /Users/justinz/.rvm/scripts/rvm ]] ; then source /Users/justinz/.rvm/scripts/rvm ; fi
    

    make.error.log

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

    配置文件

    # System-wide .profile for sh(1)
    
    if [ -x /usr/libexec/path_helper ]; then
     eval `/usr/libexec/path_helper -s`
    fi
    
    if [ "${BASH-no}" != "no" ]; then
     [ -r /etc/bashrc ] && . /etc/bashrc
    fi
    if [[ -s /Users/justinz/.rvm/scripts/rvm ]] ; then source /Users/justinz/.rvm/scripts/rvm ; fi
    

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

试试这个:首先安装并使用(!)1.8.7。

$ rvm install 1.8.7

$ rvm使用1.8.7

然后再次尝试安装1.9.1。

答案 2 :(得分:0)

<强>解!!!! 通过做三件事我能够让rvm发挥作用:

  1. 导航至usr/local/lib/
  2. sudo rm -rf libsqlite3.dylib(注意这可能是一件非常糟糕的事情;但它可以解决这个问题)
  3. sudo port upgrade --force sqlite3 +universal并获得了sqlite3及其所有依赖项来构建x86_64 / i386通用库