System Admin

본문 바로가기
사이트 내 전체검색


RedHat Linux >> System Administration for Redhat Linux
[목차]
제6장 RPM 패키지 관리

    5. 패키지 관리


제장 RPM 패키지 관리




. 패키지 관리

지금까지는 rpm을 사용하기 전에 알아야할 것들에 대해 소개 했다. 이제 실제 rpm을 이용해서 패키지를 관리하는 방법에 대해 알아보도록 하자.
다른 명령어들도 모두 마찬가지지만 rpm을 사용하는 경우도 옵션을 잘 사용하면 된다. 옵션에는 -i(설치), -e(삭제), -q(질의), -V(검증), -b(빌드) 등이 있다.

가. 설치

먼저. xmms 패키지를 설치하자 (이작업은 root로 해야한다.)

# rpm -ivh xmms-1.2.4-4.i386.rpm
xmms #####################################################
#

이 명령어는 xmms 프로그램을 설치하겠다는 뜻이다. -i는 설치를 한다는 뜻이고, 그 뒤의 v는 설치도중 메시지를 보겠다는 의미이다. 그리고 h는 설치 진행과정을 #으로 표시한다는 뜻이다. rpm이 언제나 에러 없이 설치되는 건 아니다. 프로그램이 이미 설치되어 있으면, 설치되어 있다고 알려주고, 업그레이드를 하는 경우에는 다른 옵션을 주어야 한다.

# rpm -ivh xmms-1.2.4-4.i386.rpm
xmms package xmms-1.2.3-1 is already installed
error : xmms-1.2.4-4.i386.rpm cannot be installed
# rpm -Uvh xmms-1.2.4-4.i386.rpm
xmms ####################################################
#

위의 경우는 이미 설치되어 있는 1.2.4이전 버전을 현재 버전으로 업그레이드를 하고 싶은 경우에 쓴다. 대소문자에 주의하여야 하는데, 이옵션의 U는 대문자이다. 이 경우 만약, 이전버전이 설치되어 있지 않은 경우엔 -i와 같이 설치로 간주하고 설치를 한다. 따라서 -i 옵션보다는 항상 -U 옵션을 쓰는 것이 더 단순하고 편하다.
-i 나 -U 옵션의 경우패키지가 설치되어 있지 않은 경우 새로 설치를 한다. 만약 이미 설치된 패키지에 해당하는 것들만 업그레이드하고 싶다면 다음처럼 하면 된다.

# rpm -Fvh xmms-1.2.4-4.i386.rpm
xmms ####################################################
#

-F 옵션은 현재 설치하는 패키지의 이전 버전이 설치되어 있는 경우에만 설치하고, 그렇지 않은 경우엔 무시해 버린다. 이는 새로 업데이트된 많은 패키지들이 있을 경우 현재 설치된 패키지들만 업데이트를 하고 싶을 경우 유용하게 사용할 수 있다.
패키지를 설치하다 보면 이미 설치된 패키지와의 충돌 문제로 인해 제대로 설치가 되지 않는 경우가 있다. 이 경우엔 충돌을 일으키는 패키지를 삭제하거나 충돌이 생기지 않는 다른 패키지를 선택해서 설치하는 것이 바람직하다. 그러나 꼭 패키지를 설치해야 할 경우라면 다음처럼 --force라는 옵션을 사용하면 된다.

# rpm -Uvh xmms-1.2.4-4.i386.rpm --force

이것은 어느 패키지와 충돌이 생기더라도 이를 무시하고 설치하라는 의미이다. 또 다른 경우 이번엔 충돌 문제가 아니라 의존성 문제로 패키지가 삭제되지 않거나 설치가 되지 않는 경우가 있다. 이도 마찬가지로 의존성 문제를 일으키는 것을 해결하는 것이 바람직하다. 그러나 의존성을 무시하고 설치해야 할 경우라면 다음과 같이 한다.
# rpm -Uvh xmms-1.2.4-4.i386.rpm --nodeps

이는 의존성 체크를 하지 않는다는 의미로, 의존성을 무시하고 패키지를 설치한다. --nodeps와 --force는 함께 사용하는 경우가 많다. 이 두 옵션을 사용할 때는 주의해야 한다. 이를 함부로 사용하면 패키지 상호간의 의존성이 깨져 설치된 패키지에 치명적인 손상을 입힐 수도 있기 때문이다. 이로 인해 전체 프로그램이 실행되지 않을 수도 있다. 특히, glibc와 같이 라이브러리와 관련된 패키지의 경우절대 의존성을 무시하고 설치해선 안 된다.

나. 삭제

이제 패키지를 삭제하는 방법에 대해 알아보자.

# rpm -e xmms[-1.2.4-4]

패키지를 설치할 때는 모든 패키지 명을 정확하게 써주었지만, 삭제할 때는 패키지의 이름만 사용한다. 때론 버전과 빌드 번호까지 사용하기도 한다. 이렇게 하면 패키지는 간단하게 지워진다. 그런데 여기서도 의존성 에러가 나는 경우가 있다. 의존성에러가 나는경우는 (설치나 삭제나 마찬가지로) 관련패키지들을 설치(혹은 삭제)를 해준다음에 설치(혹은 삭제)를 해야 한다. 이때 어느 패키지를 먼저 설치(혹은 삭제)하느냐가 중요하다. 하지만 이런 것이 귀찬다면 --nodeps와 --force 옵션을 사용하여 강제로 지울 수도 있다. 앞서 말했듯이 이들 옵션을 사용할 때는 신중해야 한다.

# rpm -e xmms --nodeps --force

다. 질의

다음으로 내가 어떤 파일을 설치하고 싶은데 이것이 이미 설치가 되어 있는지 알고 싶을 때 어떻게 해야 하는지 알아보자.

# rpm -qa | grep xmms

-qa 라는 옵션은 현재 설치된 모든 패키지 목록을 보여 달라는 의미이다. 여기에 파이프 기능을 이용하여 grep을 통해 xmms라는 문장이 들어간 것만 필터링하는 것이다. 만약 xmms관련 패키지가 설치되어 있다면, xmms에 대한 패키지 이름이 화면에 나타날 것이다. 이것은 정확한 패키지 이름을 모를 때 유용하다.
정확한 패키지 이름을 알고 있다면 다름과 같이 해보자.

# rpm -q xmms

패키지가 설치되어 있다면 패키지 이름이 나타날 것이다. 패키지의 내용이 궁금할 때는 다음처럼 한다.

# rpm -ql xmms | less
-ql옵션은 현재 설치된 패키지 내용을 보여준다. 어떤 파일이 어디에 설치되어 있는지 확인할 때 유용하다. 보통 화면을 넘기는 경우가 많으므로, 파이프 기능을 이용하여 less로 한 화면씩 보면 편하다. 앞서 살펴보았듯이 -q라는 옵션은 질의할 때 사용하는 옵션으로, -q를 이용한 다양한 질의 옵션들이 있다. -qpl은 앞서 -ql과 비슷한 옵션으로, -ql이 이미 설치된 패키지에 대한 질의를 하는 것이라면, -qpl은 아직 설치되지 않은 패키지에 대한 정보를 보고자 할때 사용한다. 즉, p라는 옵션을 사용하면 현재 있는 패키지 내의 정보를 알아본다는 의미이다. 이외에도 -qi라고 하면 설치된 패키지에 대한 간략한 설명을 볼 수 있다. 마찬가지로 -qpi라고 하면, 현재 패키지의 간략한 정보를 보여준다.
만약 어느 특정 파일이 어느 패키지에 속하는지 알고 싶다면 다음과 같이 한다.

# rpm -qf /usr/bin/xmms

/usr/bin/xmms 라는 실행 파일이 어느 패키지에 속하는지 알고 싶다면, /usr/bin/xmms라는 절대 경로를 -qf를 통해 질의하면, 그 파일이 속한 패키지를 알려준다.

라. 검증

설치된 패키지에 대한 검증을 할 때가 있다. 이때 사용하는 옵션이 -V 옵션이다. -Vf, -Va, -Vp옵션이 있는데, 각각 파일 검증, 전체 패키지 검증, 한 패키지 검증을 뜻한다.

# rpm -Vf /usr/bin/xmms
# rpm -Va
# rpm -Vp xmms-1.2.4-4.i386,rpm

검증 결과는 8개의 문자로 표시되는데, 아무 문제없이 통과되면 '.'으로 표시되며, 만약 문제가 있다면, 아래 표와 같이 실패한 것이 무엇인지를 알려준다. 즉 검증에 통과하지 못했다는 것은 어떤 이유에서 원 패키지의 내용과 틀린다는 것을 의미한다.

--------------------------------------------------
검증 실패 표시 설명
--------------------------------------------------
5 MD5 checksum
--------------------------------------------------
S 파일 크기
--------------------------------------------------
L 심볼릭 링크
--------------------------------------------------
T 파일 수행 시간
--------------------------------------------------
D 디바이스
--------------------------------------------------
U 사용자
--------------------------------------------------
G 그룹
--------------------------------------------------
M 모드(퍼미션과 파일 타입 포함)
--------------------------------------------------

사용자가 이용할 수 잇는 rpm의 기능은 다양하며 대단히 많은 옵션을 제공하고 있다. 더 자세한 사용법을 알고 싶다면 하우투 문서를 보거나 시스템에서 맨페이지를 보도록 하자. rpm --help를 통해서도 자세한 도움말을 얻을 수 있다.

# rpm --help
[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.