Skip to main content

Installing software globally

Probably the most common case, is wanting to install software system-wide. This is not technically system-wide in NixOS, due to its internal isolation properties, but the difference doesn't really matter for your day-to-day use.

Installing software globally is done by adding it to your environment.systemPackages. For example, like so:

{
  # ... other configuration goes here ...
  
  environment.systemPackages = [
    pkgs.htop
    pkgs.iotop
  ];

  # ... other configuration goes here ...
}

In this example, two packages are installed: htop, and iotop. As you can see, they are prefixed with pkgs. - this means that they are attributes (ie. properties) of the pkgs binding (ie. variable).  The type of environment.systemPackages is a list, containing derivations.

Once you have added the package(s) that you want to install to your systemPackages, you need to rebuild the system to make the changes take effect.