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

Installation Error: _nixbld1 User Already Exists #11398

Closed
1 of 3 tasks
SmolSoftBoi opened this issue Sep 1, 2024 · 3 comments
Closed
1 of 3 tasks

Installation Error: _nixbld1 User Already Exists #11398

SmolSoftBoi opened this issue Sep 1, 2024 · 3 comments
Labels
installer macos Nix on macOS, aka OS X, aka darwin

Comments

@SmolSoftBoi
Copy link

Platform

  • Linux:
  • macOS
  • WSL

Additional information

Output

(base) ~ % sh <(curl -L https://nixos.org/nix/install) % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 4267 100 4267 0 0 3285 0 0:00:01 0:00:01 --:--:-- 4166k downloading Nix 2.24.4 binary tarball for x86_64-darwin from 'https://releases.nixos.org/nix/nix-2.24.4/nix-2.24.4-x86_64-darwin.tar.xz' to '/var/folders/_p/qqr8f87j1nq0_275vkj855p40000gn/T/nix-binary-tarball-unpack.XXXXXXXXXX.Ma1nJOUnN8'... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 17.6M 100 17.6M 0 0 6575k 0 0:00:02 0:00:02 --:--:-- 6577k Switching to the Multi-user Installer Welcome to the Multi-User Nix Installation

This installation tool will set up your computer with the Nix package
manager. This will happen in a few stages:

  1. Make sure your computer doesn't already have Nix. If it does, I
    will show you instructions on how to clean up your old install.

  2. Show you what I am going to install and where. Then I will ask
    if you are ready to continue.

  3. Create the system users (uids [301..332]) and groups (gid 30000)
    that the Nix daemon uses to run builds. To create system users
    in a different range, exit and run this tool again with
    NIX_FIRST_BUILD_UID set.

  4. Perform the basic installation of the Nix files daemon.

  5. Configure your shell to import special Nix Profile files, so you
    can use Nix.

  6. Start the Nix daemon.

Would you like to see a more detailed list of what I will do?
[y/n] n

---- let's talk about sudo -----------------------------------------------------
This script is going to call sudo a lot. Every time I do, it'll
output exactly what it'll do, and why.

Just like this:

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo echo

to demonstrate how our sudo prompts look

This might look scary, but everything can be undone by running just a
few commands. I used to ask you to confirm each time sudo ran, but it
was too many times. Instead, I'll just ask you this one time:

Can I use sudo?
[y/n] y

Yay! Thanks! Let's get going!

~~> Fixing any leftover Nix volume state
Before I try to install, I'll check for any existing Nix volume config
and ask for your permission to remove it (so that the installer can
start fresh). I'll also ask for permission to fix any issues I spot.

~~> Checking for artifacts of previous installs
Before I try to install, I'll check for signs Nix already is or has
been installed on this system.

---- Nix config report ---------------------------------------------------------
Temp Dir: /var/folders/_p/qqr8f87j1nq0_275vkj855p40000gn/T/tmp.duGjAf9D4m
Nix Root: /nix
Build Users: 32
Build Group ID: 30000
Build Group Name: nixbld

build users:
Username: UID
_nixbld1: 301
_nixbld2: 302
_nixbld3: 303
_nixbld4: 304
_nixbld5: 305
_nixbld6: 306
_nixbld7: 307
_nixbld8: 308
_nixbld9: 309
_nixbld10: 310
_nixbld11: 311
_nixbld12: 312
_nixbld13: 313
_nixbld14: 314
_nixbld15: 315
_nixbld16: 316
_nixbld17: 317
_nixbld18: 318
_nixbld19: 319
_nixbld20: 320
_nixbld21: 321
_nixbld22: 322
_nixbld23: 323
_nixbld24: 324
_nixbld25: 325
_nixbld26: 326
_nixbld27: 327
_nixbld28: 328
_nixbld29: 329
_nixbld30: 330
_nixbld31: 331
_nixbld32: 332

Ready to continue?
[y/n] y

---- Preparing a Nix volume ----------------------------------------------------
Nix traditionally stores its data in the root directory /nix, but
macOS now (starting in 10.15 Catalina) has a read-only root directory.
To support Nix, I will create a volume and configure macOS to mount it
at /nix.

~~> Configuring /etc/synthetic.conf to make a mount-point at /nix

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo /usr/bin/ex -u NONE -n /etc/synthetic.conf

to add Nix to /etc/synthetic.conf

Password:

~~> Creating a Nix volume

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo /usr/sbin/diskutil apfs addVolume disk1 APFS Nix Store -nomount

to create a new APFS volume 'Nix Store' on disk1

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo /usr/sbin/diskutil unmount force disk1s7

to ensure the Nix volume is not mounted

disk1s7 was already unmounted

~~> Configuring /etc/fstab to specify volume mount options

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo /usr/sbin/vifs

to add nix to fstab

~~> Encrypt the Nix volume

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo /usr/sbin/diskutil mount Nix Store

to mount your Nix volume for encrypting

Volume Nix Store on Nix Store mounted

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo /usr/bin/security -i

to add your Nix volume's password to Keychain

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo /usr/sbin/diskutil apfs encryptVolume Nix Store -user disk -stdinpassphrase

to actually encrypt your Nix volume

Encrypting with the new "Disk" crypto user on disk1s7
The new "Disk" user will be the only one who has initial access to disk1s7
The new APFS crypto user UUID will be 747BFAD3-F83F-42F6-B754-8E68537F7F57
Encryption has likely completed due to AES hardware; see "diskutil apfs list"

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo /usr/sbin/diskutil unmount force Nix Store

to unmount the encrypted volume

Volume Nix Store on disk1s7 force-unmounted

~~> Configuring LaunchDaemon to mount 'Nix Store'

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo /usr/bin/ex -u NONE -n /Library/LaunchDaemons/org.nixos.darwin-store.plist

to install the Nix volume mounter

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo launchctl bootstrap system /Library/LaunchDaemons/org.nixos.darwin-store.plist

to launch the Nix volume mounter

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo launchctl kickstart -k system/org.nixos.darwin-store

to launch the Nix volume mounter

~~> Setting up the build group nixbld

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo /usr/sbin/dseditgroup -o create -r Nix build group for nix-daemon -i 30000 nixbld

Create the Nix build group, nixbld

        Created:	Yes

~~> Setting up the build user _nixbld1

---- sudo execution ------------------------------------------------------------
I am executing:

$ sudo /usr/bin/dscl . create /Users/_nixbld1 UniqueID 301

Creating the Nix build user (#1), _nixbld1

attribute status: eDSRecordAlreadyExists DS Error: -14135 (eDSRecordAlreadyExists)

---- oh no! --------------------------------------------------------------------
Oh no, something went wrong. If you can take all the output and open
an issue, we'd love to fix the problem so nobody else has this issue.

:(

We'd love to help if you need it.

You can open an issue at
https://github.com/NixOS/nix/issues/new?labels=installer&template=installer.md

Or get in touch with the community: https://nixos.org/community
(base) ~ %


<!-- paste console output here and remove this comment -->

Priorities

Add 👍 to issues you find important.

@abathur
Copy link
Member

abathur commented Sep 2, 2024

Sounds like you already have a user with the same UID (see #6153 for background).

The easy workaround is deleting that user/users if you no longer use the software that needs them.

If you still need them, you can override the first UID the installer uses like this:

 NIX_FIRST_BUILD_UID="<new_uid>" sh <(curl -L https://nixos.org/nix/install)

I think you can run dscl . -list /Users UniqueID | sort -n -b -k 2 to see what UIDs are in use.

In either case, I'd follow the uninstall instructions for your platform before trying to reinstall: https://nixos.org/manual/nix/stable/installation/uninstall.html#macos

@roberth roberth added the macos Nix on macOS, aka OS X, aka darwin label Sep 2, 2024
@SmolSoftBoi
Copy link
Author

Thank you! I followed the uninstall instructions, and then listed my users and I needed to override the UID, and it worked perfectly!

@Foxeye-Rinx
Copy link

I got the same error, I run dscl . -list /Users UniqueID | sort -n -b -k 2 but it does not show my _nixbld1

sudo dscl . -list /Users | grep _nixbld shows it.

Then I deleted it with sudo dscl . -delete /Users/_nixbld1, and that works for me.

The for loop in the section 3. of the uninstall guide get stuck on my fish shell. And because I only have _nixbld1 so I don't need to run the loop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
installer macos Nix on macOS, aka OS X, aka darwin
Projects
None yet
Development

No branches or pull requests

5 participants
@SmolSoftBoi @roberth @abathur @Foxeye-Rinx and others