this post was submitted on 16 Feb 2024
42 points (97.7% liked)

Linux

48069 readers
697 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 7 points 8 months ago* (last edited 8 months ago) (1 children)

Yes GNU Guix is a linux distro.

The package manager for Guix (also called guix) is also a portable package manager which works on any linux distro, similar to flatpak, nix, homebrew, etc.

Guix's claim to fame is that it is a functional distro/package manager, meaning that all changes are atomic, so installing/upgrading/deleting packages never leaves your system in a broken state.

Not only that, but if you make some change to your system and it breaks for normal reasons (e.g. newest software version has a bug), you can roll back to your previous system state with all your previous packages and their versions, and this roll-back operation is also atomic.

Guix the distro not only let's you do package management this way, but also let's you do declarative system configuration. This means rather than manually rummaging around /etc changing files and hoping nothing breaks, there's simply a single config file which declares all of your system configuration. From your kernel to users, partitions, system services, and just about anything else, all the configuration is declaratively done in one place with one language (Guile Scheme). Any changes you make to your system this way are also of course atomic and can be rolled back.

It even comes with a built in system called guix home which lets you bring that same level of declarative, atomic configuration to your user's home environment, letting you manage user level packages, dotfiles, env variables, and more with a single home configuration file.

There are other goodies too, such as the ability to spawn one-off shell environments with the guix shell command, dropping you in a shell with all the packages and env variables you declare, keeping your regular user environment clean (very nice for development).

There's even more, but at this point if you're still interested just head over to the site and the docs.

[–] [email protected] 5 points 8 months ago (1 children)
[–] [email protected] 7 points 8 months ago* (last edited 8 months ago)

M-% NixOS RET Guix RET !

But yes 80% of my comment applies to Nix as well, as of course Nix is older and Guix is (conceptually) based on Nix. Though I personally use/prefer Guix.