LainyZine: 프로그래머 가이드 🐣

Ubuntu에서 소스 코드 빌드한 Git 삭제하는 방법

Git은 무료로 사용할 수 있는 오픈소스 분산 소스 코드 저장소 애플리케이션입니다. 윈도우, 리눅스, 맥 등 메이저 OS들을 지원하고 있으며, 리눅스 배포판 Ubuntu에서도 패키지 관리자를 사용해 손쉽게 최신 버전을 사용할 수 있습니다.

하지만 개발 버전이나 특정 버전을 사용하고자 하는 경우 해당 버전의 소스코드를 다운로드 받아 직접 빌드해서 사용해야합니다.

소스코드에서 빌드해서 Git을 설치했다면, 어떻게 삭제해야할까요? make로 빌드하는 경우 uninstall을 지원한다면 손쉽게 삭제할 수 있습니다만, git은 이 스크립트를 지원하지 않습니다. 따라서 직접 삭제해야합니다. 이 글에서는 직접 빌드한 Git을 삭제하는 방법을 소개합니다.

Ubuntu에서 직접 빌드한 Git을 삭제하는 방법

여기서 사용하는 Ubuntu에서 직접 빌드한 Git을 삭제하는 원리는 간단합니다.

Git을 설치할 때 사용한 소스 코드를 준비합니다. 1. 이 소스 코드를 임시 디렉터리에 다시 설치합니다. 2. 설치된 디렉터리의 파일 목록을 뽑고, 3. 앞서 빌드해서 설치한 디렉터리에서 이 목록을 삭제해줍니다. 따라서 다음 내용들을 준비해야합니다.

자 그럼 앞서 설치한 소스 코드 디렉터리로 이동합니다. 소스 코드가 로컬에 없다면 릴리스 페이지에서 현재 설치된 버전을 다운로드 받습니다.

1. Git 소스 코드를 다운로드 받고 특정 디렉터리에 빌드하기

여기서는 2.29.3 버전을 삭제한다고 가정해보겠습니다.

소스 코드의 압축을 풀고 해당 디렉터리로 이동하고 다음 명령어로 빌드를 진행합니다. 여기서 중요한 포인트가 .configure를 실행할 때 --prefix=/tmp/git-build-2.29.3 옵션을 지정한다는 점입니다. 이렇게 지정하면 빌드 결과가 /tmp/git-build-2.29.3 디렉터리에 저장됩니다.

$ make configure
$ ./configure --prefix=/tmp/git-build-2.29.3
$ make all
$ sudo make install

빌드를 성공적으로 마쳤으면 /tmp/git-build-2.29.3 디렉터리에서 빌드 결과를 확인할 수 있습니다.

2. Git을 빌드한 디렉터리에서 파일 목록 뽑고 경로 치환하는 방법

이번에는 find 명령어로 이 디렉터리에 설치한 파일 목록을 뽑아보겠습니다.

$ cd /tmp
$ find ./git-build-2.29.3 -type f -print > git-files.txt

head 명령어로 git-files.txt의 파일 내용을 확인해봅니다.

$ head git-files.txt
./git-build-2.29.3/share/git-core/templates/info/exclude
./git-build-2.29.3/share/git-core/templates/hooks/pre-commit.sample
./git-build-2.29.3/share/git-core/templates/hooks/pre-rebase.sample
...

여기서 ./git-build-2.29.3를 처음에 Git을 빌드해서 설치한 디렉터리 경로로 변경해주어야합니다. 예를 들어 /usr/local에 설치했다면 ./git-build-2.29.3/usr/local을 변경해주어야합니다. awk를 사용해 손쉽게텍스트 치환을 수행할 수 있습니다.

$ cat git-files.txt | awk '{ gsub("./git-build-2.29.3", "/usr/local"); print }' > git-remove.txt

headgit-remove.txt의 내용을 실행해봅니다.

/usr/local/share/git-core/templates/info/exclude
/usr/local/share/git-core/templates/hooks/pre-commit.sample
/usr/local/share/git-core/templates/hooks/pre-rebase.sample

파일 경로가 잘 치환된 것을 확인할 수 있습니다. 이제 이 목록의 파일을 삭제해주기만 하면 됩니다!

3. 직접 빌드한 Git을 삭제하기

/usr/local(기본값)에 설치한 경우 삭제하려면 관리자 권한이 필요하므로 xargs를 실행할 때 sudo를 붙여줍니다.

$ cat /tmp/git-remove.txt | sudo xargs rm -f

다시 git을 실행하면 git이 없다는 에러 메시지가 나타납니다.

$ git
Command 'git' not found.

이걸로 Git이 정상적으로 삭제된 것을 확인할 수 있습니다.

LainyZine은 쿠팡 파트너스 활동에 따른 수수료를 제공받습니다.