如何在 M1 Mac 上安装 Solana 开发工具
如果你刚开始在新买的 M1 Mac 上使用 Solana 进行开发,现在可能正焦头烂额。你按照Solana 的官方安装指南操作,第一次运行solanaCLI 命令时一切都很顺利……但是,当你尝试使用该solana-test-validator命令启动验证器时,却遇到了以下错误信息:
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……结果却遇到了另一个错误信息:
Ledger location: test-ledger
Log: test-ledger/validator.log
⠁
zsh: illegal hardware instruction solana-test-validator
🧐😕
问题在于 Solana 开发工具是为基于 Intel 的 x86 芯片编写的,而新款 M1 Mac 使用的是基于 ARM 的架构。解决办法并非卖掉你崭新的 MacBook 或翻出旧笔记本电脑。幸运的是,我们可以使用名为Rosetta的便捷工具,从源代码重新编译 Solana,使其能够在 Apple 芯片上运行。
1. 重新开始
如果你已经尝试按照 Solana 的指南设置环境,那么首先要做的是卸载所有内容并从头开始。
首先在 Finder 中找到“终端”应用,然后使用⌘I快捷键打开 Finder 的“检查器”窗口。确保“使用 Rosetta 打开”选项已禁用,然后重启“终端”。
现在我们可以彻底卸载所有程序了。首先卸载 Solana:
rm -rf /Users/USERNAME/.local/share/solana/
然后卸载 Rust:
rustup self uninstall
2. 设置 Rosetta
卸载 Solana 和 Rust 后,您的本地开发环境将处于干净状态,可以重新开始。这次我们首先安装 Rosetta:
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
现在返回 Finder 窗口,创建终端应用程序的副本。
我们将创建两个版本的终端:一个使用 Rosetta,另一个不使用。我建议将重复的终端实例命名为“Terminal Rosetta”,这样就能始终清楚地区分你正在使用的版本。
要在终端 Rosetta版本中启用 Rosetta ,请⌘I再次按下该键调出 Finder 的检查器窗口,并确保“使用 Rosetta 打开”选项已启用。
从现在开始,我们将只使用Terminal Rosetta应用,因此我建议您关闭或最小化现有的终端窗口,以免混淆。接下来,请打开Terminal Rosetta窗口。
3. 安装依赖项
让我们开始安装 Solana 运行所需的所有依赖项。在Rosetta shell 终端中,运行以下命令安装 Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
接下来,我们来安装 Homebrew。注意我们的命令以arch -x86_64前缀开头。这告诉 Rosetta 使用 x86 指令集执行以下命令。
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
我们还要安装 Coreutils 和 OpenSSL:
arch -x86_64 brew install coreutils openssl@1.1
现在我们需要设置一个配置文件,以便 Cargo 知道如何为我们的机器编译 Rust 代码。创建一个新文件,并将~/.cargo/config以下构建配置粘贴到其中:
[target.x86_64-apple-darwin]
rustflags = [
"-C", "link-arg=-undefined",
"-C", "link-arg=dynamic_lookup",
]
[target.aarch64-apple-darwin]
rustflags = [
"-C", "link-arg=-undefined",
"-C", "link-arg=dynamic_lookup",
]
4. 安装并构建 Solana
导航到一个稳定的目录,用于保存 Solana 源代码。例如,我使用一个伞形文件夹来存放我的所有项目~/Developer。
克隆Solana 代码库,然后进入 Solana 目录:
git clone https://github.com/solana-labs/solana.git
cd solana
现在让我们使用 Cargo 来编译 Solana 源代码:
cargo build
接下来运行安装脚本。这需要一些时间,您可以趁此机会去喝杯咖啡。
./scripts/cargo-install-all.sh .
最后,更新您的配置文件PATH,以便终端知道在哪里可以找到 Solana CLI 命令:
export PATH=$PWD/bin:$PATH
5. 尽情玩耍!
如果你已经做到这一步,恭喜你!你已经成功下载了 Solana 源代码,并使用 Rosetta 将其编译后在你的 M1 Mac 上运行。
让我们验证一下一切是否按预期运行。首先,请确保您可以使用 Solana CLI 命令:
solana
现在到了见证奇迹的时刻,让我们启动一个本地测试验证器!
solana-test-validator
如果配置正确,验证器将开始运行并输出其状态,如下所示:
现在,您的本地计算机上已经运行了一个 Solana 验证器,您可以运行类似solana balance这样的命令,solana transfer将交易提交到您自己的个人开发网络。
笔记
如果您在按照本指南操作时遇到任何问题,请在评论区留言或在推特上私信我,以便我发布修订版。迫不及待想看看您的作品!
文章来源:https://dev.to/nickgarfield/how-to-install-solana-dev-tools-on-an-m1-mac-kfn



