FreeBSD Manual Pages
nix3-profile(1) General Commands Manual nix3-profile(1) Warning This program is experimental <../../development/experimental- features.md#xp-feature-nix-command> and its interface is subject to change. Name nix profile - manage Nix profiles Synopsis nix profile [option...] subcommand where subcommand is one of the following: • nix profile add <./nix3-profile-add.md> - add a package to a profile • nix profile diff-closures <./nix3-profile-diff-closures.md> - show the closure difference between each version of a profile • nix profile history <./nix3-profile-history.md> - show all versions of a profile • nix profile list <./nix3-profile-list.md> - list packages in the profile • nix profile remove <./nix3-profile-remove.md> - remove packages from a profile • nix profile rollback <./nix3-profile-rollback.md> - roll back to the previous version or a specified version of a profile • nix profile upgrade <./nix3-profile-upgrade.md> - upgrade packages using their most recent flake • nix profile wipe-history <./nix3-profile-wipe-history.md> - delete non-current versions of a profile Description nix profile allows you to create and manage Nix profiles. A Nix profile is a set of packages that can be installed and upgraded independently from each other. Nix profiles are versioned, allowing them to be rolled back easily. Files Profiles A directory that contains links to profiles managed by nix-env <../../command-ref/nix-env.md> and nix profile <../../command-ref/new- cli/nix3-profile.md>: • $XDG_STATE_HOME/nix/profiles for regular users • $NIX_STATE_DIR/profiles/per-user/root if the user is root A profile is a directory of symlinks to files in the Nix store. Filesystem layout Profiles are versioned as follows. When using a profile named path, path is a symlink to path-N-link, where N is the version of the pro- file. In turn, path-N-link is a symlink to a path in the Nix store. For example: $ ls -l ~alice/.local/state/nix/profiles/profile* lrwxrwxrwx 1 alice users 14 Nov 25 14:35 /home/alice/.local/state/nix/profiles/profile -> profile-7-link lrwxrwxrwx 1 alice users 51 Oct 28 16:18 /home/alice/.local/state/nix/profiles/profile-5-link -> /nix/store/q69xad13ghpf7ir87h0b2gd28lafjj1j-profile lrwxrwxrwx 1 alice users 51 Oct 29 13:20 /home/alice/.local/state/nix/profiles/profile-6-link -> /nix/store/6bvhpysd7vwz7k3b0pndn7ifi5xr32dg-profile lrwxrwxrwx 1 alice users 51 Nov 25 14:35 /home/alice/.local/state/nix/profiles/profile-7-link -> /nix/store/mp0x6xnsg0b8qhswy6riqvimai4gm677-profile Each of these symlinks is a root for the Nix garbage collector. The contents of the store path corresponding to each version of the profile is a tree of symlinks to the files of the installed packages, e.g. $ ll -R ~eelco/.local/state/nix/profiles/profile-7-link/ /home/eelco/.local/state/nix/profiles/profile-7-link/: total 20 dr-xr-xr-x 2 root root 4096 Jan 1 1970 bin -r--r--r-- 2 root root 1402 Jan 1 1970 manifest.nix dr-xr-xr-x 4 root root 4096 Jan 1 1970 share /home/eelco/.local/state/nix/profiles/profile-7-link/bin: total 20 lrwxrwxrwx 5 root root 79 Jan 1 1970 chromium -> /nix/store/ijm5k0zqisvkdwjkc77mb9qzb35xfi4m-chromium-86.0.4240.111/bin/chromium lrwxrwxrwx 7 root root 87 Jan 1 1970 spotify -> /nix/store/w9182874m1bl56smps3m5zjj36jhp3rn-spotify-1.1.26.501.gbe11e53b-15/bin/spotify lrwxrwxrwx 3 root root 79 Jan 1 1970 zoom-us -> /nix/store/wbhg2ga8f3h87s9h5k0slxk0m81m4cxl-zoom-us-5.3.469451.0927/bin/zoom-us /home/eelco/.local/state/nix/profiles/profile-7-link/share/applications: total 12 lrwxrwxrwx 4 root root 120 Jan 1 1970 chromium-browser.desktop -> /nix/store/4cf803y4vzfm3gyk3vzhzb2327v0kl8a-chromium-unwrapped-86.0.4240.111/share/applications/chromium-browser.desktop lrwxrwxrwx 7 root root 110 Jan 1 1970 spotify.desktop -> /nix/store/w9182874m1bl56smps3m5zjj36jhp3rn-spotify-1.1.26.501.gbe11e53b-15/share/applications/spotify.desktop lrwxrwxrwx 3 root root 107 Jan 1 1970 us.zoom.Zoom.desktop -> /nix/store/wbhg2ga8f3h87s9h5k0slxk0m81m4cxl-zoom-us-5.3.469451.0927/share/applications/us.zoom.Zoom.desktop Each profile version contains a manifest file: - manifest.nix <../../command-ref/files/manifest.nix.md> used by nix-env <../../com- mand-ref/nix-env.md>. - manifest.json <../../command- ref/files/manifest.json.md> used by nix profile <../../command-ref/new- cli/nix3-profile.md> (experimental). User profile link A symbolic link to the user's current profile: • ~/.nix-profile • $XDG_STATE_HOME/nix/profile if use-xdg-base-directories <../../command-ref/conf-file.md#conf-use-xdg-base-directories> is set to true. By default, this symlink points to: • $XDG_STATE_HOME/nix/profiles/profile for regular users • $NIX_STATE_DIR/profiles/per-user/root/profile for root The PATH environment variable should include /bin subdirectory of the profile link (e.g. ~/.nix-profile/bin) for the user environment to be visible to the user. The installer <../../installation/installing- binary.md> sets this up by default, unless you enable use-xdg-base-di- rectories <../../command-ref/conf-file.md#conf-use-xdg-base-directo- ries>. Profile compatibility Warning Once you have used nix profile <../../command-ref/new- cli/nix3-profile.md> you can no longer use nix-env <../../command-ref/nix-env.md> without first deleting $XDG_STATE_HOME/nix/profiles/profile Once you installed a package with nix profile <../../command-ref/new- cli/nix3-profile.md>, you get the following error message when using nix-env <../../command-ref/nix-env.md>: $ nix-env -f '<nixpkgs>' -iA 'hello' error: nix-env profile '/home/alice/.local/state/nix/profiles/profile' is incompatible with 'nix-env'; please use 'nix profile' instead To migrate back to nix-env you can delete your current profile: Warning This will delete packages that have been installed before, so you may want to back up this information before running the com- mand. $ rm -rf "${XDG_STATE_HOME-$HOME/.local/state}/nix/profiles/profile" Options Logging-related options • --debug <#opt-debug> Set the logging verbosity level to `debug'. • --log-format <#opt-log-format> format Set the format of log output; one of raw, internal-json, bar or bar- with-logs. • --print-build-logs <#opt-print-build-logs> / -L Print full build logs on standard error. • --quiet <#opt-quiet> Decrease the logging verbosity level. • --verbose <#opt-verbose> / -v Increase the logging verbosity level. Miscellaneous global options • --help <#opt-help> Show usage information. • --offline <#opt-offline> Disable substituters and consider all previously downloaded files up-to-date. • --option <#opt-option> name value Set the Nix configuration setting name to value (overriding nix.conf). • --refresh <#opt-refresh> Consider all previously downloaded files out-of-date. • --version <#opt-version> Show version information. Note See man nix.conf <../../command-ref/conf-file.md#command-line-flags> for overriding configuration settings with command line flags. nix3-profile(1)
Name | Synopsis | Description | Files | Options
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nix3-profile&sektion=1&manpath=FreeBSD+Ports+15.0>
