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

TL;DR

  • 솔라나 개발환경은 이더리움과 다르게 불친절하다.
  • M1 맥에서의 이슈가 거의 1년은 되가는데도, solana CLI가 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
  • 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를 직접 실행할 수 있어야 하는 문제가 있기에 다 뜯어 고쳤다.

[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

--

--

Crypto-infra enthusiasts, especially in interoperability. personal page: c0wjay.xyz

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
c0wjay

c0wjay

Crypto-infra enthusiasts, especially in interoperability. personal page: c0wjay.xyz