Guix is a Domain-Specific Language based almost entirely on Guile Scheme, the official language for GNU extensions. The best way to learn Guix is to read and study the source code as well as understanding how Guile Scheme functions under the hood. I recommend learning the basics of Scheme first before tackling Guix as well as understanding the concept of Data as code. Just like with Nix, the Guix language is most likely going be the biggest hurdle, but it is infinitely rewarding once you start getting comfortable with it.
I recommend always keeping a git checkout of upstream Guix and take time to read the source code and try to understand how everything fits together. Mainly, you're looking at two subdirectories: guix/ and gnu/.
gnu/ defines all the package/services data as code. The best way to get comfortable with guix is to start at the top with the basic package definition and try to copy what you see. The "Contributing" section of the Guix manual can tell you how to get set up with hacking on Guix. In my experience, making a package in Guix was the easiest part since there's so many other package definitions you could template from. From here you want to learn about G-expressions which is the way Guix is able to use build code efficiently.
guix/ is the actual project's code itself and virtually all top-level procedures are documented. This is vastly harder to study but bit by bit you'll understand how the Guix language was designed.
The Guix manual is very helpful but if you need clarification you should visit the Guix IRC channel on the Libera network. There's almost always a maintainer or helpful community members to answer your questions. But my main advice is to Read the source code and experiment with guix. Unlike Nix, everything in Guix is plainly readable and tied all together.
What happens when a package is not available in Guix? How can I install software from source files?
You have to package it yourself, you can do this easily with Guix channels (what essentially is a more sophisticated package repository) that you can host yourself. You can also send patches upstream (via git send-email) to include your package in Guix proper. The power of Guix is in the freedom it provides you, but you have to harness it first.
If I wanted non-free software, like Steam, what is the best way to go about it?
Not use Guix. Use nonguix which has the full linux kernel, proprietary drivers and Steam.
day-to-day management would involve also learning about guix home which is analogous to Nix's home manager. Don't be too afraid of the Guix manual and always make sure you're using the latest one.
If you seriously want to use Guix you basically have to become a contributor since the project is still in its infancy (Nix is over 20 years old by comparison and only recently got popular). I recommend subscribing to the Guix-devel and Guix-help mailing lists as well. Guix is highly rewarding since it's a vision into a reproducible, libre future that has never been tried before in human history but if you want to use an immutable system on a production machine I'd recommend Nix.
Guix is a Domain-Specific Language based almost entirely on Guile Scheme, the official language for GNU extensions. The best way to learn Guix is to read and study the source code as well as understanding how Guile Scheme functions under the hood. I recommend learning the basics of Scheme first before tackling Guix as well as understanding the concept of Data as code. Just like with Nix, the Guix language is most likely going be the biggest hurdle, but it is infinitely rewarding once you start getting comfortable with it.
I recommend always keeping a git checkout of upstream Guix and take time to read the source code and try to understand how everything fits together. Mainly, you're looking at two subdirectories:
guix/
andgnu/
.gnu/
defines all the package/services data as code. The best way to get comfortable with guix is to start at the top with the basic package definition and try to copy what you see. The "Contributing" section of the Guix manual can tell you how to get set up with hacking on Guix. In my experience, making a package in Guix was the easiest part since there's so many other package definitions you could template from. From here you want to learn about G-expressions which is the way Guix is able to use build code efficiently.guix/
is the actual project's code itself and virtually all top-level procedures are documented. This is vastly harder to study but bit by bit you'll understand how the Guix language was designed.The Guix manual is very helpful but if you need clarification you should visit the Guix IRC channel on the Libera network. There's almost always a maintainer or helpful community members to answer your questions. But my main advice is to Read the source code and experiment with guix. Unlike Nix, everything in Guix is plainly readable and tied all together.
You have to package it yourself, you can do this easily with Guix channels (what essentially is a more sophisticated package repository) that you can host yourself. You can also send patches upstream (via git send-email) to include your package in Guix proper. The power of Guix is in the freedom it provides you, but you have to harness it first.
Not use Guix. Use nonguix which has the full linux kernel, proprietary drivers and Steam.deleted by creator
day-to-day management would involve also learning about
guix home
which is analogous to Nix's home manager. Don't be too afraid of the Guix manual and always make sure you're using the latest one.If you seriously want to use Guix you basically have to become a contributor since the project is still in its infancy (Nix is over 20 years old by comparison and only recently got popular). I recommend subscribing to the Guix-devel and Guix-help mailing lists as well. Guix is highly rewarding since it's a vision into a reproducible, libre future that has never been tried before in human history but if you want to use an immutable system on a production machine I'd recommend Nix.
deleted by creator