경로를 변경하지 않고 특정 프로그램의 기본 디렉터리를 변경합니다.

경로를 변경하지 않고 특정 프로그램의 기본 디렉터리를 변경합니다.

g++다음 위치에 두 개의 프로그램이 있습니다 /usr/local/bin/./usr/bin/

기본값 g++은 입니다 /usr/local/bin/. 그러나 다른 프로그램과 마찬가지로 PATH 환경 변수를 변경하고 싶지 않습니다. /usr/bin/나는 의 버전보다 의 버전을 선호합니다 /usr/local/bin/. 가능합니까?

내 요점을 명확하게 설명하자면:

두 프로그램의 기본 설정을 다음과 같이 설정하고 싶습니다.

g++에서/usr/local/bin/
python/usr/bin/

그런데 /usr/local/bin/와 에는 /usr/bin/두 프로그램이 모두 존재하는데 어떻게 해야 하나요?

답변1

옵션 1: 경로에 오버레이 폴더 만들기

이러한 프로그램을 간접적인 방법으로 호출해야 하는 경우(예를 들어 창 관리자가 시작한 일부 응용 프로그램은 g++또는 를 호출함 python) 경로를 편집해야 합니다. 경로 시작 부분에 새 폴더를 추가하면 됩니다 ~/.bashrc.

export PATH=/home/username/.bin:$PATH

적절한 프로그램을 가리키는 두 개의 기호 링크를 배치합니다.

ln -s /usr/bin/python /home/username/.bin/python
ln -s /usr/local/bin/g++ /home/username/.bin/g++

이렇게 하면 소스가 올바르면(로그아웃한 후 다시 로그인) 모든 것이 다시 들어 오고 나가는 ~/.bashrc길을 찾아야 합니다 .pythong++

옵션 2: aliasbash에 사용하여 따라하기

더 가벼운 솔루션을 찾고 계시다면bash에서 직접 Python을 호출하십시오.alias, 다음에서 설정할 수 있습니다 ~/.bashrc.

alias python=/usr/bin/python

python옵션 3: /usr/local/bin/에서 이름을 변경하기만 하면 됩니다.

/usr/local/bin/python아니면 직접 이름을 다음과 같이 바꿀 수도 있습니다 /usr/local/bin/python-alternate. /usr/bin적어도 데비안에서는 패키지 관리자가 이름을 제어하기 때문에 포함된 내용의 이름을 바꾸는 것을 권장하지 않습니다 . 일반적으로 /usr/local/bin그렇지 않습니다.

옵션 4: Makefile에 올바른 컴파일러 지정

워크플로에서 를 사용 make하거나 더 넓은 애플리케이션 make(예: autotools또는 cmake)을 호출하는 경우 거의 항상 컴파일러를 지정하는 옵션이 있습니다. 예를 들어 makefile은 다음과 같습니다.

CXX=/usr/local/bin/g++

all:
    $(CXX) inputfile.cpp -o outputfile

또는 cmake구성할 수 있습니다.

cmake -D CMAKE_CXX_COMPILER=/usr/local/bin/g++ ..

프로그램마다 컴파일러를 지정하기 위해 서로 다른 구문을 사용하지만 일반적으로 지정할 수 있습니다.

답변2

다른 명령의 기본 경로를 재정의하지 않고 단일 명령의 기본 실행 파일을 변경하려면 다음을 수행하십시오.내보내지지 않음특정 명령 시작 부분에 PATH를 설정하는 대신 PATH를 업데이트했습니다.

예를 들어:

# GNU/Linux install binary is the default executable 
which install
/usr/bin/install 

# Set AWS-CLI install binary for this command only 
PATH="/home/username/aws-cli/bin:$PATH" which install
/home/username/aws-cli/bin/install 

관련 정보