LainyZine: 프로그래머 가이드 🐣

리눅스 Ubuntu에서 Git 특정 버전 직접 빌드하는 방법

Git은 오픈소스로 개발되고 있는 분산 소스 코드 관리 도구로 윈도우, 리눅스, 맥 등 메이저 OS들을 지원하고 있습니다.

리눅스 배포판 Ubuntu의 공식 패키지 저장소에서는 Git 최신 릴리스를 설치할 수 있습니다. 대신 git-core/candidate PPA를 사용하면 최신 버전을 사용할 수 있습니다.

그런데 최신 버전이 아니라, 개발 버전이나 과거의 특정 버전을 사용하고 싶다면 어떻게 해야할까요? 이럴 때는 Git 특정 버전의 소스 코드를 다운로드 받아 직접 빌드해야합니다. Git은 C 프로그램으로 Ubuntu에서 몇 가지 빌드 관련 패키지를 설치하고, 직접 빌드해볼 수 있습니다. 이 글에서는 Git 소스 코드를 직접 빌드해서 특정 버전을 설치하는 방법을 소개합니다.

(단, 패키지 설치와 달리 코드 빌드의 경우 소스 코드나 시스템 환경의 영향을 많이 받기 때문에 반드시 성공한다고 보장하기가 어렵습니다. 빌드 과정에서 문제가 발생할 경우 어느 정도는 직접 트러블 슈팅을 할 수 있어야합니다.)

Git 특정 버전을 직접 빌드하는 방법

먼저 기존에 apt로 설치한 Git을 삭제하고 진행하겠습니다.

$ sudo apt-get remove git
$ git 
Command 'git' not found

git이 실행되지 않는 것을 확인했습니다. 다음으로 빌드에 필요한 패키지들을 설치해주세요.

$ sudo apt-get install build-essential autoconf libcurl4-gnutls-dev gettext

다음으로 Git 공식 저장소에서 설치하고 싶은 버전을 찾습니다. 현재 공식 최신 버전은 6월 릴리스된 2.32.0입니다만, 8월에 릴리스된 v2.33.0-rc1도 확인할 수 있습니다. 최신 버전은 설치하는 시점에 따라 다를 수 있으니 참고해주세요.

여기서는 과거 버전 중 하나인 2.29.3을 선택해서 설치해보도록 하겠습니다. 릴리스 상세 페이지에서 tar.gz 파일의 링크 주소를 복사해주세요.

2.29.3 소스 코드를 다운로드 받고 압축을 풀어주겠습니다. 작업 디렉터리는 /tmp에서 진행하겠습니다.

$ cd /tmp
$ wget https://github.com/git/git/archive/refs/tags/v2.29.3.tar.gz
$ tar xvf v2.29.3.tar.gz
$ cd git-2.29.3/

다음으로 코드 빌드를 진행합니다. 소스 코드 빌드를 직접 해본 분들은 알겠지만, 명령어가 대동소이합니다. 특이한 점이 있다면 configure 파일을 make configure로 먼저 만들어야합니다. 그리고 make install을 할 때, 기본 패스로 /usr/local를 사용하기 때문에 빌드 명령어는 관리자 권한으로 실행해야합니다(앞에 sudo를 붙여주어야합니다).

$ make configure
$ ./configure
$ make all
$ sudo make install

모든 명령어가 에러 없이 완료 되었다면 설치가 끝난 것입니다! 이제 git 명령어로 시스템에 설치된 버전을 확인해봅니다.

$ git --version
git version 2.29.3

앞서 다운로드 받은 2.29.3 버전이 설치된 것을 확인할 수 있습니다.🥳

이제 원하는 Git 버전을 사용하면 됩니다.

팁: 빌드 디렉터리를 바꾸고 싶다면 어떻게 해야하나요?

Git을 빌드할 때 기본 빌드 디렉터리는 /usr/local이 됩니다. 이 디렉터리를 바꾸고 싶은 경우 .configure를 실행하는 단계에서 --prefix= 옵션을 지정합니다. 예를 들어 /tmp/git-build-2.29.3 디렉터리에 빌드하고 싶다면 다음과 같이 빌드합니다.

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

Git 바이너리는 설치 디렉터리 아래의 bin 디렉터리에 있습니다. 이를 활용해서 여러 버전들을 설치해놓고, 바이너리를 바꿔가며 사용해볼 수 있습니다.

팁: 직접 빌드한 Git을 삭제하고 싶다면 어떻게 해야하나요?

직접 소스 코드를 빌드한 경우 make uninstall를 지원하는 경우가 있습니다만, Git에서는 사용할 수 없습니다. 직접 빌드한 Git을 삭제하는 방법은 다음 글에서 소개합니다.

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