How to use the command 'nix-env' (with examples)
Nix is a package manager used in NixOS, a Linux distribution. ’nix-env’ is a command-line tool that allows you to manipulate and query the installed packages in your Nix user environment. You can use ’nix-env’ to list installed packages, query installed and available packages, install and uninstall packages, and upgrade packages.
Use case 1: List all installed packages
Code:
nix-env -q
Motivation: This use case is useful when you want to have an overview of all the packages installed in your Nix user environment.
Explanation: The ‘-q’ option stands for query, and it is used to list all the installed packages.
Example output:
package1
package2
...
packageN
Use case 2: Query installed packages
Code:
nix-env -q search_term
Motivation: This use case is helpful when you want to search for a specific package that is already installed in your Nix user environment.
Explanation: The ‘-q’ option is used to query installed packages. Replace ‘search_term’ with the specific package name or a search term to find matching packages.
Example output:
package1
package2
...
packageN
Use case 3: Query available packages
Code:
nix-env -qa search_term
Motivation: This use case is useful when you want to search for available packages in the Nix package repository.
Explanation: The ‘-qa’ option stands for query available, and it is used to query available packages. Replace ‘search_term’ with the specific package name or a search term to find matching packages.
Example output:
nixpkgs.package1
nixpkgs.package2
...
nixpkgs.packageN
Use case 4: Install package
Code:
nix-env -iA nixpkgs.pkg_name
Motivation: This use case allows you to install a specific package from the Nix package repository.
Explanation: The ‘-iA’ option stands for install attribute, and it is used to install packages. Replace ’nixpkgs.pkg_name’ with the attribute path of the package you want to install. You can find the attribute path by searching for the package using the command ’nix-env -qa search_term’.
Example output:
installing package1
Use case 5: Install a package from a URL
Code:
nix-env -i pkg_name --file example.com
Motivation: This use case allows you to install a package directly from a specific URL.
Explanation: The ‘-i’ option is used to install packages. Replace ‘pkg_name’ with the name of the package you want to install, and ‘–file example.com’ with the URL of the package.
Example output:
installing package1
Use case 6: Uninstall package
Code:
nix-env -e pkg_name
Motivation: This use case allows you to uninstall a specific package from your Nix user environment.
Explanation: The ‘-e’ option stands for erase, and it is used to uninstall packages. Replace ‘pkg_name’ with the name of the package you want to uninstall.
Example output:
uninstalling package1
Use case 7: Upgrade one package
Code:
nix-env -u pkg_name
Motivation: This use case allows you to upgrade a specific package to its latest version.
Explanation: The ‘-u’ option stands for upgrade, and it is used to upgrade packages. Replace ‘pkg_name’ with the name of the package you want to upgrade.
Example output:
upgrading package1 to version 2.0
Use case 8: Upgrade all packages
Code:
nix-env -u
Motivation: This use case allows you to upgrade all the installed packages to their latest versions.
Explanation: The ‘-u’ option is used to upgrade packages without specifying a particular package. It upgrades all the installed packages.
Example output:
upgrading package1 to version 2.0
upgrading package2 to version 1.5
...
upgrading packageN to version 3.2
Conclusion:
The ’nix-env’ command is a powerful tool in the Nix package manager that allows you to manipulate and query your installed packages. It provides various use cases such as listing installed packages, querying installed and available packages, installing and uninstalling packages, and upgrading packages. Understanding these use cases will help you effectively manage your Nix user environment.