I've been using NixOS on my laptop for over an year, finally I installed it on my desktop and I definitely wont' go back to any other distro. It's not just another planet, it's another universe entirely. A better universe.
20:07 Development evironments are one of the biggest strengths of Nix With Nix, a package being installed means that it is not marked for garbage collection; this is done by keeping links in `/nix/var/nix/gcroots/**/*` until the package is "uninstalled". With the `nix shell` and `nix develop` commands, you can pull packages from the enormous nixpkgs repository, or pull the build environment of one. This includes language specific packages Nix shells can be made declarative with shell nix files or flakes, and they can integrate with direnv to provide an instant virtual environment, no containers needed. One use for containers is in production. Nix provides `nixos.containers` but they are system containers based on systemd-nspawn and don't have the isolation of docker/OCI application containers.
Hey D.J., you turned me on to NixOS a year or so ago. Thanks! I switched over all my home systems to it in the meantime and I'm currently doing some consulting around it. Fwiw, you neednt reboot every time you rebuild, only when the build gets a new kernel and NixOS typically doesnt use containers to do what it does.
One of the things I like most about nixos is the ability to install and run their stable fixed release and their unstable rolling release side by side.
Ive been using both nix as package manager and guix. Definitely won't go back, but there are definitely steep learning curves, as you depart from the simple uses of regular package managers, and even though nix is actually 20 years old, it can still improve and there are things in it that are confusing. I'm looking forward to this episode.
If you like gnome on Nixos, there is also snowflakeos. If you use the switch option in the nixos-rebuild, you don’t have to reboot but it’s recommended. In your final thoughts section, it sounds like to me you describing OpenSuse micro os or OpenSuse kapla or OpenSuse aeon - small footprint on the immutable parts.
In my Nixos configuration, I set the option to auto update my Nixos packages in the background, but not automatically reboot the system, optimise the nix store and have automatic garage collection for the nix generations. This essentially runs nixos-rebuild switch in the background when there is an update to an nixos package.
Nix is a fun concept but its documentation has pacing issues. I haven't seen anything regarding home managers, flakes, nor shells that didn't call for a trip to someones github repository to get a workable and correct example.
Thank you for this very informative video! I'm going to try it. A comparison between your sysop terminology (which is valid in terms of your experience, I'm not criticising it) and the programmers terminology, IMPERATIVE - an imperative os/distro means that the system is the emperor (in every step), that is: almost every os - an imperative programming language means that you as a programmer pose what happens step by step, changing a program state, in contradistinction to functional and logic programming languages with other approaches, DECLARATIVE - a declarative os/distro means that the system computes (in old AI terms: 'plans') a way to achieve a certain state, that you as a user have posed to it - which in programming terms is a logic programming system with programmer declarations of terms to be fulfilled, and a resolution mechanism which usually leads to a certain goal.
DJ, I am a fan, but I feel you missed the idea behind NixOS in this review. NixOS should not be assessed as a typical Linux distribution because it offers so much more. At the very least, you need to include Home Manager, garbage collection, Nix Shell, and flakes in the review. What sets NixOS apart from all other distributions is the ability to store system configurations in a Git repository and ensure with 100% certainty that if I need to rebuild the system, it will be exactly the same. Moreover, if I make a change, I can easily revert back to a working system every time. I'm not suggesting that NixOS is suitable for everyone, but I am personally sold on it. I believe NixOS is to Linux what Vim is to Nano. It may take some time to learn, but once you grasp it, nothing else will suffice.
Sorry you feel that way but if I could I'd like to explain: I did a review of NixOS about a year ago where I went through a compatison of declaritive and inperative systems, also garage collect. I considered putthing those in again, but decided the old video covered those topics very well. As for Home Manager and flakes, I purposely did not include them and let me tell you why, there is a very stern warning on Home Manager Wiki telling people to get familar with NixOS first before attempting to use it otherwise they may experience some very strange behavior, so this I would consider an advanced topic and should not be included in a review of NixOS, but rather an advanced look at NixOS. As for flakes, according to the github, its an experiemental feature, It has always been my policy to include review of stable released code, I do not consider experiement features fitting that definition, so left it out. Finally, nix-shell, As I understand it, its a place to create a develoment environment which can be moved easily into production. I have worked in enterprise environments for over 40 yrs, todays enterprise runs on Kubernetes and Containers, development environments pushing to those environments have to conform to the architecture of the production environment. NixOS might be a good place to explore new ideas in software development, but its ideas are not main stream yet. Perhaps one day it will be, then I will conform to the way NixOS wants me to develop, until them I need a development environment which conforms to todays enterprise. I get NixOS, however declarative system are nothing new. My first run in with them was using Prolog and later OWL (the Web Ontology Language). I don't miss Prolog, I do miss OWL was one heck of an idea. Hope this help you understand why I took the path I did in presenting NixOS in that video.
@@CyberGizmo I would like to see what you call an "advanced" review of NixOS, because none really exists yet. I want a cogent explanation of home manager, flakes etc. The problem with NixOS is the huge lag in the documentation. Everyone using NixOS is using things like flakes and home manager (what I learned from online conversations), and so I think to be truly usable, you need to understand these things. But they're poorly-documented. If you understand them, please share your knowledge.
I accept the possibility that I'm the only Wayland user that's not having any problems, and hasn't for years. I just don't think it's very likely... [edit: forgot to mention, this is Arch and mostly-vanilla Gnome]
There are libraries (eg flake-utils-plus and digga) that make writing configurations easier and simpler. Other than that, Nix allows users to extend the nixpkgs library, defining custom functions and packages. Flakes have opened the (somewhat already existing) way for decentralization in the Nix ecosystem: *any* git repo with a flake.nix file is a valid Nix repository and can be referred to from any other flake. Most users have at least packages in their configs, some advanced users also have custom configuration helpers, others have *custom cli tools*. hlissner's dotfiles are a popular example.
My NixOS config git repo currently totals 8700 lines of nix :) It is currently defining the configurations for my, laptop and three servers running my digital life. There is so much more to NixOS than was covered in the video.
I usually use 'nixos-rebuild boot' to stage the new generation for kernel updates and such; kinda Silverblue behavior. With 'nixos-rebuild switch' you should be switching to the new generation while live.
It worked fine, after I managed to get an ISO downloaded that wasn't corrupted. (My connection is spotty tonight.) I booted from Ventoy on usb1. I installed NixOS to usb2. usb2 was an external hard drive in an enclosure. I booted from it. I logged in. Gnome showed up. It was a lot faster loading than I thought it would be to boot, but installing took a while. usb1 is pretty slow and about 10 years old now.
Personal message. You are recognized as a.clean-faced technocrat.. Your face and style of presentation is your RUclips signature No recommendation for white fuzz on the screen. White fuzz to me reflects sloppiness-shortness of preparation
I hate nixos because of it's documentation and overly pushy community which would really prefer you to use really undocumented things like homemanager and flakes.
after working which Arch for 2 years now, I have a tendency to be blind and deaf to the advice of the community, and just do my own thing, easier to point fingers when things break :)
Yeah, I won't say I hate NixOS, but I agree the community has some toxic elements which are holding it back, which is a shame. The idea behind it is awesome, but the fact that they can't be arsed to document their work is why I haven't got anywhere with it. Nix itself could be an awesome build tool / alternative package manager if usage outside of Nix were better supported and documented.
I've been using NixOS on my laptop for over an year, finally I installed it on my desktop and I definitely wont' go back to any other distro. It's not just another planet, it's another universe entirely. A better universe.
20:07 Development evironments are one of the biggest strengths of Nix
With Nix, a package being installed means that it is not marked for garbage collection; this is done by keeping links in `/nix/var/nix/gcroots/**/*` until the package is "uninstalled".
With the `nix shell` and `nix develop` commands, you can pull packages from the enormous nixpkgs repository, or pull the build environment of one. This includes language specific packages
Nix shells can be made declarative with shell nix files or flakes, and they can integrate with direnv to provide an instant virtual environment, no containers needed.
One use for containers is in production. Nix provides `nixos.containers` but they are system containers based on systemd-nspawn and don't have the isolation of docker/OCI application containers.
Hey D.J., you turned me on to NixOS a year or so ago. Thanks! I switched over all my home systems to it in the meantime and I'm currently doing some consulting around it. Fwiw, you neednt reboot every time you rebuild, only when the build gets a new kernel and NixOS typically doesnt use containers to do what it does.
Hey Chris and yes I remember sounds like you are enjoying NixOS
One of the things I like most about nixos is the ability to install and run their stable fixed release and their unstable rolling release side by side.
I'm doing this, too! Right now my only unstable package is Ventoy.
Ive been using both nix as package manager and guix. Definitely won't go back, but there are definitely steep learning curves, as you depart from the simple uses of regular package managers, and even though nix is actually 20 years old, it can still improve and there are things in it that are confusing.
I'm looking forward to this episode.
If you like gnome on Nixos, there is also snowflakeos. If you use the switch option in the nixos-rebuild, you don’t have to reboot but it’s recommended. In your final thoughts section, it sounds like to me you describing OpenSuse micro os or OpenSuse kapla or OpenSuse aeon - small footprint on the immutable parts.
In my Nixos configuration, I set the option to auto update my Nixos packages in the background, but not automatically reboot the system, optimise the nix store and have automatic garage collection for the nix generations. This essentially runs nixos-rebuild switch in the background when there is an update to an nixos package.
Nix is a fun concept but its documentation has pacing issues. I haven't seen anything regarding home managers, flakes, nor shells that didn't call for a trip to someones github repository to get a workable and correct example.
Thank you for this very informative video! I'm going to try it.
A comparison between your sysop terminology (which is valid in terms of your experience, I'm not criticising it) and the programmers terminology,
IMPERATIVE
- an imperative os/distro means that the system is the emperor (in every step), that is: almost every os
- an imperative programming language means that you as a programmer pose what happens step by step, changing a program state, in contradistinction to functional and logic programming languages with other approaches,
DECLARATIVE
- a declarative os/distro means that the system computes (in old AI terms: 'plans') a way to achieve a certain state, that you as a user have posed to it
- which in programming terms is a logic programming system with programmer declarations of terms to be fulfilled, and a resolution mechanism which usually leads to a certain goal.
Would be handy to have a repo with config files created here
DJ, I am a fan, but I feel you missed the idea behind NixOS in this review. NixOS should not be assessed as a typical Linux distribution because it offers so much more. At the very least, you need to include Home Manager, garbage collection, Nix Shell, and flakes in the review. What sets NixOS apart from all other distributions is the ability to store system configurations in a Git repository and ensure with 100% certainty that if I need to rebuild the system, it will be exactly the same. Moreover, if I make a change, I can easily revert back to a working system every time. I'm not suggesting that NixOS is suitable for everyone, but I am personally sold on it. I believe NixOS is to Linux what Vim is to Nano. It may take some time to learn, but once you grasp it, nothing else will suffice.
Sorry you feel that way but if I could I'd like to explain: I did a review of NixOS about a year ago where I went through a compatison of declaritive and inperative systems, also garage collect. I considered putthing those in again, but decided the old video covered those topics very well. As for Home Manager and flakes, I purposely did not include them and let me tell you why, there is a very stern warning on Home Manager Wiki telling people to get familar with NixOS first before attempting to use it otherwise they may experience some very strange behavior, so this I would consider an advanced topic and should not be included in a review of NixOS, but rather an advanced look at NixOS. As for flakes, according to the github, its an experiemental feature, It has always been my policy to include review of stable released code, I do not consider experiement features fitting that definition, so left it out. Finally, nix-shell, As I understand it, its a place to create a develoment environment which can be moved easily into production. I have worked in enterprise environments for over 40 yrs, todays enterprise runs on Kubernetes and Containers, development environments pushing to those environments have to conform to the architecture of the production environment. NixOS might be a good place to explore new ideas in software development, but its ideas are not main stream yet. Perhaps one day it will be, then I will conform to the way NixOS wants me to develop, until them I need a development environment which conforms to todays enterprise. I get NixOS, however declarative system are nothing new. My first run in with them was using Prolog and later OWL (the Web Ontology Language). I don't miss Prolog, I do miss OWL was one heck of an idea. Hope this help you understand why I took the path I did in presenting NixOS in that video.
@@CyberGizmo I would like to see what you call an "advanced" review of NixOS, because none really exists yet. I want a cogent explanation of home manager, flakes etc. The problem with NixOS is the huge lag in the documentation. Everyone using NixOS is using things like flakes and home manager (what I learned from online conversations), and so I think to be truly usable, you need to understand these things. But they're poorly-documented. If you understand them, please share your knowledge.
Off topic but, what is the screensaver running in the background?
I remember seeing a very similar one, I think in the After Dark days…
its based on the movie 2001: A Space Odessey
@@CyberGizmo i keep waiting for it to say the AE-35 unit is going to fail.
@@abandoninplace2751 It’s full of Stars
I accept the possibility that I'm the only Wayland user that's not having any problems, and hasn't for years. I just don't think it's very likely...
[edit: forgot to mention, this is Arch and mostly-vanilla Gnome]
As a non nix user: why would you use flatpak to install software if you have nix packages? just easier to use a graphical manager?
You really don't have to reboot when using switch. You do have to logout and log back in if you want the icons but the software is there to use.
For the icons, on GNOME, you don't even have to logout. Just press Alt+F2, "r" on prompt, and Enter.
I wonder if nix users will become like Emacs users with insane config files.
I was wondering about that too, so far the configuration files aren't too bad, but I am sure with time they will grow and grow.
There are libraries (eg flake-utils-plus and digga) that make writing configurations easier and simpler. Other than that, Nix allows users to extend the nixpkgs library, defining custom functions and packages.
Flakes have opened the (somewhat already existing) way for decentralization in the Nix ecosystem: *any* git repo with a flake.nix file is a valid Nix repository and can be referred to from any other flake.
Most users have at least packages in their configs, some advanced users also have custom configuration helpers, others have *custom cli tools*. hlissner's dotfiles are a popular example.
It me :)
My NixOS config git repo currently totals 8700 lines of nix :) It is currently defining the configurations for my, laptop and three servers running my digital life. There is so much more to NixOS than was covered in the video.
I usually use 'nixos-rebuild boot' to stage the new generation for kernel updates and such; kinda Silverblue behavior. With 'nixos-rebuild switch' you should be switching to the new generation while live.
did they ever fix being able to install the OS to an external SSD? last version would just error out during install process.
I installed on a secondary NVMe drive and seemed to work ok, but did not try it with a USB drive (yet), perhaps someone else knows?
I might be able to test this for you tonight.
I'm going through the process now. I'll let you know how it goes.
It worked fine, after I managed to get an ISO downloaded that wasn't corrupted. (My connection is spotty tonight.) I booted from Ventoy on usb1. I installed NixOS to usb2. usb2 was an external hard drive in an enclosure. I booted from it. I logged in. Gnome showed up. It was a lot faster loading than I thought it would be to boot, but installing took a while. usb1 is pretty slow and about 10 years old now.
@@davidturcotte831 did you install to a USB HD or USB SSD? I had no trouble installing to USB HD. for me, it would not install to the USB SSD.
Installing flatpak on NixOS is missing the point of the Nix package manager and NixOS.
When you get “Gnome Version: N/A”… trying logging out and then logging back in.
could you review and may be even compare guix with nix?
will add it to the list, Anton and thanks for the idea
for developing environments you can use nix develop with flakes
NixOS cured my distro hopping.
Fun fact: 'nix' means in german 'nothing', 'nul', 'niente', 'zero', 'rien' 😀
No, in Swedish slang. From German nichts.
While 'niks' in dutch and 'nix' in german means 'nothing', 'nix' in latin means 'snow' 😁
Please Ctrl + for us folks with bad eyes. It's funny that you're leaning and squinting to read, and I'm already doing the same.
In my case I just need new glasses
Personal message.
You are recognized as a.clean-faced technocrat.. Your face and style of presentation is your RUclips signature
No recommendation for white fuzz on the screen. White fuzz to me reflects sloppiness-shortness of preparation
Touche
I hate nixos because of it's documentation and overly pushy community which would really prefer you to use really undocumented things like homemanager and flakes.
after working which Arch for 2 years now, I have a tendency to be blind and deaf to the advice of the community, and just do my own thing, easier to point fingers when things break :)
Yeah, I won't say I hate NixOS, but I agree the community has some toxic elements which are holding it back, which is a shame. The idea behind it is awesome, but the fact that they can't be arsed to document their work is why I haven't got anywhere with it. Nix itself could be an awesome build tool / alternative package manager if usage outside of Nix were better supported and documented.