ruby - 使用 ruby-install 在 Mac OSX Catalina 上安装 Ruby 2.2
问题描述
这是我尝试安装 Ruby 2.2 时得到的结果:
$ ruby-install ruby 2.2.10
# ...
>>> Compiling ruby 2.2.10 ...
CC = clang
LD = ld
LDSHARED = clang -dynamic -bundle
CFLAGS = -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration -Wdivision-by-zero -Wdeprecated-declarations -Wextra-tokens -pipe
XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT -fPIE
CPPFLAGS = -I/opt/X11/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 -I. -I.ext/include/x86_64-darwin19 -I./include -I.
DLDFLAGS = -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 -Wl,-u,_objc_msgSend -Wl,-pie -framework CoreFoundation
SOLIBS = -lgmp
Apple clang version 12.0.0 (clang-1200.0.31.1)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
translating probes probes.d
. ./vm_opts.h
file2lastrev.rb: does not seem to be under a vcs: .
make: [.revision.time] Error 1 (ignored)
./revision.h unchanged
compiling main.c
compiling dmydln.c
compiling miniinit.c
compiling miniprelude.c
compiling array.c
compiling bignum.c
compiling class.c
compiling compar.c
compiling complex.c
compiling dir.c
compiling dln_find.c
compiling encoding.c
encoding.c:825:2: error: implicit declaration of function 'rb_str_change_terminator_length' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
rb_str_change_terminator_length(obj, oldtermlen, termlen);
^
1 error generated.
make: *** [encoding.o] Error 1
!!! Compiling ruby 2.2.10 failed!
- 操作系统版本:10.15.6
- 红宝石安装版本:0.7.1
关于如何调试或修复此问题的任何想法?在升级操作系统之前,我以前能够安装其他版本的 2.2。我还可以毫无问题地安装 Ruby 2.7 等更高版本
解决方案
显然忽略编译器警告也是一种选择
export optflags="-Wno-error=implicit-function-declaration"
如需进一步讨论,请参阅在 Mac Big Sur M1 上安装 Ruby 2.2.9 时出现问题
推荐阅读
- javascript - Android chrome,检测窗口底部的卡片/标签组栏
- html - input[type=password] IOS 不渲染键盘(Safari+Chrome)
- php - PHP - 解压缩/打开返回整数
- python - 将我的表格格式的文本转换为python中的数据帧
- python - 如何根据 pydatatable 中指定的索引选择观察值?
- reactjs - 如果 .map 不返回,则为 else 语句
- spring - 如何知道 Spring Batch 中哪个块失败并分配 Counter 值?
- flutter - 如何在 AnimatedContainer 中使用变量但仍恢复为默认属性
- python - 如何根据熊猫中的最后一个用户事件添加一行?
- python - 如何删除从图像中提取的不需要的文本?