2020-07-22 11:51:11 +00:00
|
|
|
# Quick Start
|
|
|
|
|
|
|
|
This chapter is for impatient people who don't like reading
|
|
|
|
documentation. For more in-depth information you are kindly referred
|
|
|
|
to subsequent chapters.
|
|
|
|
|
|
|
|
1. Install single-user Nix by running the following:
|
|
|
|
|
2020-07-31 13:43:25 +00:00
|
|
|
```console
|
|
|
|
$ bash <(curl -L https://nixos.org/nix/install)
|
|
|
|
```
|
2020-07-22 11:51:11 +00:00
|
|
|
|
|
|
|
This will install Nix in `/nix`. The install script will create
|
|
|
|
`/nix` using `sudo`, so make sure you have sufficient rights. (For
|
|
|
|
other installation methods, see
|
2020-07-22 21:03:53 +00:00
|
|
|
[here](installation/installation.md).)
|
2020-07-22 11:51:11 +00:00
|
|
|
|
|
|
|
1. See what installable packages are currently available in the
|
|
|
|
channel:
|
|
|
|
|
2020-07-31 13:43:25 +00:00
|
|
|
```console
|
|
|
|
$ nix-env -qa
|
|
|
|
docbook-xml-4.3
|
|
|
|
docbook-xml-4.5
|
|
|
|
firefox-33.0.2
|
|
|
|
hello-2.9
|
|
|
|
libxslt-1.1.28
|
|
|
|
…
|
|
|
|
```
|
2020-07-22 11:51:11 +00:00
|
|
|
|
|
|
|
1. Install some packages from the channel:
|
|
|
|
|
2020-07-31 13:43:25 +00:00
|
|
|
```console
|
|
|
|
$ nix-env -i hello
|
|
|
|
```
|
2020-07-22 11:51:11 +00:00
|
|
|
|
|
|
|
This should download pre-built packages; it should not build them
|
|
|
|
locally (if it does, something went wrong).
|
|
|
|
|
|
|
|
1. Test that they work:
|
|
|
|
|
2020-07-31 13:43:25 +00:00
|
|
|
```console
|
|
|
|
$ which hello
|
|
|
|
/home/eelco/.nix-profile/bin/hello
|
|
|
|
$ hello
|
|
|
|
Hello, world!
|
|
|
|
```
|
2020-07-22 11:51:11 +00:00
|
|
|
|
|
|
|
1. Uninstall a package:
|
|
|
|
|
2020-07-31 13:43:25 +00:00
|
|
|
```console
|
|
|
|
$ nix-env -e hello
|
|
|
|
```
|
2020-07-22 11:51:11 +00:00
|
|
|
|
|
|
|
1. You can also test a package without installing it:
|
|
|
|
|
2020-07-31 13:43:25 +00:00
|
|
|
```console
|
|
|
|
$ nix-shell -p hello
|
|
|
|
```
|
2020-07-22 11:51:11 +00:00
|
|
|
|
|
|
|
This builds or downloads GNU Hello and its dependencies, then drops
|
|
|
|
you into a Bash shell where the `hello` command is present, all
|
|
|
|
without affecting your normal environment:
|
|
|
|
|
2020-07-31 13:43:25 +00:00
|
|
|
```console
|
|
|
|
[nix-shell:~]$ hello
|
|
|
|
Hello, world!
|
2020-07-22 11:51:11 +00:00
|
|
|
|
2020-07-31 13:43:25 +00:00
|
|
|
[nix-shell:~]$ exit
|
2020-07-22 11:51:11 +00:00
|
|
|
|
2020-07-31 13:43:25 +00:00
|
|
|
$ hello
|
|
|
|
hello: command not found
|
|
|
|
```
|
2020-07-22 11:51:11 +00:00
|
|
|
|
|
|
|
1. To keep up-to-date with the channel, do:
|
|
|
|
|
2020-07-31 13:43:25 +00:00
|
|
|
```console
|
|
|
|
$ nix-channel --update nixpkgs
|
|
|
|
$ nix-env -u '*'
|
|
|
|
```
|
2020-07-22 11:51:11 +00:00
|
|
|
|
|
|
|
The latter command will upgrade each installed package for which
|
|
|
|
there is a “newer” version (as determined by comparing the version
|
|
|
|
numbers).
|
|
|
|
|
|
|
|
1. If you're unhappy with the result of a `nix-env` action (e.g., an
|
|
|
|
upgraded package turned out not to work properly), you can go back:
|
|
|
|
|
2020-07-31 13:43:25 +00:00
|
|
|
```console
|
|
|
|
$ nix-env --rollback
|
|
|
|
```
|
2020-07-22 11:51:11 +00:00
|
|
|
|
|
|
|
1. You should periodically run the Nix garbage collector to get rid of
|
|
|
|
unused packages, since uninstalls or upgrades don't actually delete
|
|
|
|
them:
|
|
|
|
|
2020-07-31 13:43:25 +00:00
|
|
|
```console
|
|
|
|
$ nix-collect-garbage -d
|
|
|
|
```
|