The installer has issues with Linux systems using SELinux.
Having an official standalone nix binary would also be awesome, I count this as “installing” because it’s a non-installation case.
The installer has issues with Linux systems using SELinux.
Having an official standalone nix binary would also be awesome, I count this as “installing” because it’s a non-installation case.
General request: it’s good to be explicit (and honest) about the installer’s shortfalls (there are a number) and avoid broad negative generalizations. When threads with comments like this end up getting sanctioned by the search-gods, irrefutably vague quality claims end up getting repeated by people who don’t know better on HN, twitter, reddit, etc. where they feed FUD that causes people to avoid trying Nix, or to open threads/issues asking whether or not it works. (I saw these regularly for well over a year after we’d managed to fix the worst issues with the read-only root on Catalina, for example.)
(Edit: right on cue, an hour after I posted this: Introducing Riff: automatically provide external dependencies for Rust projects | Lobsters)
The installer works for the golden path on macOS and some (but not all) Linuxes. It isn’t idempotent (people need to follow the uninstall instructions before reinstalling). There are sharp corners when it comes to people who have an environment that doesn’t line up with the golden path.
While I can’t dedicate much time to it, here’s my wishlist:
document the difference between single/multi user install and the decision that the user needs
merge 4-6 scripts that create the installer so that the logic is centralized (right now each script has a different syle, functions, etc)
installer should be idempotent
there should be an uninstaller that works (this is mainly not to gain Nix haters)
create automation to test the installer on many platforms, especially for the new ones (macOS)
I’m really excited to see this post @thufschmitt. At DetSys we’ve been experimenting with an updated installer, and we may even be able to publish a beta version by the end of the week. We weren’t planning on sharing it so soon, but it sounds like we should :). Ana has been taking the lead on this. The design she’s been exploring focuses on being idempotent with rollback on failure. The beta we’re looking to publish isn’t going to be all things for all people, but is intended to be a start. Just filled out my times!
For the upcoming tools abstracting nix usage, namely:
a more “lightweight install” could be beneficial. The nix install can feel a bit “intrusive” for some users when the entire nix tool chain is installed. Also avoiding changes to the users environment would be beneficial. Not sure which part’s could possibly be left out.
Bob uses nix-build
only. It’s parsing the output to resolve /nix/store
paths and passes them to an internal shell. Something like nix-shell
is not required in that case.
Devbox uses nix-shell
directly.
Thanks for the answers
Based on the when2meet feedback, I’ve scheduled a meeting on 2022-09-14T14:00:00Z → 2022-09-14T15:00:00Z.
I’ve directly send a calendar invite to the people for which I have a mail address and I’ll add it to the commmunity calendar.
@thufschmitt could you please designate a space for notes (e.g. this thread or a dedicated GitHub issue) so those who can’t join synchronously can add input in advance?
Sure thing @fricklerhandwerk , here’s a link: https://hackmd.io/@thufschmitt/HktYmvheo/edit
@Ana , @grahamc that’s great news I’ve put a presentation of your experimental installer on the agenda if that’s OK with you
@matnosner interesting idea… Afair @edolstra had been doing some related work to allow having a single drop-in statically linked executable that would just work™, maybe that’s something worth looking into for these use-cases
I don’t know where to report the issue but I once installed Nix on a corporate Amazon workspace and there were inconsistencies because the user that was assigned to me was part of some kind of ldap or active directory (I don’t remember really well sorry)… and it contained backslashes.
I also remember that Nix has some troubles to deal with usernames containing backslashes.
I still do have issues on those platforms, and I have to make some kind of workaround as you can see here: flake.nix · main · ECPHP / Devs profile · GitLab
Do you think dealing with these weird usernames could be part of this workgroup?
@drupol Please check for duplicate installer issues and otherwise open a new one. The workgroup should monitor that GitHub label to keep track of pain points.
Thanks to everyone involved in the meeting, it was really great to all sit around and discuss this. The notes are (still) here, or in the spoiler below in case the document disappears:
- document the difference between single/multi user install and the decision that the user needs
- merge 4-6 scripts that create the installer so that the logic is centralized (right now each script has a different syle, functions, etc)
- installer should be idempotent
- there should be an uninstaller that works (this is mainly not to gain Nix haters)
- create automation to test the installer on many platforms, especially for the new ones (macOS)
- The installer has issues with Linux systems using SELinux.
- Having an official standalone nix binary would also be awesome, I count this as “installing” because it’s a non-installation case.
For the upcoming tools abstracting nix usage, namely:
- devbox
- riff
- bob
a more “lightweight install” could be beneficial. The nix install can feel a bit “intrusive” for some users when the entire nix tool chain is installed. Also avoiding changes to the users environment would be beneficial. Not sure which part’s could possibly be left out.
- existing test setups
- grahamc/nix-install-matrix
- installer tests based on vagrant and Virtualbox VMs
- flox/install-matrix/
- updates by @tomberek
- does not work out of the box!
- Anton-Latukha/nix-tests-terraform
- made for NixOS/nix#1565 (a POSIXly correct installer by @Anton-Latukha, abandoned out of frustration)
- tests based on terraform
- no fully automated setup yet, still to be tested
- cachix/nix-install-action
- GitHub action to run the most recent installer
- installer issues
- attempt at triage by @abathur
- I will go through issues to set labels to enable more reliable search
- installer pull requests
- installation should be silent and ask no questions
- installer should be idempotent
- uninstallation should be one command and leave no trace
- Revived Nix-based installer test: Add an installer test by edolstra · Pull Request #7043 · NixOS/nix · GitHub
- We should minimize the amount of code duplication / divergence between different installation paths, e.g. daemon vs non-daemon, bash vs. fish.
- The best way to simplify the installer is to minimize the amount of work done by the installer, i.e. have more defaults in Nix or Nix auto-creating directories.
- Even better is if you don’t need to install Nix at all, e.g. by using the auto-chroot statically linked nix binary.
Just uses bash to bootstrap the actual installer which is a compiled binary.
Demo
Rust binary
flakes
on by defaultNot supported by DetSys installer. Because they feel that single-user mode is not a good experience and makes the ecosystem less uniform (so the userbase more complex).
How useful is the single user install?
@Solène offers to create a discourse poll to get a sense of how much it is used
WSL?
Having a binary installer means running a binary blob, while a bash script is somewhat more introspectable.
But people will run a precompiled Nix anyways, so that doesn’t change too much.
And the benefit of having a proper language over bash outweights this by far
nix-community
has rpmsHaving stuff on distro’s repos is a lot of pain.
Having Nix packaged as a deb
/rpm
is simpler, and makes people more comfortable, and we avoid the problem of having them outdated in the repos.
To be discussed later.
We have a follow-up meeting planned on 2022-09-28T14:00:00Z → 2022-09-28T15:00:00Z, the details are on the NixOS.org calendar.
@mkaito also opened another thread to continue in an async fashion the conversations that we’ve started yesterday
We had a second meeting today, thank you to everyone who came. A lot of discussion was around testing: macOS, Linux, WSL, and how to replicate various scenarios users have had trouble with. Check out the notes for more: nix-working-group-meeting-2.md · GitHub (originally Nix installer workgroup meeting #2 - HackMD)
We are going to meet at the same time in two weeks: Nix installer workgroup meeting #3
We also opened a new Matrix room for the working group: #install:nixos.org. See you there!
We just finished our third meeting, thanks folks for attending! we talked some about the installer DetSys is working on, and what sort of acceptance criteria there would be for the greater community to want to use it. We decided to not get too far into details, as we can become more specific once we have an MVP out.
Here are the notes: nix-working-group-meeting-3.md · GitHub
We’ll meet again in two weeks: Nix installer workgroup meeting #4 See you then!
Another meeting today, TLDR is the installer is getting polished but it still require some work especially for MacOS (while WSL has been painless).
I would like to thank @grahamc for taking the following notes during the meeting:
Agenda:
Does the installer workgroup see itself as having a stake also in NixOS installation under WSL? I think it’s an important use case and it seems related to the big picture of Nix onboarding.
I use it at work, and it’s great. If anyone involved in this has the bandwidth to help nudge it along on its way to the Microsoft Store , that might be great for introducing many developers and sysadmins to NixOS in an undemanding way.
Their is prior work done GitHub - nix-community/NixOS-WSL: NixOS on WSL(2) [maintainer=@nzbr] and mostly maintained by @nzbr , @K900 and me.
Neither nixpkgs or NixOS have good 32bit support and only dependencies of wine and the steam fhs are truly tested and fixed AFAIK. Before 32bit support for the installer is advertised the support state of 32bit should be clarified. I myself would not consider missing or removed 32bit support any kind of blocker in a PR for a lot of packages right now.
Here are the notes from the meeting today, 2023-03-1!
Graham Christensen
Matthew Kenigsberg
Travis Everett / abathur
Big upstream Pr: WIP: Multi-user Install Cleaning + Fixes + Optional Uninstaller by jeff-hykin · Pull Request #7827 · NixOS/nix · GitHub
Making the installer faster around nix-channel update?
Review of the Determinate Nix Installer release
Command
mean? We don’t know yet. We’re working on adding more information, like which command (minus sensitive data.)nix-installer
is, then the action will be/usr/bin
or ``/usr/local/bin`?
/Users/ephemeraladmin/.nix-profile/bin:/run/current-system/sw/bin:/nix/var/nix/profiles/default/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin
TLDR next steps for the DetSys installer are:
nix-installer
updated to nix 2.18.1cert.pem
does not have a full set of certs (eg for github)As a nix-installer
user, I have been hacking with the DeterminateSystems nix-installer lately. Is there anyway I can join these meetings live? Where I can get the schedule of next meeting?