"GNU Guix1 is a package
management tool for the GNU system. Guix makes it easy for unprivileged
users to install, upgrade, or remove packages, to roll back to a
previous package set, to build packages from source, and generally
assists with the creation and maintenance of software environments.
Guix provides a command-line package management interface
(see Invoking guix package), a set of command-line utilities
(see Utilities), a visual user interface in Emacs (see Emacs Interface), as well as Scheme programming interfaces
(see Programming Interface).
Its build daemon is responsible for building packages on behalf of
users (see Setting Up the Daemon) and for downloading pre-built
binaries from authorized sources (see Substitutes).
GNU Guix1 is a package
management tool for the GNU system. Guix makes it easy for unprivileged
users to install, upgrade, or remove packages, to roll back to a
previous package set, to build packages from source, and generally
assists with the creation and maintenance of software environments.
Guix provides a command-line package management interface
(see Invoking guix package), a set of command-line utilities
(see Utilities), a visual user interface in Emacs (see Emacs Interface), as well as Scheme programming interfaces
(see Programming Interface).
Its build daemon is responsible for building packages on behalf of
users (see Setting Up the Daemon) and for downloading pre-built
binaries from authorized sources (see Substitutes).
Guix includes package definitions for many GNU and non-GNU packages, all
of which respect the
user’s computing freedom. It is extensible: users can write
their own package definitions (see Defining Packages) and make them
available as independent package modules (see Package Modules). It
is also customizable: users can derive specialized package
definitions from existing ones, including from the command line
(see Package Transformation Options).
You can install GNU Guix on top of an existing GNU/Linux system
where it complements the available tools without interference
(see Installation), or you can use it as part of the standalone
Guix System Distribution or GuixSD (see GNU Distribution).
With GNU GuixSD, you declare all aspects of the operating
system configuration and Guix takes care of instantiating the
configuration in a transactional, reproducible, and stateless fashion
(see System Configuration).
Under the hood, Guix implements the functional package management
discipline pioneered by Nix (see Acknowledgments).
In Guix, the package build and installation process is seen
as a function, in the mathematical sense. That function takes inputs,
such as build scripts, a compiler, and libraries, and
returns an installed package. As a pure function, its result depends
solely on its inputs—for instance, it cannot refer to software or
scripts that were not explicitly passed as inputs. A build function
always produces the same result when passed a given set of inputs. It
cannot alter the environment of the running system in
any way; for instance, it cannot create, modify, or delete files outside
of its build and installation directories. This is achieved by running
build processes in isolated environments (or containers), where only their
explicit inputs are visible.
The result of package build functions is cached in the file
system, in a special directory called the store (see The Store). Each package is installed in a directory of its own in the
store—by default under /gnu/store. The directory name contains
a hash of all the inputs used to build that package; thus, changing an
input yields a different directory name.
This approach is the foundation for the salient features of Guix: support
for transactional package upgrade and rollback, per-user installation, and
garbage collection of packages (see Features).
Guix includes package definitions for many GNU and non-GNU packages, all
of which respect the
user’s computing freedom. It is extensible: users can write
their own package definitions (see Defining Packages) and make them
available as independent package modules (see Package Modules). It
is also customizable: users can derive specialized package
definitions from existing ones, including from the command line
(see Package Transformation Options).
You can install GNU Guix on top of an existing GNU/Linux system
where it complements the available tools without interference
(see Installation), or you can use it as part of the standalone
Guix System Distribution or GuixSD (see GNU Distribution).
With GNU GuixSD, you declare all aspects of the operating
system configuration and Guix takes care of instantiating the
configuration in a transactional, reproducible, and stateless fashion
(see System Configuration).
Under the hood, Guix implements the functional package management
discipline pioneered by Nix (see Acknowledgments).
In Guix, the package build and installation process is seen
as a function, in the mathematical sense. That function takes inputs,
such as build scripts, a compiler, and libraries, and
returns an installed package. As a pure function, its result depends
solely on its inputs—for instance, it cannot refer to software or
scripts that were not explicitly passed as inputs. A build function
always produces the same result when passed a given set of inputs. It
cannot alter the environment of the running system in
any way; for instance, it cannot create, modify, or delete files outside
of its build and installation directories. This is achieved by running
build processes in isolated environments (or containers), where only their
explicit inputs are visible.
The result of package build functions is cached in the file
system, in a special directory called the store (see The Store). Each package is installed in a directory of its own in the
store—by default under /gnu/store. The directory name contains
a hash of all the inputs used to build that package; thus, changing an
input yields a different directory name.
This approach is the foundation for the salient features of Guix: support
for transactional package upgrade and rollback, per-user installation, and
garbage collection of packages (see Features)."
https://www.gnu.org/software/guix/manual/guix.html
https://www.gnu.org/software/guix/
https://archive.fosdem.org/2016/schedule/event/hpc_bigdata_gnu_guix/
No comments:
Post a Comment