NixOS: Difference between revisions
From Cibernética Americana
Jump to navigationJump to search
| (21 intermediate revisions by 2 users not shown) | |||
| Line 22: | Line 22: | ||
| website = http://nixos.org | | website = http://nixos.org | ||
}} | }} | ||
== English Wiki == | |||
[[:en:NixOS|<span style="background-color: white;">NixOS</span>]] | |||
== Organization == | == Organization == | ||
| Line 30: | Line 34: | ||
=== Relation to [[:en:Linux Standard Base|LSB]] === | === Relation to [[:en:Linux Standard Base|LSB]] === | ||
NixOS is perforce, given its basic design principles, a unique Linux system. While there are some elements of commonality with various standards and in practice there currently at this writing over 3,000 working packages showing the abstraction of "Nix" can be realized, NixOS does not conform to common layout standards such as are common to most Linux distributions. | NixOS is perforce, given its basic design principles, a unique Linux system. While there are some elements of commonality with various standards and in practice there currently at this writing are over 3,000 working packages showing the abstraction of "Nix" can be realized, NixOS does not conform to common layout standards such as are common to most Linux distributions. | ||
In particular, there is no /usr directory. | In particular, there is no /usr directory. | ||
| Line 36: | Line 40: | ||
=== Nix === | === Nix === | ||
Most package managers center around | Most package managers center around a file format and a set of command line and GUI frontends for managing the install of the package files. There is no such file format for Nix, the corresponding thing being the framework for capturing software configurations and the functional scripting language in which it is implemented. Command line utilities are the reference means of working with Nix packages and Nixos and there are derivative systems with GUIs. | ||
==== The Expression Language ==== | ==== The Expression Language ==== | ||
Figure 1 shows the syntax of the Nix expression | Figure 1 shows the syntax of the Nix expression language. The scripting which declaratively captures the elements of a given Nix configuration item so that it can be manipulated in operations is called that package's ''expression''<ref>[http://www.st.ewi.tudelft.nl/~dolstra/pubs/nixos-jfp-submitted.pdf ''NixOS: A Purely Functional Linux Distribution'' Dolstr and Löh]</ref> | ||
==== Package Derivation ==== | ==== Package Derivation ==== | ||
The development and maintenance of a Nix package from its author's distributed package (or the original packaging in a native Nix package) is called a ''derivation''. | |||
[[File:nix-expression-BNF.jpg|thumb|275px|left|Figure 1: [[:en:Backus-Naur form|BNF]] of the Nix Expression language]] | |||
=== Upstart === | === Upstart === | ||
| Line 50: | Line 56: | ||
== Features == | == Features == | ||
NixOS declarative configuration management approach is the basis of a number of distinctive features. | |||
===Continuous integration=== | |||
Via the Hydra subproject, NixOS supports a continuous integration build model. | |||
===Rollback=== | |||
Configuration changes whether system wide or those of a particular user can be rolled back with a single command. | |||
===User/Package Isolation=== | |||
Users have their own package managment environments, something lacking in other package managers where the user is assumed to be the superuser. | |||
== History == | == History == | ||