프로그래밍 농장

Linux [ RPM (redhat package management) ] 본문

Linux

Linux [ RPM (redhat package management) ]

Tennessee201 2019. 11. 4.
728x90

RPM( redhat package management ) 란, 리눅스에 프로그램을 설치하는 방법중 하나이다.

 

리눅스에서는 윈도우처럼 원하는 프로그램을 설치하면 바로 그 동작을 하는것이 아니라,  원하는 작업에 필요한 패키지들을 맞춰서 설치해줘야 그 작업을 설치해놓은 여러 패키지들이 맞물려서 실행되는 과정이다. 

 

그렇다면, 이떄 패키지하나라도 잘못된다면, 패키지충돌,패키지꼬임 등의 문제가 발생될수 있기떄문에, 현재 내가 사용할수있는 패키지버전, 아키텍쳐가 맞는지 잘 확인후 설치해야한다.

 

 

1. 수동설치 과정 :  소스 - 컴파일 - 환경설정 - 설치 - 실행 : tar & make 

                                                                  ex) configure -> make -> make install  

                                                                         configure== 소스파일에 대한 환경설정 ==설치 경로 지정 등

                                                                  ex) ./configure ==prefix = /usr/local/java 이런식으로

                                                                  ex) make == 소스 컴파일 == 소스 파일을 실행 가능한 파일로변환

                                                                  ex) make install == make 를통해 생성된 파일을 설치 

 

2.                         X         X           X      - 설치 - 실행   --> 위의 과정 X /  대신 rpm 명령어사용 

                          [        package       ]  

 

3.   리눅스가 인터넷에 연결되어있다면    yum을 사용하여 프로그램 설치가능. 

 

 

 

 

 

-리눅스 패키지 파일 list 

http://mirror.kakao.com/centos/7.7.1908/os/x86_64/Packages/

위 사이트에 들어가면 패키지파일들이 아래와같은 형식으로 나열되있을것이다.

 

-패키지 파일 구조에 대한 설명 

ex)    vim-enahanced-7.0.109-3.i386.rpm

위의 패키지파일명에서의 각 의미를 알아보자.

 

- vim -enahanced  : 패키지명 

- :  주 버전  --> 큰 틀자체를 수정한 횟수 ( 각 주버전마다 내용,명령어자체가 다름 ) 

- 0  : 보조 버전 --> 고치지않으면 안되는 치명적인 오류수정 작업횟수

- 109 : 수정 버전 --> 굳이 고치지않아도 되지만, 편의를위한 수정을 한 횟수 

- 3 : 배포버전  --> 현재 버전의 배포횟수 

- i386 : 아키텍처 --> cpu 성능에 맞는 최적화버전 ( i386 --> intel i3 cpu에 최적화됨 ) 

                             ( i386, i586 ,i686 --32bit 운영체제  /  x86-64 --64bit 운영체제 ) 

- rpm : 확장자명     

 

 

- rpm 사용형식     

 

-설치 : rpm -ivh [package] ....rpm   -->  ( -ivh옵션 ( i: 설치 , v: 보여줌, h: 패키지 설치과정을 '#'으로 표시 ) 

        : rpm -Uvh [package] ...rpm   -->( U : 설치되어있는 패키지가 없다면 설치, 이미 설치되있다면 업데이트 실시 )

 

-삭제 : rpm -e [package]   --> ( e : 삭제 )

 

-확인 : rpm -qa | grep [package]  -->

                           ( qa옵션 : 시스템에 설치되어있는 전체 패키지 목록조회 / grep :(package 명이 들어간 패턴검색 )

- 명령어 rpm -qa 입력시 : 현재 내 시스템에 설치된 패키지확인 가능.   

+ qa 옵션뒤에 | grep (검색명)     --> grep 옵션을 이용해서 원하는 검색명으로 찾을수있다. 

 

 

+추가적으로 알고있으면 좋은 쿼리 옵션들 ( 리마 시험에 출제가능 ) 

- qf  : 파일을 포함하는 패키지만 검색          

- qi : 패키지에 대한 정보를 확인 

- qR : 검색한 패키지가 의존하고있는 패키지들 출력 

- qc :  검색 패키지관련 설정파일들만 출력 

- qs : 패키지에 속한 파일들의 상태 표시 

 

위에서 말했듯이, 특정 패키지의 작업을 하려면 리눅스에서는 맞물려서 사용되는 패키지들을 설치해야한다 했다. 

 

 

 

 

- 패키지 작업시 유의사항 

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

2. 의존성 오류가 제기된다면 의존성 오류를 제기한것들부터 작업한다. 

3. 가급적 의존성 오류 무시 옵션 ( --nodeps ) 을 사용하지 말자.

              --> nodeps == 의존성 오류를 무시하고 작업하겠다는 뜻

              --> force  == 강제로 작업하겠다는 뜻 

4. 디렉토리 구조로 표시되는 것들은 무시한다. 

     lib... 으로 시작하고 중간에 so 가 들어간 것들도 무시한다 == 예외있음

 

 

728x90