apt (Adavanced Packaing Tool) 란?

Seong Woong Kim·2023년 1월 10일
0

Linux / Ubuntu

목록 보기
6/14

💡 이 문서는 한빛미디어 - 이것이 우분투/리눅스다를 기반으로 공부하면서 체화를 위해 정리하는 글입니다. 💡



패키지를 편리하게 설치하는 apt (Advanced Packaging Tool)


  • Debian의 Packaging Systeminteract 하기 위한 command line tool

    • dpkg와 별도라기보다 *.deb 패키지를 설치하는 편리한 도구

✨ Packaging System이란? ✨

  • 시스템에 소프트웨어를 설치하고 유지/관리하는 방법 중 하나

  • Packaging System을 사용하면 Source Code를 받아 프로그램을 빌드하지 않아도 됨

  • Linux에는 deb package를 사용하는 Debian 계열rpm package를 사용하는 Redhat 계열이 있음.

  • libapt-pkglibapt-inst와 같은 핵심 라이브러리와 함께 작동하여 Debian, Ubuntu 패키지 관리 프로세스를 단순화
  • dpkg의 의존성 문제를 해결한 명령어

    • 특정 패키지를 설치하려고 할 때, 의존성이 있는 다른 패키지를 자동으로 먼저 설치해주는 명령어

    • dpkg 명령어는 설치하려는 *.deb 파일이 DVD에 있거나 인터넷에서 미리 다운로드한 상태에서 설치

    • apt는 우분투가 제공하는 deb 파일 저장소에서 설치할 deb 파일과 해당 파일과 의존성이 있는 다른 deb 파일까지 인터넷을 통해 모두 알아서 다운로드 후 자동으로 설치

  • apt, apt-get, apt-cache, apt-configaptitude(GUI)와 같은 명령줄 도구는 APT와 상호 작용하여 설치, 업데이트 및 삭제와 같은 다양한 패키지 기능을 수행



apt

  • 최종 사용자에게 적합하며 apt-get 명령의 일부 기능을 포함하지 않음

    • apt와 apt-get의 차이

      • apt는 보기 좋은 진행률 표시

      • 업그레이드해야 하는 패키지 목록 나열

      • apt-get, apt-cache, dpkg -l의 기능 결합

  • apt-get의 결함 중 일부를 수정하여 설계됨

  • High level package tool

    • Metadata 검색 & dependency 문제 해결 작업 관리

apt-get

  • Debian 기반 시스템에서 널리 사용되는 CLI 패키지 관리 도구

  • 패키지 설치, 업데이트, 제거 수행

  • 하위 호환성이 있는 APT 패키지 시스템을 위한 저수준 프론트 엔드 도구


dpkg

  • 시스템에 설치된 패키지 조회

  • Low level package tool

    • Package file을 설치하고 삭제하는 작업 관리 (ex : Debian 계열의 dpkg, Redhat 계열의 rpm)


apt-cache

  • 새 패키지 검색 , 패키지 조회 (의존성 패키지 등)

  • apt-cache 패키지를 설치하기 전에 패키지에 대한 정보나 의존성 문제를 미리 확인해볼 수 있음

  • apt-cache는 APT’s package cache에서 다양한 명령을 수행



- 패키지 정보 보기

apt-cache show {패키지 이름}             # 패키지의 정보를 화면에 출력한다


- 패키지 의존성 확인

apt-cache depends {패키지 이름}            # 패키지에 대한 의존성 정보를 출력


- 패키지 역의존성 확인

apt-cache rdepends {패키지 이름}            # 이 패키지에 의존하는 다른 패키지의 목록을 보여줌




apt의 기본 사용법


기본 설치 방법

apt install {패키지 이름}              # 사용자에게 설치 여부를 묻는 부분이 나옴
apt -y install {패키지 이름}           # 사용자가 무조건 yes라고 한 것으로 간주하고 자동으로 넘어감

패키지 목록 업데이트

/etc/apt/sources.list 파일의 내용이 수정되면 이 명령으로 다운로드 받을 패키지 목록을 업데이트해야 한다.

apt update

패키지 삭제

apt remove {패키지 이름}                # 기존 설치된 패키지를 제거
apt purge {패키지 이름}                 # 기존 설치된 패키지를 설정 파일을 포함해 완전히 제거
apt autoremove                         # 사용하지 않는 패키지를 모두 제거한다.

내려받은 파일 제거

  • 설치할 때 내려받기한 파일 및 과거의 파일을 제거한다.
apt clean or apt autoclean




apt의 설정 파일


  • apt 명령어와 관련된 설정 파일은 /etc/apt/ 디렉터리에 들어 있다.

  • 다른 파일들은 특별히 신경 쓸 필요 없고, sources.list 파일이 중요하다.

    • 이 파일에는 apt 명령을 실행했을 때 인터넷에서 해당 패키지 파일을 검색하는 네트워크 주소가 들어 있다.

Source.list파일

  • deb 우분투_저장소_URL 버전_코드명 저장소_종류

  • 버전 코드명-updates을 하게 되면 그 이후에 업그레이드된 패키지 설치

  • 사용하지 않는 부분은 주석 처리

  • apt update 명령으로 수정한 sources.list 파일의 내용을 적용




apt의 작동 원리

  1. apt install {package name} 패키지 설치 명령 입력

  2. 자동으로 /etc/apt/ 디렉터리 중 핵심 파일인 sources.list 파일을 확인
    ( 이 파일에는 ‘Ubuntu 22.04 LTS 패키지’ 저장소의 인터넷 주소가 적혀 있음 )

  3. 설치와 관련된 패키지 관련 목록 요청

  4. 설치할 패키지 관련 목록 다운로드
    ( 실제 패키지 파일을 다운로드하는 것이 아니며, 패키지의 이름만 가져오는 것 )

  5. 다운로드한 패키지 목록 파일을 근거로 사용자가 요청한 패키지와 의존성이 있는 패키지 목록을 화면에 출력

  6. y 입력해 실제 패키지 다운로드 요청

  7. 해당 패키지 파일 (deb 파일)을 다운로드하여 자동으로 설치

apt -y install {패키지명}의 의미는 2 ~ 7번을 모두 한 번에 처리



✨ 우분투 패키지 저장소 ✨

  • 완전한 무료 소프트웨어를 사용하려면 main 저장소와 universe 저장소의 제품만 사용해야 함
  • 우분투에서 지원하는 소프트웨어를 사용하려면 main 저장소와 restricted 저장소의 제품을 사용함




📚 REFRENCE 📚

  1. 이것이 우분투/리눅스다 - 한빛미디어
  2. https://medium.com/@juhyun.kim/ubuntu%EC%97%90%EC%84%9C-apt-get-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-4021cca7a255
  3. https://yooloo.tistory.com/50
profile
성장과 연구하는 자세를 추구하는 AI 연구개발자

0개의 댓글