리눅스 서버에서 설치 문서를 따라 했는데 apt: command not found, yum: command not found, Unable to locate package 같은 오류가 나면 명령어 자체보다 먼저 배포판 계열과 저장소 상태를 확인해야 합니다. 이 글은 apt와 yum 차이를 단순히 비교하는 데서 끝내지 않고, 실제 서버에서 어떤 순서로 확인하고 어떤 명령어를 써야 하는지 정리한 문제 해결형 가이드입니다.
이 글에서 해결할 문제
초보 서버 운영자가 apt와 yum 때문에 자주 막히는 상황은 대체로 비슷합니다. Ubuntu 문서를 보며 CentOS 서버에 명령어를 입력하거나, 반대로 Red Hat 계열 문서를 Debian 서버에 적용하면서 오류가 발생합니다. 처음에는 패키지 이름이 틀렸다고 생각하기 쉽지만 실제 원인은 운영체제 계열, 패키지 저장소, 패키지 목록 갱신 여부인 경우가 많습니다.
- 내 서버에서
apt를 써야 하는지yum을 써야 하는지 판단하기 apt: command not found,yum: command not found원인 구분하기- 패키지 설치 전 먼저 확인해야 할 운영체제 정보와 저장소 상태 확인하기
- 잘못된 명령어를 올바른 배포판용 명령어로 바꾸기
먼저 확인할 핵심 요약
| 확인 항목 | Debian / Ubuntu 계열 | RHEL / CentOS 계열 |
|---|---|---|
| 주요 패키지 도구 | apt |
yum 또는 dnf |
| 패키지 형식 | .deb |
.rpm |
| 저장소 목록 갱신 | sudo apt update |
sudo yum makecache 또는 sudo dnf makecache |
| 패키지 설치 | sudo apt install 패키지명 |
sudo yum install 패키지명 또는 sudo dnf install 패키지명 |
실무에서는 명령어를 외우기보다 내 서버가 어느 계열인지 먼저 확인한 뒤 해당 계열의 패키지 도구를 선택하는 것이 중요합니다. 특히 최근 RHEL 계열 배포판은 yum 대신 dnf를 기본으로 쓰는 경우가 많습니다. 다만 일부 환경에서는 yum 명령이 dnf로 연결되어 동작할 수 있으므로 서버별 확인이 필요합니다.
apt와 yum은 무엇이 다른가
apt와 yum은 모두 리눅스에서 프로그램을 설치, 삭제, 업데이트하는 패키지 관리 도구입니다. 역할만 보면 비슷하지만 사용하는 배포판 계열과 패키지 형식이 다릅니다.
- apt: Debian, Ubuntu, Linux Mint 등 Debian 계열에서 주로 사용합니다.
- yum: CentOS 7, 오래된 RHEL 계열 문서에서 자주 보입니다.
- dnf: Fedora, RHEL 8 이상, Rocky Linux, AlmaLinux 등에서 많이 사용됩니다.
따라서 nginx, git, curl 같은 같은 프로그램을 설치하더라도 서버 계열에 따라 명령어가 달라집니다. 이 차이를 모르고 문서를 그대로 복사하면 패키지 문제가 아닌데도 설치가 실패한 것처럼 보일 수 있습니다.
실제 서버 운영 중 헷갈리기 쉬운 지점
서버를 운영하다 보면 패키지 설치 실패가 항상 패키지 자체 문제는 아닙니다. 리눅스를 오래 다루다 보면 처음에는 명령어 문제처럼 보였지만 실제로는 배포판 계열을 잘못 보고 있었거나, 현재 사용자 권한이 부족하거나, 패키지 목록이 오래된 경우가 많습니다.
특히 VPS를 새로 만들고 바로 프로그램을 설치할 때는 다음 세 가지를 놓치기 쉽습니다.
- 현재 서버가 Ubuntu인지 CentOS인지 확인하지 않고 문서의 명령어를 그대로 실행합니다.
apt update를 하지 않은 상태에서 패키지를 설치해Unable to locate package오류를 만납니다.- 일반 사용자로 접속한 뒤
sudo없이 설치 명령을 실행해 권한 오류가 발생합니다.
이 오류를 몇 번 겪은 뒤에는 패키지 설치 전에 운영체제 정보, 명령어 존재 여부, 사용자 권한을 먼저 확인하는 편이 문제를 빠르게 줄이는 데 도움이 됩니다.
처음 의심하기 쉬운 원인과 실제 원인의 차이
| 화면에 보이는 증상 | 처음 의심하기 쉬운 원인 | 실제로 자주 확인해야 할 원인 |
|---|---|---|
apt: command not found |
apt가 고장난 것 같다 | 서버가 Debian/Ubuntu 계열이 아닐 수 있다 |
yum: command not found |
yum을 설치해야 할 것 같다 | Ubuntu 서버이거나 RHEL 계열에서 dnf를 쓰는 환경일 수 있다 |
Unable to locate package |
패키지 이름이 무조건 틀렸다 | 패키지 목록이 오래되었거나 저장소가 비활성화되었을 수 있다 |
Permission denied |
명령어 문법이 틀렸다 | 현재 사용자 권한이나 sudo 사용 여부를 확인해야 한다 |
원인 분리: 패키지 설치 전 확인 순서
아래 순서는 Debian/Ubuntu 계열을 우선 기준으로 설명합니다. 다만 중간에 RHEL/CentOS 계열일 가능성이 보이면 yum 또는 dnf 명령으로 바꿔 확인해야 합니다.
1. 운영체제 계열 확인
먼저 현재 서버가 어떤 배포판인지 확인합니다. 이 명령은 상태 확인용이므로 서버 설정을 변경하지 않습니다.
cat /etc/os-release
예를 들어 Ubuntu 서버라면 ID=ubuntu, ID_LIKE=debian 같은 값이 보일 수 있습니다. Rocky Linux나 AlmaLinux 같은 서버라면 ID_LIKE=rhel처럼 Red Hat 계열임을 알 수 있는 값이 나올 수 있습니다.
2. 사용 가능한 패키지 도구 확인
배포판 정보를 봐도 헷갈린다면 실제로 어떤 명령어가 있는지 확인합니다.
command -v apt
command -v yum
command -v dnf
출력 결과가 있으면 해당 명령어가 설치되어 있다는 뜻입니다. 출력이 없다고 해서 바로 패키지 도구를 설치하려고 하기보다, 먼저 배포판 계열과 문서가 맞는지 확인하는 것이 안전합니다.
3. 현재 사용자 권한 확인
패키지 설치는 시스템에 영향을 주는 작업입니다. 일반 사용자로 접속한 경우 보통 sudo 권한이 필요합니다. 무리하게 root 계정으로 직접 작업하기보다 현재 사용자를 먼저 확인합니다.
whoami
id
sudo 권한이 없는 계정이라면 패키지 설치가 실패할 수 있습니다. 이 경우 서버 관리자 계정으로 접속하거나, 권한을 가진 사용자에게 작업을 요청해야 합니다.
4. 패키지 목록 갱신 여부 확인
Debian/Ubuntu 계열에서 새 서버를 만들고 바로 패키지를 설치하면 저장소 목록이 오래되어 패키지를 찾지 못하는 경우가 있습니다. 이때는 설치 전에 패키지 목록을 갱신합니다.
sudo apt update
apt update는 설치 가능한 패키지 목록을 최신 상태로 가져오는 명령입니다. 이미 설치된 패키지를 실제로 업그레이드하는 apt upgrade와는 다릅니다. 운영 서버에서 sudo apt upgrade를 실행하면 여러 패키지가 변경될 수 있으므로, 변경 범위와 서비스 영향 가능성을 확인한 뒤 진행하는 것이 좋습니다.
실제로 자주 막히는 상황
상황 1. Ubuntu 서버에서 yum 명령을 입력한 경우
검색한 문서가 CentOS 기준인데 서버는 Ubuntu인 경우입니다. 이때 yum 명령이 없다는 오류가 날 수 있습니다.
잘못된 예시
sudo yum install nginx
수정 예시
cat /etc/os-release
command -v apt
sudo apt update
sudo apt install nginx
sudo apt install nginx는 실제로 패키지를 설치하는 명령입니다. 운영 중인 서버라면 설치 후 서비스가 자동으로 시작될 수 있으므로, 필요한 포트나 기존 웹서버와 충돌하지 않는지 확인하는 것이 좋습니다.
상황 2. CentOS 계열 서버에서 apt 명령을 입력한 경우
반대로 Ubuntu 문서를 보고 CentOS 7 또는 RHEL 계열 서버에서 apt 명령을 실행하면 동작하지 않을 수 있습니다.
잘못된 예시
sudo apt update
sudo apt install nginx
수정 예시
cat /etc/os-release
command -v yum
command -v dnf
sudo yum install nginx
환경에 따라 yum 대신 dnf를 써야 할 수 있습니다. 예를 들어 RHEL 8 이상이나 Rocky Linux, AlmaLinux에서는 다음처럼 확인 후 사용할 수 있습니다.
sudo dnf install nginx
이 명령도 패키지를 설치하는 작업이므로, 운영 서버에서는 설치 대상과 의존성 변경 내용을 확인하고 진행해야 합니다.
상황 3. apt는 맞는데 패키지를 찾지 못하는 경우
Ubuntu 서버에서 apt를 쓰는 것은 맞는데도 Unable to locate package가 나올 수 있습니다. 이 경우 패키지 이름 문제일 수도 있지만, 먼저 저장소 목록이 최신인지 확인합니다.
확인 및 수정 예시
cat /etc/os-release
sudo apt update
apt-cache policy nginx
sudo apt install nginx
apt-cache policy nginx는 해당 패키지를 어떤 저장소에서 가져올 수 있는지 확인하는 데 도움이 됩니다. 패키지가 아예 보이지 않는다면 저장소 설정이나 배포판 버전 지원 여부를 추가로 확인해야 합니다.
수정 후 확인 방법
패키지를 설치한 뒤에는 설치 명령이 성공했다는 메시지만 보고 끝내지 말고 실제로 패키지가 설치되었는지 확인합니다. Debian/Ubuntu 계열에서는 다음 명령을 사용할 수 있습니다.
dpkg -l | grep nginx
apt-cache policy nginx
systemctl status nginx
systemctl status nginx는 서비스 상태를 확인하는 명령입니다. 일부 최소 설치 환경이나 컨테이너 환경에서는 systemd가 없을 수 있으므로 결과가 다르게 나올 수 있습니다. 서비스가 실패했다면 재시작을 반복하기보다 상태 메시지와 로그를 먼저 확인하는 편이 원인 분리에 좋습니다.
journalctl -u nginx --no-pager -n 50
패키지 설치 과정 자체가 실패했다면 apt 로그를 확인할 수도 있습니다.
tail -n 50 /var/log/apt/term.log
브라우저 화면이나 터미널 마지막 줄만 보면 원인을 놓치기 쉽습니다. 서버 운영에서는 화면에 보이는 오류보다 먼저 서비스 상태와 로그를 확인해야 같은 문제를 반복하지 않습니다.
apt와 yum 명령어 대응표
| 작업 | Debian / Ubuntu | RHEL / CentOS 계열 |
|---|---|---|
| 패키지 목록 갱신 | sudo apt update |
sudo yum makecache 또는 sudo dnf makecache |
| 패키지 설치 | sudo apt install 패키지명 |
sudo yum install 패키지명 또는 sudo dnf install 패키지명 |
| 패키지 삭제 | sudo apt remove 패키지명 |
sudo yum remove 패키지명 또는 sudo dnf remove 패키지명 |
| 설치된 패키지 확인 | dpkg -l | grep 패키지명 |
rpm -qa | grep 패키지명 |
| 패키지 정보 확인 | apt-cache policy 패키지명 |
yum info 패키지명 또는 dnf info 패키지명 |
재발 방지 체크리스트
- 설치 문서를 따라 하기 전에
cat /etc/os-release로 배포판 계열을 먼저 확인합니다. - Ubuntu/Debian이면
apt, CentOS/RHEL 계열이면yum또는dnf기준으로 문서를 봅니다. - Debian/Ubuntu 새 서버에서는 설치 전
sudo apt update로 패키지 목록을 갱신합니다. apt upgrade는 운영 서버의 패키지를 변경할 수 있으므로 적용 범위를 확인한 뒤 실행합니다.- 권한 오류가 나면 명령어를 반복 실행하기 전에
whoami,id,sudo필요 여부를 확인합니다. - 설치 후에는
dpkg -l,apt-cache policy,systemctl status로 결과를 확인합니다. - 서비스가 정상 동작하지 않으면 재설치보다 로그 확인을 먼저 합니다.
핵심 정리
apt와 yum 차이는 단순한 명령어 이름 차이가 아니라 리눅스 배포판 계열과 패키지 형식, 저장소 구조의 차이입니다. Debian/Ubuntu 계열은 주로 apt를 사용하고, CentOS/RHEL 계열은 yum 또는 dnf를 사용합니다. 패키지 설치 오류가 발생하면 먼저 운영체제 계열, 사용 가능한 패키지 도구, 사용자 권한, 저장소 목록 상태를 순서대로 확인하는 것이 좋습니다.
FAQ
Q. apt와 yum 중 어느 것이 더 좋은가요?
둘 중 하나가 절대적으로 더 좋다고 보기보다 서버 배포판에 따라 사용하는 도구가 정해집니다. Ubuntu나 Debian 서버라면 apt를 쓰고, CentOS나 RHEL 계열 서버라면 yum 또는 dnf를 확인해야 합니다.
Q. yum이 안 되면 무조건 dnf를 쓰면 되나요?
환경에 따라 다릅니다. RHEL 8 이상, Fedora, Rocky Linux, AlmaLinux 등에서는 dnf가 기본인 경우가 많지만, 오래된 CentOS 7 환경에서는 yum을 사용하는 경우가 흔합니다. 먼저 cat /etc/os-release와 command -v yum, command -v dnf로 확인하는 것이 안전합니다.
Q. apt update와 apt upgrade는 같은 명령인가요?
다릅니다. sudo apt update는 설치 가능한 패키지 목록을 갱신하는 명령이고, sudo apt upgrade는 설치된 패키지를 실제로 업그레이드하는 명령입니다. 운영 서버에서는 apt upgrade가 서비스에 영향을 줄 수 있으므로 변경 내용을 확인한 뒤 실행하는 것이 좋습니다.