GNU Guix: Difference between revisions

Content deleted Content added
m Architecture support: fix no break space warning
SdkbBot (talk | contribs)
m Removed erroneous space and general fixes (task 1)
Line 83:
Guix keeps track of these references automatically so that installed packages can be [[Garbage collection (computing)|garbage collected]] when no other package depends on them - at the cost of greater storage requirements, all upgrades in Guix are guaranteed to be both [[Atomic operation|atomic]] and can be rolled back.
 
The roll-back feature of Guix is inherited from the design of [[Nix (package manager) | Nix]] and is rarely found in other [[operating systems]], since it requires an unorthodox approach to how the system should function (see [[ openSUSE#openSUSE_MicroOSopenSUSE MicroOS| MicroOS]]).
The Guix package manager, like [[Nix (package manager) | Nix]], can however be used on many distributions like [[Debian]] and [[Parabola (operating system) | Parabola]].<ref>{{Cite web|url=https://tracker.debian.org/pkg/guix|title = Guix - Debian Package Tracker}}</ref><ref>{{Cite web|title=Parabola GNU/Linux-libre - Package Search|url=https://www.parabola.nu/packages/?q=guix|access-date=2021-09-14|website=www.parabola.nu}}</ref>
This also enables multiple users to safely install software on the same system without administrator privileges.
 
Compared to traditional package managers, Guix package stores can grow considerably bigger and therefore require more bandwidth; although compared to [[Container (virtualization)|container]] solutions (like [[Docker (software) | Docker]]) that are also commonly employed to solve [[dependency hell]], Guix is leaner and conforms to practices like [[don't repeat yourself]] and [[single source of truth]]. If the user chooses to build everything from source, even larger storage space and bandwidth is required.
 
== The store ==
Inherited from the design of Nix, most of the content of the package manager is kept in a directory ''/gnu/store'' where only the Guix [[Daemon (computing) | daemon]] has write-access. This is achieved via specialised bind mounts, where the Store as a file system is mounted [[File system permissions|read only]], prohibiting interference even from the root user, while the Guix daemon remounts the Store as read/writable in its own private namespace. Guix talks with this daemon to build things or fetch substitutes which are all kept in the store. Users are discouraged from ever manually touching the store by re-mounting it as writable since this defeats the whole purpose of the store.
 
=== Garbage collection ===
Line 153:
 
== Pack ==
Guix pack enables the user to bundle together store items and output them as either a docker binary image, a relocatable [[Tar (computing) | tarball]], a [[Deb_Deb (file_formatfile format)|debian package file]] or a [[squashfs]] binary.<ref>{{cite web |title=Invoking guix pack |url=https://www.gnu.org/software/guix/manual/en/html_node/Invoking-guix-pack.html#Invoking-guix-pack |website=gnu.org |access-date=3 September 2024}}</ref>
 
== Graph ==
Line 187:
| language = <!-- Supported human languages (English, French, Italian, Arabic, ...) -->
| update model = <!-- APT, Windows Update, etc. -->
| package manager = [[GNU Guix]]
| supported platforms = x86_64, i686, aarch64, armv7, powerpc64le
| kernel type = Monolithic: [[Linux-libre]] (operational)
Line 210:
* [[AArch64]]
* [[POWER9]]<ref>{{cite web |title=New Supported Platform: powerpc64le-linux |url=https://guix.gnu.org/en/blog/2021/new-supported-platform-powerpc64le-linux/ |date = April 12, 2021 |last1=Marusich |first1=Chris |last2=Le Bouter |first2=Léo |access-date=October 6, 2021 |archive-date=May 16, 2021 |archive-url=https://web.archive.org/web/20210516202248/https://guix.gnu.org/en/blog/2021/new-supported-platform-powerpc64le-linux/ |url-status=live }}</ref>
* [[RISC-V|RISC-V 64]] <ref name="manual">{{cite web | title=Supported Platforms (GNU Guix Reference Manual)| website=GNU Guix | url=https://guix.gnu.org/manual/en/html_node/Supported-Platforms.html| access-date=2024-10-23}}</ref>
* [[MIPS64]] <ref name="manual">< /ref>
 
=== System services ===
System services, which are defined in the Guile Scheme,<ref>{{cite web |title=guix.git |url=http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services |website=git.savannah.gnu.org |access-date=11 May 2019 |archive-date=May 11, 2019 |archive-url=https://web.archive.org/web/20190511160745/http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services |url-status=live }}</ref> enable the user to declaratively compose the configuration of [[Daemon (computing)|daemons]] and background services and specify configurations. This enables the user, within a single configuration file or modularized configuration, to configure the whole operating system (e.g., to have a [[Tor (network) |Tor]] [[Proxy server | proxy]], an [[Secure Shell |ssh]] server, and a webserver serving guix-web via [[nginx]] on a specific port at bootup). They can:<ref name="lists.gnu.org">{{cite mailing list |last1=Wurmus |first1=Ricardo |title=Re: Help with preparing to move from Arch Linux to Guix |url=https://lists.gnu.org/archive/html/help-guix/2019-05/msg00262.html |website=help-guix |access-date=11 May 2019 |archive-date=August 1, 2020 |archive-url=https://web.archive.org/web/20200801074755/https://lists.gnu.org/archive/html/help-guix/2019-05/msg00262.html |url-status=live }}</ref>
* generate files in the filesystem (needed by some applications e.g. files in ''/etc'')
* run any code for setting up daemons
Line 365:
== See also ==
{{Portal|Free and open-source software}}
* [[Debian_GNUDebian GNU/Hurd#Debian_GNUDebian GNU/Hurd | Debian GNU/Hurd]]
* [[NixOS]] – A similar operating system, which inspired GNU Guix<ref>{{Cite web|url=https://www.gnu.org/software/guix/about/|title=About — GuixSD|website=www.gnu.org|language=en|access-date=2018-05-03}}</ref>
* [[Comparison of Linux distributions]]