DEV Community

Cover image for How to install Solana dev tools on an M1 Mac

How to install Solana dev tools on an M1 Mac

Nicholas Garfield on October 01, 2021

If you're just getting started with Solana development on a new M1 Mac, you might be pulling your hair out right now. Everything was going great as...
Collapse
 
pradan profile image
Prashant Dandriyal

Hi Nick. Kudos for the good work. Just wanted to point out that while installing arch -x86_64 brew install openssl@1.1 on the rosetta terminal, I got this brew error:

Error: Cannot install under Rosetta 2 in ARM default prefix (/opt/homebrew)!
To rerun under ARM use:
    arch -arm64 brew install ...
To install under x86_64, install Homebrew into /usr/local.
Enter fullscreen mode Exit fullscreen mode

I don't know why this wasn't experienced by anybody else. I am looking into this and would like to know if someone already solved it. 🤠

Collapse
 
abhi3700 profile image
Abhijit Roy • Edited

Finally! I resolved this issue. Now, I am able to start a localnet node in my Mac M1.

From this step where, you are stuck, just continue installing under ARM architecture. Then, follow my notes here. github.com/abhi3700/sol-playground...

You will be able to run on M1. I tested for Solana version 1.8.5.

Collapse
 
abhi3700 profile image
Abhijit Roy

Even I am facing this same issue.

Would like to hear from reply from others

Collapse
 
mizi_san_ profile image
Mizi San

I wasn't able to run ./scripts/cargo-install-all.sh .

Collapse
 
aekasitt profile image
Sitt Guruvanich

According to this commit on Solana repo, I think you need to install greadlink first using the following command

arch -arm64 brew install coreutils
Enter fullscreen mode Exit fullscreen mode
Collapse
 
cervoneluca profile image
Luca Cervone

at line 13 of cargo-install-all.sh

change this:

cargo="$("${readlink_cmd}" -f "${here}/../cargo")"

to this:

cargo="cargo"

then run

./scripts/cargo-install-all.sh .

It should work

Collapse
 
saturn profile image
saturn • Edited

For anyone who might encounter this, after editing the cargo-install-all.sh file I would get:
zsh: operation not permitted: ./scripts/cargo-install-all.sh
Apple apparently puts the file in quarantine, running
xattr -d com.apple.quarantine solved it !

Collapse
 
cervoneluca profile image
Luca Cervone • Edited

anyway, do not use

git clone https://github.com/solana-labs/solana.git

Since it will download the current version of Solana, that right now (November, the 7th 2021), is the 1.9.0. Even if this version will build and install correctly on M1 macs, you'll have issues later when you try to send transactions to the Solana network.

Instead, download the 1.8.2 version and follow all the above steps.

Collapse
 
robbie_white_52dcb9f0c821 profile image
robbie white

I am at the point where I have to setup config file so Cargo knows how to compile Rust codes, I did not have a folder named config so I created that, then in that folder I created a file and named it rust code and pasted the given code in. and when I run cargo build I get an error saying it could not find cargo.toml
Am i doing something wrong?

Collapse
 
robbie_white_52dcb9f0c821 profile image
robbie white

ok so i figured it out, you do not make a folder, you just make the file and name it config. so that fixed that.

Collapse
 
dige93 profile image
dige93

MacBook-Pro ~ % solana-test-validator
dyld[19265]: Library not loaded: /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib
Referenced from: /Users/dige/.local/share/solana/install/releases/1.8.5/solana-release/bin/solana-test-validator
Reason: tried: '/usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib' (no such file), '/usr/local/lib/libssl.1.1.dylib' (no such file), '/usr/lib/libssl.1.1.dylib' (no such file)
zsh: abort solana-test-validator

Can't find a solution to this.

Collapse
 
robbie_white_52dcb9f0c821 profile image
robbie white

I am having a problem with the updating my path, I went to the .zshrc and added the given path and it when I do the last step to see if solana is working I get and error saying command not found. any help or ideas of what I may have done wrong?

Collapse
 
csjcode profile image
CSJcode

I'm using bash but just did the following and it worked fine, should work if you fill in ~/.zshrc:

echo 'export PATH=$PWD/bin:$PATH' >> ~/.bash_profile

Collapse
 
csjcode profile image
CSJcode

Thank you for taking the time and effort to do this. This was very helpful fixing validator errors after I got my new M1 mac. I did have to do some additional minor config edits, such as suggested by Luca Cervone in the discussion here... but your article got me 95% there. Thanks!

Collapse
 
indie_republik profile image
indieRepublik

I tried to run the solana-test-validator and got message: Notice! No wallet available. solana airdrop localnet SOL after creating one

Ledger location: test-ledger
Log: test-ledger/validator.log
⠁ Initializing... zsh: illegal hardware instruction solana-test-validator

Collapse
 
bluenights004 profile image
Ocean&Sky

Hi newbie in solana dev here, I got stuck at step "cargo build" (after compiling solana source code) receiving error: failed to run custom build command for tikv-jemalloc-sys v0.4.2+5.2.1-patched.2

Here's my current rust and other dependencies version and using Mac M1 hardware.

Image description

I also tried to use sudo apt update but no avail. However on this site substrate.stackexchange.com/questi..., i found answer that suggesting to manually update to current version of tikv-jemalloc-sys, maybe this can be a solution but no knowledge on how to do that.

Collapse
 
nimishmadan98 profile image
Nimish • Edited

I am able to run solana-test-validator but when I open other terminal to execute solana commands it gives "-bash: solana: command not found". Could someone please help here?
Also if I close the terminal and start again, I have to do all the steps again.

Collapse
 
thorstenhirsch profile image
Thorsten Hirsch

Thanks for the tutorial. I would only change one step: install Rust with Homebrew.

Collapse
 
dgeisz profile image
Danny Geisz

Excellent post! low-key a life saver

Collapse
 
cervoneluca profile image
Luca Cervone

THANK YOU!

Collapse
 
whamsicore profile image
Payton

Love this. Thank you SO much!

Collapse
 
edwinalecho profile image
Elshore梦

I can't thank you enough.

Collapse
 
alex427 profile image
zhiguang

Many thanks, Nick!
it works, and now I have a validator successfully running on mac.

Collapse
 
alfieqashwa profile image
alfieqashwa

Thank you from Indonesia, you saved my day.

Collapse
 
alex427 profile image
zhiguang

by the way, cmake is also necessary during the cargo build.