시스템 프로그래밍

왜 자꾸 sudo apt update 를 쳐줘야 할까?

_어니언_ 2024. 11. 16. 01:48

Ubuntu와 같은 Debian 계열의 Linux를 사용하다 보면 "sudo apt install", "sudo apt update" 같은 명령어를 자주 보게 된다. 특히 "sudo apt update"는 굉장히 자주 등장하는데, 이 명령어가 정확히 무슨 일을 하는지, 왜 이렇게 자주 쳐야 하는지 궁금해하는 사람들이 많다. 이 글에서는 apt 라는 도구의 역할과 그 속에서 "sudo apt update"와 "sudo apt upgrade"가 어떤 역할을 하는지 알아본다.

 


apt install 이 하는 일

 

예를 들어 vim이라는 소프트웨어를 설치하고 싶으면 다음 명령어를 쳐주면 된다.

 

sudo apt install vim

 

 

이 명령어를 실행하면 APT는 저장소(repository) 라고 불리는 패키지 서버에서 vim의 설치 파일을 다운로드하여 설치한다. 여기서 중요한 점은 APT가 설치 파일을 어디에서 찾는지 어떻게 알고 있는가 하는 것이다.

 

Apt 로 설치한 vim 로그

 

패키지 저장소

APT는 설치 파일을 저장소(repository)에서 가져온다. 이 저장소의 주소는 /etc/apt/sources.list 파일에 저장되어 있다. 이 파일에는 기본적으로 Ubuntu에서 제공하는 공식 저장소 주소들이 적혀 있다. 예를 들어, vim을 설치하면 APT는 이 파일에 기록된 저장소 중 하나를 참조해 설치 파일을 가져온다.

 

/etc/apt/source.list


 

sudo apt update 는 무슨 역할을 할까?

저장소에는 항상 새로운 패키지가 추가되거나 기존 패키지들이 업데이트된다. 그렇다면 APT는 어떻게 이 변화를 감지할까?
여기서 필요한 것이 바로 "sudo apt update"다.

sudo apt update 명령어는 저장소에 접근해, 저장소가 제공하는 패키지 목록과 각 패키지의 최신 버전 정보를 가져온다. 이 정보를 APT는 /var/lib/apt/lists 디렉토리에 저장해 두고, 이후 사용자가 소프트웨어를 설치하거나 업데이트하려 할 때 활용한다.

만약 "sudo apt update"를 실행하지 않는다면, APT는 저장소의 최신 상태를 모른 채 이전에 저장된 오래된 정보를 사용하게 된다. 결과적으로 다음과 같은 문제가 발생할 수 있다:

  • 새로 추가된 패키지를 설치할 수 없다.
  • 최신 버전이 출시되었더라도, 구버전 패키지가 설치될 수 있다.

 

sudo apt update 에서 받아온 패키지 정보


sudo apt upgrade 는 또 뭘까?

"sudo apt update"가 패키지 목록만 업데이트하는 작업이라면, "sudo apt upgrade"는 이미 설치된 패키지를 최신 버전으로 업그레이드하는 작업이다.
예를 들어, 시스템에 vim 1.2 버전이 설치되어 있는 상태에서, 저장소에 vim 1.3 버전이 출시되었다고 하자. 이때:

  1. sudo apt update를 실행하면 APT는 vim 1.3 버전이 존재한다는 정보를 저장한다.
  2. sudo apt upgrade를 실행하면 APT는 기존의 vim 1.2 버전을 1.3 버전으로 업그레이드한다.

업그레이드 가능한 패키지 목록은 다음 명령어로 확인할 수 있다:

sudo apt list --upgradable

 

 

update 이후 진행한 sudo apt upgrade

 

 


 

aptapt-get 의 차이

가장 헷갈리는 것 중 하나는 apt와 apt-get의 차이다. 결론부터 말하자면, 기능적으로는 거의 동일하다.

apt-get은 원래 APT의 주요 명령어였다. 하지만 명령어가 너무 길고 직관적이지 않다는 단점이 있었다. 이를 개선하기 위해 Ubuntu 16.04 이후부터 apt라는 새로운 명령어가 도입되었다. apt는 기존의 apt-get과 apt-cache 등의 기능을 통합하면서도 더 간단하고 읽기 쉬운 인터페이스를 제공한다.

 

apt-get update 저장소 정보를 업데이트
apt-get upgrade 설치된 패키지를 업그레이드
apt update 저장소 정보를 업데이트 (apt-get update와 동일)
apt upgrade 설치된 패키지를 업그레이드 (apt-get upgrade와 동일)

 

 

요약하자면, apt는 apt-get보다 간단하고 직관적인 명령어 세트라고 보면 된다.

 


사용자 정의 저장소 추가하기

기본적으로 APT는 /etc/apt/sources.list에 기록된 저장소만 참조한다. 그럼 여기 저장소에 없는 패키지는 어떻게 설치하는가? 이런 경우 커스텀으로 저장소를 만들어 추가할 수도 있다.

예를 들어 Docker를 설치하려고 할 때, 기본 저장소에는 docker 패키지가 없기 때문에 설치가 실패한다. 이때는 Docker의 공식 문서에서 제공하는 명령어로 Docker 저장소를 추가한 뒤 설치해야 한다.

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
sudo apt install docker-ce

 

 


결론: sudo apt update는 왜 자주 해야 할까?

APT는 저장소에서 최신 패키지 정보를 받아와야 정상적으로 동작한다. 최신 정보를 얻지 못하면 새로운 소프트웨어를 설치하거나 최신 버전으로 업데이트하는 데 문제가 생길 수 있다. 따라서 sudo apt update는 일종의 "패키지 관리 시스템의 새로고침"이라고 볼 수 있다. 최신 유행을 놓치지 않으려는 얼리 어답터라면, 그리고 시스템의 안정성을 유지하고 싶은 리눅스 사용자라면, 자주 실행해주는 것이 좋다.

 

'시스템 프로그래밍' 카테고리의 다른 글

커널 모듈(Kernel Module)  (1) 2024.11.27
dmesg vs journalctl  (0) 2024.11.23
SELinux: 리눅스 보안 툴 2  (0) 2024.11.22
AppArmor, 리눅스 보안 툴  (0) 2024.11.20
GStreamer 란?  (1) 2024.11.19