CS/Linux

APT 설명

dragonhyeon 2024. 9. 9. 18:34
728x90
반응형

apt update

/etc/apt/sources.list 파일과 /etc/apt/sources.list.d/ 디렉터리 안에 있는 파일들에는 저장소 URL 이 적혀 있습니다. 각 저장소에서 제공하는 패키지 목록 파일들을 다운로드하여 /var/lib/apt/lists/ 디렉터리에 저장합니다.

  • /var/lib/apt/lists/: 패키지 목록 캐시 파일들이 위치하는 디렉터리입니다. 이 디렉터리에는 각 저장소의 패키지 목록 정보가 담긴 파일들이 저장되어 있습니다.
  • /var/lib/apt/lists/partial/: apt update 명령이 실행되는 동안 임시로 패키지 목록을 다운로드하는 데 사용되는 디렉터리입니다. 업데이트가 완료되면, 이 디렉터리의 내용은 /var/lib/apt/lists/ 로 이동합니다.

 

캐시를 삭제하거나 재설정하려면 다음과 같은 명령을 사용할 수 있습니다.

  • 캐시 삭제:
sudo rm -rf /var/lib/apt/lists/*
  • 캐시 생성:
sudo apt update
이렇게 하면 패키지 목록이 다시 다운로드되어 최신 상태로 유지됩니다. apt update 를 실행하는 시기에 따라 패키지의 최신 업데이트 정보가 갱신되어 있을 수 있습니다.

 

저장소에서 제공하는 패키지 목록 정보에는 저장소의 패키지 목록, 패키지 버전, 의존성, 패키지 크기 등의 정보가 포함됩니다. 추후 apt install 을 이용하여 패키지 설치 시 의존성 정보를 해당 패키지 목록 정보에서 확인합니다.

 

apt update 로 패키지 목록 파일의 최신 정보를 한 번에 받아오므로 패키지 설치 시마다 저장소에 직접 접근하지 않아도 되어 네트워크 사용을 최소화할 수 있습니다. 또한 로컬에 저장된 캐시를 사용하므로 패키지 설치 시 명령 실행 속도가 빨라집니다.

apt install

/var/lib/apt/lists/ 디렉터리에서 패키지 목록 파일을 참조하여 필요한 패키지와 그 의존성 패키지들을 다운로드합니다. 다운로드된 파일들은 .deb 형식입니다. 다운로드된 .deb 파일은 dpkg 도구를 통해 시스템에 설치됩니다. 이 과정에서 .deb 파일에 포함된 소프트웨어와 설정 파일이 적절한 위치에 배치됩니다.

dpkg

dpkg 는 Ubuntu 를 포함한 Debian 기반 시스템에서 기본으로 제공되는 명령어입니다. dpkg 는 Debian 패키지 파일 (.deb) 을 설치, 제거, 관리하는 데 사용됩니다.

dpkg 는 APT 보다 더 낮은 수준의 패키지 관리 도구이며, APT 는 dpkg 를 기반으로 패키지 의존성 해결, 자동 업데이트 등 더 많은 기능을 제공합니다.

.deb 파일

.deb 파일은 압축 파일 형식으로 되어 있으며, 내부에 다음과 같은 파일들을 포함하고 있습니다.

  • 소프트웨어 바이너리: 프로그램 실행 파일 및 라이브러리.
  • 설정 파일: 프로그램의 설정을 저장하는 파일.
  • 메타데이터: 패키지의 정보와 의존성, 설치 스크립트 등이 포함된 파일.
    • APT 사용 시에는 의존성 패키지를 설치할 때 .deb 파일의 메타데이터를 참조하는 것은 아닙니다. 다만 APT 를 사용할 수 없는 환경에서 dpkg 명령어를 단독으로 활용해 패키지를 설치해야 하는 경우 .deb 파일의 메타데이터를 참조할 수 있습니다.
  • 스크립트: 설치 및 설정을 자동화하는 스크립트.
다운로드한 .deb 파일들은 /var/cache/apt/archives/ 디렉터리에 저장됩니다. apt clean 명령을 사용하면 이 디렉터리의 모든 캐시 파일이 삭제되어 디스크 공간을 확보할 수 있습니다.

 

의존성 패키지 설치 시 APT 는 내부적으로 apt install 을 재귀적으로 실행하여 의존성 패키지의 의존성까지도 자동으로 설치하여 필요한 모든 패키지가 올바르게 설치되도록 관리합니다.

728x90
반응형

'CS > Linux' 카테고리의 다른 글

권한 시스템과 chmod  (4) 2024.09.27
source ~/.bashrc 설명  (3) 2024.09.26
#!/bin/bash vs #!/usr/bin/env bash  (5) 2024.09.22
useradd, userdel, usermod 등 명령어 설명  (4) 2024.09.21
Linux 사용자 계정, sudo, su, su - 설명  (5) 2024.09.21