•  uthredii   ( @uthredii@programming.dev ) 
    link
    fedilink
    English
    1
    edit-2
    1 year ago

    So how useful it is in practice?

    It’s useful for quite a few things in practise:

    • You can be sure software that is packaged with nix will behave the same on different computers.
    • You can avoid dependency conflicts.
    • You can automate some things that would otherwise take multiple (mostly manual steps) on other systems.

    This video shows off some of the cool things you can do with nix: https://youtube.com/watch?v=6Le0IbPRzOE&feature=share9

    How do updates work?

    You update a programming by specifying the latest version of a program in config and rebuilding.

    You update the OS by pointing to the channel you want to use and rebuilding.

    You can time travel back to a previous state if anything goes wrong.

    Can it play Crysis?

    I expect so, some people.do use nix for gaming.

    • You can be sure software {…} will behave the same

      never had that issue before, as long as they have the same version and config

      avoid dependency conflicts

      I have those on Gentoo sometimes, possibly because I overloaded USE too much, but that’s not something I have to deal with on Debian/Mint.

      You can time travel back to a previous state

      wasn’t that possible before with snapshotting (btrfs/lvm)?

      If it allowed me to avoid systemd, I would be willing to give it a go. Perhaps I will try it in a VM, but it’s not going on any baremetal for now.

      • You can be sure software {…} will behave the same

        never had that issue before, as long as they have the same version and config

        Pure:

        If you uninstall a software it might still have residues. If you install a faulty driver, even if you uninstall it, it might still permanently mess the system configuration.

        But with nix if you uninstall something it’s like it never existed in your system.

        Reproducible:

        With nix all the apps in your OS are configure using a single or a few config file(s). So if you want to setup another system the same way you don’t have to go hunting for dotfiles.

        avoid dependency conflicts

        that’s not something I have to deal with on Debian/Mint.

        Because you are recommended to use only software present in the repositories. If you are the kind of person who doesn’t need software outside of your OS repositories then of course you might never need to worry about dependencies. Other people are doing the job for you.

        But if you want to software not in the repos and even if you want to package it for your OS you might run into dependency issues. Never with nix. It’s more for people who don’t mind packaging software for themselves (and the community) and don’t want to deal with nasty dependency issues.

      • never had that issue before, as long as they have the same version and config

        Then you are very lucky. “It worked on my machine” is a meme for a reason.

        wasn’t that possible before with snapshotting (btrfs/lvm)?

        I haven’t used snapshotting with those before. I guess the difference is that with nix it is done by the package manager by default, with btrfs/lvm you would have to set that up independently (please correct of this is not the case).