우선 M1 MacBook Pro 에서 homebrew 를 이용하여 rbenv 를 설치하고 ruby 1.9.3-p551 버전을 설치하려고 하면 openssl 버전이 맞지 않아 (homebrew 로 M1 Mac 에 설치 가능한 openssl 은 1.1 버전이다. ruby 2.0 이하 버전은 openssl 1.0 이 필요하다) 설치가 되더라고 openssl 를 사용하여 개발이 불가능 하다.

물론 ruby 3.0 을 사용하면 해결되는 문제지만 어쩔수 없이 1.9 버전대를 사용해야할 경우가 있다. 물론… openssl 을 안쓰면된다… 하지만 ㅠㅠ 1.9 버전대를 사용하고 openssl 을 꼭 써야하는 상황이기에 어떻게든 해결 방법을 찾아야 했다.

결론은 openssl 1.0 버전을 컴파일해서 설치하고 그걸 이용해서 ruby 를 설치하기로 마음먹고 구글링을 통해 종합해서 해결 방법을 찾아낸다.

https://rubyon.co.kr/wp-content/uploads/2021/03/openssl-OpenSSL_1_0_2u.zip

위 파일은 openssl 1.0.2u 버전의 소스 파일이다.

위 소스로 arm64 로 컴파일을 하기위해서 약간의 patch 가 필요하다.

https://rubyon.co.kr/wp-content/uploads/2021/03/openssl-1.0.2u-darwin-arm64.patch_.zip

소스 파일과 patch 파일의 압축을 풀고 patch 파일은 소스 디렉토리의 root 에 넣는다.

(configure 파일과 같은 디렉토리에 넣으면 됨)

그리고

소스 디렉토리에 들어가

patch -p1 < openssl-1.0.2u-darwin-arm64.patch

명령어로 patch 를 진행후

아래 명령어를 이용해 configure 후 컴파일후 설치를 진행하면 된다.

./Configure darwin64-arm64-cc --prefix=/opt/homebrew/opt/openssl@1.0

make

make install

/opt/homebrew/opt/openssl@1.0  이부분은 M1 homebrew 가 설치된 디렉토리에 openssl@1.0 버전을 설치하겠다는 선언이다

설치가 정상적으로 되었다면 ruby 1.9.3-p551 버전을 rbenv 로 설치해주면 끝!

RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.0)" RUBY_CFLAGS="-w" rbenv install 1.9.3-p551

RUBY_CFLAGS=”-w” 부분은 rbenv 로 ruby 1.9.3-p551 을 설치할때 에러가 나는데 그 부분을 무시하기 위해 추가해준다. (안그러면 설치가 안됨)

끝!