diff options
Diffstat (limited to 'nixos/doc/manual/from_md/configuration/declarative-packages.section.xml')
-rw-r--r-- | nixos/doc/manual/from_md/configuration/declarative-packages.section.xml | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/nixos/doc/manual/from_md/configuration/declarative-packages.section.xml b/nixos/doc/manual/from_md/configuration/declarative-packages.section.xml new file mode 100644 index 00000000000..da31f18d923 --- /dev/null +++ b/nixos/doc/manual/from_md/configuration/declarative-packages.section.xml @@ -0,0 +1,53 @@ +<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="sec-declarative-package-mgmt"> + <title>Declarative Package Management</title> + <para> + With declarative package management, you specify which packages you + want on your system by setting the option + <xref linkend="opt-environment.systemPackages" />. For instance, + adding the following line to <literal>configuration.nix</literal> + enables the Mozilla Thunderbird email application: + </para> + <programlisting language="bash"> +environment.systemPackages = [ pkgs.thunderbird ]; +</programlisting> + <para> + The effect of this specification is that the Thunderbird package + from Nixpkgs will be built or downloaded as part of the system when + you run <literal>nixos-rebuild switch</literal>. + </para> + <note> + <para> + Some packages require additional global configuration such as + D-Bus or systemd service registration so adding them to + <xref linkend="opt-environment.systemPackages" /> might not be + sufficient. You are advised to check the + <link linkend="ch-options">list of options</link> whether a NixOS + module for the package does not exist. + </para> + </note> + <para> + You can get a list of the available packages as follows: + </para> + <programlisting> +$ nix-env -qaP '*' --description +nixos.firefox firefox-23.0 Mozilla Firefox - the browser, reloaded +... +</programlisting> + <para> + The first column in the output is the <emphasis>attribute + name</emphasis>, such as <literal>nixos.thunderbird</literal>. + </para> + <para> + Note: the <literal>nixos</literal> prefix tells us that we want to + get the package from the <literal>nixos</literal> channel and works + only in CLI tools. In declarative configuration use + <literal>pkgs</literal> prefix (variable). + </para> + <para> + To <quote>uninstall</quote> a package, simply remove it from + <xref linkend="opt-environment.systemPackages" /> and run + <literal>nixos-rebuild switch</literal>. + </para> + <xi:include href="customizing-packages.section.xml" /> + <xi:include href="adding-custom-packages.section.xml" /> +</section> |