[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

  • ps 명령어(프로세스 명령어)

    ps 명령어는 현재 실행 중인 프로세스를 출력하는 명령어입니다. 목차✅ apt & apt-get 명령어 차이점✅ apt 명령어🔲 패키지 설치🔲 패키지 인덱스 업데이트🔲 패키지 업그레이드🔲 update 및 upgrade 비교🔲 패키지 삭제1. ps 명령어 옵션 ps에서 주로 사용되는 명령어입니다. 기본 사용 옵션은 아래와 같습니다. 2. ps -ef 명령어 ps -ef 명령어는 모든 프로세스를 포멧 리스트로 출력해…

  • [Linux] localectl 명령어

    CentOS 7 버전부터 많은 명령어들이 통합되어 제공됩니다. 로케일 및 키보드 관련 부문은 localectl 명령어에서 제공합니다. locale은 원래 지역이나 장소를 의미하지만, IT 환경에서는 언어 및 지역 설정을 지칭합니다. 리눅스에서는 문자 인코딩, 언어, 날짜/시간, 숫자 등의 지역화 설정을 locale 문자열로 정의합니다. 대부분의 유닉스 및 리눅스 배포판은 POSIX 기반이며, 이는 Red Hat 및 Debian 계열도 포함됩니다….

  • GeoIP 국가 코드표 정리 목록

    아파치 서버에서 사용할 수 있는 GeoIP 국가 코드표 정리 목록입니다. 목차✅ apt & apt-get 명령어 차이점✅ apt 명령어🔲 패키지 설치🔲 패키지 인덱스 업데이트🔲 패키지 업그레이드🔲 update 및 upgrade 비교🔲 패키지 삭제GeoIP란? GeoIP는 maxmind에서 제공하는 모듈과 IP 정보 DataBase를 이용해서 웹에 접근하는 IP를 국가 별로 확인할 수 있는 오픈소스솔루션입니다. 필요에 따라 특정 IP 및…

  • 리눅스 chage 명령어

    리눅스 chage 명령어는 change age의 줄임 말로 사용자 계정의 만료 및 비밀번호 만료 설정을 관리 할 때 사용합니다. 주요 기능과 목적은 비밀번호 만료일 설정, 비밀번호 최소 사용 기간 설정, 계정의 비활성화 날짜 설정 등이 있습니다. 목차✅ apt & apt-get 명령어 차이점✅ apt 명령어🔲 패키지 설치🔲 패키지 인덱스 업데이트🔲 패키지 업그레이드🔲 update 및 upgrade…

  • 리눅스 tmp 디렉토리: /tmp와 /var/tmp 차이

    리눅스 tmp 디렉토리는 임시 파일을 저장하기 위해 주로 /tmp와 /var/tmp 디렉토리를 사용합니다. /tmp는 일시적인 임시 파일을 저장하는 공간으로, 시스템이 재부팅 되면 대부분의 파일이 삭제됩니다. 따라서 빠른 입출력과 임시 작업에 적합하며, 주로 프로세스가 실행 중 생성하는 임시 데이터를 저장합니다. 반면에 /var/tmp는 재부팅 후에도 파일이 유지되는 임시 저장 공간입니다. 장기간 유지가 필요한 임시 파일이나 작업…

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

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

답글 남기기

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

Prove your humanity: 0   +   5   =