页次: 1
因为需要设置 PATH,所以在 $HOME/.pam_environment 中添加了环境变量:
PATH DEFAULT="${HOME}/.local/bin"
注销后,环境变量中的确增加了一条,但增加的是"/.local/bin","${HOME}"被忽略了或者被识别为 "/" 了。
我该怎么解决这个问题呢?
我使用的是 KDE+wayland。
离线
换成 @{HOME} 试试,这个一般来讲是从 /etc/passwd 里面读取的,不是读环境变量。
另外一点,整个用户级的 pam_env 配置都已经被上游弃用,建议开始计划迁移。
离线
也可以直接在.bashrc 等地方export
比如,使用startx 来启动 (X),bash tty登陆,就在.bashrc export.
最近编辑记录 oogeek (2021-04-15 15:06:35)
I USE GENTOO BTW
离线
换成 @{HOME} 试试,这个一般来讲是从 /etc/passwd 里面读取的,不是读环境变量。
另外一点,整个用户级的 pam_env 配置都已经被上游弃用,建议开始计划迁移。
pam_env以外的其他配置文件不能生效,最后才只能选择用pam_env。尝试过 xprofile profile xinitrc xsession .config/environment.d,这些用户级配置文件没有一个能生效。
之后用 /etc/profile 解决。最后尝试了一下 pam_env 才找到用户级能有用的环境变量文件。
在 wiki 中看见,wayland 只能用系统级的环境变量,但 wiki 中没有写 ~/.config/systemd/user.conf 该如何配置,所以只能选择使用 pam_env 了。
离线
但 wiki 中没有写 ~/.config/systemd/user.conf 该如何配置,所以只能选择使用 pam_env 了。
https://wiki.archlinux.org/index.php/Sy … 8%E9%87%8F
对于有 $HOME 目录的用户,可以在 ~/.config/systemd/user.conf 文件中使用 DefaultEnvironment 选项,
提示: 如果想一次设置多个环境变量,可以写一个配置文件,文件里面每一行定义一个环境变量,用 "key=value" 的键值对表示,然后在你的启动脚本里添加xargs systemctl --user set-environment < /path/to/file.conf。
离线
https://wiki.archlinux.org/index.php/Sy … 8%E9%87%8F
对于有 $HOME 目录的用户,可以在 ~/.config/systemd/user.conf 文件中使用 DefaultEnvironment 选项,
提示: 如果想一次设置多个环境变量,可以写一个配置文件,文件里面每一行定义一个环境变量,用 "key=value" 的键值对表示,然后在你的启动脚本里添加xargs systemctl --user set-environment < /path/to/file.conf。
就是没明白 DefaultEnvironment 的值应该怎么设置。。。
离线
就是没明白 DefaultEnvironment 的值应该怎么设置。。。
https://www.freedesktop.org/software/sy … ml#Options
All options are configured in the [Manager] section:
DefaultEnvironment直接有一个example小节
https://www.freedesktop.org/software/sy … vironment=
大概就是这样的
$ cat /etc/systemd/user.conf
[Manager]
DefaultEnvironment = "VAR1=word1 word2" VAR2=word3 "VAR3=word 5 6"
离线
https://www.freedesktop.org/software/sy … ml#Options
All options are configured in the [Manager] section:
DefaultEnvironment直接有一个example小节
https://www.freedesktop.org/software/sy … vironment=大概就是这样的
$ cat /etc/systemd/user.conf
[Manager]
DefaultEnvironment = "VAR1=word1 word2" VAR2=word3 "VAR3=word 5 6"
已经试过了,仍然没有用。
wayland 的相关文档缺失严重啊
➜ ~ cat .config/systemd/user.conf
[Manager]
DefaultEnvironment=PATH=/home/thepoy/.local/bin
➜ ~ env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/local/go/bin
离线
已经试过了,仍然没有用。
wayland 的相关文档缺失严重啊
我对比中英文的wiki发现对不上,我编辑了一下中文wiki,同步了翻译,现在可以看到新的设置方法了,也增加了使用conf文件配置环境变量的例子。
我有测试在一个普通shell会话下输入systemctl --user set-environment TEST_PATH=$HOME/.local/bin(根据wiki的说法,好像用import-environment也可以)
然后我关掉当前shell会话,重新打开一个终端,执行systemctl --user show-environment | grep TEST_PATH发现设置是成功了的。
但是如果不重启桌面环境,直接用env指令寻找设置的环境变量是看不到效果的。
我测试过了,
1. ~/.config/systemd/user.conf文件有效,用的是
[Manager]
DefaultEnvironment="MYPATH=~/.local/bin"
不过~不会被展开成/home/username,就是MYPATH=~/.local/bin
2. ~/.config/environment/xxx.conf文件有效,用的是
[Service]
TEST_PATH=$HOME/.local/bin
其中$HOME会被展开成/home/username
3. /etc/systemd/user.conf没有生效,不清楚原因
用的是
[Manager]
DefaultEnvironment="DEFAULT_TEST_ENV=xxxx"
生效的case 1和case 2重启桌面环境之后都可以在env的打印中看到,
如果不重启,则只有新打开的会话可以生效
最近编辑记录 matrikslee (2021-04-16 22:06:00)
离线
thepoy 说:已经试过了,仍然没有用。
wayland 的相关文档缺失严重啊我对比中英文的wiki发现对不上,我编辑了一下中文wiki,同步了翻译,现在可以看到新的设置方法了,也增加了使用conf文件配置环境变量的例子。
我有测试在一个普通shell会话下输入systemctl --user set-environment TEST_PATH=$HOME/.local/bin(根据wiki的说法,好像用import-environment也可以)
然后我关掉当前shell会话,重新打开一个终端,执行systemctl --user show-environment | grep TEST_PATH发现设置是成功了的。但是如果不重启桌面环境,直接用env指令寻找设置的环境变量是看不到效果的。
我测试过了,
1. ~/.config/systemd/user.conf文件有效,用的是
[Manager]
DefaultEnvironment="MYPATH=~/.local/bin"
不过~不会被展开成/home/username,就是MYPATH=~/.local/bin2. ~/.config/environment/xxx.conf文件有效,用的是
[Service]
TEST_PATH=$HOME/.local/bin
其中$HOME会被展开成/home/username3. /etc/systemd/user.conf没有生效,不清楚原因
用的是
[Manager]
DefaultEnvironment="DEFAULT_TEST_ENV=xxxx"生效的case 1和case 2重启桌面环境之后都可以在env的打印中看到,
如果不重启,则只有新打开的会话可以生效
不知道你用的是不是 wayland,就我的情况来看,~/.config/systemd/user.conf 中的配置是不生效的,每次配置完环境变量我都会重启后再查看环境变量。
我能找到的方案只有 pam_env、/etc/profile 和 kde env 能正常设置环境变量。
离线
不知道你用的是不是 wayland,就我的情况来看,~/.config/systemd/user.conf 中的配置是不生效的,每次配置完环境变量我都会重启后再查看环境变量。
我能找到的方案只有 pam_env、/etc/profile 和 kde env 能正常设置环境变量。
我用的gnome wayland,目前是gnome40受害者xD
离线
`pam_env` is being deprecated
arch wiki 有说明: https://wiki.archlinux.org/index.php/En … s#Per_user
Reading ~/.pam_environment is deprecated and the feature will be removed at some point in the future.
建议不要再使用了
refs:
https://github.com/systemd/systemd/issues/7641
https://www.reddit.com/r/archlinux/comments/l0ascx/pam_env_is_being_deprecated_any_alternatives/
https://github.com/linux-pam/linux-pam/commit/ecd526743a27157c5210b0ce9867c43a2fa27784
离线
thepoy 说:不知道你用的是不是 wayland,就我的情况来看,~/.config/systemd/user.conf 中的配置是不生效的,每次配置完环境变量我都会重启后再查看环境变量。
我能找到的方案只有 pam_env、/etc/profile 和 kde env 能正常设置环境变量。我用的gnome wayland,目前是gnome40受害者xD
我之前用的是 KDE wayland,现在换回 X11 了,一切问题都解决了。
相比于 gnome,觉得 KDE 更好用一些,甚至我都觉得 Cinnamon 都比 gnome 好用。
离线
我之前用的是 KDE wayland,现在换回 X11 了,一切问题都解决了。
相比于 gnome,觉得 KDE 更好用一些,甚至我都觉得 Cinnamon 都比 gnome 好用。
我之前用过kde,体验不是特别好,遇到一些无法接受的问题,就换成gnome了(啊,有点偏离这个帖子主题了哈哈)
离线
thepoy 说:我之前用的是 KDE wayland,现在换回 X11 了,一切问题都解决了。
相比于 gnome,觉得 KDE 更好用一些,甚至我都觉得 Cinnamon 都比 gnome 好用。我之前用过kde,体验不是特别好,遇到一些无法接受的问题,就换成gnome了(啊,有点偏离这个帖子主题了哈哈)
贴子已经终结了,没有找到解决方案,那就解决问题本身,所以现在问题没了。
KDE 的 wayland 支持没有 gnome 好。
离线
页次: 1