비슷한 질문이 올라왔는데 문제가 여전히 존재하는 것 같아요.
나는 표준적인 작업을 수행하고 디렉토리에 소프트웨어를 추가했습니다 /opt/
. 가자, 가자. /opt/go
홈 디렉토리이며 /opt/go/bin
바이너리가 있는 곳입니다.
$PATH
질문: 시스템 전체로 확장하는 방법로그인하지 않았습니다껍데기. 사용자가 로그인하고 터미널 아이콘을 클릭하면 비로그인 셸이 시작됩니다. 이 시점에서 사용자는 PATH
Go 바이너리를 포함해야 합니다.
나는 시도했다:
/etc/profile.d/
로그인하지 않은 쉘은 그것을 읽을 수 없기 때문에 작동하지 않습니다./etc/environment.d
변수를 사용할 수 없으므로PATH="${PATH}:/opt/go/bin"
작동하지 않습니다. 또한 더 많은 경로를 추가하겠습니다. 루트는 어떻게 다른가요PATH
?/etc/login.defs
사용자가 LDAP에 있거나 다른 이유로 인해 읽지 않습니다.
이상하거나 서투른 해결책은 부분적으로 효과적일 수 있습니다.
- 예를 들어 sheel
.rc
전역 파일을 수정bash.bashrc
하지만 약간 버그가 있고 업데이트가 저장되지 않습니다. 카탈로그는.d/*
이러한 문제를 해결하는 좋은 방법입니다. 그리고 껍질이 많이 있습니다. - 이전에 다른 곳에서 값을 설정하지 않은 컬렉션 과 함께 사용하려면
/etc/environment.d/
: . 루트는 어떻게 다른가요?PATH
PATH
PATH=/usr/local/bin:/usr/bin:...
PATH
- 에 심볼릭 링크 바이너리가 있지만
/usr/local/bin
수십 개의 바이너리가 있는 경우 이는 즐거운 일이 아닙니다.
마침내,유일하게 효과적인 방법:
- 디렉토리를 사용하십시오
/etc/X11/Xsession.d/
. 방금 디렉토리에 배치될 동일한 파일을 추가했고/etc/profile.d/
GUIPATH
환경에 맞게 올바르게 설정되었습니다. 그리고 TTY와 충돌하지 않습니다/etc/profile.d/
.
애초에 문제가 여전히 존재한다고 쓴 이유는 무엇입니까? /etc/X11/Xsession.d/
그렇게 하기엔 이상한 곳인 것 같으니 까요 . 실제로 이 작업을 수행하는 더 나은/올바른 방법이 없나요? 관리자가 사용자를 위해 시스템 범위를 설정하는 것은 흔한 일인 것 같습니다 PATH
. :) 아니면 여기에 확실한 해결책이 없는 걸까요?
카밀 에게 감사 인사를 전합니다