edit how to install softwarethere are multiple possibilities, as there is: edit system environment installation
environment.systemPackages = with pkgs; [ zsh wget ];
nixos-rebuild switch edit normal user installation
nix-env -i links2 edit how to remove installed softwarealso depending on where the software was installed: WARNIG: when you call 'nix-collect-garbage' or 'nix-store --gc' you might get problems with software which is installed 'per user' as the garbage collector will check all roots and remove software which is not enlisted in that roots. but i guess that the 'per user' software is not included as a root. edit system environment installationremove the entry in environment.systemPackages = [ ]; nixos-rebuild switch nix-env --delete-generations old nix-collect-garbage edit normal user installationnix-env -e links2 nix-env --delete-generations old nix-collect-garbage edit how to list installed softwareedit software per userthat works for each 'shell' of a single user: nix-env -q '*' the other command i don't know what it's good for: nix-env -q '*' --system edit software in the environment.systemPackagesthere is no command to list that at this time (8jun2011) but there is this workaround (tnx to niksnut!): nix-store -q --references /var/run/current-system/sw edit how to update installed softwareedit software per usernix-env -u '*' edit software in the environment.systemPackagesnixos-rebuild switch edit how to roll back softwarenix-env --rollback Also see nix-env --list-generations. edit nix-channelsSince a few weeks (05/17/12 time of adding this to the wiki) there is a NixOS channel, which is now the default mechanism for keeping NixOS up to date. (A channel is a Nix mechanism for distributing a consistent set of Nix expressions and binaries.) A quick summary on how to use it: $ nix-channel --add http://nixos.org/releases/nixos/channels/nixos-unstable $ nix-channel --update $ nixos-rebuild switch The NixOS channel contains a copy of Nixpkgs (but only the binaries for i686-linux and x86_64-linux), so after "nix-channel --update" you can install packages via nix-env: $ nix-env -i thunderbird or, if you prefer the "-A" option: $ nix-env -iA nixos.pkgs.thunderbird The advantages of using a channel over the previous way (doing "svn up /etc/nixos/*" a.k.a. nixos-checkout) are:
This makes keeping NixOS up to date a rather more pleasant activity, IMHO (Eelco Dolstra). Some things to note:
$NIX_PATH or the "-I" flag.
default location /etc/nixos may eventually go away since it's a weird location for keeping large source trees.)
[1] In the future we may get rid of manifests, in which case the Right Thing would happen magically. edit nix-channels vs nixos-checkoutusing nix-channels and nixos-checkout in parallel can lead to duplicated entries using nix-* tools. edit how to change the used kernel versionboot.kernelPackages # see http://hydra.nixos.org/build/1106908/download/1/nixos/manual.html for example: add boot.kernelPackages = pkgs.linuxPackages_2_6_25; to your /etc/nixos/configuration.nix or check for more recent entries by: nix-env -qa '*' | grep linux-2.6. |