Nix - The Best Package Manager

Поделиться
HTML-код
  • Опубликовано: 24 ноя 2024

Комментарии • 585

  • @studsygamer717
    @studsygamer717 Год назад +627

    Nix is a very casual way to homebrew your Mac without using homebrew because Most apple engineers will not repair your device if it has homebrew or cydia on it, however nix is less known and can fly under the radar

    • @UnknownGamer40464
      @UnknownGamer40464 Год назад +347

      or just take it to a normal repair shop and they'll fix it regardless and also do it for less than a 300% upcharge.

    • @MrCarlinios
      @MrCarlinios Год назад +76

      @@happygofishing that's my first option

    • @mskiptr
      @mskiptr Год назад +56

      Doesn't MacOS support full disk encryption? I think it was called FileVault or something.
      If you meant 'repairing' the OS, then I guess I'd agree with these engineers. If you messed up your system with a weird PATH, you should probably learn how it works and fix it yourself

    • @nil0bject
      @nil0bject Год назад +77

      If a company refused to service your computer because of a piece of soft are that runs on their hardware, then you take them to court. I think you are lying

    • @Tatar_Piano
      @Tatar_Piano Год назад +10

      That's not true

  • @BrianMcKennaPuffnfresh
    @BrianMcKennaPuffnfresh Год назад +106

    Been using NixOS for about 9 years. Love it. I use it at work, I have since ported it to an ereader, game console, Chromebooks, etc. I use it for absolutely everything.

    • @krunk7133
      @krunk7133 Год назад +7

      What ereader?

    • @BrianMcKennaPuffnfresh
      @BrianMcKennaPuffnfresh Год назад +7

      @@krunk7133 Kobo Clara HD and Kobo Clara 2e

    • @mysterious_czrs
      @mysterious_czrs Год назад +3

      What is the point of instaling nixos on a game console besides for fun ?

    • @BrianMcKennaPuffnfresh
      @BrianMcKennaPuffnfresh Год назад +7

      @Mr.W like the video said, all the emulators are packaged and available. I also have access Gnome 3 so it's also useful for writing code on. 4GB RAM and ARM64. Pretty cool!

    • @lol-wc3ld
      @lol-wc3ld Год назад +4

      @@BrianMcKennaPuffnfresh if you dont mind me asking, how did you get started on porting oses to insteresting hardware? Ive been wanting to do this, but dont really know what i would have to learn. are there any books or resources you can reccomend?

  • @agooseloose2183
    @agooseloose2183 Год назад +393

    the best part is that for NixOS you can make a flake in which you can declare your entire system configuration including filesystems, environment variables, what shell to use, dotfiles and more. then you can take it further and have multiple outputs in a flake, one for each machine you use!

    • @travis5732
      @travis5732 Год назад +4

      That's very interesting, will give it a try.

    • @night_h4nter
      @night_h4nter Год назад

      sadly, it can't actually partition the disks

    • @dfgdfg_
      @dfgdfg_ Год назад +13

      *ansible has entered the chat*

    • @feschber
      @feschber Год назад +2

      I was planning on maintaining my config with stow + ansible + git but this almost sounds a lot more convenient

    • @night_h4nter
      @night_h4nter Год назад +13

      @@dfgdfg_ ansible isn't really declarative and things you get with it aren't particularly reproducible

  • @johanngambolputty5351
    @johanngambolputty5351 Год назад +203

    Don't take this the wrong way, I generally like what you do, I usually learn something new, but I was expecting a comparison against other package managers (explaining what it does better, what others cant do), instead I saw a video of a man installing a package manager, installing librewolf and searching for some other packages. Maybe there was some of the former, but the later seemed to take the most time.

    • @Gunzy83
      @Gunzy83 Год назад +20

      I had that thought as well. If you are just installing packages via nix-env you are doing it wrong (home-manager is what you want). I find Nix to be an intriguing idea but the implementation is highly esoteric and plagued by garbage documentation (particularly for the highly vaunted flakes) that will not really help you beyond the basic hello world and canned simple examples.
      While building reproducible environments is one of the touted features, doing a node project the nix way with other binary dependencies was a nightmare to get working and other users had issues on their machines. ASDF and go-task glue did a better job in a tiny fraction of the time and just works without having to mess with esoteric syntax. Having seen nix in action at a large tech company with an entire team maintaining internal nix tooling, I now get why they needed a whole team. Working for a startup, you can guess which solution won out for me.

    • @surewhynot6259
      @surewhynot6259 Год назад +12

      Right? Besides, for automated deployments you should really have an abstraction layer, such as Ansible. Then, it defeats the purpose of having the same package manager on every system.

    • @Asrashas
      @Asrashas Год назад +3

      @@Gunzy83 I have a somewhat different experience. Yes, you have to learn the nix language a little bit, but that is true every time you use a new language, that isn't just a reskin of C, syntactically speaking (and semantically speaking for a good portion of language semantics). And you can go a long way with just copy pasting a basic nix-shell script and changing out the listed packages.
      That is what I did a good while.
      What was your problem with "other binary dependencies"? The only problem I could imagine is if they are not packaged. But as long as you use nix on another host distro, you can just get it any other way.

    • @realcartoongirl
      @realcartoongirl Год назад +4

      maybe he is gay

    • @lphoogenboom
      @lphoogenboom Год назад +3

      He starts off with it. Nix will run on any system. It is common knowledge that nix is deterministic, so you can pull your cobfig on any system and deterministically create exactly what you want. That's the whole point of nix.
      It's worse in most ways in which it is comperable to other managers, so that's not a very i teresting video. Making a nix.config is tedious and it runs slower.

  • @Redyf
    @Redyf Год назад +255

    The best thing i've ever did was switching from arch to NixOS, it's so good. Pretty hard to get used to it at first tho but now i managed to setup a hyprland + nvidia config for my dev environment

    • @aryan37
      @aryan37 Год назад +12

      if you don't mind me asking, how'd you get nvidia drivers working + is nvidia optimus support good?

    • @orlando7968
      @orlando7968 Год назад +25

      exactly my story minus the hyprland (I'm an awesomeWM diehard). What's even better is it took me about 10 minutes to switch laptops last summer because all my system and application config was handled by nix down to the kernel modules

    • @Ski4974
      @Ski4974 Год назад +6

      Same, also using Hyprland + a Nvidia GPU after switching to NixOS from Arch haha. Literally identical.

    • @supriyosarkar1806
      @supriyosarkar1806 Год назад +17

      What’s the benefit you get ?

    • @kpcraftster6580
      @kpcraftster6580 Год назад +8

      @@aryan37 Their wiki has a page dedicated to nvidia drivers. Non-optimus seems to be supported, but optimus gets a bit iffy.

  • @zyansheep
    @zyansheep Год назад +41

    I never thought I'd see the day my favorite Linux RUclipsr reviews my favorite package manager :)

    • @kpcraftster6580
      @kpcraftster6580 Год назад

      It really seems to be capturing the spotlight lately. First DistroTube, then Switched to Linux, now Mental Outlaw. Is this the year of the Nixos desktop? :D

  • @RossComputerGuy
    @RossComputerGuy Год назад +50

    Nix is amazing. I'm one of the contributors and I maintain the Lens package. I'm coming out with the Flutter Engine being packaged. I've had a lot of experience with it and yeah, there's a huge learning curve but it's very powerful.

  • @starlederer
    @starlederer Год назад +15

    I see that you are pretty new to Nix. You have a lot of nice things yet to discover but here are some that really stood out to me in the video:
    * You are using Nix, the package manager, not NixOS (you sometimes to use the names interchangeably).
    * 5:09 flakes serve a completely different purpose. They are kind of the new way to write nix configs.
    * 5:57 those are not really "instructions". Those things are exactly the same all the time and just list some of the options how you can get the package.
    * 6:04 nix-env is imperative, you might want to look into declarative configs using home-manager or flakes.

  • @X8551516
    @X8551516 Год назад +90

    Other than their repo, the OS itself is also pretty cool. The ability to literally save your entire system to a text file is absurdly powerful, but the thing that prevents me from using their OS is doing anything relating to system settings like bypassing the need for authentication or passwords is an absolute nightmare.

    • @mihaifufezan2216
      @mihaifufezan2216 Год назад +8

      You can set autologin (if that's what you mean) and also `security.sudo.wheelNeedsPassword = false` so you can sudo without having to enter your password.

    • @cybersechs1368
      @cybersechs1368 Год назад

      WUT?? Whats that called?

    • @folksurvival
      @folksurvival Год назад +1

      @@cybersechs1368 NixOS.

    • @mrbanana6464
      @mrbanana6464 Год назад +3

      Ah yes, of course. For those times when I want to reinstall my operating system spontaneously. There really is no point in daily driving nix.

    • @mihaifufezan2216
      @mihaifufezan2216 Год назад +24

      @@mrbanana6464 you missed the point entirely.

  • @yavko
    @yavko Год назад +9

    Been waiting for someone to make a video on Nix! I've been loving nix, and it's amazing. With home-manager and NixOS i can have my whole configured in one place.

  • @luisortega8085
    @luisortega8085 Год назад +32

    another thing that's cool about nix/nixOS is the overrides. You can change many things of a package's/derivation's definition, similar to USE flags sometimes (if provided by the packager, but you can define stuff like that too), but also being to change whatever of the package! Adding patches, removing them, changing sources, changing commands of the build process...
    That said, nix/nixos has its fair share of issues *sometimes*, you might come across stuff that doenst work right, but that's fairly rare.

    • @angeldude101
      @angeldude101 Год назад

      Since Nix is reproducible, it can reap the benefits of both binary-based _and_ source-based packages managers. If the particular configuration you request is available in Hydra, then it will just download from there. If not, then it will grab the build dependencies and compile exactly the specifications you asked for.
      Hail Hydra! (Yes, that's the name of the automated build server.)

  • @iskamag
    @iskamag Год назад +26

    There is also Guix, loosely based on Nix, but uses Lisp, and is overall much cleaner and more declarative. I've used it for months, and it's super comfy for many tasks.
    It's also highly bootstrappable, removing the problem of "Reflections on Trusting Trust"

    • @krator3
      @krator3 Год назад +1

      Guix is ​​not bad, but there are many buts! The entry threshold is higher than that of Nyx OS + less packages. About 26 thousand against 80 thousand. And besides, installing something proprietary is more difficult.

    • @iskamag
      @iskamag Год назад

      @@krator3
      >installing something proprietary is more difficult.
      based (if it was true)

  • @chessai2121
    @chessai2121 Год назад +8

    I've been using Nix/NixOS for almost 8 years now, personally and professionally. It's by far the best OS/package management experience of any distro.

  • @hidekxyz
    @hidekxyz Год назад +25

    Nix could be used to switch GNU Stow, since it handles dotfiles nicely with the home-manager project.
    Also, having one tool to install all other tools, runtimes, apps and services in a isolated and reproducible way is too good.

  • @baguettedad
    @baguettedad Год назад +7

    Oh man it's 23:43 right now, but the video being about the nix paclage manger makes me interested. Will watch it once I wake up early tomorrow before workout!

  • @FirstnameLastname-we6dh
    @FirstnameLastname-we6dh Год назад +4

    Thank you so much for this video! I've been struggling for a while with trying to use Arch with the AUR, but it always seemed to break on me. I really liked using Debian, but the lack of packages made it difficult for me to use it for my needs. I'm now able to combine the stability of Debian with the packages that I need. Thanks again for sharing this information, it's a lifesaver!

  • @jamescampbell6728
    @jamescampbell6728 Год назад +9

    People never talk about how much package managers are a huge barrier for new linux users. I used to think you needed programs to be make specifically for Ubuntu or Arch and if they weren't in the repos then you were just screwed. It really hindered my progress a lot and made me want to go back to windows where I could just find the programs I needed online

  • @kpcraftster6580
    @kpcraftster6580 Год назад +74

    If GNU didn't limit the official repos to exclusively libre software, I think Guix would be an even better package manager, but as it stands I have to agree that Nix takes first place.
    As for Nixos, it is the distro I recommend to new users who don't yet have much Linux savvy to unlearn, but are ready to commit. The drawback of its unconvential paradigm (e.g. the nix syntax) is, of course, that you end up getting pushed down a rather unique path and that experience doesn't translate well in the other direction, to more conventional distros, either.
    What bothers me more though, is that Nixos' config file doesn't actually make all installed packages explicit. So even if you remove all packages listed and rebuild, you will still have software installed, e.g. as part of the desktop environment. This seems to go against the principle of having the entire system configuration contained inside a single file.
    Furthermore, rebuilding the same configuration on exactly the same architecture will not always give 100% consistent results, so the much touted reproducibility is also not quite there yet.
    Finally, the documentation is an absolute mess of instructions written for different versions but then never brought into line.
    But other than those criticisms, I have nothing but praise.
    Thank you for coming to my TED talk.

    • @genericgamer1319
      @genericgamer1319 Год назад +2

      what do you expect of the config file where would you expect extra packages to be listed normally it's added to environment.systemPackages if you were to add all the parts of the DE manually it would be inconvenient you would have to add EVERYTHING by hand basic stuff like sudo included if you're insane enough you can try

    • @kpcraftster6580
      @kpcraftster6580 Год назад +2

      @@genericgamer1319 Whether wanting such fine-grained control is insane or not, it is exactly what I understand Nixos to be advertizing. So of course, I would indeed expect the ability to remove basic packages (e.g. sudo, vi, file and window managers) by means of the config file. Like reproducible builds, that was one of the main selling points after all.

    • @seerlite5256
      @seerlite5256 Год назад +8

      Guix has Nonguix

    • @mskiptr
      @mskiptr Год назад +1

      @@seerlite5256 Yup. Pretty essential if you're running x86. Choice of firmware and microcode is strictly better then being stuck with whatever buggy and insecure versions you already have

    • @Gabriel-mf7wh
      @Gabriel-mf7wh Год назад +1

      @@seerlite5256 the issue is that Nonguix is source-based only. Also, for some reason, Guix substitute servers are really slow. But otherwise, I much prefer Guix than Nix

  • @sinity8068
    @sinity8068 Год назад +10

    NixOS is really awesome. It's step above all other distros.
    If only adoption increased a lot, so that it wouldn't require so much work to solve relatively uncommon problems (because it'd already be done by someone else)...

    • @Spiderfffun
      @Spiderfffun 2 месяца назад

      seems like you are getting your wish lol

  • @knofi7052
    @knofi7052 Год назад +7

    Not only the package manager is very nice, the NixOS distribution as well! Please, have a look and make a review of it as well!😉

  • @Woodywoodah
    @Woodywoodah Год назад +5

    NixOS is excellent but keep in mind that the advantage of things like Flatpak and Snap is they will run software in a sandbox, which can be helpful if it's a proprietary something that you don't fully trust.

  • @ernestoditerribile
    @ernestoditerribile Год назад +5

    I’m so used to the Mac Terminal(MacPorts and Homebrew) and Debian(Kali) apt. But the package manager seems really interesting. I give it a try at both. My first Linux was Gentoo in 2003. So used to apt installation I never liked anything else then BSD based and Debian distros.

  • @Eliotime3000
    @Eliotime3000 Год назад +4

    Interesting. Very nice. *Let's see you GUIX Package Manager* review.

  • @harmonylivingston3460
    @harmonylivingston3460 Год назад +7

    I was literally just thinking today about how I wanted to move away from Arch since each distro seems to have it's own little annoyances that crop up every now and again, but the AUR was just too good. Nix looks amazing!

    • @mattiaborda
      @mattiaborda Год назад +3

      To be fair nix repos aren’t nearly as complete as the AUR, despite what outlaw said. Actually, there are tons of less popular packages missing, I guess most of the 80000 packages are just some variations/old versions of other packages.

    • @BrianMcKennaPuffnfresh
      @BrianMcKennaPuffnfresh Год назад

      @Mattia Borda it's uncommon to have multiple versions of things. Nix allows you to reference old versions from nixpkgs so there's not much reason to keep old versions in nixpkgs.

    • @mattiaborda
      @mattiaborda Год назад +1

      @@BrianMcKennaPuffnfresh I see, then how do yoou explain the fact that in nixpkgs there's so many missing packages compared to the AUR?

    • @BrianMcKennaPuffnfresh
      @BrianMcKennaPuffnfresh Год назад

      @Mattia Borda which ones? It's very rare that I find something in AUR but not in nixpkgs. Usually it's the other way around.

    • @mattiaborda
      @mattiaborda Год назад

      @@BrianMcKennaPuffnfresh denaro, komikku, zapzap, telegrand, identity, avvie, video downloader, cavalier, upscaler, gradience...
      This is stuff I found in just 5 minutes. Can you name me packages from nixpkgs not in the AUR?

  • @Random_Internet_Dude
    @Random_Internet_Dude Год назад +7

    Do a video on setting up and securing a homelab

  • @evanjrowley
    @evanjrowley Год назад

    I am so excited to see you did a Nix video!!! Coincidentally, I have to present about Nix at my job later this month.

  • @yahyae420
    @yahyae420 Год назад

    I just discovered this channel. This is amazing

  • @RajinderYadav
    @RajinderYadav 11 месяцев назад

    Wow thanks for explaining this, I finally get it. I came across Nix while watching a Docker conf video and the creators we talking about using both Nix + Dockers but I just couldn't understand why. Now it all make sense. The creator also mention nix is also good as a version controll manager. You might want to do a video on this feature.

  • @voigondev
    @voigondev Год назад

    A solid, professional and through video, just like all of the others
    thank you for your content!

  • @egorandreevich7830
    @egorandreevich7830 Год назад +4

    Important note: opengl and vulkan is not working out of the box in non nixos systems. So gui apps will work but without acceleration

  • @alkeryn1700
    @alkeryn1700 Год назад +5

    you should mention that nix derrivations can be overrided, so you can take any package and just change compilation options or where you get the source from or apply custom patches.
    the idea is since it is source based, and deterministic, if you don't override a derivation, you are gonna download it from a binary cache but if you do override it you are gonna compile it.

  • @VinnyMeller
    @VinnyMeller Год назад

    you're always making videos as soon as i start looking into something
    started toying with nix and then nixos in a vm for the last week and here you go publishing a video about it

  • @Dylyinyang
    @Dylyinyang Год назад +2

    wow, I can manage so many packages now ! Time to have some fun !!

  • @SmileyBMM
    @SmileyBMM Год назад +12

    Nix is great, I just wish it had more GUI frontends for things. I prefer using a GUI (using Octopi atm) to manage my packages, and Nix doesn't seem to have anything like that yet.

    • @Heynmffc
      @Heynmffc Год назад +9

      All amazing programs have a shitty/no ui

    • @luisortega8085
      @luisortega8085 Год назад +17

      there's a guy working on making that, and honestly the way nix /nixos is, it literally is begging for a ui to be made for it, all the settings and whatnot could be toggled by a nice ui...

    • @numbertumbers529
      @numbertumbers529 Год назад

      @@Heynmffc true

    • @arjix8738
      @arjix8738 Год назад

      @@luisortega8085 is it open source or kept under the table for now?

    • @luisortega8085
      @luisortega8085 Год назад

      @@arjix8738 it's okpen source but i dont remember the name

  • @-_-Girthbrooks-_-
    @-_-Girthbrooks-_- Год назад

    I watched this video when it first dropped. I had no clue what you were talking about nor what I was looking at. And now I come desperately looking for a replacement to ‘apt’.

  • @puffyviper
    @puffyviper Год назад +1

    Oh god, to install packages I used commands for Nix OS and could not understand why nothing worked. I reinstalled Nix 10 times, I tried single-user and multi-user version - all for nothing. Only a week later I rewatched the video and finally noticed 🥳

  • @fargoflagrant7796
    @fargoflagrant7796 Год назад +1

    I'll keep using homebrew because it "just works" for now, but it's good to know that there's an alternative.

  • @winnie8614
    @winnie8614 Год назад +1

    Fof proprietary stuff, like Zoom using flatpak actually makes sense.

  • @nnawaff
    @nnawaff Год назад +5

    the reason behind the high number of packages in Nix is multi versions of a package but AUR packages most of them are unique

    • @hidekxyz
      @hidekxyz Год назад +1

      You are right, but AUR has 12879 contributors while Nix has 2400, pretty impressive that these contributors could package so many software.
      AUR is still unbeatable, Arch is practically anywhere in the linux community, props to them

    • @hidekxyz
      @hidekxyz Год назад

      data according to repology

    • @vpxc
      @vpxc Год назад

      This is false. With a few exceptions, a given release of Nixpkgs has only one version of each package.

    • @hidekxyz
      @hidekxyz Год назад

      @@vpxc Yeah, even though you can install other versions simultaneously (e.g. using overlays) in your Nix package manager

  • @speedytruck
    @speedytruck Год назад +6

    Librewolf constantly falls behind on firefox updates. This is a security nightmare. Especially because it’s very trivial to just install ublock origin yourself and change the few settings to your liking.

  • @ccp_fact_checker
    @ccp_fact_checker Год назад

    love the ease of rollback, will need to check the users it creates at install time and the passwd/keys - but definitely installing it on a test machine.
    Thank you

  • @generallyunimportant
    @generallyunimportant Год назад +1

    i recently made a vm where i started setting up a usable desktop in nixos and mo releases a nix-related video.
    a kewl coincidence for sure.

  • @patjustpat8178
    @patjustpat8178 Год назад +5

    When you compare the package number between Nix and the AUR, you are forgetting that the AUR does not contain the packages in the official repos (13754 as of right now).

    • @angeldude101
      @angeldude101 Год назад

      The are a lot of duplicates between the two, mainly from numbered releases in the main repos and guy trunks un AUR, which makes it harder to really compare.
      With mentioning about Nixpkgs is the fact that the entire thing is just a normal GitHub repository that anyone can submit issues and pull requests to. Even when an updated version isn't in nixpkgs-unstable, someone's probably already made a PR to fix that and its possible to install directly from that PR rather than waiting for it to get merged.

  • @liegon
    @liegon Год назад +2

    This is probably extremely useful in creating docker/podman images with exactly the software that you need.

    • @vpxc
      @vpxc Год назад

      Yep! Nix is pretty much the fastest way to create reproducible Docker images

  • @bigbodge
    @bigbodge Год назад +5

    I have no plans to stop using linux anytime soon, but this was my biggest complaint about it. Not necessarily that you can't install everything, but that there are so many different sources, none of which are entirely complete.
    There is still some work to do, particularly for nonfree software (eg steam, spotify, etc client is free, but not open source) can still be a pain if its only built for your distro, but if nix takes over I can see that problem being resolved as well.

    • @jaimeFaithBasedOne
      @jaimeFaithBasedOne Год назад

      Distrobox?

    • @bigbodge
      @bigbodge Год назад

      @@jaimeFaithBasedOne certainly helps, but still not a perfect solution.
      For example, one particular piece of software I struggled to get installed properly on fedora was Aesprite. To my knowledge, thats not on any distros package manager.
      Actually, thinking about it again, I think that might be the real problem. There are quite a few near complete solutions (distrobox, flatpak, nix), but nothing all encompassing.
      I guess the ideal in my eyes would be a compatibility layer that allows software built for one distro to be installed on others, e.g. installing .deb on fedora. Basically, the linux version of windows .exe or macos .dmg

    • @jaimeFaithBasedOne
      @jaimeFaithBasedOne Год назад

      @@bigbodge maybe it needs an .appimage? I installed silverblue on my laptop and it's such a pain to overlay packages that I have been levaraging all the options: appimags, flatpaks, distrobox, compiling from source. I would complain about this being a linux problem, but for windows and mac powerusers their a lot of ways to deal with software installs too

    • @bigbodge
      @bigbodge Год назад

      @@jaimeFaithBasedOne app images have always worked poorly for me, especially with getting them integrated with the application menu
      I wouldn't even mind losing the application menu as a whole, and just launching all software from the terminal/file manager, the problem comes when 80% of your software is in this application menu and 20% can only be accessed through the executable.

  • @ProLessSkill
    @ProLessSkill Год назад +4

    You should make a video on MicroOS - the immutable distro by openSUSE.

  • @jjamesmartiin
    @jjamesmartiin Год назад +1

    Glad to see some Nix representation 🎉🎉

  • @hidekxyz
    @hidekxyz Год назад +4

    I think all this begins with the idea of comparing a Deployment Domain to a programming language software, whereas
    - memory = disk
    - value, object = file
    - address = path name
    - pointer dereference = file access
    - pointer arithmetic = string operations
    - dangling pointer = path to absent file
    - object graph = dependency graph
    - languages without pointer discipline (e.g. assembler) = typical Unix-style deployment
    - languages with enough pointer discipline to
    support conservative garbage collection (e.g. C, C++) = Nix
    - and et cetera...
    Thinking that way, we could apply programming language concepts into operating systems, and consequently applying the functional paradigm into that.
    The idea of transforming systems, packages, shells into pure functions is pretty interesting in my opinion, every machine is a turing machine and theoretically could run the same software in the same way, but the things we do imperatively in our system cause side-effects that we cannot reason about later, which then creates another environment in which packages can break.
    Nix and NixOS however offers a way to track our side-effects in our system by declaring in a config file using the Nix lang, this is way better than just performing these side-effects imperatively and then try to remember then later.
    Isolated builds also forces the pkg creators to declare it's dependencies using the Nix package manager, which also enforces to declare the version of the pkg, and it's SHA256, having all these information allows the Nix package manager to have multiple versions of the same pkg used by different programs, that's why /nix/store is a read-only dir.
    Nix of course have it's drawbacks since there are some programs which does not support this type of functional package management, but there are escape hatches like docker and the buildFHSUserEnv fn from nixpkgs repo.
    Also, docs are not too good, the community is divided by the use of flakes and the new nix command, and learning curve is steep since some knowledge of functional programming is needed to do complex stuff, but overall is pretty good (especially for power users) and I cannot go back to use traditional distros and package manager nowadays.

    • @miuravitor
      @miuravitor Год назад

      facts

    • @angeldude101
      @angeldude101 Год назад +1

      This is pretty much exactly how Nix was initially conceived. The PHD thesis for which Nix was the implementation has Chapter 3 titled "Deployment as Memory Management", and includes sections on "The file system as memory" and "A pointer discipline", which are exactly what you started describing. Nix also literally has its own garbage collector to delete old packages that are no longer being referenced by packages pinned as "gc roots". It technically could delete them immediately when they stop being referenced, but packages are often a lot slower to build than most functions are to compute, so they're effectively memoized and a newer package can reference a previously unreachable package without having to rebuild it.

  • @sindurwavesismaturf
    @sindurwavesismaturf Год назад

    I am a freelance coder and a lot of clients insist on using Skype for communication. I have the aur version of skype installed and so far it doesnt do anything shady other than setting itself to open at startup

  • @duncanw9901
    @duncanw9901 Год назад +8

    Consider looking into GNU Guix too; it's a bit smaller, but IMO far more principled in every sense.

  • @regbot4432
    @regbot4432 Год назад +1

    For me different package manager is part of the fun when distrohopping

    • @atpray
      @atpray Год назад

      I distro hop by using linux containers (LXC)

  • @Ruben-tm3fg
    @Ruben-tm3fg Год назад +27

    Remember when Linus (the RUclipsr) was trying to use a distro and somehow while updating the system deleted the whole desktop environment. XD

    • @tacticalcenter8658
      @tacticalcenter8658 Год назад +1

      LTT is an entertainment company making money off of failures.

    • @TwelveLetter956
      @TwelveLetter956 Год назад +4

      and that's why I won't recommend popos

    • @oczi1660
      @oczi1660 Год назад +5

      common things in linux: steam wants to delete systemd

    • @kpcraftster6580
      @kpcraftster6580 Год назад +1

      And system76 used that as an excuse to bake all sort of bloat (e.g. indexing) into the distro so you can't uninstall it with a single simple command.

    • @bradleycooper5436
      @bradleycooper5436 Год назад

      @@oczi1660 not common lmao. He is just retarded

  • @veljkonikolic7788
    @veljkonikolic7788 Год назад +1

    How does it work on all distros? Is it like snap or flatpak? How big are the packages compared to apt packages? How does telhe performance compare to apt packages?

  • @whatthefunction9140
    @whatthefunction9140 Год назад

    I recognize your voice from the udemy go course. Best one I've done so far.

    • @rahilarious
      @rahilarious Год назад

      what the course was about?

    • @TheSuperBoyProject
      @TheSuperBoyProject Год назад

      @@rahilarious how to rob people at gunpoint

    • @rahilarious
      @rahilarious Год назад

      @@TheSuperBoyProject so it was boring...No use for me

  • @Alexander_Sannikov
    @Alexander_Sannikov Год назад +1

    The most interesting thing about nix is that it's just completely different from every other package manager on every single level. From the way their virtual filesystem works to the way their dependencies are resolved, and even though it takes a lot of effort to understand why it's done in such an unusual way, but if you dig into it, you realize how well it synergises with itself and why its architecture makes perfect sense.
    The only downside is that it is basically alien tech. It can be too unusual for normies. It can be too much to understand why it's done the way it's done.
    But I actually recommend going next level and switching to NixOS -- it's an OS based on nix architecture.

    • @azareii
      @azareii Год назад

      The fact that I have a backup of my configuration.nix makes me absolutely fearless on my computer. Oh and the rollback too. I used that just today when I somehow managed to break Alacritty. How does one even break a terminal emulator?

  • @neko-san5965
    @neko-san5965 Год назад +1

    How would this package manager not introduce the same "bloat" as flatpaks when anything installed obviously needs dependencies? 🤔

  • @nekomakhea9440
    @nekomakhea9440 Год назад +6

    Don't forget the Scheme version of Nix, GNU Guix

    • @mskiptr
      @mskiptr Год назад

      Yep, it's definitely smaller but in my experience way more polished.
      I'm playing with it on a second laptop and it's just really nice!

    • @your-mom-irl
      @your-mom-irl Год назад +1

      aint nobody touching that godforsaken programming language bro

  • @plamenrogachev2562
    @plamenrogachev2562 Год назад +5

    You should've talked more about the nix-shell command since it is the only thing making the package manager unique besides scripting with the nix language and rolling back. It should also be noted that in NixOS you are barely ever going to use the nix-env command since there is a more declarative way to install packages through the configuration.nix file.

    • @kexec.
      @kexec. Год назад

      true I really don't understand why Nix team still maintain nix-env.

    • @olifloof
      @olifloof Год назад

      if you do want imperative package management with nix, then use `nix profile` instead

    • @angeldude101
      @angeldude101 Год назад

      @@olifloof The only issue with that is that Home manager seems to use nix-env behind the scenes and doesn't work if you use nix profile. Though with Home manager, I'd only use either when I want something quick and dirty and don't know if I want to keep something in the config.

  • @rmoog1019
    @rmoog1019 Год назад +1

    The best thing about NixOS is switching to RHEL because you can never find, let alone hire, people who know NixOS good enough to drive it inside an enterprise environment.

  • @seanwieland9763
    @seanwieland9763 Год назад +5

    For Mac OSX: first Fink, then MacPorts, then HomeBrew, and now Nix?

    • @orlando7968
      @orlando7968 Год назад +2

      nix is less of a mac package manager and more a supporting-every-possible-platform package manager, but yeah mac users really are spoiled for choice
      that being said I'd totally just wait for asahi to be good enough to daily drive before I actually pick one up myself

    • @ws13bf
      @ws13bf 7 месяцев назад

      As long as Apple doesn’t provide something like that, yes..

  • @JobStoit
    @JobStoit Год назад +1

    I think I love the technology, it’s just the way to interact with it is unfriendly and I think that deters a lot of potential users. Wishing it was more straightforward like: nixpkg install … and nixpkg uninstalll … and nixpkg search …. Personally I find that with PacMan too

  • @falxie_
    @falxie_ Год назад

    NixOS and its modules have changed how I use Linux. I'm running NixOS on an ARMv7 SBC called the "Banana Pi M2 Zero" and it works great

  • @maurolimaok
    @maurolimaok Год назад

    Finally I do understand Nix.

  • @gutoguto0873
    @gutoguto0873 Год назад

    Kenny have you taken a look at “looking glass”? It’s a pretty neat project.

  • @vtoldaccount1222
    @vtoldaccount1222 Год назад +1

    this package manager seems cool but for my use case i see little reason to use it over flatpaks

  • @cattohappy9263
    @cattohappy9263 Год назад +1

    You may also want to try Distrobox. Didn't have a chance to try it yet tho

  • @LuizCarlos-my1wr
    @LuizCarlos-my1wr Год назад

    I am a noob who is hopping distos and this is really interesting!

  • @M0rn1n6St4r
    @M0rn1n6St4r Год назад +1

    This _seems_ really great. I could see replacing homebrew with nix, on my macOS system. But, on my Debian-based system - my daily driver OS - I am concerned about dependency issues. For an Arch-user, I imagine resolving dependency issues are quite common. On my Debian-based system, however, I have had _no dependency issues._ Installing and upgrading packages, for 3+ years, has _never_ broken my system - nor broken any app on my system.
    I have _no (current) experience_ resolving dependency issues. The last dependency issues I resolved were on Fedora 7, in 2008.
    Will I regret running nix package manager on a stable, Debian-based distro?

    • @lydedreamoz
      @lydedreamoz Год назад +3

      nix resolves all dependencies by itself and never messes with the host system. It keeps all its files in the nix directory so you don't have to worry.

    • @M0rn1n6St4r
      @M0rn1n6St4r Год назад +1

      @@lydedreamoz - Cheers, buddy!

  • @hyperboreanpunk
    @hyperboreanpunk Год назад

    finnally you did a video on nixos

  • @VSteam81
    @VSteam81 Год назад

    As a small time Nix user (replit nix), it is pretty good

  • @pal2378
    @pal2378 Год назад

    YEAH!!! hyped for this one

  • @lightraysone
    @lightraysone Год назад +4

    I prefer Gentoo prefix to nix, but that's just my preference.

    • @terrydaktyllus1320
      @terrydaktyllus1320 Год назад +4

      Me too, I have been on Gentoo since 2003 now. NixOS just says to me "Linux bloat for newbies forever staying newbies".

    • @billeterk
      @billeterk Год назад

      Coincidentally when nix started

    • @terrydaktyllus1320
      @terrydaktyllus1320 Год назад

      @@billeterk No coincidence. Nix started in 2015, Gentoo some time around 2000 as a concept. There's no relationship between the two.

    • @billeterk
      @billeterk Год назад

      @@terrydaktyllus1320 eh? Nix was released in 2003.

    • @terrydaktyllus1320
      @terrydaktyllus1320 Год назад

      @@billeterk 2015, according to Wikipedia. But even if it is 2003, it has nothing to do with Gentoo.

  • @stopcensoringmen5044
    @stopcensoringmen5044 Год назад

    Thank you. I am going to go and do that right now.
    Try to break mint with dmenu, that is.

  • @LokarinOn
    @LokarinOn Год назад

    Unironically very impressive

  • @michaeldeloatch7461
    @michaeldeloatch7461 Год назад

    Thanks Kenny -- this is one of your best ones yet. I am still a bit fuzzy though ... since AUR is pretty inclusive, why would an arch user bother installing the Nix PM? PS I have never broken my system installing packages. Those darn developers did it. ;-)

  • @stevejobs2494
    @stevejobs2494 Год назад

    Hey, would love to see you do a video on Paranoia Text Encryptor. Its not on Nix package manager or AUR - only available as a .deb package. Would like to see you getting it working on an Arch based or Redhat based distro!

  • @papabones8753
    @papabones8753 Год назад +1

    What about flatpaks? Zoom, Spotify etc is on there, too.

    • @Xiefux
      @Xiefux Год назад

      zoom and spotify are proprietary spyware, you dont want to use them

    • @papabones8753
      @papabones8753 Год назад +1

      @@Xiefux Agreed, he did mention those though(watch the video). My question is why install one package manager over the other, lol.

  • @d3stinYwOw
    @d3stinYwOw Год назад +1

    If you comment on Nix, then why not on Guix, which is similar to Nix, but uses Guille/Scheme, and it's Stallman-approved? ;)

  • @HumbleHuman-k7g
    @HumbleHuman-k7g Год назад

    I get used to pacman manager and Arch Wiki which are the best in GNU/Linux land.
    Wish you best luck with your choice.

  • @9SMTM6
    @9SMTM6 Год назад

    I have and will continue to install stuff like zoom per flatpak. I know it ain't perfect, but the added isolation makes me sleep better.
    But for some other Software Nix is a good fit.

  • @klink_75
    @klink_75 Год назад

    having Nix as your package manager is like having a friend who owns a PS1 and all the latest games like Crash Bandicoot

  • @Tomb_Raider123
    @Tomb_Raider123 Год назад

    Please cover Norton password manager breached news in a video explaining the credential stuffing attack.

  • @anvrkx5407
    @anvrkx5407 Год назад

    i cant see how this is better that compiling the package and every single dependency from pkgsrc

    • @maxwell-lt
      @maxwell-lt Год назад

      With Nix you get a binary cache for every derivation (package) in Nixpkgs, so you don't need to compile anything. At the same time, Nix makes it trivial to change anything about a derivation (such as the source version or build flags), in which case you will transparently compile the package with those changes included when rebuilding your system.

    • @terrydaktyllus1320
      @terrydaktyllus1320 Год назад

      @@maxwell-lt Yes, in three words "Nix is bloat". You could have saved yourself some time and keyboard wear.
      "Gentoo all the way" for me.

  • @Abhinav_Nayana_Sailen
    @Abhinav_Nayana_Sailen Год назад +9

    Yo Luke, can you make a tutorial for self hosted vpn since you say all of them are scams?

  • @glitchy_weasel
    @glitchy_weasel Год назад

    Interesting package manager. I wonder how they assure that it will run on any distro. Are you sure is not using some kind of containers, like flatpak/snap?

    • @angeldude101
      @angeldude101 Год назад +1

      It installs everything into its own root level directory; /nix. Building packages is sandboxed, but running them keeps them isolated entirely through clever use of the filesystem rather than containers. For closed-source applications that require an FSH compliant system like Steam, Nix sets up a chroot when running them.

  • @camwha5904
    @camwha5904 Год назад

    3:30 Could you do a video on how to check if a script is dangerous before running it? I’ve heard a lot of RUclipsrs say to do that but never explain the how.

    • @mycommentmyopinion
      @mycommentmyopinion 9 месяцев назад

      Download the script (don't run it!), open it with a text editor and check for suspicious URLs or weird behavior (like trying to run commands that an install script shouldn't need to run). Ofc you need some programming knowledge and know a little bit of shell 😁

  • @Rooot-username
    @Rooot-username Год назад

    When Jason Tatum isn’t putting up buckets he’s tracking us Linux stuff on RUclips

  • @Ultrajamz
    @Ultrajamz Год назад +1

    Reminds me of python package management with conda

  • @grumpyspoder
    @grumpyspoder Год назад +1

    To me nix was a life saviour, used void Linuxbefore which was good tbh, but when I messed up something and had to wipe the system, getting back my exact same old config was painful.
    With nixos, I just had to take the configuration.nix file and run nixos-rebuild switch. and everything including the software I use was back i seariously can't go back to any normal distro now

  • @ezforsaken
    @ezforsaken Год назад +1

    I'm staying with arch, if you want to go with nixos and gargle all their crappy docs whenever you actually want to do something more advanced, then go ahead.

  • @llamingo
    @llamingo Год назад

    Are those repos up to date? Do they get auto updated like snaps or flatpaks?

  • @presi3005
    @presi3005 Год назад +1

    Nix isn't a true replacement for the AUR. AUR doesn't only have packages, it's also a utility. Things like obs plugins for example are much easier to install on arch than even windows because of the AUR.

    • @genericgamer1319
      @genericgamer1319 Год назад +1

      i think you got the 2 mixed up how is the AUR an utility i never knew you could configure packages with it without editing the pkgbuild or installing a package that replaces files in which case Nix has a few OBS plugins not many but it\s got some

  • @TheJackiMonster
    @TheJackiMonster Год назад +2

    The problem with every system like that is its need of maintainers. If you don't find people deploying the packages for it, the best package manager in the world can't help you. It's the whole point why pacman on Arch works that well: Creating a package is pretty easy in most cases.

  • @copper4eva
    @copper4eva Год назад +1

    Any interest in using NixOS? Not just Nix the package manager. Personally, after being able to write the whole system setup in one configuration file, I can't go back to other distros lol. I know you can write scripts to more or less auto setup an arch install, or whatever other install. But you would have to maintain that yourself whenever they make little changes that mess up your scipts. Nixos is just phenomenal.
    Only problem is I don't have a good understanding of its syntax, or functional programming in general frankly. So whenever I want to write something my way, it never works lol. And you can only get so far copy and pasting example code off the wiki and other peoples dots.

  • @TheYoungtrust
    @TheYoungtrust Год назад

    Could you put this on Debian stable and not have to worry about way too old libraries?

  • @padgerman
    @padgerman Год назад +5

    Maybe I'll have to nix Homebrew in favor of Nix

    • @angeldude101
      @angeldude101 Год назад +1

      I'm pretty sure that that usage of "nix" is more when the package manager got its name than from Unix / "*nix".

    • @sm0na
      @sm0na Год назад

      @@angeldude101 You're right, it's named after how it "nixes" the outside environment when building packages.

  • @noeljose
    @noeljose Год назад

    It would be nice if you could cover on "Google Vs Competition Commission of India"

  • @dexedrine404
    @dexedrine404 Год назад

    What do you recommend over spotify? ncmcpp and only local files? How would you find music--only on youtube/soundcloud and then yt-dlp?

  • @yibowei9636
    @yibowei9636 Год назад +1

    I tried Nix, but the desktop icons are all missing for the packages it installed. I try to change the XDG_DATA_DIRS variable in my ~/.profile but it didn't work. I guess it's just good for some command line tools for your dev environment. I'll probably stay with system package manager for now

  • @del46_60
    @del46_60 Год назад

    I want to hear your thoughts on systemd. As an outsider, it seems like nerds arguing over pointless shit.