Linux 패키지 관리

이동명·2023년 11월 14일
0

Cent OS

목록 보기
13/13
post-thumbnail

패키지 관리

  • 패키지는 배포하기 위한 목적으로 제작된 관렦있는 파일이나 프로그램 집합을 의미한다.

  • RPM(Redhat Package Manager)는 레드헷에서 제공하는 패키지이며 CentOS 에서 사용한다.

  • 다음과 같이 'bind-utils' 패키지에서 'nslookup', 'dig', 'host'를 제공한다.

rpm -qf /usr/bin/nslookup -> 어디 패키지에서 제공 되는지 ?
-> bind-utils-9.11.36-2.el8.x86_64

rpm -qf /usr/bin/dig /usr/bin/host
-> 
bind-utils-9.11.36-2.el8.x86_64
bind-utils-9.11.36-2.el8.x86_64

RPM 패키지

  • 다음 명령어를 이용하여 CentOS 에 설치된 패키지, 설치된 패키지 개수, 설치된 패키지 상세 정보 확인을 확인할 수 있다.
rpm -qa -> 현재 설치된 패키지 목록..

rpm -qa | wc -l -> 설치된 패키지 개수
-> 1373

rpm -qa | grep openssh -> 특정 패키지 검색

rpm -ql openssh -> 특정 패키지와 관련된 디렉토리와 파일 들

RPM 패키지 설치 및 삭제

rpm -ivh package-filename.rpm // 이전 버전의 패키지를 삭제하지 않고 새 버전 설치
(-i: install, -v: verbose, -h: hash)

rpm -Fvh package-filename.rpm // 이전 버전의 패키지가 있을 경우만 패키지를 업데이트
(-F: Freshen)

rpm -Uvh package-filename.rpm // 패키지가 없으면 설치, 있으면 업그레이드
(-U: Upgrade)

rpm -ivh --nodeps package-filename.rpm // 의존성 체크 안함, 의존성 문제를 무시하고 
설치 (-nodeps: no dependency)

rpm -Uvh --force package-filename.rpm // 패키지 충돌이 발생해도 강제적으로 설치

rpm -e package-filename // 패키지 삭제
(-e: erase)

rpm -e --nodeps package-filename // 의존성 문제를 무시하고 패키지 삭제

  • 패키지에 제공하는 특정 파일맊 재설치할 경우, '--replacepkgs' 옵션을 사용한다.
rpm -i --replacepkgs vsftpd-3.0.3-35.el8.x86_64.rpm

패키지를 삭제할 경우, 백업 파일 자동 생성

  • 패키지를 삭제할 경우, 환경 설정 파일은 자동으로 백업본이 생성된다.

  • 그리고 사용자가 생성한 파일은 패키지에서 제공한 파일이 아니기 때문에 삭제되지 않고 유지된다.

RPM 의존성 이해

  • 의존성이란 A 패키지를 설치하기 이전에 B 패키지를 먼저 설치해야 한다는 특성이다.

  • 이유는 A 프로세스의 부모 프로세스가 B 가 되기 때문이다.

  • 'php' 패키지를 이용하여 의존성에 대해서 알아보도록 한다.

rpm -i php-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64.rpm

-> 'php' 패키지 설치를 실시하면 의존성 실패(Failed dependencies) 오류 메세지가 출력된다. 

rpm -i php-cli-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64.rpm

-> 'php-cli' 패키지를 설치하면 의존성 실패(Failed dependencies) 오류 메세지가 출력된다

'php-common' 패키지를 설치한 이후, 'php-cli' 패키지를 설치한다

rpm -i php-common-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64.rpm
rpm -i php-cli-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64.rpm

'php-common', 'php-cli' 패키지 설치가 완료되었다면, 'php' 패키지를 설치한다.

rpm -i php-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64.rpm
-> 설치완료

삭제할 때도 의존성이 걸려있기 때문에 'php', 'php-cli', 'php-common' 순으로 삭제해야 한다.

rpm -e php-common

- '--nodeps' 옵션을 사용하면 의존성을 무시하고 패키지를 설치할 수 있다.

Yum 을 이용한 패키지 설치 및 관리

  • Yum(Yellowdog updater modified)는 인터넷을 통해서 RPM 파일이 저장된 저장소(Repository)로부터패키지를 의존성 체크, 다운로드, 설치, 다운로드 파일 삭제까지 제공하는 서비스이다.
profile
Web Developer

0개의 댓글