diff options
author | Bobby Rong <rjl931189261@126.com> | 2021-07-02 10:08:04 +0800 |
---|---|---|
committer | Bobby Rong <rjl931189261@126.com> | 2021-07-02 10:08:04 +0800 |
commit | 865b3918f2a0853dfadc104394bbc98be114cf17 (patch) | |
tree | 18cc23ad4071b33c32594f15a76c5be8c9f339f7 /nixos/doc/manual/configuration/ad-hoc-packages.section.md | |
parent | 2e672ed71afb9d0cea962b694ddb4e63a9ee00eb (diff) |
nixos: nixos/doc/manual/configuration/ad-hoc-packages.xml to CommonMark
Diffstat (limited to 'nixos/doc/manual/configuration/ad-hoc-packages.section.md')
-rw-r--r-- | nixos/doc/manual/configuration/ad-hoc-packages.section.md | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/nixos/doc/manual/configuration/ad-hoc-packages.section.md b/nixos/doc/manual/configuration/ad-hoc-packages.section.md new file mode 100644 index 0000000000000..e9d574903a104 --- /dev/null +++ b/nixos/doc/manual/configuration/ad-hoc-packages.section.md @@ -0,0 +1,51 @@ +# Ad-Hoc Package Management {#sec-ad-hoc-packages} + +With the command `nix-env`, you can install and uninstall packages from +the command line. For instance, to install Mozilla Thunderbird: + +```ShellSession +$ nix-env -iA nixos.thunderbird +``` + +If you invoke this as root, the package is installed in the Nix profile +`/nix/var/nix/profiles/default` and visible to all users of the system; +otherwise, the package ends up in +`/nix/var/nix/profiles/per-user/username/profile` and is not visible to +other users. The `-A` flag specifies the package by its attribute name; +without it, the package is installed by matching against its package +name (e.g. `thunderbird`). The latter is slower because it requires +matching against all available Nix packages, and is ambiguous if there +are multiple matching packages. + +Packages come from the NixOS channel. You typically upgrade a package by +updating to the latest version of the NixOS channel: + +```ShellSession +$ nix-channel --update nixos +``` + +and then running `nix-env -i` again. Other packages in the profile are +*not* affected; this is the crucial difference with the declarative +style of package management, where running `nixos-rebuild switch` causes +all packages to be updated to their current versions in the NixOS +channel. You can however upgrade all packages for which there is a newer +version by doing: + +```ShellSession +$ nix-env -u '*' +``` + +A package can be uninstalled using the `-e` flag: + +```ShellSession +$ nix-env -e thunderbird +``` + +Finally, you can roll back an undesirable `nix-env` action: + +```ShellSession +$ nix-env --rollback +``` + +`nix-env` has many more flags. For details, see the nix-env(1) manpage or +the Nix manual. |