환경 경로 변수의 순서 변경

환경 경로 변수의 순서 변경

저는 CentOS 컴퓨터에서 작업 중이며 최신 버전의 Python을 설치하려고 합니다. CentOS를 제대로 실행하려면 Python 2.6.6이 필요합니다. 이 문제를 해결하기 위해 /usr/local/bin에 두 번째 Python(v 2.7.6)을 설치했습니다. 그런 다음 Python이라는 심볼릭 링크를 만들었습니다. 불행히도 내 환경 경로 변수는 다음과 같습니다.

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/useraccount/bin

/usr/local/bin은 새로 설치된 Python을 기본 시스템 설치로 사용하는 /usr/bin 앞에 옵니다. 이는 Python 2.6.6을 기본 설치로 사용해야 하는 CentOS의 요구 사항을 위반합니다.

기호 링크를 제거하면 이 문제가 해결됩니다. 그러나 최신 버전의 Python을 설치하는 경우 모든 스크립트를 최신 버전을 가리키도록 변경하는 대신 심볼릭 링크만 전환할 수 있기를 바랍니다.

이러한 변수가 경로에 추가되는 순서를 변경하는 방법이 있습니까? 예를 들어 경로를 다음과 같이 만들 수 있습니다.

/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/useraccount/bin

경로에 추가하거나 완전히 덮어쓰는 방법을 자세히 설명하는 게시물을 쉽게 찾을 수 있지만 아무도 그렇게 하지 않는 것 같습니다. 이 순서를 변경하고 싶지 않은 이유가 있나요?

답변1

경로 변수의 순서를 바꾸는 방법에 대한 가이드를 찾을 수 없는 이유는 그것을 추가하거나 완전히 바꾸는 것보다 훨씬 어렵기 때문입니다.

$PATH쉘의 변수 일뿐입니다. 즉, 쉽게 교체할 수 있고( 를 실행 PATH=<new path>하거나 에 넣음 .bashrc) 쉽게 추가할 수 있습니다( PATH=<new entry>$PATHas 를 사용하여 $PATH현재 경로가 됨). 그러나 순서를 변경하려면 먼저 이를 구문 분석해야 합니다. 변수가 작동하는 방식을 이해하려면 스크립트를 작성해야 합니다.

귀하의 목적에 따라 기본 환경 경로 외부의 디렉토리에 심볼릭 링크를 배치하는 것이 가장 좋습니다. ~/bin/예를 들어 에 넣을 수도 있고 에 넣을 수도 있습니다 /usr/local/bin/nopath/.

관련 정보