문제 발생 상황

frum install 3.2.2 하는 경우 아래와 같은 문제가 발생했다.

$ frum install 3.2.2
==> Downloading https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.xz
==> Extracting ruby-3.2.2.tar.xz
==> Building Ruby 3.2.2
error: Can't build Ruby: make failed: . ./vm_opts.h
parse.c:9130:9: warning: variable 'yynerrs' set but not used [-Wunused-but-set-variable]
    int yynerrs = 0;
        ^
1 warning generated.
libffi_version: 3.4.0
yaml.h not found
bigdecimal.c:7161:18: warning: variable 'prec' set but not used [-Wunused-but-set-variable]
    SIGNED_VALUE prec;
                 ^
In file included from closure.c:1:
In file included from ./fiddle.h:46:
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/ffi/ffi.h:483:5: warning: 'FFI_GO_CLOSURES' is not defined, evaluates to 0 [-Wundef]
#if FFI_GO_CLOSURES
    ^
1 warning generated.
In file included from conversions.c:1:
In file included from ./fiddle.h:46:
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/ffi/ffi.h:483:5: warning: 'FFI_GO_CLOSURES' is not defined, evaluates to 0 [-Wundef]
#if FFI_GO_CLOSURES
    ^
1 warning generated.
In file included from fiddle.c:1:
In file included from ./fiddle.h:46:
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/ffi/ffi.h:483:5: warning: 'FFI_GO_CLOSURES' is not defined, evaluates to 0 [-Wundef]
#if FFI_GO_CLOSURES
    ^
1 warning generated.
1 warning generated.
In file included from function.c:1:
In file included from ./fiddle.h:46:
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/ffi/ffi.h:483:5: warning: 'FFI_GO_CLOSURES' is not defined, evaluates to 0 [-Wundef]
#if FFI_GO_CLOSURES
    ^
1 warning generated.
In file included from handle.c:2:
In file included from ./fiddle.h:46:
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/ffi/ffi.h:483:5: warning: 'FFI_GO_CLOSURES' is not defined, evaluates to 0 [-Wundef]
#if FFI_GO_CLOSURES
    ^
1 warning generated.
In file included from memory_view.c:1:
In file included from ./fiddle.h:46:
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/ffi/ffi.h:483:5: warning: 'FFI_GO_CLOSURES' is not defined, evaluates to 0 [-Wundef]
#if FFI_GO_CLOSURES
    ^
1 warning generated.
In file included from pinned.c:1:
In file included from ./fiddle.h:46:
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/ffi/ffi.h:483:5: warning: 'FFI_GO_CLOSURES' is not defined, evaluates to 0 [-Wundef]
#if FFI_GO_CLOSURES
    ^
1 warning generated.
In file included from pointer.c:10:
In file included from ./fiddle.h:46:
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/ffi/ffi.h:483:5: warning: 'FFI_GO_CLOSURES' is not defined, evaluates to 0 [-Wundef]
#if FFI_GO_CLOSURES
    ^
ripper.c:10310:9: warning: variable 'yynerrs' set but not used [-Wunused-but-set-variable]
    int yynerrs = 0;
        ^
1 warning generated.
1 warning generated.
/Users/iksflow/.frum/versions/.downloads/.tmpHQwf4y/ruby-3.2.2/lib/yaml.rb:3: warning: It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
uh-oh! RDoc had a problem:
cannot load such file -- psych

run with --debug for full backtrace
make: *** [rdoc] Error 1

 

원인 분석

Ruby 3.2.2버전을 설치하는데 필요한 의존성이 없어서 발생하는 오류이다.

 

해결 방법

아래 명령어를 실행해서 필요한 의존성을 설치한다. 그 다음 다시 frum install을 실행하면 잘 설치된다.

$ brew install autoconf openssl readline libyaml libffi
$ frum install 3.2.2