RStudio가 $HOME/.bashrc에 정의된 환경 변수를 얻지 못하는 이유는 무엇입니까?

RStudio가 $HOME/.bashrc에 정의된 환경 변수를 얻지 못하는 이유는 무엇입니까?

저는 아치 리눅스를 사용합니다.

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은 이 셸의 하위 항목이므로 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은 이 쉘의 하위이므로

아니요, 그렇지 않습니다. 이는 init지침에 따라 systemd(따라서 이전에 프로세스라고 불림)에 의해 시작됩니다 systemctl.

그래서 이것이 당신의 사슬이 끊어지는 곳입니다.

관련 정보