发布于 2026-01-06 1 阅读
0

如何在 M1 Mac 上安装 Solana 开发工具

如何在 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
Enter fullscreen mode Exit fullscreen mode

也许你读了错误信息,灵机一动安装了 OpenSSL……结果却遇到了另一个错误信息:

Ledger location: test-ledger
Log: test-ledger/validator.log
zsh: illegal hardware instruction  solana-test-validator
Enter fullscreen mode Exit fullscreen mode

🧐😕

问题在于 Solana 开发工具是为基于 Intel 的 x86 芯片编写的,而新款 M1 Mac 使用的是基于 ARM 的架构。解决办法并非卖掉你崭新的 MacBook 或翻出旧笔记本电脑。幸运的是,我们可以使用名为Rosetta的便捷工具,从源代码重新编译 Solana,使其能够在 Apple 芯片上运行。

1. 重新开始

如果你已经尝试按照 Solana 的指南设置环境,那么首先要做的是卸载所有内容并从头开始。

首先在 Finder 中找到“终端”应用,然后使用⌘I快捷键打开 Finder 的“检查器”窗口。确保“使用 Rosetta 打开”选项已禁用,然后重启“终端”。

屏幕截图 2021-09-29 上午 11:38:58

现在我们可以彻底卸载所有程序了。首先卸载 Solana:

rm -rf /Users/USERNAME/.local/share/solana/
Enter fullscreen mode Exit fullscreen mode

然后卸载 Rust:

rustup self uninstall
Enter fullscreen mode Exit fullscreen mode

2. 设置 Rosetta

卸载 Solana 和 Rust 后,您的本地开发环境将处于干净状态,可以重新开始。这次我们首先安装 Rosetta:

/usr/sbin/softwareupdate --install-rosetta --agree-to-license
Enter fullscreen mode Exit fullscreen mode

现在返回 Finder 窗口,创建终端应用程序的副本。

屏幕截图 2021-10-01 下午12:30:51

我们将创建两个版本的终端:一个使用 Rosetta,另一个不使用。我建议将重复的终端实例命名为“Terminal Rosetta”,这样就能始终清楚地区分你正在使用的版本。

要在终端 Rosetta版本中启用 Rosetta ,请⌘I再次按下该键调出 Finder 的检查器窗口,并确保“使用 Rosetta 打开”选项已启用

屏幕截图 2021-10-01 下午12:35:23

从现在开始,我们将只使用Terminal Rosetta应用,因此我建议您关闭或最小化现有的终端窗口,以免混淆。接下来,请打开Terminal Rosetta窗口。

3. 安装依赖项

让我们开始安装 Solana 运行所需的所有依赖项。在Rosetta shell 终端中,运行以下命令安装 Rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Enter fullscreen mode Exit fullscreen mode

接下来,我们来安装 Homebrew。注意我们的命令以arch -x86_64前缀开头。这告诉 Rosetta 使用 x86 指令集执行以下命令。

arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Enter fullscreen mode Exit fullscreen mode

我们还要安装 Coreutils 和 OpenSSL:

arch -x86_64 brew install coreutils openssl@1.1
Enter fullscreen mode Exit fullscreen mode

现在我们需要设置一个配置文件,以便 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",
]
Enter fullscreen mode Exit fullscreen mode

4. 安装并构建 Solana

导航到一个稳定的目录,用于保存 Solana 源代码。例如,我使用一个伞形文件夹来存放我的所有项目~/Developer

克隆Solana 代码库,然后进入 Solana 目录:

git clone https://github.com/solana-labs/solana.git
cd solana
Enter fullscreen mode Exit fullscreen mode

现在让我们使用 Cargo 来编译 Solana 源代码:

cargo build
Enter fullscreen mode Exit fullscreen mode

接下来运行安装脚本。这需要一些时间,您可以趁此机会去喝杯咖啡。

./scripts/cargo-install-all.sh .
Enter fullscreen mode Exit fullscreen mode

最后,更新您的配置文件PATH,以便终端知道在哪里可以找到 Solana CLI 命令:

export PATH=$PWD/bin:$PATH
Enter fullscreen mode Exit fullscreen mode

5. 尽情玩耍!

如果你已经做到这一步,恭喜你!你已经成功下载了 Solana 源代码,并使用 Rosetta 将其编译后在你的 M1 Mac 上运行。

让我们验证一下一切是否按预期运行。首先,请确保您可以使用 Solana CLI 命令:

solana
Enter fullscreen mode Exit fullscreen mode

现在到了见证奇迹的时刻,让我们启动一个本地测试验证器!

solana-test-validator
Enter fullscreen mode Exit fullscreen mode

如果配置正确,验证器将开始运行并输出其状态,如下所示:

屏幕截图 2021-10-01 下午 4:04:29

现在,您的本地计算机上已经运行了一个 Solana 验证器,您可以运行类似solana balance这样的命令,solana transfer将交易提交到您自己的个人开发网络。

笔记

如果您在按照本指南操作时遇到任何问题,请在评论区留言或在推特上私信我,以便我发布修订版。迫不及待想看看您的作品!

文章来源:https://dev.to/nickgarfield/how-to-install-solana-dev-tools-on-an-m1-mac-kfn