# Overview This package contains a collection of Nix expressions created by SHARCNET staff for various software packages. Once copied or linked into your *~/.nix-defexpr* directory they will allow you to install the associated package into your Nix environment. These directions assume you have loaded the Nix module (this enabes your Nix environment and makes the various Nix commands avaialble) ```sh module load nix ``` # Obtaining the latest expressions If you don't yet have a copy of *~/nix-nixpkgs-sharcnet*, you will need to clone a copy (use your SHARCNET credentials) ```sh cd ~ git clone https://git.sharcnet.ca/nix/nixpkgs-sharcnet.git ``` If you already have a copy, you can update to the latest version ```sh cd ~/nix-nixpkgs-sharcnet git pull ``` ## Installing an expression To use any of the provided Nix expressions, you need to copy it to or link it into your *~/.nix-defexpr* directory (replace *package.nix* with the name of the Nix expression you wish to use) ```sh ln -s ../nix-nixpkgs-sharcnet/package.nix ~/.nix-defexpr/ ``` Using a symbolic link has the advantage that it automatically gets updated whenever you update *~/nix-nixpkgs-sharcnet*. # Using an expression Once you have the expression in your *~/.nix-defexpr* you can use the `nix-env` command to install (or update) the associated package in your Nix environment. ## Installing and updating To install or update the associated package (replace *package* with the base name of the Nix expression file you copied to *~/.nix-defexpr*) ```sh nix-env --install --attr package ``` ## Removing To remove a package you first need to figure out its name (generally, but not nessesarily, the same as the name of the Nix expression file) ```sh nix-env --query ``` Then you (replace *package* with the package name) ```sh nix-env --uninstall package ``` ## Reverting To undo the last install/update/remove command ```sh nix-env --rollback ```