如何将 Nix 包中的 libc 覆盖为 musl?

How do I override the libc in a Nix package to be musl?

我正在使用 Nix 作为 Rust 程序的依赖管理器。我有以下 default.nix(已简化,但有效):

rec {
  pkgs = import <nixpkgs> {};

  hello = pkgs.stdenv.mkDerivation rec {
    name = "rust-hello";

    buildInputs = [
      pkgs.rustc
    ];

    src = ./source;

    buildPhase = "rustc main.rs -o rust-hello";
    installPhase = ''
      mkdir -p $out/bin
      install -s rust-hello $out/bin
    '';
  };
}

我试图将所有依赖项(包括 Rust 编译器)的 libc 覆盖为 pkg.musl,但我没有这样做。如何实现?

试试 pkgsMusl 便捷属性 (source)

rec {
  pkgs = (import <nixpkgs> {}).pkgsMusl;
  # ...
}