[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

  • 리눅스와 유닉스 차이점 9가지

    리눅스를 사용하는 사람이라면 리눅스와 유닉스 차이는 무엇인지 궁금점이 한번 씩 생기게 됩니다. 간단하게 차이점을 요약하자면, 리눅스는 유닉스의 오픈 소스 구현체로, 유닉스와 유사한 운영 체제를 제공하면서도 커뮤니티 기반의 개방적인 환경을 가지고 있습니다. 둘 다 안정적이고 다목적으로 사용되는 운영 체제이지만, 유닉스는 상용 운영 체제의 역사적인 뿌리를 가지고 있고, 리눅스는 개방성과 다양성 측면에서 강점을 가지고 있습니다….

  • 리눅스 FirewallD 설치 및 데몬 설정

    리눅스 FirewallD는 iptables의 체인과 정책이라는 규칙 대신 Zone과 Service를 대신 사용합니다. Firewalld를 사용하는 이유는 iptables의 규칙이 복잡하기 때문에 iptables 대신 사용할 수 있도록 하기 위함입니다. 목차✅ apt & apt-get 명령어 차이점✅ apt 명령어🔲 패키지 설치🔲 패키지 인덱스 업데이트🔲 패키지 업그레이드🔲 update 및 upgrade 비교🔲 패키지 삭제✅ 리눅스 FirewallD 설치하기 리눅스 서버에 설치 여부를…

  • 리눅스 디렉토리 구조 및 파일 종류🔝

    리눅스 운영체제는 계층적 파일 시스템을 사용합니다. 위에서 아래 또는 위와 아래로 구성되어 있습니다. 리눅스 디렉토리 구조는 파일 시스템의 시작 지점인 루트 디렉토리(/)부터 시작됩니다. Linux 파일 시스템 계층 구조는 리눅스를 포함한 유닉스 유형 운영 체제의 디렉토리 구조와 내용을 결정하는 일련의 지침인 파일 시스템 계층 구조 표준의 적용을 받습니다. 계층 구조 표준은 리눅스 재단(영어: Linux Foundation)에서…

  • 리눅스 퍼미션(4,2,1)과 소유권 | chmod, chown, umask 명령어 | 스티키 비트

    리눅스 퍼미션(Permission)은 권한(&허가)을 의미합니다. 유닉스 계열 운영 체제들은 MS-DOS 계열의 운영 체제들은 멀티 테스킹 시스템이 아니며 멀티 유저 시스템 역시 아닙니다. 보통 컴퓨터는 하나의 키보드와 모니터를 가지고 한 명이 사용하지만 멀티 유저 시스템인 리눅스는 한 명 이상이 사용할 수 있다는 것을 의미합니다. 유닉스 계열의 멀티 유저 시스템은 운영 체제 설계 초기부터 깊게 내장된…

  • echo 명령어: From 확장과 인용

    echo 명령어는 문자열을 그대로 출력해 주는 명령어이다. echo 명령어는 프롬프트에서 사용하는 일은 거의 없으며, 쉘 스크립트 작성 시에 자주 사용하는 명령어이다. 표준 출력 상에 해당 텍스트 인자를 표시한다. 목차✅ apt & apt-get 명령어 차이점✅ apt 명령어🔲 패키지 설치🔲 패키지 인덱스 업데이트🔲 패키지 업그레이드🔲 update 및 upgrade 비교🔲 패키지 삭제1. echo 명령어 옵션 2….

  • 리눅스: useradd 명령어 & passwd 명령어

    useradd 명령어는 리눅스에서 사용자의 ID(계정)를 생성하는 명령어입니다. root 권한으로 생성이 가능하며 기본적인 명령은 아래와 같습니다. 목차✅ apt & apt-get 명령어 차이점✅ apt 명령어🔲 패키지 설치🔲 패키지 인덱스 업데이트🔲 패키지 업그레이드🔲 update 및 upgrade 비교🔲 패키지 삭제리눅스 useradd 명령어 옵션 리눅스 useradd 사용 예 기본으로 사용할 수 있는 예입니다. 리눅스 /etc/skel 디렉토리 계정 생성…

답글 남기기

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

Prove your humanity: 9   +   6   =