[16] rpm(1)

|


- 2014.11.27


교재 p118 ~



1. rpm : Red Hat Package Manager


centos.org 접속

get centos 7 now -> dvd click

상위 메뉴 중 Mirror list - Asia, kaist 클릭 ....

(http://ftp.kaist.ac.kr/CentOS/6.6/os/i386/Packages/)

설치 가능한 rpm 의 목록들이다.



1) RPM 패키지 파일의 구성


① 패키지명


② 버전

major : 프로그램 자체가 완전 변경 - 그랜저 XG vs TG

minor : 치명적인 버그 수정

patch : 심각한 문제는 아니지만 불편한 것 수정

release : 패치된 것에서 조금의 수정


③ 아키텍쳐

[32bit]

i386 = 80386

- intel, cup 386, 486

i586 : P 1 ~ 3

i686 : P 4 ~ 7


[64bit]

x86_64 : AMD, intel


noarch : 플랫폼에 상관 없음


sparc : SunMicro System 의 스팍 계열 CPU


ppc : Power PC CPU - MAC용 CPU




2) RPM 옵션


-i rpm_file - install, 패키지 설치 되어 있으면 설치 안함

-U rpm_file - Upgrade, 업그레이드

-e rpm_file - 패키지 삭제

-v : verbose - 설치 내용 출력

-h : 설치 작업 상황 그래픽으로 보여줌

--nodeps : 패키지 의존성 검사 안함, 의존성 강제로 끊음



* 작업 전 확인할 것

# rpm -qa | grep 패키지명

(ls -l *ab* = ls -l | grep ab)



설치

# rpm -ivh 패키지명.rpm


삭제

# rpm -e 패키지명




[실습]


vi 설치되어있는지 확인


# vi

# rpm -qa | grep vim

vim-minimal-7.2.411-1.8.el6.i686

vim-enhanced-7.2.411-1.8.el6.i686

vim-common-7.2.411-1.8.el6.i686



* rpm 작업 공식(유의사항)

1. 모든 작업은 반드시 동일한 버전이어야 한다.

2. 의존성 오류(Failed dependencies)를 절대 무시하지 말자.

3. 의존성을 제기한 패키지를 먼저 작업한다.

4. 가급적 의존성 무시(--nodeps)를 사용하지 말자.

5. 'lib'으로 시작하고 중간에 'so'가 있는 경우는 무시해도 된다.

6. 디렉터리로 시작하는 거들(/usr/bin/)은 패키지가 아니므로 무시한다.

7. 대표 패키지부터 작업한다.

8. 나머지는 화면에 보이는 순서대로 작업한다.




vi 삭제

# rpm -e vim-minimal

오류: Failed dependencies:

        vim-minimal is needed by (installed) cvs-1.11.23-16.el6.i686

        vim-minimal is needed by (installed) sudo-1.8.6p3-15.el6.i686

=> 삭제 실패


의존성 오류 뜬 것을 차례대로 삭제하다보면 서로 의존된 것 삭제가 필요한 때가 온다.

그 때에는 2개를 동시에 삭제하면 된다.

# rpm -e redhat-lsb

오류: Failed dependencies:

        redhat-lsb(x86-32) = 4.0-7.el6.centos is needed by (installed) redhat-l

# rpm -e redhat-lsb-compat

오류: Failed dependencies:

        redhat-lsb-compat(x86-32) = 4.0-7.el6.centos is needed by (installed) r

# rpm -e redhat-lsb redhat-lsb-compat


이 뒤부터는 차례대로 위로 올라가며 삭제 진행하면 된다.

vim-minimal 삭제 전체 과정

# rpm -e redhat-lsb redhat-lsb-compat

# rpm -e redhat-lsb-printing

# rpm -e redhat-lsb-graphics

# rpm -e redhat-lsb-core

/var/tmp/rpm-tmp.dAbYuy: line 1: lsb_release: command not found

=> 무시해도 상관 없음


# rpm -e gettext

# rpm -e cvs

# rpm -e sudo

# rpm -e vim-minimal


vim 관련 나머지도 삭제

# rpm -e vim-enhanced

# rpm -e vim-common

# rpm -qa | grep vim

=> 검색 결과가 없다.


# vi

-ksh: vi: not found [그런 파일이나 디렉터리가 없습니다]

=> vi 가 삭제되어 실행되지 않는 것을 볼 수 있다.




[문제1]


http://ftp.kaist.ac.kr/CentOS/6.6/os/i386/Packages/

위의 사이트에서 vim* 으로 시작하는 package를 다운로드 및

linux로 업로드 하신 후 설치해보세요


필요 rpm 파일 다운로드 및 리눅스로의 업로드 후의 작업

# rpm -ivh ./vim-X11-7.2.411-1.8.el6.i686.rpm ./vim-common-7.2.411-1.8.el6.i686.rpm ./vim-enhanced-7.2.411-1.8.el6.i686.rpm ./vim-minimal-7.2.411-1.8.el6.i686.rpm

(혹은   # rpm -ivh ./vim*)




[문제2]


http://ftp.kaist.ac.kr/CentOS/6.6/os/i386/Packages/

위의 사이트에서 mysql* 으로 시작하는 package를 다운로드 및

linux로 업로드 하신 후 설치해보세요


*

perl(DBI) => perl-DBI-

(, ), :: => - (각각의 특수문자들은 - 로 봐도 무방하다.)


*

mysql-connector-java... 를 설치하다 보면 jta 설치하라고 하는데 못찾는다.

일단 해당 패키지는 넘어간다. => 내일 진행


*

lib으로 시작하며 중간에 so 가 들어가는 것을 모두 만족시키는 것만 설치하지 않아도 된다.


*

openssl 설치 도중 버전차이로 설치가 안되는 경우가 발생한다.

설치 되어있는 것을 삭제하려고 하면 너무 많은 것과 충돌하기 때문에

일단 --nodeps 옵션으로 강제 삭제 후 다시 설치한다.




And