ITADN

Installer hangs on macOS Sequoia 15.5+ in headless CI (EAS Build)

#1796Openthenbe 创建于 2026-03-13
T
thenbecommented
Hi. I'm trying to install nix in CI. The CI is [EAS](https://docs.expo.dev/build-reference/infrastructure/#ios-server-images). The nix installer hangs indefinitely. The installer worked fine on `macos-sequoia-15.4-xcode-16.3` EAS images. But when using any image that includes sequoia 15.5 (or later) the installer hangs and I cannot install nix. ## Summary The nix-installer hangs indefinitely on macOS Sequoia 15.5+ in headless CI environments (Expo EAS Build). The hang occurs during the `create_fstab_entry` step when executing `diskutil info -plist "Nix Store"`. ## Environment - **macOS**: Sequoia 15.5 and 15.6 - **CI**: Expo EAS Build (headless, no TTY) - **Arch**: aarch64-darwin (Apple Silicon) - **Installer version**: latest (as of 2026-03-13) ## Reproduction Run the installer in a headless macOS 15.5+ environment: ```bash curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --no-confirm ``` ## Verbose logs (`-vv`) The installer proceeds normally until the `create_fstab_entry` step: ``` TRACE execute:execute:plan:plan:execute_command: Executing command="launchctl" "print" "system/systems.determinate.nix-store" TRACE execute:execute:plan:plan:service_is_disabled:execute_command: Executing domain="system" service="systems.determinate.nix-store" command="launchctl" "print-disabled" "system" TRACE execute:execute:plan:plan:service_is_disabled:execute_command: Command success stderr= stdout= disabled services = { "com.apple.CSCSupportd" => disabled "host.exp.worker" => enabled "com.apple.mdmclient.daemon.runatboot" => disabled "com.apple.ftpd" => disabled "com.openssh.sshd" => enabled } domain="system" service="systems.determinate.nix-store" command="launchctl" "print-disabled" "system" TRACE execute:execute:plan:plan:service_is_disabled: Service disabled status is_disabled=false domain="system" service="systems.determinate.nix-store" TRACE execute:execute:plan:plan:execute_command: Executing domain="system" service="systems.determinate.nix-store" command="launchctl" "print" "system/systems.determinate.nix-store" DEBUG execute:execute:plan:plan:plan: `/etc/bashrc` has mode `292`, a mode of `420` was expected DEBUG execute:execute:plan:plan:plan: `/etc/zshrc` has mode `292`, a mode of `420` was expected TRACE execute:execute:plan:execute_command: Executing command="launchctl" "print" "system/systems.determinate.nix-installer.nix-hook" TRACE execute:execute:plan:remove_file: Removing file on_missing=Ignore path=/Library/LaunchDaemons/org.nixos.nix-daemon.plist TRACE execute:execute:plan:remove_file: Ignoring nonexistent file on_missing=Ignore path=/Library/LaunchDaemons/org.nixos.nix-daemon.plist TRACE execute:execute:execute_command: Executing command="/usr/bin/profiles" "-P" "-o" "stdout-xml" TRACE execute:execute:execute_command: Command success stderr= stdout=<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict/> </plist> There are no configuration profiles installed command="/usr/bin/profiles" "-P" "-o" "stdout-xml" TRACE execute:execute:install:execute_command: Executing command="/usr/bin/profiles" "-P" "-o" "stdout-xml" TRACE execute:execute:install:execute_command: Command success stderr= stdout=<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict/> </plist> There are no configuration profiles installed command="/usr/bin/profiles" "-P" "-o" "stdout-xml" INFO execute:execute:install: Step: Install Determinate Nixd DEBUG execute:execute:install:try_execute: Executing: Install Determinate Nixd TRACE execute:execute:install:try_execute:execute:remove_file: Removing file on_missing=Ignore path=/usr/local/bin/determinate-nixd TRACE execute:execute:install:try_execute:execute:remove_file: Ignoring nonexistent file on_missing=Ignore path=/usr/local/bin/determinate-nixd DEBUG execute:execute:install:try_execute: Completed: Install Determinate Nixd INFO execute:execute:install: Step: Create an encrypted APFS volume `Nix Store` for Nix on `disk2` and add it to `/etc/fstab` mounting on `/nix` DEBUG execute:execute:install:try_execute: Executing: Create an encrypted APFS volume `Nix Store` for Nix on `disk2` and add it to `/etc/fstab` mounting on `/nix` DEBUG execute:execute:install:try_execute:execute:create_directory: Executing: Create directory `/etc/nix` path=/etc/nix mode=0o755 DEBUG execute:execute:install:try_execute:execute:create_directory: Completed: Create directory `/etc/nix` path=/etc/nix mode=0o755 DEBUG execute:execute:install:try_execute:execute:create_or_insert_file: Executing: Create or insert file `/etc/synthetic.conf` path=/etc/synthetic.conf buf="nix\n" DEBUG execute:execute:install:try_execute:execute:create_or_insert_file: Completed: Create or insert file `/etc/synthetic.conf` path=/etc/synthetic.conf buf="nix\n" DEBUG execute:execute:install:try_execute:execute:create_synthetic_objects: Executing: Create objects defined in `/etc/synthetic.conf` TRACE execute:execute:install:try_execute:execute:create_synthetic_objects:execute:execute_command: Executing command="/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util" "-t" TRACE execute:execute:install:try_execute:execute:create_synthetic_objects:execute:execute_command: Executing command="/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util" "-B" DEBUG execute:execute:install:try_execute:execute:create_synthetic_objects: Completed: Create objects defined in `/etc/synthetic.conf` DEBUG execute:execute:install:try_execute:execute:unmount_volume: Executing: Unmount the `Nix Store` APFS volume disk=disk2 name="Nix Store" TRACE execute:execute:install:try_execute:execute:unmount_volume:execute:execute_command: Executing disk=disk2 name="Nix Store" command="/usr/sbin/diskutil" "info" "-plist" "Nix Store" DEBUG execute:execute:install:try_execute:execute:create_volume: Executing: Create an APFS volume on `disk2` named `Nix Store` disk=disk2 name=Nix Store case_sensitive=false TRACE execute:execute:install:try_execute:execute:create_volume:execute:execute_command: Executing disk=disk2 name=Nix Store case_sensitive=false command="/usr/sbin/diskutil" "apfs" "addVolume" "disk2" "APFS" "Nix Store" "-nomount" TRACE execute:execute:install:try_execute:execute:create_volume:execute:execute_command: Command success stderr= stdout=Will export new APFS Volume "Nix Store" from APFS Container Reference disk2 Started APFS operation on disk2 Preparing to add APFS Volume to APFS Container disk2 Creating APFS Volume Created new APFS Volume disk2s7 Disk from APFS operation: disk2s7 Finished APFS operation on disk2 disk=disk2 name=Nix Store case_sensitive=false command="/usr/sbin/diskutil" "apfs" "addVolume" "disk2" "APFS" "Nix Store" "-nomount" DEBUG execute:execute:install:try_execute:execute:create_volume: Completed: Create an APFS volume on `disk2` named `Nix Store` disk=disk2 name=Nix Store case_sensitive=false DEBUG execute:execute:install:try_execute:execute: Checking for Nix Store volume existence retry_tokens=50 command="/usr/sbin/diskutil" "info" "-plist" "Nix Store" DEBUG execute:execute:install:try_execute:execute:create_fstab_entry: Executing: Update `/etc/fstab` to mount the APFS volume `Nix Store` apfs_volume_label="Nix Store" TRACE execute:execute:install:try_execute:execute:create_fstab_entry:execute: Executing command="\"/usr/sbin/diskutil\" \"info\" \"-plist\" \"Nix Store\"" apfs_volume_label="Nix Store" ``` **This is the last log line — the installer hangs here indefinitely.** ## Upstream Nix installer also affected The official NixOS installer (`https://nixos.org/nix/install`) hangs at the same logical step: ``` ~~> Configuring /etc/fstab to specify volume mount options ```
5 条评论