2012. 11. 11. 21:18ㆍOS/Linux
# RPM 관리
- 리눅스에서 사용되는 모든 소프트웨어(어플리케이션 또는 프로그램, 솔루션)를 설치 및
삭제 또는 업그레이드 할 수 있는 관리툴이다
- 'Redhat Package Manager'의 약어로 rpm 파일로 되어 있는 여러가지 프로그램들과
유틸리티 어플리케이션들의 설치, 관리, 삭제, 업데이트할 수 있는 패키지관리 시스템이다
- rpm 명령어 모드별 사용 옵션
+-------------------+----------+-----------------------------------+
| 용 도 | 사용모드 | 사 용 형 식 |
+-------------------+----------+-----------------------------------+
| 패키지설치 | -i | rpm -i [옵션] 패키지명 |
+-------------------+----------+-----------------------------------+
| 패키지 업그레이드 | -U | rpm -U [옵션] 패키지명 |
+-------------------+----------+-----------------------------------+
| 패키지 제거(삭제) | -e | rpm -e 패키지명 |
+-------------------+----------+-----------------------------------+
| 패키지 질의 | -q | rpm -q [옵션] 패키지명 |
+-------------------+----------+-----------------------------------+
| 패키지 검증 | -v | rpm -V [옵션] 패키지명 |
| | | rpm -y [옵션] 패키지명 |
+-------------------+----------+-----------------------------------+
| 패키지 제작 | -b | rpm -b [옵션] 패키지명세파일 |
| | | rpmbuild -b [옵션] 패키지명세파일 |
+-------------------+----------+-----------------------------------+
- RPM 패키지
-> 리눅스에서 말하는 패키지란 특정 프로그램이나 유틸리티 혹은 라이브러리를
개발하고 이것을 컴파일하여 바이너리형태로 제작한 후에 설치될 파일들의
디렉토리위치를 이미 지정하여 하나의 파일로 묶어놓은 것이다
-> 특정 서비스를 위한 소프트웨어를 설치해야할 경우에 RPM 패키지 하나만을
가져와서 설치하면 그 서비스에 필요한 모든 실행파일들과 설정파일, 그리고
문서파일들이 정해진 위치에 모두 복사된다
+--------------------------------------------------------+
| bind-9.5.1-18.i386.rpm |
+-------------+-------------+-------------+--------------+
| 패키지 이름 | 패키지 버전 | 릴리즈 버전 | 아키텍처버전 |
+-------------+-------------+-------------+--------------+
| bind | 9.5.1 | 18 | i386 |
+-------------+-------------+-------------+--------------+
-> 패키지 이름
=> 제작자에 의해 붙여진이름으로 대부분은 특정 서비스를 나타내는
이름이거나 또는 특정 라이브러리를 의미하는 이름으로 붙이는
것이 관례이다
-> 패키지 버전
=> 패키지의 버전을 의미하며 버전이 높을 수록 최근에 배포된 것을 의미한다
-> 릴리즈 버전
=> 동일한 패키지 이름의 동일한 패키지버전을 업데이트하여 배포할 때마다
새롭게 붙이는 버전이다
=> 릴리즈버전 또한 높을 수록 최근에 배포한 패키지 임을 의미한다
=> 릴리즈 버전을 붙이는 이유는 주로 동일한 패키지에서 버그를
수정하였거나 간단히 업그레이드하였을 경우에 패키지 버전을 높이지 않고
릴리즈버전만 높여서 재배포하기 때문이다
-> 아키텍처 버전
=> 패키지를 설치가 가능한 컴퓨터 아키텍쳐를 의미한다
=> i386은 INTEL 아키텍쳐를 가진 컴퓨터에서 설치가능한 패키지임을 의미한다
=> 컴퓨터 아키텍처로는 알파시스템인 alpha, 스팍시스템인 sparc,
noarch는 특정 아키텍처를 의미하지 않을 때 붙인다
- 설치된 모든 RPM 패키지 리스트 출력
-> 현재 시스템에 설치되어 있는 모든 패키지를 확인하고자 한다면 rpm 명령어에
'-qa' 옵션을 사용한다
# rpm -qa
texlive-texmf-errata-2007-4.fc9.noarch
texlive-texmf-errata-dvips-2007-4.fc9.noarch
xorg-x11-server-common-1.5.3-5.fc10.i386
iwl5000-firmware-5.4.A.11-3.noarch
ql2200-firmware-2.02.08-1.fc8.1.noarch
.......................................
- RPM 패키지 설치여부 확인 방법
-> 특정 패키지가 시스템에 설치되어 있는가를 확인
사용형식 : rpm -qa | grep 패키지명
# rpm -qa | grep http
httpd-2.2.10-2.i386
httpd-tools-2.2.10-2.i386
-> 특정 패키지에 의해서 설치된 모든 파일들을 확인
=> 특정 RPM 패키지에 의해서 설치되는 파일들을 모두 확인한다
사용형식 : rpm -ql 패키지명
# rpm -ql httpd-2.2.10-2.i386
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
.............................
-> 특정 파일이 어떤 패키지에 의해 설치된 것인가를 확인
=> 시스템에 존재하는 특정 파일이 어떤 패키지의 설치로 생성된 파일인가를
확인한다
사용형식 : rpm -qf 파일명
# rpm -qf /bin/bash
bash-3.2-29.fc10.i386
- 특정 RPM 패키지의 상세한 정보 확인
-> 특정 패키지의 이름과 버전, 패키지 개발사, 그리고 배포횟수(release),
컴파일 날짜, 설치날짜, 패키지 용량(size), 라이센스 정보, 소스 RPM 명,
용도(Summary), 간단한 설명(Description)등에 대한 정보를 확인하는 방법이다
-> 특정 패키지의 정보를 확인하려면 '-qi' 옵션을 사용한다
사용형식 : rpm -qi 패키지명
# rpm -qi httpd-2.2.10-2.i386
Name : httpd Relocations: (not relocatable)
Version : 2.2.10 Vendor: Fedora Project
Release : 2 Build Date: Tue 21 Oct 2008 08:53:06 PM KST
Install Date: Tue 26 May 2009 02:46:38 AM KST Build Host: x86-6.fedora.phx.redhat.com
Group : System Environment/Daemons Source RPM: httpd-2.2.10-2.src.rpm
Size : 2949157 License: ASL 2.0
Signature : DSA/SHA1, Wed 29 Oct 2008 08:07:38 AM KST, Key ID bf226fcc4ebfc273
Packager : Fedora Project
URL : http://httpd.apache.org/
Summary : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
- 특정 RPM 패키지에 의해 설치된 파일들의 정상여부 점검
-> 특정패키지를 설치한 후에 이 패키지에 의해서 설치된 모든 파일들이 현재 시스템에
이상없이 정상적으로 사용이 되고 있는가를 확인하려면 rpm 명령어에 '-qs' 옵션을
사용한다
-> 각 파일들 앞에 표시되는 normal 이라는 파일 표시가 해당 파일이 정상이라는
것을 의미한다
사용형식 : rpm -qs 패키지명
# rpm -qs httpd-2.2.10-2.i386
normal /etc/httpd
normal /etc/httpd/conf
normal /etc/httpd/conf.d
normal /etc/httpd/conf.d/README
.......................................
- 특정 패키지의 설정 파일 확인
-> '-qc' 옵션을 사용하여 특정 패키지의 설치로 생성되는 설정파일을 확인할 수 있다
사용형식 : rpm -qc 패키지명
# rpm -qc httpd-2.2.10-2.i386
/etc/httpd/conf.d/proxy_ajp.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
................................
- 특정 패키지의 문서 파일 확인
-> '-qd' 옵션을 사용하여 패키지의 설치되는 메뉴얼파일, man 페이지 파일 등의
문서파일을 확인할 수 있다
사용형식 : rpm -qd 패키지명
# rpm -qd httpd-2.2.10-2.i386
/usr/share/doc/httpd-2.2.10/ABOUT_APACHE
/usr/share/doc/httpd-2.2.10/CHANGES
/usr/share/doc/httpd-2.2.10/LICENSE
/usr/share/doc/httpd-2.2.10/NOTICE
..................................
- RPM 패키지 의존성 관계 확인
-> '-qRp' 옵션은 패키지의 의존성 관계를 확인하기 위해 사용한다
사용형식 : rpm -qRp rpm파일
# rpm -qRp httpd-2.2.10-2.i386.rpm
/bin/bash
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/etc/mime.types
/usr/sbin/useradd
chkconfig
config(httpd) = 2.2.10-2
httpd-tools = 2.2.10-2
initscripts >= 8.36
libapr-1.so.0
libaprutil-1.so.0
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libc.so.6(GLIBC_2.3.4)
libc.so.6(GLIBC_2.4)
libcrypt.so.1
libdb-4.7.so
libdl.so.2
libexpat.so.1
liblber-2.4.so.2
libldap-2.4.so.2
libm.so.6
libpcre.so.0
libpthread.so.0
libpthread.so.0(GLIBC_2.0)
libselinux.so.1
libz.so.1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rtld(GNU_HASH)
system-logos >= 7.92.1-1
- RPM 패키지 설치
-> '-i' 옵션을 사용하여 패키지를 설치할 수 있다
-> 특별한 에러메시지를 출력하지 않는다면 정상적으로 설치된 것이다
사용형식 : rpm -i [옵션] 패키지명
rpm -ivh [옵션] 패키지명
-v 옵션은 설치화면을 자세한 과정을 출력한다
-h 옵션은 # 표시를 하여 진행과정을 출력한다
# rpm -ivh zsh-4.3.4-8.fc9.i386.rpm
Preparing... ########################################### [100%]
1:zsh ########################################### [100%]
- RPM 패키지 업그레이드
-> '-U 옵션을 사용하여 패키지가 존재하지 않으면 설치하고 존재하면 업그레이드한다
사용형식 : rpm -U [옵션] 패키지명
rpm -Uvh [옵션] 패키지명
- RPM 패키지 삭제
-> '-e' 옵션을 사용하여 패키지를 삭제한다
-> 패키지 의존성 에러로 인한 패키지 삭제 실패시에는 의존성 패키지를 모두
모두삭제하고 패키지를 삭제하거나 '--nodeps'옵션으로 강제 삭제를 한다
사용형식 : rpm -e [옵션] 패키지명
- RPM 패키지 설치, 업그레이드, 삭제시 공통으로 사용되는 옵션
-> '--placepkgs'
=> 패키지가 이미 설치되어 있어도 강제로 설치하게된다
=> 'already installed'라는 메시지를 출력하며 설치가 안될때 사용한다
-> '--replacefiles'
=> 파일의 중복으로 인한 에러가 발생할 때 사용하며 기존 파일을 새파일로
덮어쓰게 된다
=> 패키지명 conflicts with file from 패키지명을 출력하며 에러가 발생
할 때 사용
-> '--oldpackage'
=> 설치되어 있는 패키지보다 이전 버전을 설치할 때 사용한다
-> '--force'
=> 위의 3가지 옵션을 모두 포함하는 옵션이다
-> '--nodeps'
=> 의존성 에러가 발생할 경우 의존성을 무시하는 옵션이다
- 설치된 RPM 패키지 변경 가능성 여부 확인
-> '-V' 옵션을 사용하여 RPM 패키지의 변경 가능성을 확인 한다
사용형식 : rpm -V 패키지명
# rpm -V httpd-2.2.10-2.i386
S.5....T c /etc/httpd/conf/httpd.conf
-> RPM 패키지 변경여부 표시 문자
+----------+------------------+------------------------------------------+
| 표시문자 | 의 미 | 설 명 |
+----------+------------------+------------------------------------------+
| 5 | MD5 체크섬 | 현재파일의 MD5 sum 값이 설치 당시의 |
| | | MD5 sum 값과 다름 |
+----------+------------------+------------------------------------------+
| S | 파일 크기 | 파일 사이즈가 설치당시의 사이즈와 상이함 |
+----------+------------------+------------------------------------------+
| L | 심볼릭링크 | 심볼릭 링크 오류 |
+----------+------------------+------------------------------------------+
| T | 파일최종변경시간 | 파일의 mTime 값(최종변경시간)이 상이함 |
+----------+------------------+------------------------------------------+
| D | 장치 | 장치의 주번호와 부번호가 다름 |
+----------+------------------+------------------------------------------+
| U | 사용자 | 파일소유자 정보가 설치 당시와 다름 |
+----------+------------------+------------------------------------------+
| G | 그룹 | 파일의 소유그룹 정보가 설치 당시와 다름 |
+----------+------------------+------------------------------------------+
| M | 파일허가권 | 파일의 퍼미션이 설치당시의 퍼미션과 다름 |
| | 파일 형식 모드 | |
+----------+------------------+------------------------------------------+
'OS > Linux' 카테고리의 다른 글
FTP 명령어 정리 (0) | 2012.11.11 |
---|---|
fedora bluetooth 재설치 및 이어폰 소리 설정 (0) | 2012.11.11 |
nginx 에서 403 Forbidden 에러가 발생시 (0) | 2012.11.11 |
아파치 시작시 ssl 비밀번호 입력 없애기 (0) | 2012.11.11 |
쉘에서 날짜 구해오기 (0) | 2012.11.11 |