Environment variables: Difference between revisions
imported>Yuu |
imported>Yuu No edit summary |
||
Line 1: | Line 1: | ||
= Configuration = | == 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>: | ||
Line 22: | Line 22: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
= Troubleshooting = | == Troubleshooting == | ||
== sudo[3424]: pam_env(sudo:session): Expandable variables must be wrapped in {} <$ | === sudo[3424]: pam_env(sudo:session): Expandable variables must be wrapped in {} <$VARIABLE/path/to> - ignoring === | ||
Error logs may be found with <code>journalctl -xb -p3</code> regarding the no presence of curly braces <code>{}</code> for variable expansion. | Error logs may be found with <code>journalctl -xb -p3</code> regarding the no presence of curly braces <code>{}</code> for variable expansion. | ||
<syntaxhighlight lang="shell"> | <syntaxhighlight lang="shell"> | ||
sudo[3424]: pam_env(sudo:session): Expandable variables must be wrapped in {} <$ | sudo[3424]: pam_env(sudo:session): Expandable variables must be wrapped in {} <$VARIABLE/path/to> - ignoring | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 40: | Line 38: | ||
{ | { | ||
... | ... | ||
VARIABLE = "${VARIABLE}/path/to"; | |||
... | ... | ||
} | } | ||
Line 47: | Line 45: | ||
This indicates that the curly braces are getting removed at a later stage. | This indicates that the curly braces are getting removed at a later stage. | ||
=== Solution or workaround === | ==== Solution or workaround ==== | ||
Unknown. | Unknown. |
Revision as of 16:48, 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 {} <$VARIABLE/path/to> - ignoring
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 {} <$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:
{
...
VARIABLE = "${VARIABLE}/path/to";
...
}
This indicates that the curly braces are getting removed at a later stage.
Solution or workaround
Unknown.