Nix Package Manager Cookbook
Nix Package Manager Cookbook
This is a cookbook containing a list of commands to perform frequent tasks in Nix. Read the Nix Package Manager Guide for detailed information.
Install Nix.
user@host:~/Downloads$ curl -o install-nix.sh https://nixos.org/nix/install user@host:~/Downloads$ sh install-nix.sh
You'll need to have sudo access for the script to create the /nix directory.
The installer adds the relevant paths to your .profile. To activate them
user@host:~$ . /home/YOURUSERNAME/.nix-profile/etc/profile.d/nix.sh
Add to .bashrc if not already present in .profile. I just prefer to add it to .bashrc; your preference may vary.
if [ -e /home/YOURUSERNAME/.nix-profile/etc/profile.d/nix.sh ]; then . /home/YOURUSERNAME/.nix-profile/etc/profile.d/nix.sh; fi # added by Nix installer
Search for available packages.
user@host:~$ nix-env --query --available --status --description go user@host:~$ nix-env --query --available --status --description python user@host:~$ nix-env --query --available --status --description python3 user@host:~$ nix-env --query --available --status --description '.*virtualenv.*'
List installed packages.
user@host:~$ nix-env --query --installed
Update Nix and then update all installed packages.
user@host:~$ nix-channel --update user@host:~$ nix-env -u '*'
Work with channels. Since I prefer bleeding edge packages I use the nixpkgs-unstable channel.
user@host:~$ nix-channel --list user@host:~$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable user@host:~$ nix-channel --remove nixpkgs
Install packages (derivatives).
user@host:~$ nix-env -i pycharm-community-4.0.1
Uninstall package (derivative).
user@host:~$ nix-env -e pycharm-community-4.0.1