当运行ruby-install时,它无法构建。这也在rbenv issues (https://github.com/rbenv/ruby-build/issues/1725)中报告了。
例如,在安装ruby 2.6.8时
# installing via ruby-install ( https://github.com/postmodern/ruby-install )
ruby-install ruby 2.6.8它会导致以下错误
ossl_x509store.c:452:30: note: ')' token is here
result = rb_funcall(ctx, rb_intern("verify"), 0);
^~~~~~~~~~~~~~~~~~~
../.././include/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
^
../.././include/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
rb_funcallv(recv, mid, \
^~~
6 warnings generated.
linking shared-object openssl.bundle
installing default openssl libraries
make[2]: Leaving directory '/Users/xxxxx/src/ruby-2.6.8/ext/openssl'
make[2]: Entering directory '/Users/xxxxx/src/ruby-2.6.8/ext/ripper'
extracting ripper.y from ../.././parse.y
compiling compiler ripper.y
ripper.y:762.9-16: syntax error, unexpected identifier, expecting string
make[2]: *** [Makefile:332: ripper.c] Error 1
make[2]: Leaving directory '/Users/xxxxx/src/ruby-2.6.8/ext/ripper'
make[1]: *** [exts.mk:257: ext/ripper/all] Error 2
make[1]: Leaving directory '/Users/xxxxx/src/ruby-2.6.8'
make: *** [uncommon.mk:286: build-ext] Error 2
!!! Compiling ruby 2.6.8 failed!发布于 2021-10-05 19:22:38
当我运行以下命令时,我也遇到了同样的问题:ruby-install ruby 2.6.8 -- --with-openssl-dir=$(brew --prefix openssl@1.1)。
我用brew install bison@2.7更新了bison,并运行export PATH="$(brew --prefix bison@2.7)/bin:$PATH"来修复ripper。然后,重新运行初始的ruby命令起作用了!
发布于 2021-09-30 14:46:49
似乎是编译器的问题。首先,确保正确安装了xcode。在我的例子中,我之前已经安装了它,但你可以选择重新安装以确保。希望这能帮助人们节省时间来解决这个问题,因为编译它需要几分钟。
# check xcode, should yield : /Library/Developer/CommandLineTools
xcode-select -p
# check xcode, should yield : xcode-select version 2384
xcode-select -v
# install xcode-select
xcode-select --install
# reinstall openssl and version 3
brew reinstall openssl@1.1
# install build dependancies
brew install openssl readline libyaml zlib bison bison@2.7
# ensure build is using bison
export PATH="$(brew --prefix bison@2.7)/bin:$PATH"
# set ruby compilation flags
export CFLAGS="-Wno-error=implicit-function-declaration"
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1) --with-readline-dir=$(brew --prefix readline) --with-libyaml-dir=$(brew --prefix libyaml) --with-zlib-dir=$(brew --prefix zlib)"
# install ruby via ruby-install
ruby-install ruby 2.6.8发布于 2021-10-05 13:15:33
我不能通过编译在Big Sur上安装任何红宝石。我明白了:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/AuthSession.h:32,
from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/Security.h:42,
from random.c:342:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/Authorization.h:193:14: error: variably modified 'bytes' at file scope
193 | char bytes[kAuthorizationExternalFormLength];
| ^~~~~
make: *** [random.o] Error 1
!!! Compiling ruby 2.7.4 failed!下面是我在ruby-install上的设置:
xcode-选择版本2384
BASERUBY = /usr/local/opt/ruby@2.7/bin/ruby --disable=gems
CC = gcc
LD = ld
LDSHARED = gcc -dynamiclib
CFLAGS = -O2 -fno-tree-dce -fno-optimize-sibling-calls -Wno-error=implicit-function-declaration -pipe
XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -fPIE -DCANONICALIZATION_FOR_MATHN -I. -I.ext/include/x86_64-darwin20 -I./include -I. -I./enc/unicode/12.1.0
CPPFLAGS = -I/usr/local/opt/llvm/include -I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/readline/include -I/usr/local/opt/libyaml/include -I/usr/local/opt/gdbm/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT
DLDFLAGS = -L/usr/local/opt/bison/lib -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/gdbm/lib -fstack-protector-strong -pie -framework Security -framework Foundation
SOLIBS = -lpthread -ldl -lobjc
LANG = en_US.UTF-8
LC_ALL =
LC_CTYPE =
MFLAGS =gcc (自制版GCC 11.2.0) 11.2.0
https://stackoverflow.com/questions/69394316
复制相似问题