mirror of
https://github.com/NixOS/nix
synced 2025-07-08 15:13:55 +02:00
* Split the book.xml into several xml files.
This commit is contained in:
parent
469f1eba56
commit
b4f88d0ec3
7 changed files with 481 additions and 470 deletions
98
doc/manual/introduction.xml
Normal file
98
doc/manual/introduction.xml
Normal file
|
@ -0,0 +1,98 @@
|
|||
<chapter>
|
||||
<title>Introduction</title>
|
||||
|
||||
<sect1>
|
||||
<title>The problem space</title>
|
||||
|
||||
<para>
|
||||
Nix is a system for controlling the automatic creation and distribution
|
||||
of data, such as computer programs and other software artifacts. This is
|
||||
a very general problem, and there are many applications that fall under
|
||||
this description.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Build management</title>
|
||||
|
||||
<para>
|
||||
Build management tools are used to perform <emphasis>software
|
||||
builds</emphasis>, that is, the construction of derived products such
|
||||
as executable programs from source code. A commonly used build tool is
|
||||
Make, which is a standard tool on Unix systems. These tools have to
|
||||
deal with several issues:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Package management</title>
|
||||
|
||||
<para>
|
||||
After software has been built, is must also be
|
||||
<emphasis>deployed</emphasis> in the intended target environment, e.g.,
|
||||
the user's workstation. Examples include the Red Hat package manager
|
||||
(RPM), Microsoft's MSI, and so on. Here also we have to deal with
|
||||
several issues:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
The <emphasis>creation</emphasis> of packages from some formal
|
||||
description of what artifacts should be distributed in the
|
||||
package.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <emphasis>deployment</emphasis> of packages, that is, the
|
||||
mechanism by which we get them onto the intended target
|
||||
environment. This can be as simple as copying a file, but
|
||||
complexity comes from the wide range of possible installation
|
||||
media (such as a network install), and the scalability of the
|
||||
process (if a program must be installed on a thousand systems, we
|
||||
do not want to visit each system and perform some manual steps to
|
||||
install the program on that system; that is, the complexity for
|
||||
the system administrator should be constant, not linear).
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>The Nix system</title>
|
||||
|
||||
<para>
|
||||
...
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Existing tools in this field generally both a underlying model (such as
|
||||
the derivation graph of build tools, or the versioning scheme that
|
||||
determines when two packages are <quote>compatible</quote> in a package
|
||||
management system) and a formalism that allows ...
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Following the principle of separation of mechanism and policy, the Nix
|
||||
system separates the <emphasis>low-level aspect</emphasis> of file system
|
||||
object management form the <emphasis>high-level aspect</emphasis> of the
|
||||
...
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
</chapter>
|
||||
|
||||
<!--
|
||||
local variables:
|
||||
sgml-parent-document: ("book.xml" "chapter")
|
||||
end:
|
||||
-->
|
Loading…
Add table
Add a link
Reference in a new issue