2016-06-18 1 views
1

"sudo make install"이 설치된 프로그램을 업데이트하는 방법을 알려주실 수 있습니까? 내가 프로그램을 제거한 다음 "./autogen.sh" "make" "sudo make install"을 다시 실행해야하는지 묻습니다. 누군가 프로그램을 제거한 다음 git pull, 다른 프로그램을 다시 빌드해야한다고 말합니다. 업데이트 된 소스를 사용하여 간단하게 다시 설치할 수 있다고 말하십시오.소스에서 빌드 한 프로그램을 업데이트하는 방법

답변

1

달라질 수 있습니다. 단순히 사소한 업데이트 만하는 경우 재 컴파일 및 make install으로 이동하십시오.

제공된 libs 및/또는 헤더 파일에 변경 사항이있는 경우 (예 : 파일 이름이 변경된 경우) 소프트웨어를 먼저 제거하여 파일 시스템에서 불필요한 파일을 제거하는 것이 좋습니다.

+0

감사합니다. 그래서 매번 변경 사항을 확인해야합니까? – Fabiuz99

+0

@ Fabiuz99 당신은 그것을 복잡하게 만듭니다; 그냥'make install' 새로운 버전; 문제가 발생하면'make uninstall '하고 다시 설치하십시오. –

+0

왜냐하면 나는 git으로 인스톨 된 프로그램을 업데이트하기 위해 스크립트를 사용하기 때문이다. 단순히 include 나 include만으로 프로그램을 설치하거나 제거했다가 다시 설치하면 안된다. 당신의 대답에서 나는 두 번째 옵션이 더 낫다는 것을 이해했습니다. – Fabiuz99

0

(보통) make uninstall은 없습니다.

저는 소프트웨어와 버전 번호를 따서 명명 된 별도의 디렉토리에 항상 이러한 소프트웨어를 설치하는 이유입니다. 예를 들어, 소스에서 GNU Make 4.1을 설치할 때 디렉토리 make-4.1에 설치합니다.

그런 다음 모든 관련 파일을 내 $PATH, $MANPATH 등에서 사용하는 공통 디렉토리 트리로 심볼릭 링크합니다. 나는 그것을하기 위해 자신의 스크립트를 사용하지만, 그 이유는 내가 그것을 작성했을 때 stow에 대해 몰랐기 때문입니다.

이렇게하면 여러 버전을 나란히 설치하고 해당 스크립트에서 해당 심볼릭 링크를 제거하고 추가하여 "현재"버전을 선택할 수 있습니다. 디렉토리 트리를 제거하여 소프트웨어를 제거 할 수 있습니다.

또한이 방법으로 설치해야하는 종속성이있는 소프트웨어에서도 작동합니다. 가장 어려운 부분은 종속성을 버전별로 설정할지 여부를 결정하는 것입니다.

1

정말로 기본 위치에 직접 설치 한 프로그램을 제거하기 어렵습니다. 운이 좋다면 makeuninstall 또는 deinstall 표적이 있지만 대부분은 그렇지 않습니다. 아마도 코드의 동일한 버전을 다시 설치하고 어떤 일이 실제로 끝나는 곳을 계속 지키지 않는 한 파일을 수동으로 찾아서 제거하는 것입니다 ("사냥감을 줄이면"조금 더 쉬워집니다) 향후

, 당신은 다른 일을 할 수도 있습니다하십시오 GNU configure 스크립트를 사용하여 대부분의 소스 배포는 --prefix=path를 사용하여 설치를위한 접두사을 지정할 수 있습니다. 이렇게하면 별도의 하위 디렉토리에 설치를 수행 할 수 있으며 삭제가 간단합니다. 예를 들어

,의 내가 ThePackage라는 소프트웨어의 가상 조각을 설치하고있어 가정 해 봅시다 버전 14.4 :

$ ./configure --prefix=/usr/local/stow/thepackage-14.4 
$ make && sudo make install 

(나는 보통 $HOME/local/stow 아래 경로를 사용)

공지 사항이있는 stow? 정확하게 이것이라고 불리는 깔끔한 유틸리티 인 available from the GNU people이 있다는 것은 우연이 아닙니다..../stow/thepackage-14.4에서, 위와 같이 소프트웨어를 설치 한 후

, 그것은 단순히이 예를 들어, /usr/local/stow/thepackage-14.4/bin의 모든 실행 파일이 /usr/local/bin에서 사용할 수 있도록 심볼릭 링크와 /usr/local 채 웁니다

$ cd /usr/local/stow 
$ sudo stow -v thepackage-14.4 

의 문제 (등)

을 제거하려면 :

$ cd /usr/local/stow 
$ sudo stow -D -v thepackage-14.4 
$ sudo rm -rf thepackage-14.4 

을이 당신도 할 수 있습니다 일부 소프트웨어의 여러 버전을 /usr/local/stow에 설치해야합니다. 특정 버전을 "활성화"하려면 사용중인 버전이 무엇이든 stow -D이고 시험하려는 버전은 stow입니다. 요구 사항을 충족시키지 못하는 새 버전이 있으면 작업을 취소하십시오.

다른 빌드 시스템도 별도의 접두어로 설치할 수 있습니다. 예를 들어, CMake 위와 같이 설치하게 또한 펄 패키지 stow을 사용할 수 있습니다

$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/stow/thepackage-14.4 
$ make && sudo make install 

사용하고, 어떤 다른 것은 사용자 정의 경로에 설치합니다.

관련 문제