DeterminateSystems / nix-installer

Install Nix and flakes with the fast and reliable Determinate Nix Installer, with over 2 million installs.
GNU Lesser General Public License v2.1
2.03k stars 52 forks source link

error: path '/home' is a symlink #912

Open ghost opened 5 months ago

ghost commented 5 months ago

hello, after following this blog https://julianhofer.eu/blog/01-silverblue-nix/ for how to install nix on ostree based systems, installing with nix-shell work, but when i try to install something with nix-env it return this error error: path '/home' is a symlink is this a known issue?,i didn't saw any issue with this same error, only this post https://discourse.nixos.org/t/error-path-home-is-a-symlink/42267/2 that didn't solved my issue, what other info do i need to provide to help?

ghost commented 5 months ago

urg, ok the installer worked on a VM, look like the problem is with me, what i can do to debug this?

cole-h commented 5 months ago

Looks like upstream has a similar issue reported: https://github.com/NixOS/nix/issues/10247. Although it is about /var not /home, this may be related.

ghost commented 5 months ago

Looks like upstream has a similar issue reported: NixOS/nix#10247. Although it is about /var not /home, this may be related.

the problem is that, i installed nix in a vm(running fedora atomic) and it worked fine, but i tried in bare metal(also using fedora atomic) and it give me this error

ghost commented 5 months ago

how do i update to the master branch?

cole-h commented 5 months ago

This was closed in error -- the fix hasn't yet made it to a released version of Nix yet.

ghost commented 5 months ago

This was closed in error -- the fix hasn't yet made it to a released version of Nix yet.

oh, ok thank you!

cig0 commented 5 months ago

Hi all :wave:

@cole-h Once the new version with the symlink fix is released, what will be the proper way to update a Single-user installation, given nix-env bails out with the symlink error message?

ghost commented 5 months ago

btw installed nix-2.21.2 and everything seen to be working fine, thank you all!, want me to close it now, or wait until the installer get updated?

cig0 commented 5 months ago

On my side after updating to nix-2.21.2 via sh <(curl -L https://releases.nixos.org/nix/nix-2.21.2/install) --no-daemon:

$ nix-env -iA nix
error: attribute 'nix' in selection path 'nix' not found

This is a Single-user installation.

ghost commented 5 months ago

i ran this curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --nix-package-url https://releases.nixos.org/nix/nix-2.21.2/nix-2.21.2-x86_64-linux.tar.xz and worked

cig0 commented 5 months ago

i ran this curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --nix-package-url https://releases.nixos.org/nix/nix-2.21.2/nix-2.21.2-x86_64-linux.tar.xz and worked

Oh yes, the Determinate installer! Sadly, the SELinux policy they ship breaks /var on all the Fedora Atomic Desktop (the "immutable" flavors), so I had to uninstall it a few months ago :(

In my case, I'm using an alternate method to install Nix as Single-user, which works great. The only issue is the symlink issue you mentioned in your OP up to 2.21.1.

Edit: typo

ghost commented 5 months ago

i ran this curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --nix-package-url https://releases.nixos.org/nix/nix-2.21.2/nix-2.21.2-x86_64-linux.tar.xz and worked

Oh yes, the Determinate installer! Sadly, the SELinux policy they ship breaks /var on all the Fedora Atomic Desktop (the "immutable" flavors), so I had to uninstall it a few months ago :(

In my case, I'm using an alternate method to install Nix as Single-user, which works great. The only issue is the symlink issue you mentioned in your OP up to 2.21.1.

i'm literally using fedora kinoite right now, and it update selinux policies from what i read in the installer, what issue you had? (and my nix profile is located in .local/state so i think it's also single-user)

cig0 commented 5 months ago

Moar Kinoite goodness! :blue_heart:

TL;DR: I'm not using Kinoite itself, but a close-to-vanilla image that include some batteries.

I'm running https://universal-blue.org + https://blue-build.org/. uBlue is a special sauce you pour on top of ostree-based spins, that allows you to customize your images the way you want them (I.e. https://github.com/cig0/bluebuild/blob/main/config/recipes/). uBlue adds a few QoL enhancements to vanilla Atomic images (like Kinoite), and then I take those images as my base images for my hosts. A great uBlue derivated is https://preview.getaurora.dev/, which was born out of the desire of enjoying all the goodness of https://projectbluefin.io/ (Universal Blue official image), but with the greatness of KDE as DE.

Anyway, I believe that's enough context. So, the first thing I noticed when running Determinate's installer was that the policy somehow breaks SDDM - i.e. avatars won't show up on the login screen. It also produces some other side effects like:

I'm also being spammed with the AVC error messages: image

Can you confirm you're not experiencing any weird stuff on your official Atomic Desktop Kinoite image, like the one I describe above?

ghost commented 5 months ago

Can you confirm you're not experiencing any weird stuff on your official Atomic Desktop Kinoite image, like the one I describe above?

nop, never saw these errors and my sddm is working fine, also you can always rollback if something bad happens no?

cig0 commented 5 months ago

Can you confirm you're not experiencing any weird stuff on your official Atomic Desktop Kinoite image, like the one I describe above?

nop, never saw these errors and my sddm is working fine, also you can always rollback if something bad happens no?

This is super interesting.

I downloaded the Fedora Atomic Kinoite 39 (https://download.fedoraproject.org/pub/fedora/linux/releases/39/Kinoite/x86_64/iso/Fedora-Kinoite-ostree-x86_64-39-1.5.iso) image, and the F40 Beta Kinoite image (https://download.fedoraproject.org/pub/fedora/linux/releases/test/40_Beta/Kinoite/x86_64/iso/Fedora-Kinoite-ostree-x86_64-40_Beta-1.10.iso), and definitely can reproduce the error.

Methodology:

The only additional change I made to the Fedora Atomic Desktop 40 Beta Kinoite installation was to switch the Fedora SDDM theme to KDE's theme -- everything else was left untouched:

Fedora Atomic Desktop Kinoite 39 Before applying DS' Nix installer: Spectacle-Screenshot_20240413_114452 After applying DS' Nix installer: Spectacle-Screenshot_20240413_122322

Fedora Atomic Desktop Kinoite 40 Beta Before applying DS' Nix installer: Spectacle-Screenshot_20240413_114205 After applying DS' Nix installer: Spectacle-Screenshot_20240413_113728


Edit: I forgot to mention I installed Nix using the same command from https://github.com/DeterminateSystems/nix-installer/issues/912#issuecomment-2041553828 curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --nix-package-url https://releases.nixos.org/nix/nix-2.21.2/nix-2.21.2-x86_64-linux.tar.xz

ghost commented 5 months ago

oh, that's what you mean by messed?, let me see what happen if i change the sddm theme

ghost commented 5 months ago

actually @cig0 you already have a VM, make a test for me, reinstall the vm like you did, but DON'T install nix, just create another user like you would you in KDE (going to settings and clicking Add users) and log out to see if the sddm changes

cig0 commented 5 months ago

actually @cig0 you already have a VM, make a test for me, reinstall the vm like you did, but DON'T install nix, just create another user like you would you in KDE (going to settings and clicking Add users) and log out to see if the sddm changes

Here: Spectacle-Screenshot_20240413_170023

@Viliansh I reverted all the changes made by the installer by deleting the VM snapshot and booting from the one I took right after updating both systems for the first time. The SDDM background image for F40 Beta Kinoite is the stock one (as I took the VM snapshot before even changing the SDDM theme).

HTH!

ghost commented 5 months ago

hmmm, i can't print it, but i reverted my sddm going to /etc/sddm.conf.d/kde_settings.conf and writing this [Users] MaximumUid=1000 MinimumUid=1000 because my user is uid=1000, so it only show my user, look at /etc/passwd to be sure what's your uid

cig0 commented 5 months ago

hmmm, i can't print it, but i reverted my sddm going to /etc/sddm.conf.d/kde_settings.conf and writing this [Users] MaximumUid=1000 MinimumUid=1000 because my user is uid=1000, so it only show my user, look at /etc/passwd to be sure what's your uid

Do you mean after using the installer?

ghost commented 5 months ago

hmmm, i can't print it, but i reverted my sddm going to /etc/sddm.conf.d/kde_settings.conf and writing this [Users] MaximumUid=1000 MinimumUid=1000 because my user is uid=1000, so it only show my user, look at /etc/passwd to be sure what's your uid

Do you mean after using the installer?

yep, apparently sddm become that way because the nix-installer create various nix-users, and sddm becomes confused, but i'm not sure, for me it worked

cig0 commented 5 months ago

hmmm, i can't print it, but i reverted my sddm going to /etc/sddm.conf.d/kde_settings.conf and writing this [Users] MaximumUid=1000 MinimumUid=1000 because my user is uid=1000, so it only show my user, look at /etc/passwd to be sure what's your uid

Do you mean after using the installer?

yep, apparently sddm become that way because the nix-installer create various nix-users, and sddm becomes confused, but i'm not sure, for me it worked

/etc/sddm.conf.d/kde_settings.conf
[Users]
MinimumUid=1000
MaximumUid=1001

Note: both the test users I created are now correctly handled by SDDM

Purrrfect, I confirm this is the solution. I believe it's an SDDM issue. I will reach out to the SDDM team and let them know about this.

Thanks for taking the time to help me troubleshoot this issue, @Viliansh :rocket: If everyone agrees, we can close this issue.