diff options
Diffstat (limited to 'doc/manual/src/introduction.md')
-rw-r--r-- | doc/manual/src/introduction.md | 43 |
1 files changed, 18 insertions, 25 deletions
diff --git a/doc/manual/src/introduction.md b/doc/manual/src/introduction.md index 76489bc1b..9fbc429f8 100644 --- a/doc/manual/src/introduction.md +++ b/doc/manual/src/introduction.md @@ -1,12 +1,8 @@ # Introduction -Nix is a _purely functional package manager_. This means that it -treats packages like values in purely functional programming languages -such as Haskell — they are built by functions that don’t have -side-effects, and they never change after they have been built. Nix -stores packages in the _Nix store_, usually the directory -`/nix/store`, where each package has its own unique subdirectory such -as +Lix is an implementation of Nix, a powerful, _purely functional_ package management system. +This means that it treats packages like values in purely functional programming languages such as Haskell — they are built by functions that don’t have side-effects, and they never change after they have been built. +Lix stores packages in the _Nix store_, usually the directory `/nix/store`, where each package has its own unique subdirectory such as /nix/store/b6gvzjyb2pg0kjfwrjmg1vfhh54ad73z-firefox-33.1/ @@ -31,7 +27,7 @@ used by other packages. ## Complete dependencies -Nix helps you make sure that package dependency specifications are +Lix helps you make sure that package dependency specifications are complete. In general, when you’re making a package for a package management system like RPM, you have to specify for each package what its dependencies are, but there are no guarantees that this @@ -40,7 +36,7 @@ package will build and work correctly on _your_ machine if you have the dependency installed, but not on the end user's machine if it's not there. -Since Nix on the other hand doesn’t install packages in “global” +Since Lix on the other hand doesn’t install packages in “global” locations like `/usr/bin` but in package-specific directories, the risk of incomplete dependencies is greatly reduced. This is because tools such as compilers don’t search in per-packages directories such @@ -54,13 +50,11 @@ This sounds risky, but it works extremely well. ## Multi-user support -Nix has multi-user support. This means that non-privileged users can -securely install software. Each user can have a different _profile_, -a set of packages in the Nix store that appear in the user’s `PATH`. -If a user installs a package that another user has already installed -previously, the package won’t be built or downloaded a second time. -At the same time, it is not possible for one user to inject a Trojan -horse into a package that might be used by another user. +Lix has multi-user support. +This means that non-privileged users can securely install software, and it is considered a bug if users can trample on each other. +Each user can have a different _profile_, a set of packages in the Nix store that appear in the user’s `PATH`. +If a user installs a package that another user has already installed previously, the package won’t be built or downloaded a second time. +At the same time, it is not possible for one user to inject a Trojan horse into a package that might be used by another user. ## Atomic upgrades and rollbacks @@ -106,7 +100,7 @@ Packages are built from _Nix expressions_, which is a simple functional language. A Nix expression describes everything that goes into a package build task (a “derivation”): other packages, sources, the build script, environment variables for the build script, etc. -Nix tries very hard to ensure that Nix expressions are +Lix tries very hard to ensure that Nix expressions are _deterministic_: building a Nix expression twice should yield the same result. @@ -130,22 +124,21 @@ also all its dependencies (all the way up to the C library and the compiler) would have to be built, at least if they are not already in the Nix store. This is a _source deployment model_. For most users, building from source is not very pleasant as it takes far too long. -However, Nix can automatically skip building from source and instead +However, Lix can automatically skip building from source and instead use a _binary cache_, a web server that provides pre-built binaries. For instance, when asked to build -`/nix/store/b6gvzjyb2pg0…-firefox-33.1` from source, Nix would first +`/nix/store/b6gvzjyb2pg0…-firefox-33.1` from source, Lix would first check if the file `https://cache.nixos.org/b6gvzjyb2pg0….narinfo` exists, and if so, fetch the pre-built binary referenced from there; otherwise, it would fall back to building from source. ## Nix Packages collection -We provide a large set of Nix expressions containing hundreds of -existing Unix packages, the _Nix Packages collection_ (Nixpkgs). +We provide a large set of Nix expressions containing tens of thousands of existing Unix packages, the _Nix Packages collection_ (Nixpkgs). ## Managing build environments -Nix is extremely useful for developers as it makes it easy to +Lix is extremely useful for developers as it makes it easy to automatically set up the build environment for a package. Given a Nix expression that describes the dependencies of your package, the command `nix-shell` will build or download those dependencies if @@ -174,11 +167,11 @@ the package: ## Portability -Nix runs on Linux and macOS. +Lix runs on Linux and macOS. ## NixOS -NixOS is a Linux distribution based on Nix. It uses Nix not just for +NixOS is a Linux distribution based on Nix technology. It uses Nix not just for package management but also to manage the system configuration (e.g., to build configuration files in `/etc`). This means, among other things, that it is easy to roll back the entire configuration of the @@ -188,6 +181,6 @@ homepage](https://nixos.org/). ## License -Nix is released under the terms of the [GNU LGPLv2.1 or (at your +Lix is released under the terms of the [GNU LGPLv2.1 or (at your option) any later version](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html). |