我使用 Arch Linux。
我将 SSDM 用作显示管理器,但我已将其禁用:
sudo systemctl disable sddm
我已将代码放入/etc/profile
,$HOME/.bash_profile
并$HOME/.bashrc
在获取这些文件时回显。
我$HOME/.bash_profile
正在采购$HOME/.bashrc
(就是这样,我只是添加了代码以在发生这种情况时回显):
if [[ -f ~/.bashrc ]]; then
echo "$HOME/.bash_profile is sourcing $HOME/.bashrc"
. ~/.bashrc
fi
我在我的中导出以下变量$HOME/.bashrc
:
export R_LIBS_USER='MY_VALUE'
我启动我的电脑。
它显示一个提示(在 TUI/命令行中),要求输入用户名和密码。
我把它们放进去,然后按回车键。
/etc/profile
是来源。
$HOME/.bash_profile
是来源。后者来源$HOME/.bashrc
。这意味着R_LIBS_USER
正在导出。
我被重定向到一个提示。
我愿意:
sudo systemctl start ssdm
由于 SSDM 是该 shell 的子项,因此它应该继承R_LIBS_USER
.
SSDM 打开,我开始 Wayland KDE 会话。
由于此会话是 SSDM 的子项,因此它应该继承R_LIBS_USER
.
我从 KDE 打开 RStudio。
但是R_LIBS_USER
还是默认值,不是我定义的那个$HOME/.bashrc
。
我用 R 显示变量的值:
Sys.getenv("R_LIBS_USER")
我的推理在哪里失败了?
不,这不对。按照
init
.systemctl
_所以,这就是你的链条断裂的地方。