Ubuntu에서 make install 사용 방법 완전 해설 | 소스 코드부터 설치 완벽 가이드

1. 소개

Ubuntu를 사용하고 있으면, 소프트웨어를 설치할 때 “make install”이라는 절차를 만나게 될 때가 있습니다. 일반적으로 애플리케이션 설치는 “apt” 명령을 사용한 패키지 설치로 완료되지만, 모든 소프트웨어가 공식 저장소에 등록되어 있는 것은 아닙니다. 최신 버전을 사용하고 싶거나, 직접 만든 프로그램을 실행하고 싶을 경우에는, 소스 코드를 다운로드하여 직접 빌드(컴파일)하고, 설치해야 할 필요가 생깁니다. 이때 활약하는 것이 “make install”입니다. “make install”는, 소스 코드에서 컴파일된 프로그램을 적절한 위치에 배치하기 위한 명령입니다. 단순히 프로그램을 빌드(make)하는 것뿐만 아니라, 실제로 시스템 디렉터리로 파일을 복사하는 작업까지 자동화해 줍니다. Linux 환경에서는 비교적 자주 사용되는 기본적인 작업 절차 중 하나입니다. 이 기사에서는 Ubuntu에서 소스 코드를 빌드하고, make install을 사용하여 소프트웨어를 설치하는 흐름을 초보자도 이해하기 쉽도록 자세히 설명합니다. 또한 작업 중에 발생하기 쉬운 오류와 그 대처 방법에 대해서도 언급하면서 진행합니다. 우선, 빌드 작업에 필요한 개발 도구 준비부터 시작해 봅시다.

2. 필요한 개발 도구 설치

소스 코드를 빌드하고 설치하려면 먼저 Ubuntu에 필요한 개발 도구들을 갖춰야 합니다. 이것이 갖춰지지 않으면 “make” 명령 자체를 사용할 수 없거나 빌드 오류가 자주 발생합니다. 작업을 원활히 진행하기 위해서도 처음에 개발 환경을 정비해 두세요.

필수 패키지 “build-essential” 설치

Ubuntu에서는 C 컴파일러(gcc)와 빌드 도구(make), 관련 라이브러리들을 모은 “build-essential”라는 패키지가 제공됩니다. 이 패키지를 설치하면 최소한 필요한 환경을 간단히 갖출 수 있습니다. 설치 절차는 다음과 같습니다.
sudo apt update
sudo apt install build-essential
먼저 시스템의 패키지 정보를 최신화하고, 그 다음에 build-essential을 도입합니다. 이것만으로 기본적인 빌드에 필요한 도구가 모두 갖춰집니다.

설치 후 동작 확인

올바르게 설치되었는지는 아래 명령으로 확인할 수 있습니다.
gcc --version
make --version
각각 gcc(C 컴파일러)와 make(빌드 도구)의 버전 정보가 표시되면 성공입니다. 오류가 발생한다면 설치 시 어떤 문제가 발생했을 가능성이 있으니, 오류 메시지를 잘 확인하고 재설치를 시도해 보세요. 이제 Ubuntu에서 소스 코드 빌드를 시작하기 위한 기본이 갖춰졌습니다. 다음은 실제로 소스 코드를 받아서 압축을 푸는 절차로 진행합니다.

3. 소스 코드 가져오기 및 전개

개발 도구 설치가 완료되면, 다음은 본격적으로 빌드 대상이 되는 소스 코드를 얻습니다. 소프트웨어 개발자가 배포하는 소스 코드를 다운로드하고 작업용 디렉터리에 전개하는 작업입니다. 여기서는 소스 코드 입수 방법과 그 전개 절차에 대해 설명합니다.

소스 코드 입수 방법

소스 코드는 아래 중 하나의 방법으로 입수하는 것이 일반적입니다.

공식 웹사이트에서 다운로드

많은 오픈소스 프로젝트에서는 공식 사이트에서 “tar.gz”, “tar.bz2” 등 압축 파일 형식으로 소스 코드를 배포합니다. 예시로, 아래와 같은 명령으로 다운로드할 수 있습니다.
wget https://example.com/software-1.2.3.tar.gz
여기의 URL은 각 소프트웨어의 다운로드 페이지에 안내된 링크로 교체하십시오.

GitHub 등에서 클론하기

GitHub를 비롯한 코드 공유 서비스를 이용하는 프로젝트도 늘어나고 있습니다. 이 경우, Git 명령으로 소스 코드를 클론(복제)할 수 있습니다. 먼저 Git이 설치되어 있지 않은 경우, 다음 명령으로 설치해 두세요.
sudo apt install git
그 후, 클론 명령을 실행합니다.
git clone https://github.com/username/repository.git
리포지토리 URL도 프로젝트마다 다르므로 반드시 공식 페이지에서 확인하십시오.

압축 파일 전개 절차

소스 코드가 압축 파일로 제공되는 경우, 적절한 명령으로 전개해야 합니다. 자주 사용되는 형식과 그에 대응하는 전개 명령은 다음과 같습니다.
  • .tar.gz 형식인 경우:
  tar -xvzf software-1.2.3.tar.gz
  • .tar.bz2 형식인 경우:
  tar -xvjf software-1.2.3.tar.bz2
  • .zip 형식인 경우:
  unzip software-1.2.3.zip
전개가 완료되면, 소프트웨어 이름과 버전을 포함한 디렉터리가 생성됩니다. 그 안으로 이동하여 작업을 진행하게 됩니다.
cd software-1.2.3
이제 소프트웨어 빌드를 시작할 준비가 완료되었습니다. 다음 단계에서는 실제 빌드와 설치를 수행하는 절차로 진행합니다.

4. 빌드 및 설치 절차

소스 코드를 준비하면 이제 본격적으로 빌드와 설치 작업에 들어갑니다. 이 장에서는 Ubuntu에서 일반적으로 수행되는 빌드·설치 흐름을 순서대로 자세히 설명합니다.

빌드 사전 준비: ./configure 실행

많은 소스 코드에는 빌드 작업에 들어가기 전에 환경을 정비하기 위한 “설정 스크립트”가 제공됩니다. 일반적으로 소스 코드 디렉터리 내에서 다음 명령을 실행합니다.
./configure
이 명령은 시스템 상태를 확인하면서 Makefile(빌드 절차를 정리한 파일)을 자동으로 생성합니다. 필요한 라이브러리나 도구가 부족한 경우 여기서 오류가 발생할 수 있습니다. 그때는 오류 메시지를 읽고 부족한 패키지를 추가 설치해야 합니다. 만약 configure 스크립트가 존재하지 않으면, READMEINSTALL 파일을 참고하여 빌드 절차를 확인합시다.

소프트웨어 빌드: make 명령

설정이 완료되면 다음은 실제로 빌드를 수행합니다. 빌드란 소스 코드를 컴파일하여 실행 가능한 프로그램으로 변환하는 과정입니다.
make
이 명령을 실행하면 Makefile의 지시에 따라 자동으로 컴파일 작업이 진행됩니다. 빌드에는 시간이 걸릴 수 있으므로 오류가 없는지 확인하면서 기다립시다. 빌드 중에 오류가 발생하면 오류 메시지를 기반으로 라이브러리 부족이나 의존 관계 문제를 해결합니다.

프로그램 설치: sudo make install

빌드가 무사히 완료되면 이제 시스템에 프로그램을 설치합니다. 설치 작업은 시스템 디렉터리(예: /usr/local/bin 등)에 쓰기를 수행하므로 관리자 권한이 필요합니다. 다음 명령을 실행합니다.
sudo make install
이 명령으로 빌드된 파일이 적절한 위치에 복사되어 Ubuntu 시스템 전체에서 사용할 수 있게 됩니다.

작업 중 자주 발생하는 오류와 대처법

빌드 및 설치 과정에서 다음과 같은 오류를 마주칠 수 있습니다.
  • Permission denied(권한 오류)make install때에 sudo를 빼먹지 않았는지 확인하십시오.
  • Missing dependencies(의존 관계 부족) → 오류 메시지를 잘 확인하고, 필요한 라이브러리와 패키지를 설치합시다.
  • configure: command not found → 소스 코드에 configure 스크립트가 포함되어 있지 않거나 실행 권한이 없는 경우가 있습니다. chmod +x configure로 권한을 부여하거나 빌드 절차를 다시 확인하십시오.
오류는 급하게 굴지 말고, 메시지를 하나씩 읽어가며 대처하는 것이 중요합니다.

5. 설치 후 확인

「sudo make install」로 소프트웨어를 설치한 후에는 반드시 올바르게 도입되었는지 확인하는 것이 중요합니다. 설치가 정상적으로 완료되지 않으면 명령을 찾지 못하거나 예상대로 동작하지 않을 수 있습니다. 이 장에서는 설치 직후에 수행해야 할 기본적인 확인 방법을 소개합니다.

설치된 프로그램의 위치 확인

먼저, 시스템 상에 프로그램이 어디에 배치되었는지 확인해 봅시다. which 명령을 사용하면 지정한 프로그램의 실행 파일 경로를 조사할 수 있습니다.
which 프로그램명
예를 들어, sample이라는 이름의 프로그램을 설치한 경우는 다음과 같이 입력합니다。
which sample
올바르게 설치되었다면 /usr/local/bin/sample이나 /usr/bin/sample와 같은 경로가 표시됩니다. 아무 것도 표시되지 않을 경우 설치가 실패했거나 경로가 설정되지 않았을 가능성이 있습니다.

버전 정보로 동작 확인

많은 프로그램에는 버전 정보를 표시하는 옵션(보통 --version 또는 -v)이 제공됩니다. 설치한 프로그램이 정상적으로 동작하는지 간단히 확인하기 위해 버전 정보 표시를 시도해 봅시다.
sample --version
올바른 버전 정보가 표시되면 설치가 성공한 것입니다. 만약 오류가 표시되거나 명령을 찾을 수 없는 경우에는 설치 절차를 다시 검토해야 합니다.

환경 변수 PATH 확인

make install로 설치된 프로그램은 대부분 /usr/local/bin 등에 배치됩니다. 이 디렉터리가 시스템 PATH에 포함되지 않으면 프로그램을 명령으로 인식할 수 없습니다. 현재 PATH 설정을 확인하려면 다음 명령을 사용합니다。
echo $PATH
출력된 경로 목록에 /usr/local/bin이 포함되어 있으면 문제없습니다. 포함되지 않은 경우 셸 설정 파일(~/.bashrc 또는 ~/.zshrc)에 다음과 같은 행을 추가하여 환경 변수를 설정합시다。
export PATH=/usr/local/bin:$PATH
설정을 반영하려면 터미널을 재시작하거나 다음 명령을 실행합니다。
source ~/.bashrc
이 설정을 하면 터미널에서 프로그램을 원활하게 실행할 수 있게 됩니다.

6. 제거 방법

소스 코드에서 설치한 프로그램은 일반적인 패키지 관리 도구(apt 등)로 관리되지 않습니다. 따라서 필요 없게 되었을 때는 수동으로 제거 작업을 수행해야 합니다. 이 장에서는 Ubuntu에서 make install한 소프트웨어를 적절히 제거하는 방법을 설명합니다.

make uninstall을 이용한 제거

빌드된 소프트웨어에 따라서는 Makefile에 “제거용 타깃”이 준비되어 있는 경우가 있습니다. 이 경우, 다음 명령으로 설치된 파일을 삭제할 수 있습니다.
sudo make uninstall
이 명령을 실행하면, 설치 시 복사된 파일이 자동으로 삭제됩니다. 다만, 모든 소프트웨어가 make uninstall을 지원하는 것은 아니므로, 실행 전에 README나 INSTALL 파일에 기재된 내용이 없는지 확인합시다. 주의점
  • 반드시 설치 시와 동일한 소스 코드 디렉터리에서 실행해야 합니다.
  • 소스 코드를 삭제한 경우, make uninstall을 사용할 수 없습니다.

수동 파일 삭제

만약 make uninstall을 지원하지 않는 경우에는, 설치된 파일을 수동으로 삭제해야 합니다. 일반적으로 /usr/local/bin이나 /usr/local/lib 등에 프로그램 관련 파일이 배치됩니다. 설치 시 생성된 파일이나 디렉터리를 파악하고, 신중히 삭제합시다. 예를 들어, 바이너리 파일이 /usr/local/bin에 있는 경우 다음과 같이 삭제할 수 있습니다.
sudo rm /usr/local/bin/프로그램명
수동으로 삭제하는 경우, 관련 파일을 빠짐없이 삭제하기가 어려우므로, 사전에 설치 위치의 구성을 파악해 두는 것이 중요합니다.

checkinstall를 이용한 관리 방법

향후 제거를 쉽게 하기 위한 방법으로, “checkinstall”이라는 도구의 사용을 권장합니다. 이는 make install 대신 사용함으로써, 설치 작업을 deb 패키지로 관리할 수 있는 메커니즘입니다. checkinstall를 설치하려면, 다음 명령을 사용합니다。
sudo apt install checkinstall
빌드 후 아래 명령을 사용하면, 설치와 동시에 패키지가 생성되어, 이후 apt나 dpkg 명령으로 제거할 수 있게 됩니다。
sudo checkinstall
checkinstall를 사용하면, 제거 작업이 크게 간단해지고 시스템 관리도 쉬워집니다. 소스에서 설치하는 경우가 빈번하다면, 적극적으로 활용을 검토합시다.

7. 오프라인 환경에서의 설치

Ubuntu를 사용하고 있다면, 인터넷에 연결할 수 없는 환경에서 소프트웨어를 설치해야 하는 경우도 발생합니다. 일반적으로 온라인에서 패키지와 의존성을 가져오는 것이 전제이지만, 오프라인 환경에서도 방법을 고민하면 「make install」을 이용한 빌드·설치를 구현할 수 있습니다. 이 장에서는 오프라인 환경에서의 설치 방법에 대해 자세히 설명합니다.

오프라인에서 build-essential를 준비하는 방법

먼저, 소스 코드를 빌드하기 위해 필수적인 개발 도구군(build-essential 패키지)이 오프라인 환경에도 필요합니다. 이를 준비하려면, 인터넷에 연결할 수 있는 다른 Ubuntu 머신을 이용해 미리 패키지를 다운로드해 둡니다.

apt-offline 활용하기

apt-offline이라는 도구를 사용하면, 필요한 패키지와 그 의존성을 한 번에 가져와 USB 메모리 등을 통해 오프라인 환경으로 옮길 수 있습니다. apt-offline를 설치하려면, 온라인 환경에서 다음 명령을 실행합니다。
sudo apt install apt-offline
그 후, 오프라인 쪽에서 요청 파일을 생성하고, 온라인 쪽에서 이를 기반으로 필요한 패키지를 다운로드한 뒤, 오프라인 환경에 적용하는 흐름이 됩니다。

Ubuntu 설치 미디어를 APT 소스로 사용하기

다른 방법으로는 Ubuntu 설치 미디어(DVD나 USB 메모리)를 APT 소스로 활용할 수 있습니다. 설치 미디어에는 기본적인 패키지들이 포함되어 있어, 거기서 build-essential 등을 도입할 수 있습니다。 먼저, 설치 미디어를 마운트하고, 다음과 같이 APT 소스 리스트를 설정합니다。
sudo mount /dev/sdb1 /mnt
sudo apt-cdrom -d=/mnt add
그 후, 일반적으로 아래 명령으로 패키지를 설치할 수 있습니다。
sudo apt update
sudo apt install build-essential
이 방법을 사용하면, 네트워크 연결 없이도 빌드 환경을 갖출 수 있습니다。

소스 코드 가져오기와 전개

빌드 도구가 준비되면, 필요한 소스 코드도 미리 다운로드하여 USB 메모리 등에 저장하고 오프라인 환경으로 가져옵니다. 파일을 복사한 후에는 온라인 환경과 동일하게 전개 작업을 수행합니다。
tar -xvzf software-1.2.3.tar.gz
cd software-1.2.3
그 후에는 일반적으로 ./configuremakesudo make install 순서대로 빌드와 설치를 진행하면 됩니다。

주의점

오프라인 환경에서 설치 작업을 할 경우, 의존성 부족으로 인한 빌드 실패가 발생하기 쉬우므로, 필요한 라이브러리와 헤더 파일이 모두 갖춰져 있는지 사전에 충분히 확인하는 것이 중요합니다. 가능하면 온라인 환경에서 한 번 빌드를 시도해 보고, 필요한 패키지 목록을 파악해 두면 안심할 수 있습니다.

8. 자주 묻는 질문(FAQ)

Ubuntu에서 “make install”을 사용하여 소프트웨어를 설치할 때는 초보자부터 중급자까지 다양한 의문과 문제에 직면할 수 있습니다. 이 장에서는 특히 자주 묻는 질문과 그 답변을 정리했습니다.

Q1. make install를 실행하면 “Permission denied”가 표시됩니다. 어떻게 해야 하나요?

A1. “make install”은 시스템 영역(예: /usr/local/bin 등)에 파일을 복사하기 위해 관리자 권한이 필요합니다. 단순히 make install을 입력하는 것이 아니라 반드시 sudo를 붙여 실행합시다. 올바른 명령 예:
sudo make install
이렇게 하면 적절한 권한으로 설치 작업이 수행됩니다.

Q2. ./configure를 실행하면 “No such file or directory”가 표시됩니다. 원인은 무엇인가요?

A2. 이 오류는 현재 디렉터리에 configure 스크립트가 존재하지 않을 때 발생합니다. 가능한 원인은 다음과 같습니다.
  • 소스 코드가 완전하지 않음(다운로드에 실패함)
  • 프로젝트가 autotools를 사용하고 있지 않음(대신 CMake 등을 사용하고 있을 가능성)
  • configure 스크립트에 실행 권한이 없음
먼저 디렉터리 안에 configure 파일이 있는지 확인하고, 없을 경우 동봉된 READMEINSTALL 파일을 읽어 올바른 빌드 절차를 확인합시다.

Q3. make 명령을 찾을 수 없다고 표시됩니다. 어떻게 해야 하나요?

A3. 이는 빌드 도구가 설치되지 않아서 발생합니다. 먼저 아래 명령으로 필요한 도구를 한 번에 설치합시다.
sudo apt update
sudo apt install build-essential
build-essential 패키지에는 make를 포함한 주요 빌드 도구들이 한 번에 들어 있습니다.

Q4. 오프라인 환경에서 build-essential을 설치하려면 어떻게 해야 하나요?

A4. 오프라인 환경에서 build-essential을 설치하려면 사전에 온라인 환경에서 패키지를 다운로드해 가져오는 방법이 있습니다. 대표적인 방법은 다음 두 가지입니다.
  • apt-offline 도구를 사용해 의존 패키지들을 모두 다운로드
  • Ubuntu 설치 미디어를 APT 소스로 설정하고, 거기서 설치
특히 Ubuntu 설치 미디어를 이용하는 방법은 간단하며, 네트워크 환경이 전혀 없을 경우에도 확실히 작업을 진행할 수 있습니다.

9. 요약

Ubuntu에서 소스 코드로 소프트웨어를 설치하는 방법으로서, “make install”은 매우 중요한 역할을 합니다. 패키지 관리 시스템에 의존하지 않고 최신 소프트웨어나 직접 커스터마이징한 버전을 도입할 수 있는 유연성은 Linux 환경만의 강점이라고 할 수 있습니다. 본 기사에서는 개발 도구 준비부터 소스 코드 입수, 빌드, 설치, 나아가 언인스톨 방법 및 오프라인 환경에서의 대처법까지 폭넓게 설명했습니다. 이러한 흐름을 한 번쯤 이해해 두면, 알지 못하는 소프트웨어를 만나도 주저하지 않고 대응할 수 있게 될 것입니다. 또한 작업 중에 발생하기 쉬운 오류와 트러블에도 당황하지 않고 대응할 수 있도록 FAQ 형식으로 대표적인 의문점과 해결책을 정리했습니다. Linux의 빌드 작업은 겉보기엔 어려워 보여도 기본만 잡으면 결코 두려운 것이 아닙니다. 앞으로 Ubuntu 환경에서 다양한 소프트웨어를 시도해 보고 싶은 분은, 이번에 소개한 “make install” 절차를 꼭 마스터하여 자유도가 높은 개발·운용 환경을 손에 넣으시기 바랍니다.