# Nixpkgs cache for musl binaries

**URL:** https://discourse.nixos.org/t/nixpkgs-cache-for-musl-binaries/45266
**Category:** Help
**Created:** [May 11, 2024, 10:09pm UTC](https://discourse.nixos.org/t/nixpkgs-cache-for-musl-binaries/45266 "2024-05-11T22:09:47Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![fzakaria](https://discourse.nixos.org/user_avatar/discourse.nixos.org/fzakaria/32/2643_2.png) [@fzakaria](https://discourse.nixos.org/u/fzakaria)
#### Post date: [May 11, 2024, 10:09pm UTC](https://discourse.nixos.org/t/nixpkgs-cache-for-musl-binaries/45266/1 "2024-05-11T22:09:48Z")

</div>

I noticed there was `pkgs.Musl` to rebuild packages with musl (not static).  
Does anyone maintain a Nix cache with prebuilt binaries for that?

I’m rebuilding the world apparently 🙂

---

<div class="post-metadata">

### Author: ![Thiago-Assis-T](https://discourse.nixos.org/user_avatar/discourse.nixos.org/thiago-assis-t/32/7320_2.png) [@Thiago-Assis-T](https://discourse.nixos.org/u/Thiago-Assis-T)
#### Post date: [June 25, 2024, 3:03pm UTC](https://discourse.nixos.org/t/nixpkgs-cache-for-musl-binaries/45266/2 "2024-06-25T15:03:03Z")

</div>

is there a way to rebuild my system with musl? that would be neat, i wouldn’t mind spending hours doing so, i’ve daily drien gentoo in the past…

i suppose something like:

```auto
  nixpkgs.config = {
    allowUnfree = true;
    localSystem = {
      system = "x86_64-linux";
      gcc.arch = "znver3";
      gcc.tune = "znver3";
    };
    pkgs = import pkgs.musl;
  };

```

however it didn’t seem to work…

---

<div class="post-metadata">

### Author: ![danielbarter](https://discourse.nixos.org/user_avatar/discourse.nixos.org/danielbarter/32/7420_2.png) [@danielbarter](https://discourse.nixos.org/u/danielbarter)
#### Post date: [June 25, 2024, 6:44pm UTC](https://discourse.nixos.org/t/nixpkgs-cache-for-musl-binaries/45266/3 "2024-06-25T18:44:18Z")

</div>

> [@How to override stdenv for all packages in mkShell](https://discourse.nixos.org/t/how-to-override-stdenv-for-all-packages-in-mkshell/10368/11):
>
> The correct thing to do has always been replaceStdenv: { pkgs ? import \<nixpkgs\> { config.replaceStdenv = { pkgs, ... }: pkgs.gcc12Stdenv; } }: pkgs.hello

---

<div class="post-metadata">

### Author: ![Thiago-Assis-T](https://discourse.nixos.org/user_avatar/discourse.nixos.org/thiago-assis-t/32/7320_2.png) [@Thiago-Assis-T](https://discourse.nixos.org/u/Thiago-Assis-T)
#### Post date: [June 25, 2024, 7:47pm UTC](https://discourse.nixos.org/t/nixpkgs-cache-for-musl-binaries/45266/4 "2024-06-25T19:47:45Z")

</div>

can you link me the docks or the source? would like to understand a bit more about this

---

<div class="post-metadata">

### Author: ![SergeK](https://discourse.nixos.org/user_avatar/discourse.nixos.org/sergek/32/2972_2.png) [@SergeK](https://discourse.nixos.org/u/SergeK)
#### Post date: [June 25, 2024, 8:17pm UTC](https://discourse.nixos.org/t/nixpkgs-cache-for-musl-binaries/45266/5 "2024-06-25T20:17:57Z")

</div>

I’d struggle to just give you the right answer to your original musl question, but note: `nixpkgs.config` declared in NixOS modules is the attrset passed on to (the lambda) `(import <nixpkgs>)` as the `config` argument; `localSystem` is not a nixpkgs config option, it’s another argument to `(import <nixpkgs>)`; it’s `import nixpkgs { config = { ... }; overlays = [...]; localSystem = ...; }`

---

<div class="post-metadata">

### Author: ![danielbarter](https://discourse.nixos.org/user_avatar/discourse.nixos.org/danielbarter/32/7420_2.png) [@danielbarter](https://discourse.nixos.org/u/danielbarter)
#### Post date: [June 25, 2024, 9:05pm UTC](https://discourse.nixos.org/t/nixpkgs-cache-for-musl-binaries/45266/6 "2024-06-25T21:05:42Z")

</div>

you know, it doesn’t seem to be documented!

Here is the code where `replaceStdenv` gets called though: [nixpkgs/pkgs/stdenv/custom/default.nix at 994692e08ef250029a191d294fbdc4664058bec0 · NixOS/nixpkgs · GitHub](https://github.com/NixOS/nixpkgs/blob/994692e08ef250029a191d294fbdc4664058bec0/pkgs/stdenv/custom/default.nix)
