웹사이트 검색

패키지 관리 필수 요소: apt, yum, dnf, pkg


소개

대부분의 최신 유닉스 계열 운영 체제는 소프트웨어를 찾고 설치하기 위한 중앙 집중식 메커니즘을 제공합니다. 소프트웨어는 일반적으로 저장소에 보관된 패키지 형태로 배포됩니다. 패키지 작업을 패키지 관리라고 합니다. 패키지는 공유 라이브러리, 응용 프로그램, 서비스 및 설명서와 함께 운영 체제의 핵심 구성 요소를 제공합니다.

패키지 관리 시스템은 소프트웨어를 한 번만 설치하는 것보다 훨씬 더 많은 작업을 수행합니다. 이미 설치된 패키지를 업그레이드하기 위한 도구도 제공합니다. 패키지 리포지토리는 시스템에서 사용할 수 있도록 코드를 검사하고 설치된 소프트웨어 버전이 개발자 및 패키지 관리자의 승인을 받았는지 확인하는 데 도움이 됩니다.

서버나 개발 환경을 구성할 때 공식 리포지토리 이상을 살펴봐야 하는 경우가 많습니다. 안정적인 배포판의 패키지는 최신 버전이 아닐 수 있으며, 특히 새롭거나 빠르게 변경되는 소프트웨어의 경우에는 더욱 그렇습니다. 그럼에도 불구하고 패키지 관리는 시스템 관리자와 개발자에게 필수적인 기술이며 주요 배포판을 위한 풍부한 패키지 소프트웨어는 엄청난 리소스입니다.

이 가이드는 다양한 배포판에서 패키지를 찾고, 설치하고, 업그레이드하는 기본 사항에 대한 빠른 참조를 목적으로 하며 시스템 간에 해당 지식을 변환하는 데 도움이 됩니다.

패키지 관리 시스템: 간략한 개요

대부분의 패키지 시스템은 패키지 파일 모음을 중심으로 구축됩니다. 패키지 파일은 일반적으로 설치 스크립트와 함께 소프트웨어에서 사용하는 컴파일된 응용 프로그램 및 기타 리소스를 포함하는 아카이브입니다. 패키지에는 종속성, 설치 및 실행에 필요한 다른 패키지 목록을 비롯한 중요한 메타데이터도 포함되어 있습니다.

기능과 이점은 대체로 유사하지만 패키징 형식과 도구는 플랫폼에 따라 다릅니다.

  • Debian/Ubuntu의 경우: aptdpkg
  • 에 의해 설치된 .deb 패키지\n
  • Rocky/Fedora/RHEL의 경우: yum에 의해 설치된 .rpm 패키지
  • FreeBSD의 경우: pkg에 의해 설치된 .txz 패키지

Debian 및 Ubuntu, Linux Mint 및 Raspbian과 같은 데비안 기반 시스템에서 패키지 형식은 .deb 파일입니다. 고급 패키징 도구인 apt는 리포지토리 검색, 패키지 컬렉션 및 해당 종속성 설치, 업그레이드 관리와 같은 가장 일반적인 작업에 사용되는 명령을 제공합니다. apt 명령은 로컬 시스템에서 개별 .deb 파일의 설치를 처리하는 하위 수준 dpkg 유틸리티의 프런트 엔드로 작동합니다. , 때로는 직접 호출됩니다.

대부분의 Debian 파생 배포판의 최신 릴리스에는 단일 apt 명령이 포함되어 있습니다. > 및 apt-cache.

Rocky Linux, Fedora 및 기타 Red Hat 제품군 구성원은 RPM 파일을 사용합니다. 이들은 yum이라는 패키지 관리자를 사용했습니다. 최신 버전의 Fedora 및 그 파생 제품에서 yum은 대부분의 yum 인터페이스를 유지하는 현대화된 포크인 dnf로 대체되었습니다.

FreeBSD의 바이너리 패키지 시스템은 pkg 명령으로 관리됩니다. FreeBSD는 또한 사용자가 Makefile을 사용하여 소스에서 직접 패키지를 가져오고, 컴파일하고, 설치할 수 있는 로컬 디렉토리 구조 및 도구인 Ports Collection을 제공합니다. 일반적으로 pkg를 사용하는 것이 훨씬 더 편리하지만 사전 컴파일된 패키지를 사용할 수 없거나 컴파일 시간 옵션을 변경해야 하는 경우가 있습니다.

패키지 목록 업데이트

대부분의 시스템은 원격 저장소에서 사용할 수 있는 패키지의 로컬 데이터베이스를 유지합니다. 패키지를 설치하거나 업그레이드하기 전에 이 데이터베이스를 업데이트하는 것이 가장 좋습니다. 이 패턴에 대한 부분적인 예외로 dnf는 일부 작업을 수행하기 전에 업데이트를 확인하지만 업데이트가 가능한지 언제든지 물어볼 수 있습니다.

  • 데비안/우분투: sudo apt update
  • Rocky/Fedora/RHEL: dnf 체크 업데이트
  • FreeBSD 패키지: sudo pkg update
  • FreeBSD 포트의 경우: sudo portsnap fetch update

설치된 패키지 업그레이드

시스템에 설치된 모든 소프트웨어를 최신 상태로 유지하는 것은 패키지 시스템 없이는 엄청난 작업입니다. 수백 개의 서로 다른 패키지에 대한 업스트림 변경 사항 및 보안 경고를 추적해야 합니다. 패키지 관리자가 소프트웨어를 업그레이드할 때 발생하는 모든 문제를 해결하지는 못하지만 몇 가지 명령으로 대부분의 시스템 구성 요소를 유지할 수 있습니다.

FreeBSD에서 설치된 포트를 업그레이드하면 주요 변경 사항이 도입되거나 수동 구성 단계가 필요할 수 있습니다. portmaster로 업그레이드하기 전에 /usr/ports/UPDATING을 읽는 것이 가장 좋습니다.

  • 데비안/우분투: sudo apt upgrade
  • Rocky/Fedora/RHEL: sudo dnf 업그레이드
  • FreeBSD 패키지의 경우: sudo pkg 업그레이드

패키지 찾기

대부분의 배포판은 패키지 컬렉션에 그래픽 또는 메뉴 기반 프런트 엔드를 제공합니다. 이는 범주별로 탐색하고 새 소프트웨어를 발견하는 좋은 방법이 될 수 있습니다. 그러나 종종 패키지를 찾는 가장 빠르고 효과적인 방법은 명령줄 도구를 사용하여 검색하는 것입니다.

  • 데비안/우분투: apt search search_string
  • Rocky/Fedora/RHEL의 경우: dnf 검색 search_string
  • FreeBSD 패키지: pkg search search_string

참고: Rocky, Fedora 또는 RHEL에서는 dnf search all을 사용하여 패키지 제목과 설명을 함께 검색할 수 있습니다. FreeBSD에서는 pkg search -D를 사용하여 설명을 검색할 수 있습니다.

특정 패키지에 대한 정보 보기

무엇을 설치할지 결정할 때 패키지에 대한 자세한 설명을 읽는 것이 도움이 되는 경우가 많습니다. 여기에는 사람이 읽을 수 있는 텍스트와 함께 버전 번호 및 패키지의 종속성 목록과 같은 메타데이터가 포함되는 경우가 많습니다.

  • Debian/Ubuntu의 경우: apt show package
  • Rocky/Fedora/RHEL: dnf 정보 패키지
  • FreeBSD 패키지: pkg info package
  • FreeBSD 포트: cd /usr/ports/category/port && cat pkg-descr

리포지토리에서 패키지 설치

패키지 이름을 알고 나면 일반적으로 단일 명령으로 패키지와 해당 종속성을 설치할 수 있습니다. 일반적으로 패키지를 모두 나열하여 한 번에 설치할 여러 패키지를 제공할 수 있습니다.

  • 데비안/우분투: sudo apt install 패키지
  • Rocky/Fedora/RHEL: sudo dnf install 패키지
  • FreeBSD 패키지의 경우: sudo pkg install package

로컬 파일 시스템에서 패키지 설치

경우에 따라 소프트웨어가 지정된 운영 체제용으로 공식적으로 패키지되지 않은 경우에도 개발자 또는 공급업체에서 다운로드용 패키지 파일을 제공합니다. 일반적으로 웹 브라우저를 사용하거나 명령줄에서 curl을 통해 검색할 수 있습니다. 패키지가 대상 시스템에 있으면 종종 단일 명령으로 설치할 수 있습니다.

Debian 파생 시스템에서 dpkg는 개별 패키지 파일을 처리합니다. 패키지에 충족되지 않은 종속성이 있는 경우 gdebi를 사용하여 공식 리포지토리에서 해당 종속성을 검색할 수 있습니다.

Rocky Linux, Fedora 또는 RHEL에서 dnf는 개별 파일을 설치하는 데 사용되며 필요한 종속성도 처리합니다.

  • 데비안/우분투: sudo dpkg -i package.deb
  • Rocky/Fedora/RHEL: sudo dnf install package.rpm
  • FreeBSD 패키지: sudo pkg add package.txz

하나 이상의 설치된 패키지 제거

패키지 관리자는 주어진 패키지에서 어떤 파일이 제공되는지 알고 있기 때문에 일반적으로 소프트웨어가 더 이상 필요하지 않은 경우 시스템에서 깨끗하게 제거할 수 있습니다.

  • 데비안/우분투: sudo apt remove 패키지
  • Rocky/Fedora/RHEL: sudo dnf erase 패키지
  • FreeBSD 패키지의 경우: sudo pkg delete package

도움 받기

웹 기반 문서 외에도 Unix 매뉴얼 페이지(일반적으로 매뉴얼 페이지라고 함)는 셸에서 대부분의 명령에 사용할 수 있습니다. 페이지를 읽으려면 man을 사용합니다.

  1. man page

man에서는 화살표 키로 탐색할 수 있습니다. 페이지 내에서 텍스트를 검색하려면 /를 누르고 종료하려면 q를 누르십시오.

  • 데비안/우분투: man apt
  • Rocky/Fedora/RHEL: man dnf
  • FreeBSD 패키지: man pkg
  • FreeBSD 포트의 경우: man 포트

결론 및 추가 자료

이 가이드는 시스템 간에 상호 참조할 수 있는 작업에 대한 개요를 제공하지만 복잡한 주제의 표면적인 정보만 제공합니다. 주어진 시스템에 대한 자세한 내용은 다음 리소스를 참조하십시오.

  • 이 가이드는 Ubuntu 및 Debian 패키지 관리에 대해 자세히 설명합니다.
  • dnf 자체에 대한 공식 설명서가 있습니다.
  • 이 가이드는 pkg를 사용한 FreeBSD 패키지 관리에 대해 설명합니다.
  • Ports Collection 사용 섹션.