XDG_DATA_DIRS에 디렉토리를 추가하는 올바른 방법은 무엇입니까?

XDG_DATA_DIRS에 디렉토리를 추가하는 올바른 방법은 무엇입니까?

아래에 일부 응용 프로그램이 설치되어 /opt/myapp있고 디렉토리가 있습니다 /opt/myapp/share. 설치가 끝나면 다음과 같이 알려줍니다.

Note that '/opt/myapp/share' is not in the search path
set by the XDG_DATA_HOME and XDG_DATA_DIRS
environment variables, so applications may not
be able to find it until you set them. The
directories currently searched are:

- /usr/share/gnome
- /home/joeuser/.local/share/flatpak/exports/share
- /var/lib/flatpak/exports/share
- /usr/local/share
- /usr/share

시스템 전체 및 개별 사용자로서 이 목록에 디렉토리를 추가하는 올바른 방법은 무엇입니까?

답변1

이것독일 ubuntuusers 위키에는 좋은 목록이 있습니다.이 목적으로 사용할 수 있는 파일 및 디렉터리입니다.

전역 설정

내 연구에 따르면 이 환경 변수에 전역적으로 연결하는 것은 쉽지 않지만 다음은 몇 가지 팁입니다.

  • 기존 값을 덮어쓰려면 이 /etc/environment방법이 가장 쉬운 방법입니다.
  • 시스템 구성에 따라서 /etc/profile는 쉘에서 실행하는 것이기 때문에 좋은 방법일 수도 있습니다.
  • /etc/X11/Xsession.d/*시도할 다른 파일은 다음 과 같습니다 ./etc/security/pam_env.conf

사용자가 설정

  • $HOME/.profile(또는 $HOME/.zprofilezsh 사용자의 경우) 여러 곳에 제안이 있지만 거기에 해당 줄을 추가하면 XDG_DATA_DIRS="$HOME/.local/xdg:$XDG_DATA_DIRS"로그인 후 내 데스크톱이 완전히 작동하지 않게 됩니다.
  • 나에게 효과적인 것은 선을 만들어 거기에 $HOME/.xsessionrc놓는 것 입니다 export XDG_DATA_DIRS="$HOME/.local/xdg:$XDG_DATA_DIRS". 물론 $HOME/.local/xdg추가하려는 디렉터리로 바꿔야 합니다. 또한 이는 셸이 아닌 그래픽 응용 프로그램에 대한 변수만 설정하므로(따라서 값은 에서 언급되지 않음 echo $XDG_DATA_DIRS) 문제가 되지 않습니다.

추천하다

다음 줄을 실행하고 다시 로그인하면 작동합니다.

echo export 'XDG_DATA_DIRS="/opt/myapp/share:$XDG_DATA_DIRS"' >> ~/.xsessionrc

이후 어떤 이유로 시스템이 제대로 작동하지 않으면 다음을 입력하세요.복구 모드, 루트 쉘에 들어가서 를 입력한 rm /home/<username>/.xsessionrc다음 reboot시스템으로 돌아갑니다.

답변2

시스템 전체에서 무슨 일이 일어나고 있는지 잘 모르겠습니다. 그러나 단일 사용자(시스템 전체 액세스 권한이 있는)로서 나는 이 줄을 내 ~/.profile파일에 포함합니다.

XDG_DATA_DIRS="/var/lib/flatpak/exports/share:$XDG_DATA_DIRS"

자신의 필요에 맞게 조정할 수 있습니다.

관련 정보