웹사이트 검색

Yum, RPM, Apt, Dpkg, Aptitude 및 Zypper를 사용한 Linux 패키지 관리 - 9부


지난 8월, Linux Foundation은 LFCS 인증(Linux Foundation Certified Sysadmin)을 발표했습니다. 이는 전 세계의 시스템 관리자가 수행 기반 시험을 통해 자신의 능력을 입증할 수 있는 절호의 기회입니다. Linux 시스템에 대한 전반적인 운영 지원을 성공적으로 수행할 수 있습니다. Linux Foundation 공인 시스템 관리자는 효과적인 시스템 지원, 1단계 문제 해결 및 모니터링을 보장하고 필요한 경우 엔지니어링 지원 팀에 대한 최종 문제 에스컬레이션을 보장할 수 있는 전문 지식을 갖추고 있습니다.

Linux Foundation 인증 프로그램에 대해 설명하는 다음 비디오를 시청하세요.

이 기사는 10개의 튜토리얼로 구성된 긴 시리즈 중 파트 9입니다. 오늘 이 기사에서는 LFCS 인증 시험에 필요한 Linux 패키지 관리에 대해 안내할 것입니다.

패키지 관리

간단히 말해서, 패키지 관리는 시스템에 소프트웨어를 설치하고 유지 관리(업데이트 및 제거도 포함)하는 방법입니다.

Linux 초기에는 프로그램이 필요한 매뉴얼 페이지, 필요한 구성 파일 등과 함께 소스 코드로만 배포되었습니다. 요즘 대부분의 Linux 배포자는 해당 배포판에 설치할 준비가 된 사용자에게 제공되는 패키지라고 하는 사전 구축된 프로그램이나 프로그램 세트를 기본적으로 사용합니다. 그러나 Linux의 놀라운 점 중 하나는 연구, 개선 및 컴파일할 프로그램의 소스 코드를 얻을 수 있다는 것입니다.

패키지 관리 시스템 작동 방식

특정 패키지에 공유 라이브러리나 다른 패키지와 같은 특정 리소스가 필요한 경우 종속성이 있다고 합니다. 모든 최신 패키지 관리 시스템은 패키지가 설치될 때 해당 종속성도 모두 설치되도록 몇 가지 종속성 해결 방법을 제공합니다.

포장 시스템

최신 Linux 시스템에 설치된 거의 모든 소프트웨어는 인터넷에서 찾을 수 있습니다. 중앙 저장소(각각은 배포를 위해 특별히 구축, 테스트 및 유지 관리되는 수천 개의 패키지를 포함할 수 있음)를 통해 배포 공급업체에서 제공하거나 수동으로 다운로드하고 설치할 수 있는 소스 코드로 사용할 수 있습니다. .

배포판마다 서로 다른 패키징 시스템을 사용하기 때문에(Debian: *.deb/CentOS: *.rpm/openSUSE: *.rpm openSUSE), 한 배포판용 패키지는 다른 배포판과 호환되지 않습니다. 그러나 대부분의 배포판은 LFCS 인증이 적용되는 세 배포판 제품군 중 하나에 속할 가능성이 높습니다.

높은 수준과 낮은 수준의 패키지 도구

패키지 관리 작업을 효과적으로 수행하려면 두 가지 유형의 사용 가능한 유틸리티, 즉 낮은 수준 도구(백엔드에서 실제 설치, 업그레이드 및 작업을 처리하는 도구)가 있다는 점을 알아야 합니다. 패키지 파일 제거) 및 고수준 도구(종속성 해결 및 메타데이터 검색 작업("데이터에 대한 데이터")이 수행되는지 확인하는 역할을 담당).

DISTRIBUTION LOW-LEVEL TOOL HIGH-LEVEL TOOL
 Debian and derivatives  dpkg  apt-get / aptitude
 CentOS  rpm  yum
 openSUSE  rpm  zypper

낮은 수준 도구와 높은 수준 도구에 대한 설명을 살펴보겠습니다.

dpkg는 Debian 기반 시스템을 위한 하위 수준 패키지 관리자입니다. *.deb 패키지에 대한 정보를 설치, 제거, 제공 및 빌드할 수 있지만 해당 종속성을 자동으로 다운로드하고 설치할 수는 없습니다.

자세히 알아보기: 15 dpkg 명령 예

apt-get은 Debian 및 파생 제품을 위한 고급 패키지 관리자이며 명령줄을 사용하여 여러 소스에서 종속성 해결을 포함하여 패키지를 검색하고 설치하는 간단한 방법을 제공합니다. dpkg와 달리 apt-get은 *.deb 파일에서 직접 작동하지 않지만 패키지 고유 이름에서는 작동합니다.

자세히 알아보기: 25 apt-get 명령 예

aptitude는 Debian 기반 시스템을 위한 또 다른 고급 패키지 관리자이며 빠르고 쉬운 방법으로 관리 작업(패키지 설치, 업그레이드 및 제거, 종속성 해결 자동 처리)을 수행하는 데 사용할 수 있습니다. . 이는 apt-get 및 여러 버전의 패키지에 대한 액세스 제공과 같은 추가 기능과 동일한 기능을 제공합니다.

rpm은 LSB(Linux Standard Base) 호환 배포판에서 낮은 수준의 패키지 처리를 위해 사용하는 패키지 관리 시스템입니다. dpkg와 마찬가지로 패키지를 쿼리, 설치, 확인, 업그레이드 및 제거할 수 있으며 RHEL 및 CentOS와 같은 Fedora 기반 배포판에서 더 자주 사용됩니다.

자세히 알아보기: 20rpm 명령 예

yum은 RPM 기반 시스템에 종속성 관리와 함께 자동 업데이트 및 패키지 관리 기능을 추가합니다. apt-get 또는 aptitude와 같은 고급 도구인 yum은 리포지토리와 함께 작동합니다.

자세히 알아보기: 20 yum 명령 예

저수준 도구의 일반적인 사용법

낮은 수준의 도구를 사용하여 가장 자주 수행하는 작업은 다음과 같습니다.

1. 컴파일된(*.deb 또는 *.rpm) 파일에서 패키지 설치

이 설치 방법의 단점은 종속성 해결이 제공되지 않는다는 것입니다. 배포판 리포지토리에서 해당 패키지를 사용할 수 없어 상위 수준 도구를 통해 다운로드하고 설치할 수 없는 경우 컴파일된 파일에서 패키지를 설치하도록 선택할 가능성이 높습니다. 하위 수준 도구는 종속성 해결을 수행하지 않으므로 종속성이 충족되지 않은 패키지를 설치하려고 하면 오류와 함께 종료됩니다.

dpkg -i file.deb 		[Debian and derivative]
rpm -i file.rpm 		[CentOS / openSUSE]

참고: OpenSUSE용으로 빌드된 *.rpm 파일을 CentOS에 설치하려고 시도하지 마십시오. 반대의 경우도 마찬가지입니다!

2. 컴파일된 파일에서 패키지 업그레이드

다시 말하지만, 설치된 패키지를 중앙 저장소에서 사용할 수 없는 경우에만 수동으로 업그레이드합니다.

dpkg -i file.deb 		[Debian and derivative]
rpm -U file.rpm 		[CentOS / openSUSE]
3. 설치된 패키지 나열

이미 작동 중인 시스템을 처음 접하게 되면 어떤 패키지가 설치되어 있는지 알고 싶을 것입니다.

dpkg -l 		[Debian and derivative]
rpm -qa 		[CentOS / openSUSE]

특정 패키지가 설치되었는지 여부를 알고 싶다면 이 시리즈의 1부 Linux에서 파일 조작에 설명된 대로 위 명령의 출력을 grep으로 파이프할 수 있습니다. mysql-common 패키지가 Ubuntu 시스템에 설치되어 있는지 확인해야 한다고 가정해 보겠습니다.

dpkg -l | grep mysql-common

패키지가 설치되어 있는지 확인하는 또 다른 방법입니다.

dpkg --status package_name 		[Debian and derivative]
rpm -q package_name 			[CentOS / openSUSE]

예를 들어 sysdig 패키지가 우리 시스템에 설치되어 있는지 알아봅시다.

rpm -qa | grep sysdig

4. 어떤 패키지가 파일을 설치했는지 알아내기
dpkg --search file_name
rpm -qf file_name

예를 들어 pw_dict.hwm을 설치한 패키지는 무엇입니까?

rpm -qf /usr/share/cracklib/pw_dict.hwm

고급 도구의 일반적인 사용

높은 수준의 도구를 사용하여 가장 자주 수행하는 작업은 다음과 같습니다.

1. 패키지 검색

적성 업데이트는 사용 가능한 패키지 목록을 업데이트하고 적성 검색패키지_이름에 대한 실제 검색을 수행합니다.

aptitude update && aptitude search package_name 

모두 검색 옵션에서 yum은 패키지 이름뿐만 아니라 패키지 설명에서도 package_name을 검색합니다.

yum search package_name
yum search all package_name
yum whatprovides “*/package_name”

이름이 sysdig인 파일이 필요하다고 가정해 보겠습니다. 우리가 설치해야 할 패키지를 알기 위해 실행해 봅시다.

yum whatprovides “*/sysdig”

whatprovidesyum에게 위의 정규 표현식과 일치하는 파일을 제공할 패키지를 검색하라고 지시합니다.

zypper refresh && zypper search package_name		[On openSUSE]
2. 저장소에서 패키지 설치

패키지를 설치하는 동안 패키지 관리자가 모든 종속성을 해결한 후 설치를 확인하라는 메시지가 나타날 수 있습니다. 사용 중인 패키지 관리자에 따라 업데이트 또는 새로 고침을 실행하는 것이 꼭 필요한 것은 아니지만 설치된 패키지를 최신 상태로 유지하는 것은 보안 및 종속성 이유로 좋은 시스템 관리자 관행입니다.

aptitude update && aptitude install package_name 		[Debian and derivatives]
yum update && yum install package_name 			[CentOS]
zypper refresh && zypper install package_name 		[openSUSE]
3. 패키지 제거

제거 옵션은 패키지를 제거하지만 구성 파일은 그대로 유지하는 반면, 제거는 시스템에서 프로그램의 모든 흔적을 삭제합니다.
# 적성 제거/패키지 이름 제거
# 냠 지우기 패키지 이름

---Notice the minus sign in front of the package that will be uninstalled, openSUSE ---

zypper remove -package_name 

대부분의 패키지 관리자는 실제로 제거를 수행하기 전에 제거를 계속할지 묻는 메시지를 기본적으로 표시합니다. 따라서 불필요한 문제가 발생하지 않도록 화면 메시지를 주의 깊게 읽으십시오!

4. 패키지에 대한 정보 표시

다음 명령은 생일 패키지에 대한 정보를 표시합니다.

aptitude show birthday 
yum info birthday
zypper info birthday

요약

패키지 관리는 시스템 관리자로서 은밀히 다룰 수 없는 일입니다. 즉시 이 문서에 설명된 도구를 사용할 준비를 해야 합니다. LFCS 시험 준비 및 일상 업무에 도움이 되기를 바랍니다. 아래에 의견이나 질문을 남겨주세요. 최대한 빨리 답변해 드리겠습니다.