this post was submitted on 22 Jul 2025
51 points (98.1% liked)

Linux

56706 readers
601 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 6 years ago
MODERATORS
 

One aspect of Guix I found to be really fascinating: That there is basically no conceptual difference between defining a package as a private build script, and using a package as part of the system.

Let me explain: Say you wrote a little program in Python which uses a C library (or a Rust library with C ABI) which is in the distribution. Then, in Guix you would put that librarie's name and needed version into a manifest.scm file which lists your dependency, and makes it available if you run guix shell in that folder. It does not matter whether you run the full Guix System, or just use Guix as s package manager.

Now, if you want to install your little python program as part of your system, you'll write an install script or package definition, which is nothing else than a litle piece of Scheme code which contains the name of your program, your dependency, and the information needed to call python's build tool.

The point I am making is now that the only thing which is different between your local package and a distributed package in Guix is that distributed packages are package definitions hosted in public git repos, called 'channels'. So, if you put your package's source into a github or codeberg repo, and the package definition into another repo, you now have published a package which is a part of Guix (in your own channel). Anybody who wants to install and run your package just needs your channel's URL and the packages name. It is a fully decentral system.

In short, in Guix you have built-in something like Arch's AUR, just in a much more elegant and clean manner - and in a fully decentralized way.

you are viewing a single comment's thread
view the rest of the comments
[–] balsoft@lemmy.ml 10 points 5 days ago (28 children)

One aspect of Guix I found to be really fascinating: That there is basically no conceptual difference between defining a package as a private build script, and using a package as part of the system.

This is true for Nix as well.

The two main advantages of Guix are the language (which is well-known and comes with lots of good tooling and other support) and the package bootstrapping.

[–] msherburn33@lemmy.ml 0 points 4 days ago (12 children)

The two main advantages of Guix are the language

I wouldn't call that an advantage for the average person. Nix is far nicer to work with. Some Lispers might disagree, but I, for one, can't exactly see the beauty in trying to turn Scheme into a configuration language with macros and hacks. Also Guix puts Scheme everywhere, things you can do with plain old Bash in Nix, you'll have to all do in Scheme in Guix, so there is a much steeper learning curve.

[–] balsoft@lemmy.ml 8 points 4 days ago (1 children)

Well, Nix language is also full of hacks, idiosyncrasies and stupid decisions. I say that as someone who's writing it "professionally", i.e. as part of my job. Scheme is way less "unexpected". But there are other parts of Guix which are pretty weird or just bad, like the "channels"/"pins" management situation.

[–] HaraldvonBlauzahn@feddit.org 1 points 4 days ago* (last edited 4 days ago)

Plus, if one compares the full bash man page with an introduction to Scheme - I love the quick introduction into racket with pictures - one can come to the conclusion that Schemes are both a lot simpler and more powerful.

In the end, it is pretty much a matter of taste, previous experience, and practical needs what one prefers.

load more comments (10 replies)
load more comments (25 replies)