NixOS / nix

Nix, the purely functional package manager
https://nixos.org/
GNU Lesser General Public License v2.1
12.16k stars 1.47k forks source link

"NixOS" error message via `nix upgrade-nix` on macOS + nix-darwin #5499

Open abathur opened 2 years ago

abathur commented 2 years ago

I was looking at some vague reports that nix upgrade-nix may not be working, so I tried a dry run command and got an amusing error:

$ nix upgrade-nix --dry-run
error: Nix on NixOS must be upgraded via 'nixos-rebuild'

But this is on macOS. The error condition is assuming only NixOS will have /run/current-system, though nix-darwin also uses it.

I assume it should be an error (@LnL7?), but the message definitely made me double-check that I wasn't SSHed... :)

Hoverbear commented 11 months ago

I bumped into this today!

I was on one of our Macs and was trying to upgrade Nix and ran this:

[1] ephemeraladmin@mac-obliging-starfish> uname -a                                                                    
Darwin mac-obliging-starfish.local 23.0.0 Darwin Kernel Version 23.0.0: Fri Sep 15 14:41:43 PDT 2023; root:xnu-10002.1.13~1/RELEASE_ARM64_T6000 arm64

ephemeraladmin@mac-obliging-starfish> nix --version                                                                  
nix (Nix) 2.17.0

[1] ephemeraladmin@mac-obliging-starfish> sudo nix upgrade-nix                                                        
error: Nix on NixOS must be upgraded via 'nixos-rebuild'

[1] ephemeraladmin@mac-obliging-starfish> nix run nixpkgs#nix -- upgrade-nix                                          
error: Nix on NixOS must be upgraded via 'nixos-rebuild'

[1] ephemeraladmin@mac-obliging-starfish> sudo nix run nixpkgs#nixUnstable -- upgrade-nix                             
error: Nix on NixOS must be upgraded via 'nixos-rebuild'

[1] ephemeraladmin@mac-obliging-starfish> sudo nix run github:nixos/nix/2.18.1#nix -- upgrade-nix                     
error: Nix on NixOS must be upgraded via 'nixos-rebuild'

@grahamc noted that this machine had a nix version in it's nix-darwin config:

  environment.systemPackages =
    [
      pkgs.nix
    ];

We removed this from the machine's configuration then rebuilt the machine. Now, the problem appears to be resolved.