Environment variables: Difference between revisions
imported>Yuu |
imported>Yuu |
||
Line 1: | Line 1: | ||
= | = Configuration = | ||
Environment variables can be set with <code>environment.variables</code>, <code>environment.sessionVariables</code>, and <code>environment.profileRelativeSessionVariables</code>. For example, for the [https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables XDG Base Directory Specification], the following could be set to <code>/etc/nixos/configuration.nix</code>: | Environment variables can be set with <code>environment.variables</code>, <code>environment.sessionVariables</code>, and <code>environment.profileRelativeSessionVariables</code>. For example, for the [https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables XDG Base Directory Specification], the following could be set to <code>/etc/nixos/configuration.nix</code>: |
Revision as of 16:41, 8 July 2021
Configuration
Environment variables can be set with environment.variables
, environment.sessionVariables
, and environment.profileRelativeSessionVariables
. For example, for the XDG Base Directory Specification, the following could be set to /etc/nixos/configuration.nix
:
{
# ...
environment.sessionVariables = rec {
XDG_CACHE_HOME = "\${HOME}/.cache";
XDG_CONFIG_HOME = "\${HOME}/.config";
XDG_BIN_HOME = "\${HOME}/.local/bin";
XDG_DATA_HOME = "\${HOME}/.local/share";
PATH = [
"\${XDG_BIN_HOME}"
];
};
# ...
}
Troubleshooting
sudo[3424]: pam_env(sudo:session): Expandable variables must be wrapped in {} <$ENVIRONMENT_VARIABLE/path/to> - ignoring
Description
Error logs may be found with journalctl -xb -p3
regarding the no presence of curly braces {}
for variable expansion.
sudo[3424]: pam_env(sudo:session): Expandable variables must be wrapped in {} <$ENVIRONMENT_VARIABLE/path/to> - ignoring
While checking the configuration values, for instance with nixos-option environment.sessionVariables
, it might be found that Nix is correctly parsing the curly braces.
Value:
{
...
ENVIRONMENT_VARIABLE = "${ENVIRONMENT_VARIABLE}/path/to";
...
}
This indicates that the curly braces are getting removed at a later stage.
Solution or workaround
Unknown.