apt vs apt-get vs apt-cache차이, remove vs purge vs auto-remove 차이
apt란?
나는 VM 운영체제로 주로 우분투를 사용하는데, ubuntu에서는 패키지를 관리할 때 apt를 사용한다.
apt는 advanced package tool의 줄임말로, 데비안 계열의 운영체제들의 패키징 시스템 관리 도구다.
CICD파이프라인을 짜다보면 패키지 업데이트나 삭제를 해야할 일들이 많은데, 이 때 사용되는 명령어들의 차이가 궁금해져 한 번에 정리해보려고 한다.
1. apt vs apt-get vs apt-cache
apt-get
은 패키지를 설치, 업데이트, 제거하는데 사용하며, apt-cache
는 새 패키지를 검색하는데 사용한다.
이 외에도 dpkg
라고 시스템에 이미 설치되어있는 패키지를 조회하는 명령어가 있는데, 이 세 개에서 각각 자주 사용되는 명령어들을 합쳐서 최종 사용자들이 한 번에 편리하게 사용할 수 있도록 하는 것이 apt
명령어이다.
즉, APT 패키지 관리자가 있고, 모두 이 APT 패키지 관리자와 호환하는 명령어들인데 apt-get
, apt-cache
는 각각 사용 용도가 다르고, 이 둘을 일부씩 담고 있는 것이 apt
명령어라고 이해하면 된다.
따라서 apt
와 apt-get
, apt
와 apt-cache
의 내부 동작 차이는 거의 없다고 보면 되지만 (무엇을 쓰는 것이 더 낫냐는 질문이 무의미하다), apt
는 최종 사용자를 더 고려해 만들어졌기 때문에 설치 및 제거 진행 률, 설치 예정 패키지 목록 나열 등 사용자에게 필요한 정보들을 더 많이 보여주긴 한다. 또한 apt list
(특정 기준을 만족하는 패키지 리스트 출력 (--upgradable/--installed/--all-versions)), apt edit-sources
(source.list 편집 및 무결성 검사) 등 추가 기능을 제공한다.
2. remove vs purge vs auto-remove
위 명령어들은 삭제 명령어이므로 apt 또는 apt-get으로 사용할 수 있다.
remove
: 명시한 패키지만 삭제한다 (환경설정 그대로).purge
: 명시한 패키지와 관련 구성파일(환경설정)을 삭제한다.auto-remove
: 예전에 다른 패키지의 종속성 때문에 설치된 패키지를 삭제한다.
auto-remove
는 remove
나 purge
의 옵션으로 줄 수 있다. 즉, apt remove nginx
로 삭제하면 nginx만 삭제되지만, apt remove nginx --auto-remove
옵션을 주면 nginx와 종속된 패키지까지 모두 삭제된다. 따라서 종속된 패키지가 다른 곳에서도 사용되고 있는지 확인해야하며, 사용 될 경우 apt-mark 옵션을 통해 목록에서 제외할 수 있다.
apt |
apt-get/ apt-cache/ dkpg |
Description |
---|---|---|
apt update | apt-get update | 소스 리스트 업데이트 |
apt install [package] | apt-get install [package] | 패키지 설치 |
apt upgrade | apt-get upgrade | 시스템에 설치된 전체 패키지 업그레이드 (종속성이 있는 경우, 새 패키지가 설치 되지만 기존 패키지를 제거하지는 않음) |
apt full-upgrade | apt-get dist-upgrade | 시스템에 설치된 전체 패키지 업그레이드 (종속성이 있는 경우, 기존 패키지 제거하고 새 패키지 설치) |
apt remove [package] | apt-get remove[package] | 패키지 제거 (사용자 구성파일은 제거하지 않음) |
apt purge [package] | apt-get purge [package] | 패키지 제거 (사용자 구성파일 제거) |
apt autoremove | apt-get autoremove | 종속성 때문에 설치되었다가 사용되지 않는 패키지 제거 (사용자가 수동으로(명시적으로) 설치한 패키지는 제거되지 않음) |
apt search [package] | apt-cache search [package] | 정규식을 사용하여 패키지 검색 (이름 뿐 아니라 키워드로도 검색 가능 (e.g. 기능 등)) |
apt show [package] | apt-cache show [package] | 패키지 디테일 표시 (종속성, 크기, 저장소, 설명 등) |
apt list --installed | dpkg --list | 설치된 패키지 리스트 |