![XDG_DATA_DIRS에 디렉토리를 추가하는 올바른 방법은 무엇입니까?](https://linux55.com/image/11518/XDG_DATA_DIRS%EC%97%90%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EC%98%AC%EB%B0%94%EB%A5%B8%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
아래에 일부 응용 프로그램이 설치되어 /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/.zprofile
zsh 사용자의 경우) 여러 곳에 제안이 있지만 거기에 해당 줄을 추가하면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"
자신의 필요에 맞게 조정할 수 있습니다.