diff options
Diffstat (limited to 'nixos/doc/manual/from_md/configuration/ad-hoc-packages.section.xml')
-rw-r--r-- | nixos/doc/manual/from_md/configuration/ad-hoc-packages.section.xml | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/nixos/doc/manual/from_md/configuration/ad-hoc-packages.section.xml b/nixos/doc/manual/from_md/configuration/ad-hoc-packages.section.xml new file mode 100644 index 00000000000..c9a8d4f3f10 --- /dev/null +++ b/nixos/doc/manual/from_md/configuration/ad-hoc-packages.section.xml @@ -0,0 +1,59 @@ +<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-ad-hoc-packages"> + <title>Ad-Hoc Package Management</title> + <para> + With the command <literal>nix-env</literal>, you can install and + uninstall packages from the command line. For instance, to install + Mozilla Thunderbird: + </para> + <programlisting> +$ nix-env -iA nixos.thunderbird +</programlisting> + <para> + If you invoke this as root, the package is installed in the Nix + profile <literal>/nix/var/nix/profiles/default</literal> and visible + to all users of the system; otherwise, the package ends up in + <literal>/nix/var/nix/profiles/per-user/username/profile</literal> + and is not visible to other users. The <literal>-A</literal> flag + specifies the package by its attribute name; without it, the package + is installed by matching against its package name (e.g. + <literal>thunderbird</literal>). The latter is slower because it + requires matching against all available Nix packages, and is + ambiguous if there are multiple matching packages. + </para> + <para> + Packages come from the NixOS channel. You typically upgrade a + package by updating to the latest version of the NixOS channel: + </para> + <programlisting> +$ nix-channel --update nixos +</programlisting> + <para> + and then running <literal>nix-env -i</literal> again. Other packages + in the profile are <emphasis>not</emphasis> affected; this is the + crucial difference with the declarative style of package management, + where running <literal>nixos-rebuild switch</literal> causes all + packages to be updated to their current versions in the NixOS + channel. You can however upgrade all packages for which there is a + newer version by doing: + </para> + <programlisting> +$ nix-env -u '*' +</programlisting> + <para> + A package can be uninstalled using the <literal>-e</literal> flag: + </para> + <programlisting> +$ nix-env -e thunderbird +</programlisting> + <para> + Finally, you can roll back an undesirable <literal>nix-env</literal> + action: + </para> + <programlisting> +$ nix-env --rollback +</programlisting> + <para> + <literal>nix-env</literal> has many more flags. For details, see the + nix-env(1) manpage or the Nix manual. + </para> +</section> |