Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

error: experimental Nix feature 'auto-allocate-uids' is disabled; use '--extra-experimental-features auto-allocate-uids' to override #883

Closed
jongschneider opened this issue Feb 23, 2024 · 1 comment

Comments

@jongschneider
Copy link

jongschneider commented Feb 23, 2024

I’ve been using nix with nix-darwin to manage my Mac system for the past month.

My setup is as follows:
macOS Sonoma version 14.3.1
architecture: aarch64-darwin
Nix downloaded using The Determinate Nix Installer
Nix-Darwin downloaded using Flake installation.

Last night I was browsing github and looking at various darwin nix configurations and came across this repo that sets

extraOptions = ''
  extra-nix-path = nixpkgs=flake:nixpkgs
  auto-allocate-uids = true             <--- the big problem!!!
  build-users-group = nixbld
  experimental-features = nix-command flakes auto-allocate-uids
'';

Ever since I added this extraOption and rebuilt my system using darwin-rebuild switch --flake ~/PATH/TO/MY-NIX-DARWIN-CONFIG/ I can no longer do anything using the nix cli.

❯ darwin-rebuild switch --flake ~/PATH/TO/MY-NIX-DARWIN-CONFIG/
building the system configuration...
error: experimental Nix feature 'auto-allocate-uids' is disabled; use '--extra-experimental-features auto-allocate-uids' to override
❯ nix develop
error: experimental Nix feature 'auto-allocate-uids' is disabled; use '--extra-experimental-features auto-allocate-uids' to override

I found this github PR related to the experimental feature auto-uid-allocation which states:

No, this will never work on macOS since it requires cgroups.

My current state is that the programs I’ve previously installed work. But I cannot update my computer using nix in any way - no new programs, no flake updates, no darwin configuration changes, etc. So my laptop is not bricked. It just is in stasis and I need to use conventional package management for my applications. And dev environments no longer work (rip nix develop).

So now I’m wondering what are my options?
Here are some things I’ve tried that have not worked:

  • I removed auto-allocate-uids = true from my config.
  • I tried passing --extra-experimental-features auto-allocate-uids flag with my nix commands.
  • I tried uninstalling nix to start from scratch and reinstall but this error keeps me from using the nix cli at all so I am unable to uninstall.
  • I tried manually updating my nix.conf file in the nix store where the current symlink of /etc/static/nix/nix.conf points to.

Is there any way to get past this? Any help would be greatly appreciated. I really love nix and am devastated that I broke it.

@jongschneider
Copy link
Author

I was able to fix the issue.
If anyone else experiences this problem or similar in the future check out:
DeterminateSystems/nix-installer#860
https://discourse.nixos.org/t/nix-on-macos-now-fails-because-i-set-auto-allocate-uids-true-like-an-idiot/40210

and this was my fix:


  1. use ls -alh /etc/static/nix/nix.conf and follow the symlinks to find the source location of nix.conf in the nix store.
  2. update this file in the store by removing auto-allocate-uids = true if it's there (it's read only by default so you will have to adjust the privileges save your changes).
  3. restart the nix daemon
sudo launchctl stop org.nixos.nix-daemon
sudo launchctl start org.nixos.nix-daemon

The big trick I was missing was manually restarting the nix daemon. It's all working now. Thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant