[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 <패키지>
  • apache 설치
apt 명령어_apache2 설치

🔲 패키지 인덱스 업데이트

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 autoremove

apt 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로 완전 삭제를 진행함)

Similar Posts

  • 리눅스 host 명령어 | DNS 조회 명령어

    host 명령어는 DNS(Domain Name System) 조회를 할 때 사용하는 명령어입니다. 호스트 이름에 해당하는 IP 주소를 찾거나, 반대로 IP 주소를 호스트 이름으로 변환하는 데 사용됩니다. 네트워크 연결 문제를 해결하거나 호스트 이름과 IP 주소 간의 매핑을 확인하는 데 유용합니다. 목차✅ apt & apt-get 명령어 차이점✅ apt 명령어🔲 패키지 설치🔲 패키지 인덱스 업데이트🔲 패키지 업그레이드🔲 update…

  • |

    컴파일 뜻 : 컴파일링이란?

    목차✅ apt & apt-get 명령어 차이점✅ apt 명령어🔲 패키지 설치🔲 패키지 인덱스 업데이트🔲 패키지 업그레이드🔲 update 및 upgrade 비교🔲 패키지 삭제 ■ 컴파일이란? 컴파일(compile)이란 프로그래머가 작성한 소스코드를 바이너리 파일로 변환하는 과정이다. 소스코드를 Compiler 하여 프로그램을 만들 수 있다. 요즘은 배포판 공급업체에서 이미 compile 된 바이너리 파일들을 저장소에 관리하는 것이 일반적인 사항이 되었으며, 서버로…

  • 셸 스크립트란? 셸과 셸 프롬프트&bash shell

    목차✅ apt & apt-get 명령어 차이점✅ apt 명령어🔲 패키지 설치🔲 패키지 인덱스 업데이트🔲 패키지 업그레이드🔲 update 및 upgrade 비교🔲 패키지 삭제 ▥ 셸 스크립트란(shell script)? 1. 셸이란? 키보드에 입력한 명령어를 운영체제에 전달해서 전달한 명령어를 실행하게 하는 프로그램이다. 2. 셸 프롬프트 셸 프롬프트는 셸이 입력 가능한 상태일 때에만 나타난다. 달러 ($)는 일반 유저일 때,…

  • Linux: 프로그램과 프로세스 및 스레드(3가지 용어 차이)

    리눅스 시스템에서 프로그램과 프로세스 스레드의 차이는 운영체제를 이해하는데 필요한 요소입니다. 목차✅ apt & apt-get 명령어 차이점✅ apt 명령어🔲 패키지 설치🔲 패키지 인덱스 업데이트🔲 패키지 업그레이드🔲 update 및 upgrade 비교🔲 패키지 삭제✅ 프로그램(Program)이란? 사전적 의미의 프로그램은 컴퓨터에서 실행 가능한 명령어들의 모음을 의미하며, 특정 작업을 수행하기 위해 개발된 소프트웨어(및 소프트웨어의 형태)입니다. ◼ 종류 ✅ 프로세스(Process)란?…

  • Linux: crontab 설정

    윈도우 스케줄러와 비슷한 개념의 리눅스 crontab은 주기적으로 홈페이지 및 DB 데이터를 백업해야 하거나 특정 시간에 로그 파일 등을 삭제해서 서버 유지 관리가 필요한 경우에 사용되는 스케줄러입니다. 크론탭은 특정 시간에 주기적으로 작업이 자동으로 이루어지도록 설정하는 것을 의미합니다. 목차✅ apt & apt-get 명령어 차이점✅ apt 명령어🔲 패키지 설치🔲 패키지 인덱스 업데이트🔲 패키지 업그레이드🔲 update 및…

  • 리눅스 sort 명령어: 파일 정렬

    종류 및 분류의 사전적 의미를 가진 리눅스 sort 명령어는 아스키 파일 내용(레코드)을 정렬할 때 사용하는 명령어입니다. 알파벳순이나 오름차순 또는 내림차순으로 정렬해야 하는 경우에 사용하는 명령어입니다. 목차✅ apt & apt-get 명령어 차이점✅ apt 명령어🔲 패키지 설치🔲 패키지 인덱스 업데이트🔲 패키지 업그레이드🔲 update 및 upgrade 비교🔲 패키지 삭제✅ 리눅스 sort 명령어 기본 사용 방법 ✅…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 1   +   8   =