我一直在尝试在 OSX Lion 上安装 Ruby 1.9.3,但一直遇到 make 错误
Kerrie-Yees-MacBook-Pro:~ kerrieyee$ rvm install 1.9.3 从源代码安装 Ruby 到:/Users/kerrieyee/.rvm/rubies/ruby-1.9.3-p194,这可能需要一段时间,具体取决于您的 CPU( s)...
ruby-1.9.3-p194 - #fetching
ruby-1.9.3-p194 - #extracted to /Users/kerrieyee/.rvm/src/ruby-1.9.3-p194(已经提取)
ruby-1.9.3-p194 - #configuring
ruby-1.9.3-p194 - #编译
运行'make'时出错,请阅读/Users/kerrieyee/.rvm/log/ruby-1.9.3-p194/make.log 运行make时出错。停止安装。
我已经使用命令行工具安装了 git 1.7.7.5、osx-gcc4.2、homebrew 0.9 和 XCode 4.3。我已经尝试安装 readline 但仍然出现 make 错误。我对 ruby 也很陌生,对终端了解不多,所以如果需要更多信息,请同时编写获取信息所需的终端命令。谢谢!
根据建议,我打开了 make.log 文件
看起来像错误部分的部分读取
readline.c: In function ‘username_completion_proc_call’:
readline.c:1499: error: ‘username_completion_function’ undeclared (first use in this function)
readline.c:1499: error: (Each undeclared identifier is reported only once
readline.c:1499: error: for each function it appears in.)
make[2]: *** [readline.o] Error 1
make[1]: *** [ext/readline/all] Error 2
make: *** [build-ext] Error 2
注意到错误与 readline 有关,我查找了有关 readline 的其他问题并遵循 RVM 说明。
我输入rvm pkg install readline
并rvm reinstall 1.9.3 --with-readline-dir=$rvm_path/usr
仍然存在错误:
Error running 'make ', please read /Users/kerrieyee/.rvm/log/ruby-1.9.3-p194/make.log
There has been an error while running make. Halting the installation.
make.log 文件内容如下:
ld: in /usr/local/lib/libxml2.2.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64) for architecture x86_64
collect2: ld returned 1 exit status
make[2]: *** [../../.ext/x86_64-darwin11.4.0/tcltklib.bundle] Error 1
make[1]: *** [ext/tk/all] Error 2
make: *** [build-ext] Error 2
我还跑了 brew doctor:
Kerrie-Yees-MacBook-Pro:~ kerrieyee$ brew doctor
错误:在 /usr/local/lib 中找到未编译的 dylib。如果您不是故意将它们放在那里,它们可能会在构建 Homebrew 公式时引起问题,并且可能需要删除。
意外的dylib:/usr/local/lib/libexslt.0.dylib /usr/local/lib/libexslt.dylib /usr/local/lib/libhistory.6.0.dylib /usr/local/lib/libhistory.6.dylib / usr/local/lib/libhistory.dylib /usr/local/lib/libreadline.6.0.dylib /usr/local/lib/libreadline.6.dylib /usr/local/lib/libreadline.dylib /usr/local/lib/ libruby.1.8.7.dylib /usr/local/lib/libruby.1.8.dylib /usr/local/lib/libruby.dylib /usr/local/lib/libsqlite3.0.8.6.dylib /usr/local/lib/ libsqlite3.0.dylib /usr/local/lib/libsqlite3.dylib /usr/local/lib/libxml2.2.dylib /usr/local/lib/libxml2.dylib /usr/local/lib/libxslt.1.dylib / usr/local/lib/libxslt.dylib
错误:在 /usr/local/lib 中找到未酿造的 .la 文件。如果您不是故意将它们放在那里,它们可能会在构建 Homebrew 公式时引起问题,并且可能需要删除。
意外的 .la 文件:/usr/local/lib/libexslt.la /usr/local/lib/libsqlite3.la /usr/local/lib/libxml2.la /usr/local/lib/libxslt.la
错误:在 /usr/local/lib/pkgconfig 中找到未编译的 .pc 文件。如果您不是故意将它们放在那里,它们可能会在构建 Homebrew 公式时引起问题,并且可能需要删除。
意外的 .pc 文件:/usr/local/lib/pkgconfig/libexslt.pc /usr/local/lib/pkgconfig/libxml-2.0.pc /usr/local/lib/pkgconfig/libxslt.pc /usr/local/lib/ pkgconfig/sqlite3.pc
错误:在 /usr/local/lib 中找到未编译的静态库。如果您不是故意将它们放在那里,它们可能会在构建 Homebrew 公式时引起问题,并且可能需要删除。
意外的静态库:/usr/local/lib/libexslt.a /usr/local/lib/libhistory.a /usr/local/lib/libreadline.a /usr/local/lib/libruby-static.a /usr/local /lib/libsqlite3.a /usr/local/lib/libxml2.a /usr/local/lib/libxslt.a