리눅스에서 프로그램을 설치하는 방법 총 3가지가 있습니다
1. 패키지로 설치
이미 누군가가 빌드해둔 것을 가져와서 설치하는 방식입니다.
예를 들면
Rocky / RHEL 계열: dnf, yum
Ubuntu / Debian 계열: deb, apt
그럼여기서 패키지란 무엇이냐.
이 프로그램을 설치하려면 필요한 부가적인 파일들을 전부 묶어놓은 것입니다.
패키지 안에는 보통 실행 파일(binary), 설정 파일(config), 라이브러리,
의존성(dependency) 정보 등이 있습니다.
그러면 이제 의존성(dependency)이 무엇이냐.
의미 그대로 의존을 한다는 것입니다.
A라는 프로그램이 동작하기 위해서는 다른 프로그램이나, 모듈이 필요하다. 이런뜻입니다.
예를 들어 python이 동작하기 위해서는 requests, flask가 필요합니다.
즉 혼자서는 동작 할 수 없고 동작하기 위해서는 다른 친구들이 함께 필요합니다.
- 장점: 가장 편하다. 파일을 어디에 배치할지,
라이브러리는 무엇인지 패키지가 어느정도 관리를 해주기 때문입니다
2. 소스코드로 설치.
개발자가 공개한 소스코드를 직접 컴파일해서 설치하는 방식입니다.
예를 들면 configure, make, make install
- 단점은 컴파일 도구가 필요하며, 라이브러리가 필요합니다.
여기서 컴파일이 무엇이냐.
소스코드는 사람이 작성한 코드입니다. 사람이 작성했으니 사람이 읽을 수 있는 코드입니다.
사람이 작성한 이 코드를 컴퓨터가 실행 할 수 있는 형태로 바꾸는 과정이 컴파일입니다.
사람이 작성한 코드(소스코드) →변환(컴파일) → 컴퓨터가 실행하는 파일(바이너리)
예를 들어

위의 코드는 사람이 짠 코드이죠? 이게 소스코드입니다.
이 소스코드를 컴파일하면 a.out같은 바이너리(실행 파일)이 만들어집니다.
당연히 사람이 읽기 어렵고 컴퓨터가 읽고 바로 실행 할 수 있습니다
그럼 이제 직접 컴파일해서 설치한다는 것은 소스코드를 받아서
내 서버에서 직접 실행파일로 만든다음에 이제 실행파일로 설치한다는 의미입니다.
3.바이너리(binary)로 설치.
바이너리 즉 실행 파일만 받아서 제가 원하는 경로에 복사하는 방식입니다.
즉 위에서 컴파일에 대해서 설명을 했듯이 이미 컴파일된 실행 파일을
그대로 가져와서 경로에 복사해두고 실행하는 방식입니다.
- 바이너리를 어디로 옮겨라: 실행 파일을 원하는 경로에 복사하고,
그 경로의 파일에게 실행 권한을줍니다.권한 주는것 잊으면 안됩니다. - 명령어로 잡아서 사용을 할 것이라면
PATH에 해당 파일의 경로가 등록되어 있어야합니다.
sudo cp taewoo /usr/local/bin/
sudo chmod +x /usr/local/bin/taewoo
리눅스에서 보통 PATH에 잡혀 있는 대표 경로는
/usr.bin(사용자 명령어), /bin(기본적인 필수 명령어), /sbin (시스템 관리용 명령어)
/usr/sbin(더 많은 시스템 관리 명령어), /usr/local/bin(직접 설치,수동으로 넣은 파일들)
4. Makefile.
프로그램을 어떻게 빌드 할 것인지 적어둔 것입니다.
어떤 소스파일을 컴파일 할 것인지, 어떤 옵션으로 컴파일 할 것인지 등
빌드를 여기에 적힌 방식대로 해라. 이런식의 지시문이라고 생각하면됩니다.
5. Make.
Make는 Makefile을 읽고 실제로 빌드를 실행하는 도구(?)입니다.
쉽게 비유를 하자면 Makefile은 설계도이고, Make는 실행자입니다.
6. Configure.
보통 소스코드 프로젝트에서 현재 서버 환경을 검사하고,
그 환경에 맞는 Makefile을 만들어주는 준비 단계입니다.
즉 위의 내용과 연관지어 정리하자면, 이 서버에서 이 프로그램을 빌드할 수 있는지
검사하고, 빌드 지침서를 생성하는 단계입니다.
파일 위치 경로
1. 실행파일(binary)
- /usr/bin
- /usr/sbin
- /usr/local/bin
- /usr/local/sbin
- 일반적으로 수동 설치한 건 /usr/local/bin에
2.라이브러리
- /usr/lib
- /usr/lib64
- /usr/local/lib
3. 설정파일
- /etc/프로그램명/
- /etc/프로그램명.conf
4.서비스 파일(systemd)
- /etc/systemd/system/프로그램명.service
5. 로그
- /var/log/프로그램명/
- /var/log/messages
요약
- package: 설치하기 쉽게 묶어놓은 배포 단위
- dependency: 프로그램이 동작하려고 필요한 다른 것들
- binary: 컴퓨터가 바로 실행할 수 있는 파일
- Makefile: 어떻게 빌드할지 적어둔 규칙 파일
- make: Makefile을 읽고 실제 빌드하는 도구
- configure: 현재 서버 환경을 검사하고 Makefile을 만드는 준비 단계
'리눅스 공부' 카테고리의 다른 글
| Rocky Linux 기반 KVM/libvirt 가상화 환경 구축 (2) | 2026.04.15 |
|---|---|
| KVM과 QEMU (1) | 2026.04.11 |
| systemctl과 service의 차이, 그리고 systemd까지 한 번에 이해하기 (0) | 2026.04.02 |
| Vi 편집기 주요 명령어 정리 (0) | 2026.04.01 |
| Rocky Linux의 Mirror Server에 대하여 (0) | 2026.03.31 |