일부 프로그램을 설치한 후 모든 사용자를 위한 비로그인 쉘을 시스템에 /opt/xxx/bin
추가하고 싶습니다 . 어떻게 해야 합니까?/opt/xxx/bin
$PATH
답변1
PAM을 사용하는 Debian 및 기타 시스템에서는(대부분 현재) 이 작업 PATH
을 /etc/environment
.pam_env
모듈( auth
섹션 또는 섹션 session
); 데비안에서는 모두 있어야 합니다(적어도 로그인하고 명령을 실행하는 방법을 제공하는 것).
답변2
/etc/profile
Joe 가 말한 것처럼 기본 경로를 설정할 수 있지만 $HOME/.profile
../configure --prefix=/opt/<name>
/opt
/opt/<name>/bin
OPTDIR=/opt
for i in $OPTDIR/* ; do
BINDIR=$i/bin
if [ -d $BINDIR ] ; then
if [ -z $PATH ] ; then
PATH=$BINDIR
else
PATH=$BINDIR:$PATH
fi
fi
done
export PATH
나에게는 $HOME/.profile
당신의 경우에는 그렇습니다 /etc/profile
. 이제는 /opt
앞으로 아래 패키지를 설치 하더라도 /opt/.*/bin
.$PATH
추가 기능은 안정적일 필요가 없기 $HOME/.profile
때문에 /etc/profile
.
작은 참고 사항: /etc/.profile
reverse는 $HOME/profile
기본 셸에서 실행되지 않지만 dash
경량 변형은 bash
시작 프로세스의 부하를 줄여줍니다.
답변3
serverfault에서 가장 좋은 답변을 찾았습니다.자일스:
데비안의 모든 사용자에 대해 PATH를 설정하는 방법은 무엇입니까?
PATH를 설정하는 첫 번째 장소는
/etc/login.defs
루트에 대한 설정과 다른 모든 사람에 대한 설정입니다.환경 변수를 정의할 수 있는 또 다른 위치는 입니다
/etc/environment
. 이러한 설정은 모든 사람에게 적용됩니다(임의의 쉘 코드를 작성할 수는 없습니다).환경 변수를 정의할 수 있는 세 번째 장소는
/etc/profile
임의의 셸 코드를 작성할 수 있는 곳입니다. 사용자별 설정을 원하는 경우 해당 사용자별 파일을 사용할 수 있습니다~www-data/.profile
. 그러나 이는 콘솔 대화형 로그인에만 작동합니다. 특히 명시적으로 소스가 제공되지 않는 한 cron 작업에는 작동하지 않습니다/etc/profile
.사용자의 crontab에서만 이 설정이 필요한 경우
PATH
crontab의 시작 부분에 쓸 수 있습니다. 전체 목록(PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin
)이 필요하며 변수 대체를 사용할 수 없습니다(PATH=$PATH:/usr/local/zend/bin
여기에서는 작동하지 않음).
답변4
기본 경로는 /etc/profile에서 설정할 수 있습니다.
하지만 방금 Ubuntu 시스템을 살펴보니 /etc/environment에 설정되어 있습니다.