【问题标题】:Error to install Ruby 1.9.3 in RVM - Make error在 RVM 中安装 Ruby 1.9.3 时出错 - 出错
【发布时间】:2013-04-03 12:49:46
【问题描述】:

我在 OSX 中使用 RVM 编译 Ruby 1.9.3 时出错。我已经搜索了很多解决方案,但不是常见的错误。我认为是权限错误,但我不知道如何解决。

查看我的 make.log 文件:

[2013-04-03 09:37:41] make
    CC = clang
    LD = ld
    LDSHARED = clang -dynamiclib
    CFLAGS = -O2 -arch x86_64 -fno-common -pipe 
    XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT
    CPPFLAGS = -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -I/opt/local/include -I. -I.ext/include/x86_64-darwin12.3.0 -I./include -I.
    DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace -install_name /Users/brunno/.rvm/rubies/ruby-1.9.3-p392/lib/libruby.1.9.1.dylib -current_version 1.9.1 -compatibility_version 1.9.1  -Wl,-u,_objc_msgSend   
    SOLIBS = 
compiling main.c
compiling dmydln.c
compiling dmyencoding.c
compiling version.c
compiling miniprelude.c
compiling array.c
compiling bignum.c
compiling class.c
bignum.c:2732:26: warning: while loop has empty body [-Wempty-body]
        while (--ny && !zds[ny]); ++ny;
                                ^
bignum.c:2732:26: note: put the semicolon on a separate line to silence this warning
compiling compar.c
compiling complex.c
compiling dir.c
compiling dln_find.c
compiling enum.c
compiling enumerator.c
compiling error.c
compiling eval.c
compiling load.c
compiling proc.c
1 warning generated.
compiling file.c
compiling gc.c
compiling hash.c
compiling inits.c
compiling io.c
compiling marshal.c
compiling math.c
compiling node.c
compiling numeric.c
compiling object.c
compiling pack.c
compiling parse.c
compiling process.c
compiling random.c
compiling range.c
compiling rational.c
compiling re.c
compiling regcomp.c
compiling regenc.c
compiling regerror.c
compiling regexec.c
compiling regparse.c
compiling regsyntax.c
compiling ruby.c
compiling safe.c
compiling signal.c
compiling sprintf.c
compiling st.c
compiling strftime.c
compiling string.c
compiling struct.c
compiling time.c
compiling transcode.c
compiling util.c
compiling variable.c
compiling compile.c
compiling debug.c
compiling iseq.c
compiling vm.c
compiling vm_dump.c
compiling thread.c
thread.c:2550:34: warning: variable 'orig_read' is uninitialized when used within its own initialization [-Wuninitialized]
    rb_fdset_t UNINITIALIZED_VAR(orig_read);
                                 ^~~~~~~~~
./vm_core.h:115:34: note: expanded from macro 'UNINITIALIZED_VAR'
#define UNINITIALIZED_VAR(x) x = x
                                 ^
thread.c:2551:34: warning: variable 'orig_write' is uninitialized when used within its own initialization [-Wuninitialized]
    rb_fdset_t UNINITIALIZED_VAR(orig_write);
                                 ^~~~~~~~~~
./vm_core.h:115:34: note: expanded from macro 'UNINITIALIZED_VAR'
#define UNINITIALIZED_VAR(x) x = x
                                 ^
thread.c:2552:34: warning: variable 'orig_except' is uninitialized when used within its own initialization [-Wuninitialized]
    rb_fdset_t UNINITIALIZED_VAR(orig_except);
                                 ^~~~~~~~~~~
./vm_core.h:115:34: note: expanded from macro 'UNINITIALIZED_VAR'
#define UNINITIALIZED_VAR(x) x = x
                                 ^
compiling cont.c
compiling ./enc/ascii.c
compiling ./enc/us_ascii.c
compiling ./enc/unicode.c
3 warnings generated.
compiling ./enc/utf_8.c
compiling newline.c
compiling ./missing/setproctitle.c
compiling dln.c
compiling encoding.c
compiling dmyversion.c
linking miniruby
generating encdb.h
rbconfig.rb updated
generating enc.mk
generating prelude.c
compiling prelude.c
encdb.h unchanged
making srcs under enc
linking static-library libruby.1.9.1-static.a
make[1]: Nothing to be done for `srcs'.
generating transdb.h
transdb.h unchanged
linking shared-library libruby.1.9.1.dylib
making enc
making trans
compiling ./enc/trans/transdb.c
compiling ./enc/big5.c
compiling ./enc/encdb.c
compiling ./enc/cp949.c
compiling ./enc/trans/big5.c
configuring -test-/array/resize
configuring -test-/bug-3571
compiling ./enc/emacs_mule.c
configuring -test-/bug-3662
configuring -test-/funcall
configuring -test-/load/dot.dot
configuring -test-/old_thread_select
configuring -test-/st/numhash
configuring -test-/string
configuring -test-/wait_for_single_fd
configuring -test-/win32/dln
Failed to configure -test-/win32/dln. It will not be installed.
configuring -test-/win32/fd_setsize
Failed to configure -test-/win32/fd_setsize. It will not be installed.
compiling ./enc/trans/chinese.c
configuring bigdecimal
compiling ./enc/euc_jp.c
compiling ./enc/euc_kr.c
compiling ./enc/euc_tw.c
configuring continuation
configuring coverage
configuring curses
compiling ./enc/gb2312.c
compiling ./enc/gb18030.c
compiling ./enc/gbk.c
compiling ./enc/iso_8859_1.c
compiling ./enc/iso_8859_2.c
compiling ./enc/iso_8859_3.c
compiling ./enc/iso_8859_4.c
compiling ./enc/iso_8859_5.c
compiling ./enc/iso_8859_6.c
compiling ./enc/iso_8859_7.c
compiling ./enc/iso_8859_8.c
compiling ./enc/iso_8859_9.c
compiling ./enc/iso_8859_10.c
compiling ./enc/iso_8859_11.c
compiling ./enc/iso_8859_13.c
compiling ./enc/iso_8859_14.c
compiling ./enc/iso_8859_15.c
compiling ./enc/iso_8859_16.c
compiling ./enc/koi8_r.c
compiling ./enc/koi8_u.c
compiling ./enc/shift_jis.c
compiling ./enc/utf_16be.c
compiling ./enc/trans/emoji.c
compiling ./enc/utf_16le.c
compiling ./enc/utf_32be.c
compiling ./enc/utf_32le.c
compiling ./enc/windows_1251.c
linking encoding encdb.bundle
linking encoding big5.bundle
compiling ./enc/trans/emoji_iso2022_kddi.c
linking encoding cp949.bundle
linking encoding emacs_mule.bundle
linking encoding euc_jp.bundle
linking encoding euc_kr.bundle
linking encoding euc_tw.bundle
linking encoding gb2312.bundle
linking encoding gb18030.bundle
linking encoding gbk.bundle
linking encoding iso_8859_1.bundle
linking encoding iso_8859_2.bundle
linking encoding iso_8859_3.bundle
linking encoding iso_8859_4.bundle
linking encoding iso_8859_5.bundle
linking encoding iso_8859_6.bundle
linking encoding iso_8859_7.bundle
linking encoding iso_8859_8.bundle
linking encoding iso_8859_9.bundle
linking encoding iso_8859_10.bundle
linking encoding iso_8859_11.bundle
linking encoding iso_8859_13.bundle
linking encoding iso_8859_14.bundle
linking encoding iso_8859_15.bundle
linking encoding iso_8859_16.bundle
linking encoding koi8_r.bundle
linking encoding koi8_u.bundle
linking encoding shift_jis.bundle
linking encoding utf_16be.bundle
linking encoding utf_16le.bundle
linking encoding utf_32be.bundle
linking encoding utf_32le.bundle
linking encoding windows_1251.bundle
compiling ./enc/trans/emoji_sjis_docomo.c
compiling ./enc/trans/emoji_sjis_kddi.c
compiling ./enc/trans/emoji_sjis_softbank.c
compiling ./enc/trans/escape.c
compiling ./enc/trans/gb18030.c
compiling ./enc/trans/gbk.c
compiling ./enc/trans/iso2022.c
compiling ./enc/trans/japanese.c
compiling ./enc/trans/japanese_euc.c
compiling ./enc/trans/japanese_sjis.c
configuring date
configuring dbm
configuring digest
configuring digest/bubblebabble
configuring digest/md5
configuring digest/rmd160
compiling ./enc/trans/korean.c
configuring digest/sha1
configuring digest/sha2
compiling ./enc/trans/single_byte.c
configuring dl
compiling ./enc/trans/utf8_mac.c
compiling ./enc/trans/utf_16_32.c
linking transcoder transdb.bundle
linking transcoder big5.bundle
linking transcoder chinese.bundle
linking transcoder emoji.bundle
linking transcoder emoji_iso2022_kddi.bundle
linking transcoder emoji_sjis_docomo.bundle
linking transcoder emoji_sjis_kddi.bundle
linking transcoder emoji_sjis_softbank.bundle
linking transcoder escape.bundle
configuring dl/callback
configuring dl/win32
Failed to configure dl/win32. It will not be installed.
configuring etc
linking transcoder gb18030.bundle
linking transcoder gbk.bundle
linking transcoder iso2022.bundle
linking transcoder japanese.bundle
linking transcoder japanese_euc.bundle
linking transcoder japanese_sjis.bundle
linking transcoder single_byte.bundle
linking transcoder utf8_mac.bundle
linking transcoder utf_16_32.bundle
linking transcoder korean.bundle
making encs
configuring fcntl
configuring fiber
configuring fiddle
configuring gdbm
configuring iconv
configuring io/console
configuring io/nonblock
configuring io/wait
configuring json
configuring json/generator
configuring json/parser
configuring mathn/complex
configuring mathn/rational
configuring nkf
configuring objspace
configuring openssl
configuring pathname
configuring psych
configuring pty
configuring racc/cparse
configuring readline
configuring ripper
configuring sdbm
configuring socket
configuring stringio
configuring strscan
configuring syck
configuring syslog
configuring tk/tkutil
Failed to configure tk/tkutil. It will not be installed.
configuring win32ole
Failed to configure win32ole. It will not be installed.
configuring zlib
compiling resize.c
compiling bug.c
compiling bug.c
compiling passing_block.c
installing default bug libraries
installing default funcall libraries
linking shared-object -test-/bug-3571/bug.bundle
installing default bug libraries
linking shared-object -test-/funcall/funcall.bundle
linking shared-object -test-/bug-3662/bug.bundle
installing default resize libraries
linking shared-object -test-/array/resize.bundle
ld: can't open output file for writing: ../../../.ext/x86_64-darwin12.3.0/-test-/bug-3571/bug.bundle, errno=2 for architecture x86_64
ld: can't open output file for writing: ../../../.ext/x86_64-darwin12.3.0/-test-/bug-3662/bug.bundle, errno=2 for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ld: can't open output file for writing: ../../../.ext/x86_64-darwin12.3.0/-test-/funcall/funcall.bundle, errno=2 for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../../../.ext/x86_64-darwin12.3.0/-test-/bug-3662/bug.bundle] Error 1
make[1]: *** [ext/-test-/bug-3662/all] Error 2
make[2]: *** [../../../.ext/x86_64-darwin12.3.0/-test-/funcall/funcall.bundle] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [ext/-test-/funcall/all] Error 2
make[2]: *** [../../../.ext/x86_64-darwin12.3.0/-test-/bug-3571/bug.bundle] Error 1
make[1]: *** [ext/-test-/bug-3571/all] Error 2
ld: can't open output file for writing: ../../../../.ext/x86_64-darwin12.3.0/-test-/array/resize.bundle, errno=2 for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../../../../.ext/x86_64-darwin12.3.0/-test-/array/resize.bundle] Error 1
make[1]: *** [ext/-test-/array/resize/all] Error 2
make: *** [build-ext] Error 2

谢谢你们的时间!

【问题讨论】:

    标签: ruby macos makefile rvm


    【解决方案1】:

    我知道这个问题已经得到解答,但我想我会提供解决解决这个问题所需的命令:

    cd ~/.rvm/src/ruby-1.9.3-p392
    mkdir -p .ext/x86_64-darwin12.3.0/-test-/array
    mkdir -p .ext/x86_64-darwin12.3.0/-test-/bug-3571
    mkdir -p .ext/x86_64-darwin12.3.0/-test-/bug-3662
    mkdir -p .ext/x86_64-darwin12.3.0/-test-/funcall/
    mkdir -p .ext/x86_64-darwin12.3.0/-test-/load/dot.dot/
    mkdir -p .ext/x86_64-darwin12.3.0/-test-/old_thread_select
    mkdir -p .ext/x86_64-darwin12.3.0/-test-/st
    mkdir -p .ext/x86_64-darwin12.3.0/-test-/string
    mkdir -p .ext/x86_64-darwin12.3.0/-test-/wait_for_single_fd
    mkdir -p .ext/x86_64-darwin12.3.0/digest
    mkdir -p .ext/x86_64-darwin12.3.0/dl
    mkdir -p .ext/x86_64-darwin12.3.0/io
    mkdir -p .ext/x86_64-darwin12.3.0/json/ext
    mkdir -p .ext/x86_64-darwin12.3.0/mathn
    

    【讨论】:

    • 谢谢!正是那些文件夹!
    • 不客气!解决这个问题对我来说很乏味,所以我想我可以为其他人节省一些时间。
    • 我将其称为解决方法而不是解决方案。对于任何试图用 rvm 构建 ruby​​ 的人来说,这个问题仍然存在——如果他们没有阅读过这个网页的话。
    • 同意。最初我打算弄清楚为什么构建脚本没有自己创建这个目录,但我从来没有考虑过......我已经编辑了我的答案,而不是说它解决了问题。
    【解决方案2】:

    日志明确指出:

    ld: can't open output file for writing: ../../../.ext/x86_64-darwin12.3.0/
    

    给她能力:-) 只需创建一个文件夹并chown 即可。

    【讨论】:

    • 是的,我知道,但我不知道我必须在哪里使用 chown,我必须从哪里开始......“../../../”??
    • 可惜我离 OSX 还很远。你可以试试find / -type d -name bug-3571,因为它是唯一可区分的名字吗?
    • 我必须在 x86_64-darwin12.3.0 中创建多个文件夹......超过 10 个 mkdirs......但最终有效!谢谢@mudasobwa
    【解决方案3】:

    我遇到了同样的问题,但使用 ruby​​ 2.0.0

    这有帮助(感谢@dr4g0n):

    cd ~/.rvm/src/ruby-2.0.0-p195/.ext/x86_64-darwin12.4.0
    mkdir -p ./-test-/array
    mkdir -p ./-test-/bug-3571
    mkdir -p ./-test-/bug-3662
    mkdir -p ./-test-/funcall/
    mkdir -p ./-test-/load/dot.dot/
    mkdir -p ./-test-/old_thread_select
    mkdir -p ./-test-/st
    mkdir -p ./-test-/string
    mkdir -p ./-test-/wait_for_single_fd
    mkdir -p ./digest
    mkdir -p ./dl
    mkdir -p ./io
    mkdir -p ./json/ext
    mkdir -p ./mathn
    mkdir -p ./racc
    mkdir -p ./-test-/bug-5832/
    mkdir -p ./-test-/fatal/
    mkdir -p ./-test-/marshal/
    mkdir -p ./-test-/iter/
    mkdir -p ./-test-/num2int/
    mkdir -p ./-test-/path_to_class/
    mkdir -p ./-test-/symbol/
    mkdir -p ./-test-/typeddata/
    

    【讨论】:

    • 我现在正在为 Ruby 2.0.0 处理这些 mkdir 命令。谢谢您的帮助!有没有人知道一个开放的 rvm 问题以避免将来使用这种解决方法?
    猜你喜欢
    • 2012-07-23
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2016-03-15
    相关资源
    最近更新 更多