소스에서 설치된 git를 제거하는 방법은 무엇입니까? [닫은]


21

이 기사를 사용하여 자식을 설치했습니다 . 이제 자식을 제거하고 싶습니다. 어떻게합니까?


1
여전히 다운로드하여 수행 한 소스 코드 make install가 있습니까?
Hennes

예, 저는 소스 코드를 가지고 있습니다
Mikhail

'make uninstall'의 결과는 무엇입니까? 모든 Makefile에이 옵션이있는 것은 아니지만 대부분이 있습니다.
Hennes

1
make : *** 대상을 '제거'하는 규칙이 없습니다. 중지.
Mikhail

1
왜 -1? 설명
Mikhail

답변:


15

여기 에서 해결책을 찾았습니다 .

2012 년 2 월 11 일 업데이트

충분히 똑똑하고 / opt / git와 같은 특정 계층 구조로 설치되도록 Git을 구성 할 때 비표준 접두사를 사용한 경우 해당 계층 구조를 재귀 적으로 삭제하십시오.

그렇지 않은 경우 다음과 같이 갈 수 있습니다.

1) 빌드하고 설치 한 버전의 소스 타르볼을 가져 와서 압축을 풉니 다.

2) 설치 위치 (접두사, exec- 접두사 등)와 관련하여 원래 설치와 동일하게 구성하십시오. 아마도 당신은 아무것도 무시해서는 안됩니다.

3) 다음과 같이 설치를 수행 할 임시 디렉토리를 작성하십시오. $ mkdir / var / tmp / git

4) 적절한 DESTDIR 변수를 전달하여 Git을 설치하십시오 : $ make DESTDIR = / var / tmp / git install Git 계층 구조는 해당 임시 디렉토리 아래에 생성됩니다.

5) 작성된 계층 구조를 사용하여 실제 계층 구조 ( "/"자체)에서 삭제할 파일을 결정하십시오.

마지막 단계는 "마술"이 일어나는 곳이므로 더 많은 설명이 필요합니다. 예를 들어, 당신은 실행할 수 있습니다

$ find /var/tmp/git -type f -printf '/%P\n' | xargs -n 10 rm -f

(루트로) 루트 파일 시스템에 첫 번째 잘못 설치하여 설치된 파일을 삭제하십시오. 위의 encantation은 / var / tmp / git 계층 구조를 사용하여 발견 된 파일 목록을 인쇄하지만 "/ var / tmp / git"접두어를 "/ var"로 대체하여 "/ var / tmp / git 출력에서 / usr / bin / git "는"/ usr / bin / git "로 표시됩니다. 그런 다음이 목록은 10 개의 팩으로 읽은 파일 이름에서 xargs실행 rm됩니다 (호출 횟수를 rm1 배 줄입니다).

파일을 다룬 후 다음을 실행하십시오.

$ find /var/tmp/git -type d -printf '/%P\n'

설치된 디렉토리 목록을 검사합니다. 수동 접근 방식이 필요하므로 생성 된 목록을보고 rmdir시스템에서 안전하게 어떤 것 ( "/ usr / libexec / git"또는 이와 유사한 디렉토리가 될 것입니다. "/ usr / share / man / mann"또는 비어있는 경우).

추신 : 앞으로는 절대로 시스템에 아무것도 설치 하지 마십시오make install ! 요즘 대부분의 makefile은 테스트를 위해 개인 스크래치 위치에 설치하거나 패키지 (.rpm, .deb 등)를 만드는 데 사용되는 "제거"대상을 지원하지 않으며 패키지 관리자가 정리를 처리합니다. 무언가를 설치해야하는 경우 공식 패키지를 찾거나 사용 가능한 경우 최신 버전의 OS에서 다른 공식 패키지를 백 포트하십시오. 최후의 수단으로 실행 checkinstall중에 바이너리 패키지를 만드는 도구를 사용해보십시오 make install. 이것은 짜증이지만 여전히 맨손보다 낫습니다 make install.


여기에있는 세부 사항 중 일부를 확장하십시오. 비트 로트 (bit-rot)가 발생하면이 응답이 쓸모 없게됩니다.
sysadmin1138

좋아, 나는 대답을 업데이트했다
Mikhail

존경. 그것은 작동
dotslash

요약 : ./configure. sudo make && sudo make DESTDIR=/var/tmp/git install. sudo find /var/tmp/git -type f -printf '/%P\n' | sudo xargs -n 10 rm -f
Vahid

3

나는 2691 라인의 Makefile을 갔다. 실제로 제거하지 마십시오. 드랏.

이 경우 해결 방법이 make rpm옵션 을 사용하는 것일 수 있습니다 . rpm을 설치하십시오 (설치된 모든 파일을 덮어 씁니다. 이미 설치된 파일과 동일해야 함). 그런 다음 rpm을 제거하십시오.

향후 모든 경우에 패키지 (RPM, yum 등)를 빌드하십시오. 유지 보수가 훨씬 쉬워졌습니다.


1
rpm / deb / your-package-here 는 다른 매개 변수로 실행 되므로 설치하는 파일이 prefix로 끝나는 반면 일반적으로 항목 make install은 접두사로 설정 됩니다. /usr/local./configure/usr
ptman

CentOS의 초보자입니다. 어떤 명령을 실행해야합니까? 더 자세히 설명해 주시겠습니까?
Mikhail

나는 make rpm명령을 실행했다 . 다음에 어떻게해야합니까?
Mikhail

man rpm또는로 시작하십시오 'rpm --help. 아마 사용하라고 알려줄 것입니다 rpm -i packagename.rpm. 그러나 umbrella-web의 sysadmin에게 도움을 요청하는 것이 가장 좋습니다. 우리는 멀리서 할 수있는 일이 너무 많습니다.
Hennes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.