我的 M1 芯片是否拒绝我的 Nix Build 命令?

Is my M1 chip rejecting my Nix Build commands?

我正在尝试 运行 Nix 命令来构建项目:

nix build -f default.nix plutus.haskell.packages.plutus-core.components.library

我收到了这个错误!

error: attribute 'aarch64-darwin' missing, at /nix/store/cyfj6bd0n0ckvkm67mhjyg1qcvrfgsg9-source/artifact.nix:11:10

'aarch64-darwin'是指64位架构吗?

您的 M1 芯片没有拒绝您的构建,但某些 Nix 表达式还没有为 M1 准备好。

plutus 由 IOHK iirc 编写,因此您可以向他们查询他们软件的 M1 支持状态。如果他们还没有 GitHub 问题或关于它的其他沟通,在您报告问题时告诉他们 ls /nix/store/cyfj6bd0n0ckvkm67mhjyg1qcvrfgsg9-source 的输出作为错误消息的上下文可能会有所帮助。如果您提到错误,我相信他们会愿意改进;他们无论如何都必须编辑该代码。

我遇到了同样的问题,我更改了 nix conf 以使用 x86_64-darwin 架构。所以基本上我编辑了 /etc/nix/nix.conf 并像这样保留它:

substituters        = https://hydra.iohk.io https://iohk.cachix.org https://cache.nixos.org/
trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= iohk.cachix.org-1:DpRUyj7h7V830dp/i6Nti+NEO2/nhblbov/8MW7Rqoo= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
# system = aarch64-darwin
system = x86_64-darwin
extra-platforms = x86_64-darwin aarch64-darwin

而刚刚 运行:

nix-env -iA nixpkgs.nix

加载与新架构相关的新pkg。我使用的来源是: https://www.reddit.com/r/cardano/comments/mmzut6/macos_plutus_playground_build_instructions/ https://github.com/NixOS/nixpkgs/issues/95903#issuecomment-869041761