为什么 RStudio 没有获取 $HOME/.bashrc 中定义的环境变量

为什么 RStudio 没有获取 $HOME/.bashrc 中定义的环境变量

我使用 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/命令行中),要求输入用户名和密码。

我将它们放入并按 Enter 键。

/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")

我的推理哪里失败了?

答案1

由于 SSDM 是该 shell 的子级,

不,这不对。它由 systemd (因此,该过程以前称为init)按照 的指示启动systemctl

所以,这就是你的链条断裂的地方。

相关内容