Computer >> 컴퓨터 >  >> 시스템 >> Linux

리눅스에서 소프트웨어 패키지 컴파일하는 방법: 단계별 완벽 가이드

윈도우에서 리눅스로 갈아탄 사용자가 가장 적응하기 어려워하는 점 중 하나는, 설치하고 싶은 모든 소프트웨어가 미리 만들어진 형태로 제공되지 않는다는 사실입니다. 윈도우 사용자는 대부분 EXE 설치 프로그램이나 ZIP 파일 형태로 패키징된 소프트웨어를 받지만, 리눅스 사용자는 직접 소프트웨어 패키지를 컴파일해야 하는 경우가 많습니다.

리눅스에서 소프트웨어 패키지를 컴파일하려면 몇 가지 단계를 거쳐야 합니다. 소스 코드를 다운로드하고, configure 명령을 실행한 뒤, 필요한 의존성 패키지를 설치하고, make 명령으로 컴파일을 시작해야 합니다. 아래에서 이 모든 과정을 리눅스 기반 운영체제에서 수행하는 방법을 살펴보겠습니다.

리눅스에서 소프트웨어 패키지 컴파일하는 방법: 단계별 완벽 가이드

1. 소스 파일 내려받기

새 소프트웨어 패키지를 빌드하기 전에 먼저 소스 코드가 필요합니다. 직접 개발한 패키지라면 이미 소스 코드에 접근할 수 있겠지만, 대부분의 경우 다른 개발자가 작성한 소프트웨어를 리눅스에서 컴파일하려는 상황일 것입니다.

GitHub 같은 인기 코드 공유 사이트에서는 패키지의 소스 코드를 열람하고 다운로드할 수 있습니다. 널리 쓰이는 버전 관리 시스템인 GIT을 활용하면 소스 파일을 PC로 손쉽게 내려받을 수 있습니다.

리눅스에서 소프트웨어 패키지 컴파일하는 방법: 단계별 완벽 가이드

VLC와 같은 오픈소스 프로젝트라면 공식 배포 페이지에서 소스 코드를 바로 내려받을 수도 있습니다. 보통 TAR.GZ처럼 압축된 파일 형식으로 제공되며, 터미널에서 tar 명령으로 압축을 해제할 수 있습니다. 예를 들어 tar -xzvf source.tar.gz 명령을 실행하면 source.tar.gz라는 이름의 타르볼 파일이 풀립니다.

소스 코드를 내려받고 리눅스 PC에서 압축까지 해제했다면, 본격적인 컴파일에 앞서 준비 단계로 넘어갈 차례입니다.

2. 리눅스에 build-essential 설치하기

build-essential 패키지에 포함된 도구와 소프트웨어는 소스 코드의 프로그래밍 언어와 무관하게, 리눅스에서 어떤 종류의 소프트웨어든 컴파일하려면 반드시 필요합니다.

build-essential(또는 비슷한 이름의 패키지)은 필수 패키지이기 때문에 대부분의 리눅스 배포판 저장소에서 찾을 수 있습니다. Arch Linux 계열 배포판에서는 base-devel이라는 이름으로 제공되며, 거의 동일한 도구들을 포함하고 있습니다.

설치 방법은 사용하는 배포판에 따라 조금씩 다릅니다. 예를 들어 Ubuntu나 Debian 계열 운영체제에서는 터미널을 열고 sudo apt install build-essential을 입력하면 됩니다.

리눅스에서 소프트웨어 패키지 컴파일하는 방법: 단계별 완벽 가이드

build-essential을 설치하면 g++ 같은 의존성 패키지도 함께 설치됩니다. 설치가 끝나면 컴파일 전에 소스 패키지 설정 단계로 넘어갈 수 있습니다.

3. configure 명령 실행하기

주요 패키지의 소스 코드에는 대개 configure 스크립트가 포함되어 있습니다. 이 스크립트를 실행하면 소스 코드가 올바르게 컴파일되기 위해 필요한 필수 패키지들이 시스템에 있는지 자동으로 검사합니다.

configure 스크립트를 실행하려면 cd 명령으로 압축 해제된 소스 코드 폴더로 이동한 뒤, 터미널에 ./configure를 입력하고 엔터 키를 누릅니다.

리눅스에서 소프트웨어 패키지 컴파일하는 방법: 단계별 완벽 가이드

configure 스크립트가 누락된 패키지를 발견하면, 스크립트 마지막 부분에 해당 내용과 해결 방법을 알려줍니다. 예를 들어 위에서 실행 중인 VLC 미디어 플레이어의 configure 스크립트는 Lua 프로그래밍 언어가 설치되어 있지 않음을 감지한 상황입니다.

경우에 따라서는 configure 스크립트가 누락된 패키지나 기능을 감지했더라도 여전히 소프트웨어를 컴파일하고 설정할 수 있습니다. 위의 VLC configure 스크립트는 --disable-lua 플래그를 붙여 다시 실행하면 Lua 패키지 없이 진행할 수 있다는 해결책을 제시합니다.

계속 진행하려면 configure 스크립트가 감지한 누락된 패키지를 모두 설치하거나, 제안된 비활성화 플래그를 사용해 오류를 우회해야 합니다.

configure 스크립트가 오류 없이(또는 사소한 오류만 남기고) 완료되면, 패키지용 makefile이 생성됩니다. 이 파일에는 패키지를 컴파일하는 구체적인 지침이 담겨 있으며, 이를 통해 최종 컴파일 단계로 넘어갈 수 있습니다.

4. 누락된 의존성 패키지 설치하기

configure 스크립트는 새 소프트웨어 패키지를 올바르게 컴파일하고 설치하기 위해 시스템에 필요한 패키지들을 친절하게 짚어줍니다.

누락된 패키지는 configure 스크립트의 오류 메시지에 명확히 표시되거나, 스크립트 실행 과정 더 앞부분에 언급되어 있을 수 있습니다. 오류 메시지가 불분명하다면 터미널 출력 기록을 위로 스크롤하며 누락된 패키지를 찾아보세요.

누락된 패키지를 확인했다면, 사용 중인 리눅스 배포판의 패키지 관리자로 설치하면 됩니다. 예를 들어 Ubuntu나 Debian 계열 운영체제에서는 sudo apt install package-name 명령으로 패키지를 설치할 수 있습니다.

리눅스에서 소프트웨어 패키지 컴파일하는 방법: 단계별 완벽 가이드

누락된 의존성 설치는 새 소프트웨어 패키지를 컴파일하고 설치하기 전에 마쳐야 할 마지막 준비 단계입니다. 이 과정을 끝내면 드디어 컴파일을 시작할 준비가 된 것입니다.

5. 리눅스에서 컴파일하는 방법

build-essential 패키지에는 make라는 자동화 도구가 포함되어 있습니다. make는 소스 코드를 PC에서 실행 가능한 소프트웨어로 변환하는 작업을 시작하는 도구로, 앞서 configure 명령이 생성한 makefile에 담긴 구체적인 컴파일 지침을 참조해 동작합니다.

리눅스에서 소프트웨어 패키지 컴파일하는 방법: 단계별 완벽 가이드

소스 코드 컴파일을 시작하려면 터미널을 열고 cd 명령으로 해당 폴더로 이동한 뒤, make를 입력하세요.

리눅스에서 소프트웨어 패키지 컴파일하는 방법: 단계별 완벽 가이드

컴파일에는 패키지 크기와 시스템 자원에 따라 어느 정도 시간이 걸립니다. 컴파일이 끝난 후 오류가 없다면 패키지를 설치할 수 있습니다.

설치하려면 터미널에 sudo make install을 입력하세요. 그러면 패키지가 리눅스 PC에 설치되어, 다른 일반 소프트웨어처럼 열어 사용할 수 있게 됩니다.

리눅스에서 소프트웨어 패키지 컴파일하는 방법: 단계별 완벽 가이드

6. 리눅스에 새 소프트웨어 설치하기

리눅스에서 소프트웨어 패키지를 컴파일하는 방법을 익혀두면 덜 알려진 소프트웨어도 문제없이 설치할 수 있습니다. Ubuntu 같은 주요 운영체제는 방대한 소프트웨어 저장소를 제공하므로, 굳이 직접 컴파일하고 싶지 않다면 패키지 관리자를 통해 새 소프트웨어를 찾아 설치하는 편이 더 간편합니다.

윈도우에서 넘어온 사용자라면 Wine 같은 호환성 도구를 활용해 리눅스에서 윈도우용 소프트웨어를 설치하는 방법도 고려해볼 수 있습니다. 이렇게 하면 윈도우 전용 앱도 계속 사용할 수 있습니다.