새 바이너리가 소스에서 컴파일되면 이전 바이너리는 어떻게 되나요?

새 바이너리가 소스에서 컴파일되면 이전 바이너리는 어떻게 되나요?

패키지 관리자를 통해 저장소에서 git을 설치한 후 소스에서 git을 컴파일했습니다.

이 과정에서 git "from source"는 "메인 시스템 git"을 대신합니다.

user@jeanny:~$ git --version
git version 1.8.3.2

저장소의 git을 "메인 시스템 git"으로 설정하는 방법이 있습니까?

답변1

다음을 수행하여 이를 확인할 수 있습니다.

$ /usr/bin/git --version

$ /usr/local/bin/git --version

현재 두 가지 버전이 설치되어 있을 수 git있으며 별도의 디렉토리에 보관되어 있는 한 전혀 문제가 없습니다.

새로 컴파일된 버전은 git아마도 디렉토리에 있는 버전일 것입니다 /usr/local/bin.

$PATH환경 변수를 사용 하면 git.$PATH

예를 들어:

  • 시스템 버전이 git기본값입니다.

    PATH=/usr/bin:/usr/local/bin
    
  • 새로 컴파일된 버전이 git기본값입니다.

    PATH=/usr/local/bin:/usr/bin
    

그렇다면 대안은 어떨까요?

OP는 댓글에서 다음과 같은 후속 질문을 했습니다.

이 그림에서 업데이트 대안은 어디에 적합합니까?

대안은 메커니즘이다/usr/bin이를 통해 소프트웨어에 의해 관리되는 도구에 액세스할 수 있는 링크를 디렉토리에 배치하여 시스템이 제거된 도구를 통합할 수 있습니다 . 예제는 문제를 가장 잘 설명합니다. 내 시스템에서는 Java가 대체 애플리케이션으로 관리됩니다./usr/bin/usr/bin

$ ls -l /usr/bin/java
lrwxrwxrwx. 1 root root 22 Dec 26  2010 /usr/bin/java -> /etc/alternatives/java

위 링크를 따라가시면 알 수 있습니다 /usr/bin. 이것이 대안으로 관리되는 링크라는 점을 고려하면 링크가 여전히 디렉토리 아래에 있다는 사실은 바뀌지 않습니다 /usr/bin. 그래서 $PATH위와 같이 하면 대안은 문제가 되지 않습니다.

관련 정보