forked from lix-project/lix
28 lines
1 KiB
Markdown
28 lines
1 KiB
Markdown
|
# A Simple Nix Expression
|
||
|
|
||
|
This section shows how to add and test the [GNU Hello
|
||
|
package](http://www.gnu.org/software/hello/hello.html) to the Nix
|
||
|
Packages collection. Hello is a program that prints out the text “Hello,
|
||
|
world\!”.
|
||
|
|
||
|
To add a package to the Nix Packages collection, you generally need to
|
||
|
do three things:
|
||
|
|
||
|
1. Write a Nix expression for the package. This is a file that
|
||
|
describes all the inputs involved in building the package, such as
|
||
|
dependencies, sources, and so on.
|
||
|
|
||
|
2. Write a *builder*. This is a shell script\[1\] that actually builds
|
||
|
the package from the inputs.
|
||
|
|
||
|
3. Add the package to the file `pkgs/top-level/all-packages.nix`. The
|
||
|
Nix expression written in the first step is a *function*; it
|
||
|
requires other packages in order to build it. In this step you put
|
||
|
it all together, i.e., you call the function with the right
|
||
|
arguments to build the actual package.
|
||
|
|
||
|
<!-- end list -->
|
||
|
|
||
|
1. In fact, it can be written in any language, but typically it's a
|
||
|
`bash` shell script.
|