-
소프트웨어 관리 1linux/centOS 2018. 6. 29. 11:43
☆ RPM(Redhat Package Manager)
RPM(Redhat Package Manager)이란 Redhat사에서 패키지를 좀 더 쉽게 설치하고 관리하기 위해 만든 패키지 관리 프
로그램이다. 복잡한 컴파일 과정 없이 간단하게 패키지를 설치할 수 있는 장점이 있지만 반대로 사용자에게 맞는
다양한 옵션들은 설정할 수 없다는 것이 단점이다. 그래서 간단한 프로그램의 경우에는 RPM으로 설치하고 서버와
같은 중요한 프로그램은 소스를 컴파일 하여 설치하는 것이 좋다.rpm명령어는 rpm패키지를 설치하고 삭제 또는 관
리하는 명령어이다.
(명령어 형식)
# rpm [옵션]
질의 옵션 (-q 또는 --query 옵션과 함께 사용):
-c, --configfiles 모든 설정 파일을 나열합니다
-d, --docfiles 모든 문서 파일을 나열합니다
--dump 기본 파일 정보를 보여줍니다
-l, --list 패키지 안의 파일을 나열합니다
-s, --state 나열된 파일의 상태(state)를 보여줍니다
-a, --all 모든 패키지에 대해 질의/검증합니다
-f, --file 파일이 들어있는 패키지에 대해 질의/검증 합니다
-g, --group 그룹 안의 패키지를 질의/검증합니다
-p, --package query/verify a package file
검증 옵션 (-V 또는 --verify 옵션과 함께 사용):
--nodeps 패키지의 의존성을 검사하지 않습니다.
-a, --all 모든 패키지에 대해 질의/검증합니다.
-f, --file 파일이 들어있는 패키지에 대해 질의/검증 합니다.
-g, --group 그룹 안의 패키지를 질의/검증 합니다
-p, --package query/verify a package file
서명 옵션:
--addsign sign package(s) (identical to --resign)
-K, --checksig verify package signature(s)
--delsign delete package signatures
--import import an armored public key
--resign sign package(s) (identical to --addsign)
--nodigest don't verify package digest(s)
--nosignature don't verify package signature(s)
데이터베이스 옵션:
--initdb 데이터베이스를 초기화 합니다.
--rebuilddb 설치된 패키지 헤더에서 상반된 목록(inverted lists)의 데이터베이스를 재구축
합니다
설치/업그레이드/삭제 옵션:
-e, --erase=<패키지>+ 패키지를 (제거) 삭제합니다
--excludedocs 패키지에 포함된 문서 파일을 설치하지 않습니다
--excludepath=<경로> <경로>로 시작되는 파일은 설치하지 않습니다
--force --replacepkgs 와 --replacefiles 옵션을 동시에 사용합니다
-F, --freshen=<패키지파일>+ 기존에 설치된 패키지를 업그레이드 합니다
-h, --hash 패키지 설치를 해시마크(#)로 표시합니다
(-v 옵션과 함께 사용하는 것이 좋습니다)
-i, --install install package(s)
--nodeps 패키지의 의존성을 검사하지 않습니다
--oldpackage 이전 버전의 패키지로 다운그레이드 합니다
(--force 옵션을 사용시에는 이 옵션이 자동으로 적용됩니다)
--percent 패키지 설치를 퍼센트(%)로 표시합니다
--prefix=<디렉토리> 재배치 기능이 있는 패키지의 경우, 지정한 <디렉토리>로 재배치하여 설치합니다.
--replacepkgs 패키지가 이미 설치되어 있는 경우에도 설치합니다
--test 패키지를 설치하지 않고, 제대로 설치되는지만 확인합니다
-U, --upgrade=<패키지파일>+ 패키지를 업그레이드 합니다
Common options for all rpm modes and executables:
-v, --verbose 자세한 출력을 제공합니다
(명령어 사용예)
■ 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) 보통은 Uvh로 설치하는게 좋다.
# rpm -ivh --nodeps package-filename.rpm /* 의존성 체크 안함, 의존성 문제를 무시하고 설치 */
(-nodeps: no dependency)
# rpm -Uvh --force package-filename.rpm /* 패키지 충돌이 방생해도 강제적으로 설치 */
■ RPM 패키지 삭제
# rpm -e package-filename /* 패키지 삭제 */
(-e: erase)
# rpm -e --nodeps package-filename /* 패키지 삭제, 의존성 문제를 무시하고 패키지 삭제 */
(--nodeps: no dependency)
■ RPM 패키지 정보 확인
# rpm –qa /* 지정된 패키지 설치 유무 확인 */
(-q: query, -a: all)
# rpm -qa | grep package-filename /* 전체 패키지 목록에서 지정된 패키지 설치 유무 확인 */
# rpm -qi package-filename /* 설치된 패키지의 자세한 정보 확인 */
(-i: information)
# rpm -ql package-filename /* 설치된 패키지의 파일과 디렉토리 목록 확인 */
(-l: list)
# rpm -qf /usr/bin/ls /* 지정된 파일이 포함된 패키지 이름 확인 */
(-f: file)
# rpm –qi -p package-filename.rpm /* 설치하고자 하는 패키지의 자세한 정보 확인 */
(-p: packages file)
(패키지 파일 이름 형식)
(예) name-version-release.architecture.rpm ( -(dash) 기호가 구분자이다.)
kernel-2.6.9-42.0.2.EL.i686.rpm
kernel-2.6.18-164.el5.x86_64.rpm
kernel-2.6.18-164.el5.src.rpm
종류
필드 이름
설명
kernel
패키지 이름
어떤 패키지인가를 설명해주는 패키지의 이름을 나타낸다.
2.6.9
패키지 버전
패키지의 버전을 의미한다. (기능이 증가해서 추가된 경우가 많다.)
(정식으로 나오는건 짝수번호만이다. 홀수번호는 베타버전이다.)
49.0.2.EL
패키지 릴리즈
한 버전의 패키지를 몇 번 빌드했는지알 수 있다. EL(Enterprise Linux)
(기능이 fix된 패치같은것들임)
i686
패키지 아키텍쳐
패키지 아키텍쳐를 나타낸다.
source : .src.rpm
noarch : .noarch.rpm 플랫폼에 상관없이 설치 가능.
binary : .i386.rpm
(i386, i586, i686, x86, x86_64 등)
rpm
패키지 확장자
레드햇(RedHat) 운영체제에서 사용하는 패키지의 이름은 .rpm이다.
[EX1] 패키지 설치 확인
① 패키지 전체 목록 확인
# rpm -qa | more
centos-release-notes-5.9-0
rootfiles-8.1-1.1.1
atk-1.12.2-1.fc6
nspr-4.9.1-6.el5
bzip2-libs-1.0.3-6.el5_5
nss-3.13.5-8.el5
audiofile-0.2.6-5
libgcrypt-1.4.4-5.el5_8.2
procps-3.2.7-22.el5
..... (중략) .....
# rpm -q openssh (# rpm -qa | grep openssh)
openssh-4.3p2-82.el5
[참고] 패키지 이름을 가지고 패키지 목록 점검
# rpm -q openssh
or
# rpm -qa openssh
or
# rpm -qa | grep openssh
# rpm -qa | grep openss
openssl-0.9.8e-26.el5_9.1
openssh-askpass-4.3p2-82.el5
openssh-4.3p2-82.el5
openssh-server-4.3p2-82.el5
openssh-clients-4.3p2-82.el5
# rpm -q openssh openssh-server openssh-clients
openssh-4.3p2-82.el5
openssh-server-4.3p2-82.el5
openssh-clients-4.3p2-82.el5
# rpm -qa | egrep '(openssh|openssh-server|openssh-clients)'
[EX2] 시스템에 설치된 패키지 삭제
설치된 패키지를 제거하는 것은 -e 옵션을 사용한다. 제거할 패키지가 다른 패키지에 영향을 미친다면 패키지를 제
거할 수 없다는 메시지가 나타나는데 이것을 의존성이라 한다. 의존성을 무시하고 함부로 제거하면 다른 패키지를
사용하는데 문제가 생길 수 있다. 꼭 패키지를 삭제해야하는 경우 먼저 의존적인 패키지를 먼저 삭제한 후 원하는
패키지 삭제 해야지만 된다.
① php 패키지 삭제
# rpm -qa | grep php
php-5.1.6-39.el5_8
php-common-5.1.6-39.el5_8
php-cli-5.1.6-39.el5_8
php-ldap-5.1.6-39.el5_8
-> 삭제 할 패키지 확인(EX: php-5.1.6-39.el5_8)
# rpm -e php (# rpm -e php-5.1.6-43.el5_10)
# rpm -qa | grep php
php-common-5.1.6-39.el5_8
php-cli-5.1.6-39.el5_8
php-ldap-5.1.6-39.el5_8
-> 정상적으로 잘 삭제 되었다.
-> php-5.1.6-24.el5_4.5 패키지와 의존성 관계에 있는 패키지는 없는 것 같다.
'linux > centOS' 카테고리의 다른 글
리눅스 부팅 과정 (0) 2018.07.03 소프트웨어 관리 2 (0) 2018.07.02 SWAP 관리 (0) 2018.06.27 RAID 관리 (0) 2018.06.26 LVM 생성 및 관리 (0) 2018.06.22