Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)SH
Posts
3
Comments
718
Joined
2 yr. ago

  • It's far better in theory, but in practice it's got some massive issues:

    • non-free packages are taboo in the official guix community
    • binary support was lacking the last time I used it (firefox didn't have a precompiled bin for example, and that means you need to leave your browser to compile overnight)
    • far less packages than nixpkgs even when you account for the non-free repo
    • packages are seriously out of date (I tried using it as an additional pm a few months ago, and debian 12 was newer in a lot of cases)
    • essentially no support for some programming languages and package managers (node and npm for example)

    In it's current state it's really only good for emacs, lisps, and some other languages like haskell.

  • You're ignoring the difference between using something declaratory and imperatively. Just because it's difficult to get to that one liner, it doesn't change the fact you'll still only use that one command. Git by it's nature requires you to use different commands to achieve different results. Home-manager allows you to both update your packages and delete all of them with the same command, because that command is "sync the state with the source of truth".

  • It's much simpler because you're using text files to define the expected state, the cli is there only to tell nix to figure out what it needs to do and to get on with it. Meanwhile with git you're manually doing each of the steps until you reach the desired state.

    I only need cd ~/dotfiles/nix/ && nix-channel --update && nix flake update && home-manager switch for everyday package management. It's the nix version of apt update upgrade and install.

    nix shell and nix run are pretty useful as well, and you'd want home-manager generations to rollback.

    The confusion arises because there are 5 different ways to do the same thing, the non-experimental methods shouldn't be used even though they're recommended in the official docs, and you need to get lucky to get the info that you can use home-manager and that one liner.

  • It's pretty easy for home-manager use, but still really useful. You can:

    • choose which packages to install from stable and which from unstable
    • add packages from repos that have flake.nix in them
    • correctly match nix and home-manager versions, and always update them at the same time
    • allow-unfree without nixpkgs conf, so 1 less directory required in .config (if they accepted the "experimental" features it'd be down to 1)

    Here's an example:

  • RHEL - 16 free licences and you can use them for whatever you want

    Ubuntu pro - 5 free licences for personal use

    SEL - you can try it out for 60 days or cobble something together while testing our enterprise packages

  • maybe it wouldn't be as wonky as the AUR since it's Nix at least

    That's for sure, since nix handles dependencies a lot better than pacman. But I meant that due to the sheer size of nixpkgs, and the way you can add a repo to your flakes, there's no real need for it. But that's just pure speculation.

    I think a sensible progression is: nix + home-manager -> flakes -> develop -> nixOS

    You build on previous knowledge without getting overwhelmed. I tried using guixos without ever using guix or nix, and it's really not nice when you have to spend a week trying to figure out how to do something that takes you 5 mins in a regular distro. It even took me a few attempts to get started with nix simply because the docs are abysmal, almost all info is on nixos, and home-manager is rarely mentioned.

  • I would rather Linux just be able to detect what's missing and install it for me. In the case of a lot of missing components, what it says is missing will be named completely different from the package you need to install which makes it really hard.

    That does happen, but Linux doesn't have anything to do with installing packages, your package manager does. If this package was installed through apt for example, it would also download all of the dependencies. But this package is using a makefile to build and install, therefore it has nothing to do with your package manager.

    Tldr: use the package manager, and don't use DIY packages if you don't want to DIY

    Additional package managers like flatpak and nix solve different issues:

    • dependency mismatch: let's say libreoffice and this package require a different version of glibc -> flatpak downloads both versions and symlinks them in a different location in order for each package to have the correct version while not impacting your system and the glibc your DE is using
    • newer packages: Debian freezes packages for 2+ years, flatpak gives you a fresh version
    • easier packaging for developers: you can package for flatpak instead of having to maintain packages for every popular package manager and distro
  • Thou shalt write two k's, no more, no less. Two shall be the number of k's thou will write, and the number of k's of the writing will be two. Four shalt thou not write, neither write thou one, excepting that thou then proceed to two. Three is right out. Once the number is two, being the second k is written, then lobbest thou thy message towards thy foe.

  • Nix + home-manager are a much better starting point than NixOS

    • your system still respects FHS and can still use like npm
    • you can still leverage decades of Linux knowledge
    • it's much easier to slowly build up knowledge than to have to immediately learn everything
  • It's not clear what device you want to install Linux on.

    If it's an apple arm you're pretty much limited to what Asahi is doing (Fedora now afaik).

    If it's a regular amd64, I'd suggest something more stable like MX, Mint, Suse leap, etc. You can use an alternative package manager to keep what you need fresh, but your base system won't change for years.

    I'd maybe suggest starting first with nix and home-manager while you're still on macos. Do note that I haven't used it on mac, but the idea is for it to be cross platform. You can start adding your packages to the list, and have everything you need immediately when you start using Linux. That's going to be your best option for programming, but it's more difficult. This should help you out to get started

    As for gaming, I wouldn't have high hopes on arm. You can use lutris to run windows games for example, but if your device also needs to emulate a different CPU architecture, it wont be happy. Docker had serious performance issues before they introduced arm base images.