Coder Social home page Coder Social logo

Comments (2)

angerman avatar angerman commented on June 29, 2024 2

Just wanted to leave this here. It appears (after reading the code, and thinking it might work), this actually does work:

# install
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix \
  -o /var/root/nix-installer
chmod +x /var/root/nix-installer
/var/root/nix-installer install macos \
  --volume-label "Nix Store" \
  --root-disk $(diskutil list |grep "Nix Store"|egrep -o '(disk\d+)') \
  --no-confirm

Using the --volume-label and --root-disk options combined on a on an unmounted apfs disk seems to have the desire effect.

from nix-installer.

Hoverbear avatar Hoverbear commented on June 29, 2024

Unfortunately the dance of creating a Nix volume is annoyingly complicated as there are many states which the user system may be in which look fine but are otherwise broken. There has been some effort made to support this situation, however it's quite difficult and labor-intensive for me to test accurately as I don't use a Mac and our test Macs don't have external disks.

If you're interested, there is a create_nix_volume.rs inside src/actions/macos which composes together several other actions that make up the volume logic. Each of those actions has a plan function where we try to detect if the step is already completed.

If you run nix-installer plan > plan.json then review the plan.json the first entry in actions should be the volume creation stuff. You can see that some of those plan steps will be state: "Completed", those it's properly detecting are already done, however something to do with the volume creation is state: "Uncompleted". If you could figure out which one, we could possibly fix the issue.

As a hack/workaround, you can likely change the state of that first actions entry to Completed then run nix-installer install --plan plan.json and entirely skip volume creation.

There may also be issues around the launchd services we have to provision, as those are relatively tightly bound to the volumes we create, so we may not be out of the woods after this fix.

from nix-installer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.