当我试图使用rbenv在我的mac上安装ruby2.6.6时,我收到了一条“构建失败”的消息。
最初,我按以下方式运行它
% rbenv install 2.6.6
Downloading ruby-2.6.6.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.6.tar.bz2
Installing ruby-2.6.6...
ruby-build: using readline from homebrew
BUILD FAILED (macOS 12.0 using ruby-build 20210825)
Inspect or clean up the working tree at /var/folders/zs/rjdwp8ws5_s4gjd40lj1q2gr0000gn/T/ruby-build.20210912210429.75083.Uqwy5z
Results logged to /var/folders/zs/rjdwp8ws5_s4gjd40lj1q2gr0000gn/T/ruby-build.20210912210429.75083.log
Last 10 log lines:
checking build system type... x86_64-apple-darwin13.4.0
checking host system type... x86_64-apple-darwin13.4.0
checking target system type... x86_64-apple-darwin13.4.0
checking for x86_64-apple-darwin13.4.0-clang... (cached) x86_64-apple-darwin13.4.0-clang
checking for x86_64-apple-darwin13.4.0-gcc... (cached) x86_64-apple-darwin13.4.0-clang
checking whether the C compiler works... no
configure: error: in `/var/folders/zs/rjdwp8ws5_s4gjd40lj1q2gr0000gn/T/ruby-build.20210912210429.75083.Uqwy5z/ruby-2.6.6':
configure: error: C compiler cannot create executables
See `config.log' for more details
make: *** No targets specified and no makefile found. Stop.
正如您在输出中看到的,“检查C编译器是否工作.否”,我认为编译器工作不正常,并寻找解决方案。
有一个通过指定GCC路径来运行它的解决方案,我使用它作为引用来运行它,如下所示。
CC=/usr/bin/gcc rbenv install 2.6.6
然而,结果是“构建失败”。
gcc的版本如下
%gcc --version
Configured with: --prefix=/Applications/Xcode-beta.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 13.0.0 (clang-1300.0.29.3)
Target: x86_64-apple-darwin21.1.0
Thread model: posix
InstalledDir: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
指定gcc路径时的输出和日志如下。
% CC=/usr/bin/gcc rbenv install 2.6.6
CC=/usr/bin/gcc rbenv install 2.6.6
Downloading ruby-2.6.6.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.6.tar.bz2
Installing ruby-2.6.6...
ruby-build: using readline from homebrew
BUILD FAILED (macOS 12.0 using ruby-build 20210825)
Inspect or clean up the working tree at /var/folders/zs/rjdwp8ws5_s4gjd40lj1q2gr0000gn/T/ruby-build.20210912211846.75422.XoStEO
Results logged to /var/folders/zs/rjdwp8ws5_s4gjd40lj1q2gr0000gn/T/ruby-build.20210912211846.75422.log
Last 10 log lines:
transform_mjit_header: SKIPPED to transform __inline_isinff
transform_mjit_header: SKIPPED to transform __inline_isfinitel
transform_mjit_header: SKIPPED to transform __inline_isfinited
transform_mjit_header: SKIPPED to transform __inline_isfinitef
transform_mjit_header: SKIPPED to transform __darwin_fd_clr
transform_mjit_header: SKIPPED to transform __darwin_fd_set
transform_mjit_header: SKIPPED to transform __darwin_fd_isset
transform_mjit_header: SKIPPED to transform __darwin_check_fd_set
transform_mjit_header: SKIPPED to transform __sputc
ln -sf ../../../.ext/include/x86_64-darwin13/rb_mjit_min_header-2.6.6.h include/ruby-2.6.0/x86_64-darwin13/rb_mjit_min_header-2.6.6.h
我以为gcc没有正确编译,所以我试着用自制软件重新安装它,但没有成功。
我很难找到解决这个问题的办法。如果有人能告诉我该怎么做,我会感谢你的回应。
发布于 2021-09-12 13:20:26
YARV 2.6不支持苹果硅。
正如您在用于跟踪YARV的哪些分支的问题--苹果硅的修复需要移植到中看到的,2.6被标记为"REQUIRED",这意味着它需要一个后端端口才能工作,但是这个后端端口还没有完成。(与被标记为“已完成”的2.7相比)
Backport:2.5:未知,2.6:必需,2.7:已完成
考虑到回到2.7的港口发生在一年前,我们可以假设维护人员不打算将其应用于2.6。这是有意义的:YARV 2.6处于“安全维护”状态,这意味着只进行了安全修复,这不是一个安全问题。
发布于 2022-05-10 17:36:14
这篇博客文章上的解决方案对我有效。作者建议:
RUBY_CONFIGURE_OPTS=--with-readline-dir="$(abrew --prefix readline)" rbenv install 3.0.0
但是,正如它提到的那样,您不再需要为Intel/M1 Mac加载不同版本的Homebrew,您不再需要设置abrew
和ibrew
。所以,对我有用的是:
RUBY_CONFIGURE_OPTS=--with-readline-dir="$(brew --prefix readline)" rbenv install 2.6.6
注意从abrew
到brew
的简单更改。
发布于 2022-01-24 05:24:34
可以使用以下链接在m1上安装RUBY=-DUSE_FFI_CLOSURE_ALLOC rbenv Install2.6.6 https://almonta2021blog.com/%E3%80%90ruby%E3%80%91m1-mac%E3%81%A7ruby%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%AE%E9%9A%9B%E3%81%AB%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%A8%E3%81%AA%E3%82%8B/
https://stackoverflow.com/questions/69151222
复制相似问题