만약 “리포지토리를 복제하고 빌드하라”는 지시를 받았지만, 그 다음 단계를 어떻게 진행해야 할지 막막하신가요? Linux 환경에서 GitHub에 있는 프로그램을 다운로드하고 실행하는 방법을 초보자도 쉽게 이해할 수 있도록 설명해 드리겠습니다.
컴퓨터 프로그램은 텍스트 파일 형태의 명령어로 구성되며, 이러한 파일은 작성, 수정, 저장이 가능합니다. 이후, 컴파일러라는 프로그램을 통해 해당 파일들이 처리되고, 결과적으로 프로그램의 실행 가능한 버전이 생성됩니다. 이러한 명령어 텍스트 파일을 소스 코드라고 하며, 컴퓨터에서 직접 실행할 수 있는 프로그램 버전을 바이너리 또는 실행 파일이라고 부릅니다.
물론, 이는 단순화된 설명이지만, 일반적으로 소프트웨어 개발 과정을 잘 나타내고 있습니다. 실제로는 다양한 변형이 존재하며, 때로는 다른 프로그램이 소스 코드를 생성하기도 하고, 소스 코드가 컴파일 없이 인터프리터 내에서 실행되기도 합니다. 하지만 모든 소프트웨어 프로젝트에서 소스 코드는 매우 중요하며, 마치 왕관 보석처럼 소중하게 관리해야 한다는 것은 변함없는 사실입니다.
버전 관리 시스템의 중요성
프로젝트 내 모든 소스 코드 파일들을 코드베이스라고 부릅니다. 대규모 프로젝트의 경우, 여러 개발자들이 동시에 코드베이스에서 작업하는 경우가 많습니다. 따라서 모든 코드 변경 사항을 추적하고 식별할 수 있어야 하며, 필요에 따라 변경 사항을 되돌리거나, 다른 개발자가 수정한 코드를 통합하는 과정이 필요합니다. 이를 위해 버전 관리 시스템이라는 소프트웨어가 존재합니다.
버전 관리 시스템은 코드베이스 내 각 파일의 이전 버전들을 모두 저장하고, 모든 변경사항을 기록, 주석 처리, 추적함으로써 코드 관리를 훨씬 용이하게 만들어 줍니다.
Git: 혁신적인 버전 관리 도구
리눅스 커널의 창시자인 리누스 토발즈는 리눅스 커널 코드베이스 관리를 위해 Git이라는 버전 관리 프로그램을 개발했습니다. Git은 현재 전 세계적으로 가장 널리 사용되는 버전 관리 소프트웨어 중 하나이며, 수백만 명의 사용자를 보유하고 있습니다.
Git을 사용하면 프로젝트의 코드베이스가 리포지토리에 저장됩니다. 리포지토리는 개발자의 컴퓨터에 있는 로컬 리포지토리 외에도, 네트워크의 중앙 서버 또는 오프사이트 원격 리포지토리 형태로 존재할 수 있습니다.
그리고 바로 이 지점에서 GitHub가 중요한 역할을 하게 됩니다.
GitHub: Git 기반 협업 플랫폼
GitHub는 Git의 성공에 힘입어 탄생한 플랫폼입니다. 개발자들은 안전하게 호스팅되는 원격 Git 리포지토리에 대한 필요성을 인지했고, 클라우드 플랫폼을 통해 개발팀이 원격 리포지토리를 호스팅할 수 있는 서비스를 제공하기 시작했습니다. 2019년 4월 기준, GitHub는 1억 개 이상의 리포지토리를 호스팅하고 있습니다.
특히 오픈 소스 프로젝트의 경우, GitHub에서 호스팅될 가능성이 매우 높습니다. Bitbucket이나 GitLab과 같은 다른 저장소 플랫폼도 있지만, GitHub는 오픈 소스 리포지토리의 가장 큰 비중을 차지하고 있습니다.
리포지토리 구조 분석
GitHub 리포지토리는 가장 중요한 소스 코드 파일을 포함한 폴더들로 구성되어 있습니다. 일반적으로 리포지토리에는 문서 파일, 매뉴얼 페이지, 소프트웨어 라이선스 파일, 빌드 지침, 쉘 스크립트 파일 등 다양한 유형의 파일이 포함되어 있습니다. 리포지토리에 반드시 포함해야 하는 항목에 대한 규칙은 없지만, 개발자들에게는 공통적인 관례가 있습니다.
마치 주방 구조를 알면 어떤 주방이든 쉽게 탐색할 수 있는 것처럼, 리포지토리도 그 규칙을 이해하고 나면 필요한 파일을 찾는 것이 어렵지 않습니다.
그렇다면 컴퓨터에서 리포지토리 복사본을 가져오고 프로그램을 실행 파일로 빌드하는 방법은 무엇일까요?
추가 정보 파일: README
리포지토리에는 일반적으로 README 파일이 포함되어 있습니다. README, Readme, readme 등 다양한 이름으로 불리며, 확장자는 “.md”이거나 없을 수도 있습니다.
예를 들어, GitHub의 Atom 편집기 리포지토리를 살펴보면, 긴 폴더와 파일 목록 아래에 README.md 파일 내용이 표시되는 것을 확인할 수 있습니다. GitHub는 README 파일의 내용을 저장소 첫 페이지에 자동으로 보여줍니다.
README 파일에 “.md” 확장자가 있는 경우, 파일은 마크다운 마크업 언어로 작성되어 있으며, 이를 통해 개발자는 글꼴, 글머리 기호, 이미지 등 스타일 요소를 사용할 수 있습니다.
일반적으로 README 파일에는 프로젝트 설명, 라이선스 정보, 프로젝트 유지 관리 방법, 참여 방법, 애플리케이션 빌드 및 실행 방법 등이 포함되어 있습니다. 만약 빌드 지침이 직접적으로 나열되어 있지 않은 경우에는, 해당 정보를 찾을 수 있는 위치가 안내되어 있습니다. 필요한 빌드 도구와 기타 의존성 정보도 여기에 포함되어 있거나, 관련 링크를 통해 확인할 수 있습니다.
예시: boxes 리포지토리
이번에는 boxes 리포지토리를 복제하고, boxes 애플리케이션을 빌드하는 과정을 살펴보겠습니다.
이 리포지토리도 Atom과 동일한 레이아웃을 따르며, 폴더 및 파일 목록과 README 파일 내용으로 구성되어 있습니다. 비교적 작은 프로젝트이기 때문에 Atom보다는 폴더와 파일 수가 적습니다.
README 파일도 짧은 편입니다. “개발”이라는 섹션에는 “소스에서 빌드”라는 제목의 링크가 제공되어 있으며, 해당 링크를 따라가면 필요한 정보를 찾을 수 있습니다.
리포지토리 탐색은 간단한 과정을 거치지만, 필요한 정보를 찾는 데 어려움은 없습니다. 저장소 페이지의 내용을 주의 깊게 살펴보면, 때로는 눈에 잘 띄지 않는 곳에 중요한 정보가 숨어 있을 수도 있습니다.
의존성 확인
“소스에서 빌드” 페이지에는 “Linux에서 빌드”라는 섹션이 있으며, 여기서 필요한 정보를 얻을 수 있습니다. 해당 섹션에 따르면, C 컴파일러, Bison, 그리고 Flex가 설치되어 있어야 합니다.
또한, 빌드 지침에 make 명령을 실행하라고 되어 있으므로, make 유틸리티도 필요합니다.
결론적으로, 이 애플리케이션을 빌드하는 데 필요한 도구는 C 컴파일러, Bison, Flex, make, 그리고 리포지토리를 복제하기 위한 Git입니다.
이 문서는 Ubuntu, Fedora, Manjaro Linux 배포판을 사용하는 컴퓨터에서 테스트되었습니다. 각 배포판에서 필요한 도구들이 모두 설치되어 있지는 않았기 때문에, 각 도구를 설치해야 했습니다.
필요한 도구 설치
Ubuntu의 경우, Git, Flex, Bison, make를 설치해야 했습니다. 다음은 설치 명령어입니다.
sudo apt-get install git
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install make
Fedora의 경우, Flex, Bison, make를 설치해야 했습니다. 다음은 설치 명령어입니다.
sudo dnf install flex
sudo dnf install bison
sudo dnf install make
Manjaro의 경우, GCC 컴파일러, Flex, Bison을 설치해야 했습니다. 다음은 설치 명령어입니다.
sudo pacman -Syu gcc
sudo pacman -Syu flex
sudo pacman -Syu bison
리포지토리 복제하기
GitHub 리포지토리마다 고유한 웹 주소가 있으며, 이 주소를 사용하여 Git을 통해 리포지토리를 컴퓨터로 복제할 수 있습니다. boxes 리포지토리의 기본 페이지에는 “Clone or download”라는 녹색 버튼이 있습니다.
해당 버튼을 클릭하면 웹 주소를 확인할 수 있습니다. 이 주소는 git clone 명령어를 사용할 때 필요합니다.
리포지토리를 복제할 디렉토리로 이동한 다음, 다음 명령어를 실행하십시오. 터미널 창에서 지원하는 경우 웹 주소를 복사하여 명령어에 붙여넣을 수 있습니다. GNOME 터미널에서는 Ctrl+Shift+V 단축키를 사용하여 붙여넣을 수 있습니다.
Git은 원격 리포지토리를 복제하고, 로컬 리포지토리를 생성합니다. “boxes”라는 디렉토리에 복제가 진행 중이라는 메시지를 표시합니다.
<img loading=”lazy” decoding=”async” src=”https://koreantech.org/wp-content/uploads/2021/12/1639411357_482_Linux에서-Git을-사용하여-소프트웨어를-설치하는-방법.png” width=”6