M1 Mac에서의 solana 개발 환경 세팅

Jay Soh·2022년 2월 16일
1

dev

목록 보기
1/3

최근에 M1맥북에서 솔라나 개발환경 셋팅 관련해서 애먹었는데,
다른 분들도 혹시나 비슷한 경험을 하신다면, 괜한 시간 낭비하지 마시라고 올립니다.
구글링해도 솔루션이 잘 안나오더라고요.

TL;DR

  • 솔라나 개발환경은 이더리움과 다르게 불친절하다.
  • M1 맥에서의 이슈가 거의 1년은 되가는데도, M1 맥 환경을 제대로 지원해주지 않는다.
  • rust, homebrew, solana 등등 기존에 설정한 환경 있으면 다 삭제하고 로제타 환경에서 다시 깔면 된다.

[M1 Mac에서의 solana 개발 환경 이슈]

dyld: Library not loaded: /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib
  Referenced from: /Users/123/.local/share/solana/install/active_release/bin/solana-test-validator
  Reason: image not found
zsh: abort      solana-test-validator

test-solana-validator를 입력하면 위와 같은 에러가 뜬다.
https://github.com/solana-labs/example-helloworld/issues/200
위 깃헙을 포함하여, "solana-test-validator M1 mac openssl"으로 구글링을 하면
나와 같이 애먹고 있는 아주 많은 사람들이 깃헙과 스택 오버플로우에 질문을 올렸다.

다만 그 질문에 대한 답변 대부분은

  • openssl 다시 설치하세요.
  • homebrew update하세요.
  • openssl 1.0.2 버전으로 switch하세요.
    (참고로 homebrew 최신버전부터는 switch를 지원하지 않는다.)
    등의 전혀 도움되지 않는 답변들이 대부분이다.

[해결 방법]

거의 3~4시간동안 열심히 구글링한 결과 얻은 결과는 아래 Reference와 같다.
Reference의 두 페이지를 참고하여 진행하면 되는데 요약하자면 다음과 같다.
1. rust, homebrew, solana 설치된 것들 있으면 다 삭제한다.
2. rosetta 설치하고, 터미널을 로제타 환경으로 연다. (이왕이면 로제타 전용 터미널을 복제하면 좋다.)
3. rust를 다시 깐다.
4. -x86_64 (인텔 맥 환경) 커맨드를 사용하여 homebrew, coreutils, openSSL등을 재설치한다.
5. solana를 다시 깔고, 이것저것 설치를 다 한 후에, solana-test-validator를 돌려본다.

--faucet-sol argument ignored, ledger already exists
⠤ Initializing...
⠁ 00:00:10 | Processed Slot: 26 | Confirmed Slot: 25 | Finalized Slot: 0 | Full

세팅 완료!

[소감]

  • 이더리움에 비하면 솔라나 개발환경 참 불친절하다.
  • M1맥에서 안되는 이슈 한 1년은 된 거 같은데, 좀 지원해줬으면 좋겠다.

[참고]

처음 위와 같은 문제가 생겼을 때에는 ~/solana/validator/ 디렉토리의 solana-test-validator 실행파일을 직접 실행해서,
test-validator를 돌려 devnet에 컨트랙트를 deploy 시켰다.
다만 anchor를 통해 contract를 test해보긴 위해서는 결국 터미널에서 test-validator를 직접 실행할 수 있어야 하는 문제가 있기에 다 뜯어 고쳤다.

위와 같이 실행파일을 통해 test-validator를 돌릴 수 있었던 이유는,
아마도 rust cargo로 build되었기 때문에,
프로젝트 실행에 필요한 모든 것들을 다 넣어서 실행파일을 컴파일했기 때문에 실행환경과 상관 없이 돌아갔던 것이 아닐까 싶다.
역시 러스트 짱짱.

[Reference]

https://dev.to/nickgarfield/how-to-install-solana-dev-tools-on-an-m1-mac-kfn
https://github.com/buildspace/buildspace-projects/blob/main/Solana_And_Web3/en/Section_2/Resources/m1_setup.md

profile
Interested in connecting multi-chains

0개의 댓글