更新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
通过做3件事,我能够让rvm正常运行。查看类似问题here:
sudo rm -rf libsqlite3.dylib
(小心这可能是一件非常糟糕的事情;但它可以解决这个问题) sudo port upgrade --force sqlite3 +universal
并获得了sqlite3及其所有依赖项来构建x86_64 / i386通用库全绿:
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
答案 0 :(得分:2)
答案 1 :(得分:0)
试试这个:首先安装并使用(!)1.8.7。
$ rvm install 1.8.7
$ rvm使用1.8.7
然后再次尝试安装1.9.1。
答案 2 :(得分:0)
<强>解!!!! 强> 通过做三件事我能够让rvm发挥作用:
usr/local/lib/
sudo rm -rf libsqlite3.dylib
(注意这可能是一件非常糟糕的事情;但它可以解决这个问题)sudo port upgrade --force sqlite3 +universal
并获得了sqlite3及其所有依赖项来构建x86_64 / i386通用库