[Ubuntu] apt 명령어 | apt-get 명령어 사용법과 차이점
Red Hat 계열 리눅스에서는 패키지 관리를 위해 dnf 명령어를 사용하며, Debian 계열에서는 apt 명령어를 사용합니다.
Ubuntu와 같은 Debian 기반 배포판에서는 두 명령어가 모두 사용 가능하지만, 목적과 사용 방식에 따라 약간의 차이가 있습니다.
이 글에서는 apt와 apt-get의 차이를 간단히 비교하고, apt 명령어에서 자주 사용하는 명령어 예제를 함께 정리해보겠습니다.
✅ apt & apt-get 명령어 차이점
apt-get은 “Advanced Package Tool – get”의 줄임말입니다. Debian과 그 파생 배포판에서 패키지를 설치, 업데이트, 삭제하는 명령어로 1998년부터 사용되어 왔습니다.
apt와 apt-get는 사용하는 명령어 옵션도 동일하고 기존 사용하는 방식도 비슷하지만, apt가 좀 더 사용자 친화적으로 개선된 인터페이스를 제공합니다.
Ubuntu 14.04~16.04 시기, apt-get과 apt-cache 같은 명령어가 분리되어 있어 초보자에게 혼란이 있었습니다. 따라서, 개발자들은 사용자 편의성을 높이고, 자주 쓰이는 명령어들을 통합하여 더 간단하고 깔끔한 명령어 인터페이스를 만들고자 했습니다.
그래서 2014년 경부터 apt 명령어가 개발되어 Ubuntu 16.04부터 공식적으로 도입되었습니다.
|
항목 |
apt |
apt-get |
|---|---|---|
|
도입 시기 |
Ubuntu 16.04부터 도입(2016년 4월) |
1998년부터 사용 |
|
사용자 대상 |
일반 사용자 중심 |
고급 사용자 및 스크립트용 |
|
기능 |
apt-get과 apt-cache 기능 통합 |
명령어별 분리 (apt-get, apt-cache) |
|
출력 형식 |
깔끔하고 직관적 |
단순하고 상세 |
일반 사용자용으로 apt 명령어만으로 충분하지만 apt-get을 사용하는 이유는 고급 사용자가 최소 패키지를 설치해야 한다거나 더 많은 디버깅 정보가 필요할 경우와 셸 스크립트를 써야 하는 등의 이유가 있습니다.
✅ apt 명령어
🔲 패키지 설치
apt install <패키지명>
🔲 패키지 인덱스 업데이트
apt update
APT는 패키지를 설치하거나 업그레이드할 때, 리포지토리(저장소)에 있는 최신 패키지 정보를 참고합니다. 이 정보를 담고 있는 것이 패키지 인덱스입니다. apt update 명령은 이 패키지 인덱스를 갱신합니다.
실제 패키지의 설치 및 업그레이드는 이루어지지 않습니다.
🔲 패키지 업그레이드
apt upgrade미 설치된 패키지를 최신 상태로 업데이트하지만, 새로운 패키지 설치나 제거는 진행되지 않습니다. 운영 중인 서버에서 실행 시 의존 패키지가 자동으로 실행되어 기존 설치된 패키지의 호환성 문제로 충돌이 발생할 수 있습니다.
apache, nginx, php, mysql 등의 기존 운영 중인 패키지가 재시작 되면서 예상치 못한 문제가 발생할 수 있습니다. 예를 들어 apache의 .conf 파일(apache2.conf, 000-default.conf)이 강제로 덮어쓰기가 되어 apache 실행 오류가 발생할 수 있습니다.
upgrade 명령은 특정 패키지의 업그레이드가 꼭 필요할 때 신중하게 실행해야 합니다.
🔲 update 및 upgrade 비교
|
구분 |
apt update |
apt upgrade |
|---|---|---|
|
목적 |
패키지 인덱스(저장소의 최신 패키지 정보) 갱신 |
이미 설치된 패키지 최신 버전으로 업그레이드 |
|
실제 패키지 변경 |
없음 (목록만 갱신) |
있음 (설치된 패키지 버전 업그레이드) |
|
새로운 패키지 설치 |
없음 |
없음 (새 패키지 설치 및 제거는 하지 않음) |
|
의존성 처리 |
없음 |
의존성 패키지도 함께 업그레이드되며, 충돌 가능성 있음 |
|
운영 중 서버 영향 |
없음 (안전하게 실행 가능) |
서비스(예: apache, nginx, php, mysql) 재시작 가능 |
|
위험 요소 |
없음 |
설정 파일 덮어쓰기, 호환성 문제, 서비스 오류 가능 |
|
설정 파일 영향 |
없음 |
패키지 업데이트 시 apache 설정 파일 등이 덮어써질 수 있음 |
|
권장 실행 시점 |
수시, 운영 중에도 안전 |
유지보수 시간 또는 백업 후 실행 권장 |
🔲 패키지 삭제
apt remove <패키지명>레드헷 계열에서 dnf remove를 사용하면 의존성 패키지가 함께 삭제됩니다. apt remove 명령어는 기본적으로 지정한 패키지만 삭제하고, 그 패키지에 의존하는 다른 패키지는 삭제하지 않습니다.
예를 들어 apache2를 의존성 패키지를 함께 삭제할 경우
apt remove apache2
apt autoremoveapt autoremove 명령어를 함께 사용함으로써 남아 있는 폴더 및 .conf 파일 등의 설정과 사용하지 않는 고아 패키지를 삭제 해 줍니다.
서버 환경을 고려 해 어떠 패키지를 삭제할 지 미리 테스트를 해 볼 수 있습니다.
Ubuntu ~]# apt autoremove --dry-run
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Ubuntu ~]#to remove 항목에서 미리 확인 후 작업을 진행할 수 있습니다.(테스트 서버에서 apache2 삭제 후 apt autoremove –dry-run 진행하였으나 제거해야 할 대상은 0으로 나와 실제 작업 시 apt autoremove로 완전 삭제를 진행함)